mirror of
https://github.com/wekan/wekan.git
synced 2026-11-08 11:25:19 -05:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f00b39d154 | ||
|
|
39597e04ac | ||
|
|
1610eff0e9 | ||
|
|
c944f9fdff | ||
|
|
9b4d4c5953 | ||
|
|
a8f09011e9 | ||
|
|
2e1675969a | ||
|
|
a71973cc80 | ||
|
|
608ec63899 | ||
|
|
52bdba8e85 | ||
|
|
f5b11b15ce | ||
|
|
3359559ad2 | ||
|
|
b4aa464473 | ||
|
|
dbe31a86b7 | ||
|
|
bd283ff4e2 | ||
|
|
c020ce8895 | ||
|
|
f3562525db | ||
|
|
cc89c35c8d | ||
|
|
2457084db2 | ||
|
|
508a2d7103 | ||
|
|
3d7fef67d8 | ||
|
|
d63d445b7d | ||
|
|
8d3fe29c68 | ||
|
|
ad3ecbfd96 | ||
|
|
51ec43e7bc | ||
|
|
88dfc57e7e | ||
|
|
7409c366f6 | ||
|
|
b99b2a6d66 | ||
|
|
fa21b00bb6 | ||
|
|
f061b5e12a | ||
|
|
8ca642edc8 | ||
|
|
c3909edc5e | ||
|
|
f4cf09d394 | ||
|
|
6aa4f9fb86 | ||
|
|
a31545824e | ||
|
|
a94cfd5b91 | ||
|
|
6d6d51310e | ||
|
|
c9cf2971de | ||
|
|
54c481e3d8 | ||
|
|
8b4fbd266d | ||
|
|
3c5241b007 | ||
|
|
42a1f94931 | ||
|
|
cae6f38b80 | ||
|
|
25722e5e9d | ||
|
|
1d339ec17e | ||
|
|
ec534c8cca | ||
|
|
cab285c34d | ||
|
|
975993dd6d | ||
|
|
43084eb664 | ||
|
|
0e770ac3b3 | ||
|
|
206abc8c68 | ||
|
|
62b13cc343 | ||
|
|
7822dd3b75 | ||
|
|
a214cd64b6 | ||
|
|
8839a8ea39 | ||
|
|
a4169f3da7 | ||
|
|
19d59b3ab4 | ||
|
|
27b2e2384c | ||
|
|
49d2cbc2c1 | ||
|
|
bf2b3b40cd | ||
|
|
1541c6ca23 | ||
|
|
42c1ff94e2 | ||
|
|
53aa5ebc17 | ||
|
|
0f43818757 | ||
|
|
f3c5b1eb07 | ||
|
|
517d1bb7fa | ||
|
|
6ee0919ead | ||
|
|
13eb1a58e0 | ||
|
|
08f9c09484 | ||
|
|
3f3abe26ee | ||
|
|
e31c5b6d42 | ||
|
|
7bf77fa7cb | ||
|
|
a2662f1366 | ||
|
|
116cf6aa21 | ||
|
|
79bb6d0c55 | ||
|
|
c157ecec38 | ||
|
|
28893cf637 | ||
|
|
73ffc99f37 | ||
|
|
35802c7c62 | ||
|
|
bc44fdf89c | ||
|
|
030c3dd587 | ||
|
|
498be2759e | ||
|
|
649d00733a | ||
|
|
8a7a4f3033 | ||
|
|
b6ce81dc79 | ||
|
|
490c417cee | ||
|
|
2dfeb3924b | ||
|
|
bff96f6ae2 | ||
|
|
4801e26b2f | ||
|
|
027997f7b3 | ||
|
|
76aaefbde1 | ||
|
|
a01bc0f325 | ||
|
|
f6f4f5660e | ||
|
|
956925889a | ||
|
|
0bd49326d8 | ||
|
|
64c4e8eca8 | ||
|
|
55fc342f6d | ||
|
|
3ae0d96760 | ||
|
|
fc1e55cc19 | ||
|
|
58fc810a43 | ||
|
|
3c477e9783 | ||
|
|
f2247ed86d | ||
|
|
0d9a9d1ed8 | ||
|
|
ca5a579e22 | ||
|
|
53d97a593f | ||
|
|
3641a8f389 | ||
|
|
1dea1bd09d | ||
|
|
3db265d57f | ||
|
|
38a32824ea | ||
|
|
b0c94f7ff2 | ||
|
|
2415aa3d2b | ||
|
|
1af1844f37 | ||
|
|
75bb247c2b | ||
|
|
5a1b517733 | ||
|
|
0fbc8754f7 | ||
|
|
aaca60b676 | ||
|
|
a929d1e3a4 | ||
|
|
4a7fa7c396 | ||
|
|
45674806d7 | ||
|
|
8905bc7dfe | ||
|
|
dd6aec1ba9 | ||
|
|
aca5fa4d0a | ||
|
|
0d1f45b8a2 | ||
|
|
3f9ae57144 | ||
|
|
45c2f1007b | ||
|
|
83adaa3074 | ||
|
|
1951b279c0 | ||
|
|
50406ad683 | ||
|
|
95740eaa01 | ||
|
|
08f2c1c735 | ||
|
|
32459ec405 | ||
|
|
c7ac0cbce1 | ||
|
|
711fb5754e | ||
|
|
24fffd8bfa | ||
|
|
52556aff68 | ||
|
|
c76959ff25 | ||
|
|
a141871e60 | ||
|
|
5e639a7c2d |
No files matched your search
@@ -8,8 +8,8 @@ LABEL org.opencontainers.image.source="https://github.com/wekan/wekan"
|
||||
# - gyp does not yet work with Ubuntu 22.04 ubuntu:rolling,
|
||||
# so changing to 21.10. https://github.com/wekan/wekan/issues/4488
|
||||
|
||||
ENV BUILD_DEPS="apt-utils gnupg gosu wget bzip2 g++ iproute2 apt-transport-https libarchive-tools git"
|
||||
ENV DEV_DEPS="curl python3 ca-certificates build-essential"
|
||||
ENV BUILD_DEPS="apt-utils gnupg gosu wget bzip2 g++ iproute2 apt-transport-https libarchive-tools"
|
||||
ENV DEV_DEPS="curl python3 ca-certificates build-essential git"
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
ENV \
|
||||
|
||||
@@ -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@5176d81f87c23d6fc96624dfdbcd9f3830bbe445
|
||||
uses: docker/build-push-action@5cd11c3a4ced054e52742c5fd54dca954e0edd85
|
||||
with:
|
||||
context: .
|
||||
push: ${{ github.event_name != 'pull_request' }}
|
||||
|
||||
+134
@@ -15,6 +15,140 @@ Fixing other platforms In Progress.
|
||||
|
||||
[How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585)
|
||||
|
||||
# v7.57 2024-09-04 WeKan ® release
|
||||
|
||||
This release adds the following updates:
|
||||
|
||||
- [Rework fix for mobile devices to incorporate all themes/list headers](https://github.com/wekan/wekan/pull/5517).
|
||||
Thanks to walster001.
|
||||
- [Update templates to use label instead of span](https://github.com/wekan/wekan/pull/5519).
|
||||
Thanks to novashdima.
|
||||
- [Large updates to UI CSS](https://github.com/wekan/wekan/pull/5523).
|
||||
Thanks to walster001.
|
||||
- [Updated dependencies](https://github.com/wekan/wekan/commit/1610eff0e9212fdf6423ce5579b7bdaf8e45950b).
|
||||
Thanks to developers of dependencies.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v7.56 2024-08-21 WeKan ® release
|
||||
|
||||
This release adds the following updates:
|
||||
|
||||
- Updated Browser compatibility matrix.
|
||||
[Part 1](https://github.com/wekan/wekan/commit/cab285c34d1f159120ccd48b17a897e95bd48471),
|
||||
[Part 2](https://github.com/wekan/wekan/commit/ec534c8cca3f0256091c2d870c128d26033d40ad).
|
||||
- [Updated code of conduct](https://github.com/wekan/wekan/commit/cae6f38b8070cfcc2f2529027f7e66b965a19f05).
|
||||
Thanks to xet7.
|
||||
- [Updated Docker build actions](https://github.com/wekan/wekan/pull/5505).
|
||||
Thanks to dependabot.
|
||||
- Updated docs for building custom Docker image.
|
||||
[Part 1](https://github.com/wekan/wekan/issues/5509),
|
||||
[Part 2](https://github.com/wekan/wekan/commit/6d6d51310e4168cd0fc75f550d3af35df9ccef9f),
|
||||
[Part 3](https://github.com/wekan/wekan/commit/a94cfd5b91d29f81e51e67ed03ba84f820d4892a).
|
||||
- [Update mongodb chart version to 15.6.18 and enables wekan to be deployed on an OpenShift cluster](https://github.com/wekan/charts/pull/36).
|
||||
Thanks to fobrice.
|
||||
- [Upgraded Snap Candidate MongoDB to 6.0.17](https://github.com/wekan/wekan/commit/d63d445b7d5da48c05d0fbd4e560c00283b1aef7).
|
||||
Thanks to MongoDB developers.
|
||||
|
||||
and fixes the following bugs:
|
||||
|
||||
- [Fix ModernDark Mobile View List Titles](https://github.com/wekan/wekan/pull/5503).
|
||||
Thanks to walster001.
|
||||
- [Fix apparmor denied in syslog at Snap Candidate](https://github.com/wekan/wekan/commit/c3909edc5ee7a82b694b19ca7e022cbdfd12affd).
|
||||
Thanks to webenefits and xet7.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v7.55 2024-08-08 WeKan ® release
|
||||
|
||||
This release fixes the following bugs:
|
||||
|
||||
- [Fix board backgrounds not showing correctly after v7.54](https://github.com/wekan/wekan/pull/5501).
|
||||
Thanks to walster001.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v7.54 2024-08-07 WeKan ® release
|
||||
|
||||
This release adds the following new features:
|
||||
|
||||
- [Helm Chart: Add Support for Overriding Image Registry in Airgapped Environments](https://github.com/wekan/charts/pull/35).
|
||||
Thanks to geilername.
|
||||
- [PWA, move to standalone (standard) to display the status bar](https://github.com/wekan/wekan/pull/5484)
|
||||
Thanks to mfilser.
|
||||
- [Added info how with Caddy webserver config, PWA and Android app override icons, showing toolbars, etc](https://github.com/wekan/wekan/commit/55fc342f6d90d8e30b70a8903ecead1c4370bd89).
|
||||
Thanks to xet7.
|
||||
|
||||
and fixes the following bugs:
|
||||
|
||||
- [Don't set background image in .board-canvas too](https://github.com/wekan/wekan/pull/5485).
|
||||
Thanks to mfilser.
|
||||
- [Bugfix, variable "color" didn't exist](https://github.com/wekan/wekan/pull/5486).
|
||||
Thanks to mfilser.
|
||||
- [Little opacity to minicards to see the background image a little bit](https://github.com/wekan/wekan/pull/5487).
|
||||
Thanks to mfilser.
|
||||
- [Remove attachment storage name from attachment list](https://github.com/wekan/wekan/pull/5488).
|
||||
Thanks to mfilser.
|
||||
- [Attachment popup back was broken since new attachment viewer, now fixed](https://github.com/wekan/wekan/pull/5489).
|
||||
Thanks to mfilser.
|
||||
- [Change Meteor.user() to ReactiveCache.getCurrentUser()](https://github.com/wekan/wekan/pull/5490).
|
||||
Thanks to mfilser.
|
||||
- [Fix empty parentId in cards](https://github.com/wekan/wekan/pull/5491).
|
||||
Thanks to mfilser.
|
||||
- [Sidebar xmark icon, add padding and background color](https://github.com/wekan/wekan/pull/5492).
|
||||
Thanks to mfilser.
|
||||
- [Board view, first column a bit smaller to save screen space](https://github.com/wekan/wekan/pull/5493).
|
||||
Thanks to mfilser.
|
||||
- [Minicard, show creator, defaultValue of schema and other code is now the same](https://github.com/wekan/wekan/pull/5494).
|
||||
Thanks to mfilser.
|
||||
- [Editor, Bugfix, copy text is now at each editor (textarea) again](https://github.com/wekan/wekan/pull/5495).
|
||||
Thanks to mfilser.
|
||||
- [Bugfix, Cards Count on mobile view was missing](https://github.com/wekan/wekan/pull/5496).
|
||||
Thanks to mfilser.
|
||||
- [ListHeader, simpler code logic at collapsed if conditions](https://github.com/wekan/wekan/pull/5497).
|
||||
Thanks to mfilser.
|
||||
- [Bugfix, edit description didn't work if it was clicked](https://github.com/wekan/wekan/pull/5498).
|
||||
Thanks to mfilser.
|
||||
- [Fix LDAP login fails after upgrade](https://github.com/wekan/wekan/commit/a4169f3da773e4fd961acd0266260085a753cdab).
|
||||
Thanks to juppees and xet7.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v7.53 2024-08-03 WeKan ® release
|
||||
|
||||
This release adds the following new features:
|
||||
|
||||
- [Added Dragscroll to scroll the board](https://github.com/wekan/wekan/pull/5477).
|
||||
Click on an empty space in the board, hold the left mouse and move left and right
|
||||
to scroll the board easily.
|
||||
Thanks to mfilser.
|
||||
|
||||
and adds the following updates:
|
||||
|
||||
- [Updated release script: New install webpage location](https://github.com/wekan/wekan/commit/5e639a7c2d6dc1182ba95e44875ac8a6798a62be).
|
||||
Thanks to xet7.
|
||||
- [Updated dependencies](https://github.com/wekan/wekan/commit/3f9ae57144dc9befd674c784896d68b5db9df146).
|
||||
Thanks to developers of dependencies.
|
||||
- [Copied changes from wiki to docs](https://github.com/wekan/wekan/commit/aaca60b6760cc84b56a24fc15c93f23b4a34f06e).
|
||||
Thanks to xet7.
|
||||
- [Updated Snap Candidate to MongoDB 6.0.16](https://github.com/wekan/wekan/commit/1af1844f37d17f9f54ca358ccf0f44eed1dfbef4).
|
||||
Thanks to MongoDB developers.
|
||||
|
||||
and fixes the following bugs:
|
||||
|
||||
- [Board Menu Popup's were opened twice because of 2 same event creation](https://github.com/wekan/wekan/pull/5478).
|
||||
Thanks to mfilser.
|
||||
- [Fixing of "mode is undefined" on first activity component creation](https://github.com/wekan/wekan/pull/5479).
|
||||
Thanks to mfilser.
|
||||
- [Changing card color now closes the popup and doesn't refresh the whole board page](https://github.com/wekan/wekan/pull/5480).
|
||||
Thanks to mfilser.
|
||||
- [Fix dragscroll package name](https://github.com/wekan/wekan/commit/45674806d78fddb8a3b8a75890e5059cc1a680ea).
|
||||
Thanks to xet7.
|
||||
- [Reducing card size in database if no planning poker was started](https://github.com/wekan/wekan/pull/5481).
|
||||
Thanks to mfilser.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v7.52 2024-08-03 WeKan ® release
|
||||
|
||||
This release adds the following new features:
|
||||
|
||||
+1
-1
@@ -11,7 +11,7 @@ For all code at WeKan GitHub Organization https://github.com/wekan
|
||||
|
||||
## Private reports
|
||||
|
||||
- Email support (at) wekan.team using [this PGP public key](support-at-wekan.team_pgp-publickey.asc) if possible
|
||||
- Email support@wekan.team
|
||||
- Security issues: [SECURITY.md](SECURITY.md)
|
||||
- License violations
|
||||
- Anything private, sensitive or negative
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2014-2023 The Wekan Team
|
||||
Copyright (c) 2014-2024 The Wekan Team
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928
|
||||
appVersion: "v7.52.0"
|
||||
appVersion: "v7.57.0"
|
||||
files:
|
||||
userUploads:
|
||||
- README.md
|
||||
|
||||
@@ -13,39 +13,41 @@ BlazeComponent.extendComponent({
|
||||
const sidebar = Sidebar;
|
||||
sidebar && sidebar.callFirstWith(null, 'resetNextPeak');
|
||||
this.autorun(() => {
|
||||
let mode = this.data().mode;
|
||||
const capitalizedMode = Utils.capitalize(mode);
|
||||
let searchId;
|
||||
if (mode === 'linkedcard' || mode === 'linkedboard') {
|
||||
searchId = Utils.getCurrentCard().linkedId;
|
||||
mode = mode.replace('linked', '');
|
||||
} else if (mode === 'card') {
|
||||
searchId = Utils.getCurrentCardId();
|
||||
} else {
|
||||
searchId = Session.get(`current${capitalizedMode}`);
|
||||
}
|
||||
const limit = this.page.get() * activitiesPerPage;
|
||||
const user = ReactiveCache.getCurrentUser();
|
||||
const hideSystem = user ? user.hasHiddenSystemMessages() : false;
|
||||
if (searchId === null) return;
|
||||
|
||||
this.subscribe('activities', mode, searchId, limit, hideSystem, () => {
|
||||
this.loadNextPageLocked = false;
|
||||
|
||||
// TODO the guard can be removed as soon as the TODO above is resolved
|
||||
if (!sidebar) return;
|
||||
// If the sibear peak hasn't increased, that mean that there are no more
|
||||
// activities, and we can stop calling new subscriptions.
|
||||
// XXX This is hacky! We need to know excatly and reactively how many
|
||||
// activities there are, we probably want to denormalize this number
|
||||
// dirrectly into card and board documents.
|
||||
const nextPeakBefore = sidebar.callFirstWith(null, 'getNextPeak');
|
||||
sidebar.calculateNextPeak();
|
||||
const nextPeakAfter = sidebar.callFirstWith(null, 'getNextPeak');
|
||||
if (nextPeakBefore === nextPeakAfter) {
|
||||
sidebar.callFirstWith(null, 'resetNextPeak');
|
||||
let mode = this.data()?.mode;
|
||||
if (mode) {
|
||||
const capitalizedMode = Utils.capitalize(mode);
|
||||
let searchId;
|
||||
if (mode === 'linkedcard' || mode === 'linkedboard') {
|
||||
searchId = Utils.getCurrentCard().linkedId;
|
||||
mode = mode.replace('linked', '');
|
||||
} else if (mode === 'card') {
|
||||
searchId = Utils.getCurrentCardId();
|
||||
} else {
|
||||
searchId = Session.get(`current${capitalizedMode}`);
|
||||
}
|
||||
});
|
||||
const limit = this.page.get() * activitiesPerPage;
|
||||
const user = ReactiveCache.getCurrentUser();
|
||||
const hideSystem = user ? user.hasHiddenSystemMessages() : false;
|
||||
if (searchId === null) return;
|
||||
|
||||
this.subscribe('activities', mode, searchId, limit, hideSystem, () => {
|
||||
this.loadNextPageLocked = false;
|
||||
|
||||
// TODO the guard can be removed as soon as the TODO above is resolved
|
||||
if (!sidebar) return;
|
||||
// If the sibear peak hasn't increased, that mean that there are no more
|
||||
// activities, and we can stop calling new subscriptions.
|
||||
// XXX This is hacky! We need to know excatly and reactively how many
|
||||
// activities there are, we probably want to denormalize this number
|
||||
// dirrectly into card and board documents.
|
||||
const nextPeakBefore = sidebar.callFirstWith(null, 'getNextPeak');
|
||||
sidebar.calculateNextPeak();
|
||||
const nextPeakAfter = sidebar.callFirstWith(null, 'getNextPeak');
|
||||
if (nextPeakBefore === nextPeakAfter) {
|
||||
sidebar.callFirstWith(null, 'resetNextPeak');
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
loadNextPage() {
|
||||
|
||||
@@ -18,7 +18,7 @@ template(name="boardBody")
|
||||
else
|
||||
.board-wrapper(class=currentBoard.colorClass)
|
||||
+sidebar
|
||||
.board-canvas.js-swimlanes(
|
||||
.board-canvas.js-swimlanes.dragscroll(
|
||||
class="{{#if Sidebar.isOpen}}is-sibling-sidebar-open{{/if}}"
|
||||
class="{{#if MultiSelection.isActive}}is-multiselection-active{{/if}}"
|
||||
class="{{#if draggingActive.get}}is-dragging-active{{/if}}")
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { ReactiveCache } from '/imports/reactiveCache';
|
||||
import { TAPi18n } from '/imports/i18n';
|
||||
import dragscroll from '@wekanteam/dragscroll';
|
||||
|
||||
const subManager = new SubsManager();
|
||||
const { calculateIndex } = Utils;
|
||||
@@ -219,6 +220,7 @@ BlazeComponent.extendComponent({
|
||||
boardComponent.openNewListForm();
|
||||
}
|
||||
|
||||
dragscroll.reset();
|
||||
Utils.setBackgroundImage();
|
||||
},
|
||||
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
/* ===============
|
||||
THEME - NEPHRITIS
|
||||
=================*/
|
||||
|
||||
.board-color-nephritis#header,
|
||||
.board-color-nephritis.sk-spinner div,
|
||||
.board-backgrounds-list .board-color-nephritis.background-box,
|
||||
@@ -70,6 +74,35 @@
|
||||
.board-color-nephritis#header-quick-access ul li.current {
|
||||
border-bottom: 4px solid #3dd37c;
|
||||
}
|
||||
|
||||
/* Transparent modern scrollbar - Nephritis*/
|
||||
.board-color-nephritis .board-canvas {
|
||||
scrollbar-color: #27ae60f2 #e4e4e400;
|
||||
}
|
||||
|
||||
|
||||
/* Apply scrollbar to sidebar content*/
|
||||
.board-color-nephritis .sidebar .sidebar-content {
|
||||
scrollbar-color: #27ae60f2 #e4e4e400;
|
||||
}
|
||||
|
||||
/* Remove margins in between columns/fix spacing */
|
||||
|
||||
.board-color-nephritis .list {
|
||||
border-left: none;
|
||||
padding-bottom: 8px;
|
||||
}
|
||||
|
||||
.board-color-nephritis .list-body {
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
/* === END NEPHRITIS THEME === */
|
||||
|
||||
/* ===============
|
||||
THEME - Pomegranate
|
||||
=================*/
|
||||
|
||||
.board-color-pomegranate#header,
|
||||
.board-color-pomegranate.sk-spinner div,
|
||||
.board-backgrounds-list .board-color-pomegranate.background-box,
|
||||
@@ -142,6 +175,35 @@
|
||||
.board-color-pomegranate#header-quick-access ul li.current {
|
||||
border-bottom: 4px solid #d7584b;
|
||||
}
|
||||
|
||||
/* Transparent modern scrollbar - pomegranate*/
|
||||
.board-color-pomegranate .board-canvas {
|
||||
scrollbar-color: #c0392bf2 #e4e4e400;
|
||||
}
|
||||
|
||||
|
||||
/* Apply scrollbar to sidebar content*/
|
||||
.board-color-pomegranate .sidebar .sidebar-content {
|
||||
scrollbar-color: #c0392bf2 #e4e4e400;
|
||||
}
|
||||
|
||||
/* Remove margins in between columns/fix spacing */
|
||||
|
||||
.board-color-pomegranate .list {
|
||||
border-left: none;
|
||||
padding-bottom: 8px;
|
||||
}
|
||||
|
||||
.board-color-pomegranate .list-body {
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
/* === END Pomegranate THEME === */
|
||||
|
||||
/* ===============
|
||||
THEME - Belize
|
||||
=================*/
|
||||
|
||||
.board-color-belize#header,
|
||||
.board-color-belize.sk-spinner div,
|
||||
.board-backgrounds-list .board-color-belize.background-box,
|
||||
@@ -214,6 +276,35 @@
|
||||
.board-color-belize#header-quick-access ul li.current {
|
||||
border-bottom: 4px solid #459cd6;
|
||||
}
|
||||
|
||||
/* Transparent modern scrollbar - belize*/
|
||||
.board-color-belize .board-canvas {
|
||||
scrollbar-color: #2573a7f2 #e4e4e400;
|
||||
}
|
||||
|
||||
|
||||
/* Apply scrollbar to sidebar content*/
|
||||
.board-color-belize .sidebar .sidebar-content {
|
||||
scrollbar-color: #2980b9f2 #e4e4e400;
|
||||
}
|
||||
|
||||
/* Remove margins in between columns/fix spacing */
|
||||
|
||||
.board-color-belize .list {
|
||||
border-left: none;
|
||||
padding-bottom: 8px;
|
||||
}
|
||||
|
||||
.board-color-belize .list-body {
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
/* === END Belize THEME === */
|
||||
|
||||
/* ===============
|
||||
THEME - Wisteria
|
||||
=================*/
|
||||
|
||||
.board-color-wisteria#header,
|
||||
.board-color-wisteria.sk-spinner div,
|
||||
.board-backgrounds-list .board-color-wisteria.background-box,
|
||||
@@ -286,6 +377,35 @@
|
||||
.board-color-wisteria#header-quick-access ul li.current {
|
||||
border-bottom: 4px solid #a765c2;
|
||||
}
|
||||
|
||||
/* Transparent modern scrollbar - wisteria*/
|
||||
.board-color-wisteria .board-canvas {
|
||||
scrollbar-color: #8e44adf2 #e4e4e400;
|
||||
}
|
||||
|
||||
|
||||
/* Apply scrollbar to sidebar content*/
|
||||
.board-color-wisteria .sidebar .sidebar-content {
|
||||
scrollbar-color: #8e44adf2 #e4e4e400;
|
||||
}
|
||||
|
||||
/* Remove margins in between columns/fix spacing */
|
||||
|
||||
.board-color-wisteria .list {
|
||||
border-left: none;
|
||||
padding-bottom: 8px;
|
||||
}
|
||||
|
||||
.board-color-wisteria .list-body {
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
/* === END Wisteria THEME === */
|
||||
|
||||
/* ===============
|
||||
THEME - Midnight
|
||||
=================*/
|
||||
|
||||
.board-color-midnight#header,
|
||||
.board-color-midnight.sk-spinner div,
|
||||
.board-backgrounds-list .board-color-midnight.background-box,
|
||||
@@ -358,6 +478,35 @@
|
||||
.board-color-midnight#header-quick-access ul li.current {
|
||||
border-bottom: 4px solid #476582;
|
||||
}
|
||||
|
||||
/* Transparent modern scrollbar - midnight*/
|
||||
.board-color-midnight .board-canvas {
|
||||
scrollbar-color: #2c3e50f2 #e4e4e400;
|
||||
}
|
||||
|
||||
|
||||
/* Apply scrollbar to sidebar content*/
|
||||
.board-color-midnight .sidebar .sidebar-content {
|
||||
scrollbar-color: #2c3e50f2 #e4e4e400;
|
||||
}
|
||||
|
||||
/* Remove margins in between columns/fix spacing */
|
||||
|
||||
.board-color-midnight .list {
|
||||
border-left: none;
|
||||
padding-bottom: 8px;
|
||||
}
|
||||
|
||||
.board-color-midnight .list-body {
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
/* === END Midnight THEME === */
|
||||
|
||||
/* ===============
|
||||
THEME - Pumpkin
|
||||
=================*/
|
||||
|
||||
.board-color-pumpkin#header,
|
||||
.board-color-pumpkin.sk-spinner div,
|
||||
.board-backgrounds-list .board-color-pumpkin.background-box,
|
||||
@@ -430,6 +579,35 @@
|
||||
.board-color-pumpkin#header-quick-access ul li.current {
|
||||
border-bottom: 4px solid #eb984e;
|
||||
}
|
||||
|
||||
/* Transparent modern scrollbar - pumpkin*/
|
||||
.board-color-pumpkin .board-canvas {
|
||||
scrollbar-color: #e67e22f2 #e4e4e400;
|
||||
}
|
||||
|
||||
|
||||
/* Apply scrollbar to sidebar content*/
|
||||
.board-color-pumpkin .sidebar .sidebar-content {
|
||||
scrollbar-color: #e67e22f2 #e4e4e400;
|
||||
}
|
||||
|
||||
/* Remove margins in between columns/fix spacing */
|
||||
|
||||
.board-color-pumpkin .list {
|
||||
border-left: none;
|
||||
padding-bottom: 8px;
|
||||
}
|
||||
|
||||
.board-color-pumpkin .list-body {
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
/* === END Pumpkin THEME === */
|
||||
|
||||
/* ===============
|
||||
THEME - Moderate Pink
|
||||
=================*/
|
||||
|
||||
.board-color-moderatepink#header,
|
||||
.board-color-moderatepink.sk-spinner div,
|
||||
.board-backgrounds-list .board-color-moderatepink.background-box,
|
||||
@@ -502,6 +680,35 @@
|
||||
.board-color-moderatepink#header-quick-access ul li.current {
|
||||
border-bottom: 4px solid #d77ba7;
|
||||
}
|
||||
|
||||
/* Transparent modern scrollbar - moderatepink*/
|
||||
.board-color-moderatepink .board-canvas {
|
||||
scrollbar-color: #cd5a91f2 #e4e4e400;
|
||||
}
|
||||
|
||||
|
||||
/* Apply scrollbar to sidebar content*/
|
||||
.board-color-moderatepink .sidebar .sidebar-content {
|
||||
scrollbar-color: #cd5a91f2 #e4e4e400;
|
||||
}
|
||||
|
||||
/* Remove margins in between columns/fix spacing */
|
||||
|
||||
.board-color-moderatepink .list {
|
||||
border-left: none;
|
||||
padding-bottom: 8px;
|
||||
}
|
||||
|
||||
.board-color-moderatepink .list-body {
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
/* === END Moderatepink THEME === */
|
||||
|
||||
/* ===============
|
||||
THEME - Strong Cyan
|
||||
=================*/
|
||||
|
||||
.board-color-strongcyan#header,
|
||||
.board-color-strongcyan.sk-spinner div,
|
||||
.board-backgrounds-list .board-color-strongcyan.background-box,
|
||||
@@ -574,6 +781,35 @@
|
||||
.board-color-strongcyan#header-quick-access ul li.current {
|
||||
border-bottom: 4px solid #0adbff;
|
||||
}
|
||||
|
||||
/* Transparent modern scrollbar - strongcyan*/
|
||||
.board-color-strongcyan .board-canvas {
|
||||
scrollbar-color: #00aeccf2 #e4e4e400;
|
||||
}
|
||||
|
||||
|
||||
/* Apply scrollbar to sidebar content*/
|
||||
.board-color-strongcyan .sidebar .sidebar-content {
|
||||
scrollbar-color: #00aeccf2 #e4e4e400;
|
||||
}
|
||||
|
||||
/* Remove margins in between columns/fix spacing */
|
||||
|
||||
.board-color-strongcyan .list {
|
||||
border-left: none;
|
||||
padding-bottom: 8px;
|
||||
}
|
||||
|
||||
.board-color-strongcyan .list-body {
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
/* === END Strongcyan THEME === */
|
||||
|
||||
/* ===============
|
||||
THEME - Lime Green
|
||||
=================*/
|
||||
|
||||
.board-color-limegreen#header,
|
||||
.board-color-limegreen.sk-spinner div,
|
||||
.board-backgrounds-list .board-color-limegreen.background-box,
|
||||
@@ -646,6 +882,35 @@
|
||||
.board-color-limegreen#header-quick-access ul li.current {
|
||||
border-bottom: 4px solid #6fcc89;
|
||||
}
|
||||
|
||||
/* Transparent modern scrollbar - limegreen*/
|
||||
.board-color-limegreen .board-canvas {
|
||||
scrollbar-color: #4bbf6bf2 #e4e4e400;
|
||||
}
|
||||
|
||||
|
||||
/* Apply scrollbar to sidebar content*/
|
||||
.board-color-limegreen .sidebar .sidebar-content {
|
||||
scrollbar-color: #4bbf6bf2 #e4e4e400;
|
||||
}
|
||||
|
||||
/* Remove margins in between columns/fix spacing */
|
||||
|
||||
.board-color-limegreen .list {
|
||||
border-left: none;
|
||||
padding-bottom: 8px;
|
||||
}
|
||||
|
||||
.board-color-limegreen .list-body {
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
/* === END Limegreen THEME === */
|
||||
|
||||
/* ===============
|
||||
THEME - Dark
|
||||
=================*/
|
||||
|
||||
.board-color-dark#header,
|
||||
.board-color-dark.sk-spinner div,
|
||||
.board-backgrounds-list .board-color-dark.background-box,
|
||||
@@ -659,6 +924,7 @@
|
||||
border-radius: 7px;
|
||||
padding: 10px 10px 4px 10px;
|
||||
box-shadow: 2px 2px 4px 0px rgba(0,0,0,0.15);
|
||||
background-color: rgb(255 255 255 / 90%);
|
||||
}
|
||||
.board-color-dark button[type=submit].primary,
|
||||
.board-color-dark input[type=submit].primary,
|
||||
@@ -718,7 +984,12 @@
|
||||
.board-color-dark#header-quick-access ul li.current {
|
||||
border-bottom: 4px solid #476483;
|
||||
}
|
||||
.board-color-dark .ui-sortable,
|
||||
|
||||
/* Board Wrapper background fix for dark theme */
|
||||
.board-color-dark.board-wrapper {
|
||||
background-color: #2c3e50;
|
||||
}
|
||||
|
||||
.board-color-dark .swimlane,
|
||||
.board-color-dark .swimlane >.swimlane-header-wrap,
|
||||
.board-color-dark .swimlane >.list.js-list,
|
||||
@@ -815,6 +1086,35 @@
|
||||
background-color: #ccc;
|
||||
color: #222;
|
||||
}
|
||||
|
||||
/* Transparent modern scrollbar - dark*/
|
||||
.board-color-dark .board-canvas {
|
||||
scrollbar-color: #f2f2f2f2 #e4e4e400;
|
||||
}
|
||||
|
||||
|
||||
/* Apply scrollbar to sidebar content*/
|
||||
.board-color-dark .sidebar .sidebar-content {
|
||||
scrollbar-color: #f2f2f2f2 #e4e4e400;
|
||||
}
|
||||
|
||||
/* Remove margins in between columns/fix spacing */
|
||||
|
||||
.board-color-dark .list {
|
||||
border-left: none; /* Remove this property to bring back lines in-between columns if needed*/
|
||||
padding: 0px 1px 8px 1px; /* Improves spacing between columns due to no borders, 8px padding at bottom to separate horizontal scrollbar/lists */
|
||||
}
|
||||
|
||||
.board-color-dark .list-body {
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
/* === END Dark THEME === */
|
||||
|
||||
/* ===============
|
||||
THEME - Relax
|
||||
=================*/
|
||||
|
||||
.board-color-relax#header,
|
||||
.board-color-relax.sk-spinner div,
|
||||
.board-backgrounds-list .board-color-relax.background-box,
|
||||
@@ -887,7 +1187,7 @@
|
||||
.board-color-relax#header-quick-access ul li.current {
|
||||
border-bottom: 4px solid #3dd37e;
|
||||
}
|
||||
.board-color-relax .ui-sortable {
|
||||
.board-color-relax .board-wrapper {
|
||||
background-color: #a7e366;
|
||||
}
|
||||
.board-color-relax .list-header {
|
||||
@@ -916,6 +1216,35 @@
|
||||
font-weight: bold;
|
||||
font-size: 11pt;
|
||||
}
|
||||
|
||||
/* Transparent modern scrollbar - relax*/
|
||||
.board-color-relax .board-canvas {
|
||||
scrollbar-color: #fffffff2 #e4e4e400;
|
||||
}
|
||||
|
||||
|
||||
/* Apply scrollbar to sidebar content*/
|
||||
.board-color-relax .sidebar .sidebar-content {
|
||||
scrollbar-color: #a7e366 #e4e4e400;
|
||||
}
|
||||
|
||||
/* Remove margins in between columns/fix spacing */
|
||||
|
||||
.board-color-relax .list {
|
||||
border-left: none;
|
||||
/* padding-bottom: 8px; - Removed to get rid of grey bars for relax theme */
|
||||
}
|
||||
|
||||
.board-color-relax .list-body {
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
/* === END Relax THEME === */
|
||||
|
||||
/* ===============
|
||||
THEME - Corteza
|
||||
=================*/
|
||||
|
||||
.board-color-corteza#header,
|
||||
.board-color-corteza.sk-spinner div,
|
||||
.board-backgrounds-list .board-color-corteza.background-box,
|
||||
@@ -988,9 +1317,35 @@
|
||||
.board-color-corteza#header-quick-access ul li.current {
|
||||
border-bottom: 4px solid #76a3b6;
|
||||
}
|
||||
/*
|
||||
Alternate "Clear" Styling
|
||||
*/
|
||||
|
||||
/* Transparent modern scrollbar - corteza*/
|
||||
.board-color-corteza .board-canvas {
|
||||
scrollbar-color: #568ba2f2 #e4e4e400;
|
||||
}
|
||||
|
||||
|
||||
/* Apply scrollbar to sidebar content*/
|
||||
.board-color-corteza .sidebar .sidebar-content {
|
||||
scrollbar-color: #568ba2f2 #e4e4e400;
|
||||
}
|
||||
|
||||
/* Remove margins in between columns/fix spacing */
|
||||
|
||||
.board-color-corteza .list {
|
||||
border-left: none;
|
||||
padding-bottom: 8px;
|
||||
}
|
||||
|
||||
.board-color-corteza .list-body {
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
/* === END Corteza THEME === */
|
||||
|
||||
/* ===============
|
||||
THEME - Clear Blue
|
||||
=================*/
|
||||
|
||||
.board-color-clearblue.sk-spinner div,
|
||||
.board-backgrounds-list .board-color-clearblue.background-box,
|
||||
.board-list .board-color-clearblue a {
|
||||
@@ -1054,7 +1409,7 @@
|
||||
.board-color-clearblue .toggle-switch:checked ~ .toggle-label:after {
|
||||
background-color: #197ddc;
|
||||
}
|
||||
.board-color-clearblue .board-canvas {
|
||||
.board-color-clearblue.board-wrapper {
|
||||
background: linear-gradient(135deg, #499bea 0%, #00aecc 100%);
|
||||
}
|
||||
.board-color-clearblue .swimlane {
|
||||
@@ -1062,7 +1417,7 @@
|
||||
}
|
||||
.board-color-clearblue .swimlane .list:first-child {
|
||||
min-width: 20px;
|
||||
margin-left: 0px;
|
||||
margin-left: 10px; /* Added 10px margin left to stop lists being butted up against the edge of the screen */
|
||||
border-left: none;
|
||||
}
|
||||
.board-color-clearblue .swimlane .list:nth-child {
|
||||
@@ -1096,7 +1451,7 @@
|
||||
color: rgba(0,0,0,0.6);
|
||||
}
|
||||
.board-color-clearblue .list-header {
|
||||
background-color: rgba(255,255,255,0.25);
|
||||
background-color: rgb(255 255 255 / 68%);
|
||||
border-radius: 14px 14px 0 0;
|
||||
}
|
||||
.board-color-clearblue .list-header:not([class*="list-header-"]) {
|
||||
@@ -1224,9 +1579,40 @@
|
||||
cursor: -webkit-grabbing;
|
||||
cursor: grabbing;
|
||||
}
|
||||
/*
|
||||
Alternate "Natural" Styling
|
||||
*/
|
||||
|
||||
/* Transparent modern scrollbar - clearblue*/
|
||||
.board-color-clearblue .board-canvas {
|
||||
scrollbar-color: #ffffffdb #ffffff00;
|
||||
scrollbar-width: thin;
|
||||
}
|
||||
|
||||
.board-color-clearblue .list-body {
|
||||
scrollbar-width: thin;
|
||||
}
|
||||
|
||||
|
||||
/* Apply scrollbar to sidebar content*/
|
||||
.board-color-clearblue .sidebar .sidebar-content {
|
||||
scrollbar-color: #00aecc #ffffff00;
|
||||
}
|
||||
|
||||
/* Remove margins in between columns/fix spacing */
|
||||
|
||||
.board-color-clearblue .list {
|
||||
border-left: none;
|
||||
padding-bottom: 8px;
|
||||
}
|
||||
|
||||
.board-color-clearblue .list-body {
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
/* === END Clearblue THEME === */
|
||||
|
||||
/* ===============
|
||||
THEME - Natural
|
||||
=================*/
|
||||
|
||||
.board-color-natural#header,
|
||||
.board-color-natural.sk-spinner div,
|
||||
.board-backgrounds-list .board-color-natural.background-box,
|
||||
@@ -1302,15 +1688,41 @@
|
||||
.board-color-natural#header-quick-access {
|
||||
background-color: #2d392b;
|
||||
}
|
||||
.board-color-natural .ui-sortable {
|
||||
.board-color-natural.board-wrapper {
|
||||
background-color: #dedede;
|
||||
}
|
||||
.board-color-natural .swimlane .swimlane-header-wrap {
|
||||
background-color: #c2c0ab;
|
||||
}
|
||||
/*
|
||||
Alternate "Modern" Styling
|
||||
*/
|
||||
|
||||
/* Transparent modern scrollbar - natural*/
|
||||
.board-color-natural .board-canvas {
|
||||
scrollbar-color: #596557f2 #e4e4e400;
|
||||
}
|
||||
|
||||
|
||||
/* Apply scrollbar to sidebar content*/
|
||||
.board-color-natural .sidebar .sidebar-content {
|
||||
scrollbar-color: #596557f2 #e4e4e400;
|
||||
}
|
||||
|
||||
/* Remove margins in between columns/fix spacing */
|
||||
|
||||
.board-color-natural .list {
|
||||
border-left: none;
|
||||
padding-bottom: 8px;
|
||||
}
|
||||
|
||||
.board-color-natural .list-body {
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
/* === END Natural THEME === */
|
||||
|
||||
/* ===============
|
||||
THEME - Modern
|
||||
=================*/
|
||||
|
||||
.board-color-modern#header,
|
||||
.board-color-modern.sk-spinner div,
|
||||
.board-backgrounds-list .board-color-modern.background-box,
|
||||
@@ -1433,7 +1845,7 @@
|
||||
height: 21px;
|
||||
background: #f7f7f7;
|
||||
}
|
||||
.board-color-modern .board-canvas {
|
||||
.board-color-modern.board-wrapper {
|
||||
background: #f5f5f5;
|
||||
}
|
||||
.board-color-modern .swimlane {
|
||||
@@ -1476,7 +1888,7 @@
|
||||
color: #222;
|
||||
}
|
||||
.board-color-modern .list-header {
|
||||
background: none;
|
||||
background: #f5f5f5f2; /*Added background colour same colour as base board background, prevents poor text visibility when bgd image applied*/
|
||||
}
|
||||
.board-color-modern .list-header .list-header-name {
|
||||
/* font-family: Poppins; */
|
||||
@@ -1569,9 +1981,35 @@
|
||||
.board-color-modern section#notifications-drawer .header .toggle-read {
|
||||
top: 18px;
|
||||
}
|
||||
/*
|
||||
Alternate "Modern Dark" Styling
|
||||
*/
|
||||
|
||||
/* Transparent modern scrollbar - modern*/
|
||||
.board-color-modern .board-canvas {
|
||||
scrollbar-color: #333333f2 #e4e4e400;
|
||||
}
|
||||
|
||||
|
||||
/* Apply scrollbar to sidebar content*/
|
||||
.board-color-modern .sidebar .sidebar-content {
|
||||
scrollbar-color: #333333f2 #e4e4e400;
|
||||
}
|
||||
|
||||
/* Remove margins in between columns/fix spacing */
|
||||
|
||||
.board-color-modern .list {
|
||||
border-left: none;
|
||||
padding-bottom: 8px;
|
||||
}
|
||||
|
||||
.board-color-modern .list-body {
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
/* === END Modern THEME === */
|
||||
|
||||
/* ===============
|
||||
THEME - Modern Dark
|
||||
=================*/
|
||||
|
||||
.board-color-moderndark#header,
|
||||
.board-color-moderndark.sk-spinner div,
|
||||
.board-backgrounds-list .board-color-moderndark.background-box,
|
||||
@@ -1731,7 +2169,7 @@
|
||||
line-height: 0.8em;
|
||||
padding-top: 10px;
|
||||
}
|
||||
.board-color-moderndark .board-canvas {
|
||||
.board-color-moderndark.board-wrapper {
|
||||
background: #2a2a2a;
|
||||
}
|
||||
.board-color-moderndark .swimlane .swimlane-header-wrap {
|
||||
@@ -1790,7 +2228,7 @@
|
||||
}
|
||||
@media screen and (max-width: 800px) {
|
||||
.board-color-moderndark .list-header .list-header-name {
|
||||
line-height: 40px;
|
||||
line-height: unset;
|
||||
padding-top: 10px;
|
||||
}
|
||||
.board-color-moderndark .list-header-black, .board-color-moderndark .mini-list {
|
||||
@@ -2030,6 +2468,38 @@
|
||||
.pop-over.board-color-moderndark .pop-over-list li > a:hover {
|
||||
background-color: rgba(255,255,255,0.2);
|
||||
}
|
||||
|
||||
/* Transparent moderndark scrollbar - moderndark*/
|
||||
.board-color-moderndark .board-canvas {
|
||||
scrollbar-width: thin;
|
||||
scrollbar-color: #343434f2 #999999f2;
|
||||
}
|
||||
|
||||
|
||||
/* Apply scrollbar to sidebar content*/
|
||||
.board-color-moderndark .sidebar .sidebar-content {
|
||||
scrollbar-width: thin;
|
||||
scrollbar-color: #343434f2 #999999f2;
|
||||
}
|
||||
|
||||
/* Remove margins in between columns/fix spacing */
|
||||
|
||||
.board-color-moderndark .list {
|
||||
border-left: none;
|
||||
padding-bottom: 8px;
|
||||
}
|
||||
|
||||
.board-color-moderndark .list-body {
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
/* === END ModernDark THEME === */
|
||||
|
||||
|
||||
/* ===============
|
||||
THEME - Exodark
|
||||
=================*/
|
||||
|
||||
.board-color-exodark#header,
|
||||
.board-color-exodark.sk-spinner div,
|
||||
.board-backgrounds-list .board-color-exodark.background-box,
|
||||
@@ -2110,7 +2580,7 @@
|
||||
color: #fff !important;
|
||||
}
|
||||
*/
|
||||
.board-color-exodark .board-canvas {
|
||||
.board-color-exodark.board-wrapper {
|
||||
background: #222;
|
||||
/* font-family: Poppins; */
|
||||
}
|
||||
@@ -2121,13 +2591,12 @@
|
||||
margin: 10px;
|
||||
color: #fff;
|
||||
border-radius: 15px;
|
||||
background: #222;
|
||||
box-shadow: inset 15px 15px 37px #1c1c1c, inset -15px -15px 37px #282828;
|
||||
background-color: #1c1c1c;
|
||||
border: none;
|
||||
}
|
||||
.board-color-exodark .swimlane .list:first-child {
|
||||
min-width: 20px;
|
||||
margin-left: 0px;
|
||||
margin-left: 10px; /*Added 10px margin to prevent butting up against edge of screen */
|
||||
border-left: none;
|
||||
}
|
||||
.board-color-exodark .swimlane .list:nth-child {
|
||||
@@ -2252,10 +2721,30 @@
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.board-color-cleandark {
|
||||
background: #0A0A14
|
||||
/* Transparent modern scrollbar - Exodark*/
|
||||
.board-color-exodark .list-body {
|
||||
scrollbar-color: #e4e4e4d4 #202020ba;
|
||||
}
|
||||
|
||||
.board-color-exodark .list {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.board-color-exodark .board-canvas {
|
||||
scrollbar-color: #e4e4e4d4 #202020ba;
|
||||
}
|
||||
|
||||
/* Apply scrollbar to sidebar content*/
|
||||
.board-color-exodark .sidebar .sidebar-content {
|
||||
scrollbar-color: #e4e4e4d4 #202020ba;
|
||||
}
|
||||
|
||||
/* === END Exodark THEME === */
|
||||
|
||||
/* ===============
|
||||
THEME - Clean Dark
|
||||
=================*/
|
||||
|
||||
.board-color-cleandark#header ul li,
|
||||
.board-color-cleandark#header-quick-access ul li {
|
||||
color: rgba(255, 255, 255, 50%);
|
||||
@@ -2286,7 +2775,7 @@
|
||||
color: rgba(255, 255, 255, 1);
|
||||
}
|
||||
|
||||
.board-color-cleandark .board-canvas {
|
||||
.board-color-cleandark.board-wrapper {
|
||||
background: #0A0A14;
|
||||
}
|
||||
|
||||
@@ -2677,6 +3166,33 @@
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
/* Transparent modern scrollbar - cleandark*/
|
||||
.board-color-cleandark .board-canvas {
|
||||
scrollbar-color: #23232be6 #e4e4e400;
|
||||
}
|
||||
|
||||
|
||||
/* Apply scrollbar to sidebar content*/
|
||||
.board-color-cleandark .sidebar .sidebar-content {
|
||||
scrollbar-color: #ff6d00 #e4e4e400;
|
||||
}
|
||||
|
||||
/* Remove margins in between columns/fix spacing */
|
||||
|
||||
.board-color-cleandark .list {
|
||||
border-left: none;
|
||||
padding-bottom: 8px;
|
||||
}
|
||||
|
||||
.board-color-cleandark .list-body {
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
/* ===============
|
||||
THEME - Clean Light
|
||||
=================*/
|
||||
/* Please note Clean Light theme elements also contain references to some cleandark theme elements so if unable to find code you're looking for under CleanDark it might be here. This should probably be cleaned up*/
|
||||
|
||||
.board-color-cleanlight {
|
||||
background: #E0E0E0;
|
||||
}
|
||||
@@ -2721,11 +3237,6 @@
|
||||
color: rgba(10, 10, 20, 1) !important;
|
||||
}
|
||||
|
||||
.board-color-cleanlight {
|
||||
background: #FFFFFF !important;
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
.board-color-cleanlight#header ul li.current,
|
||||
.board-color-cleanlight#header-quick-access ul li.current {
|
||||
color: rgba(10, 10, 20, 0.85) !important;
|
||||
@@ -2739,7 +3250,7 @@
|
||||
color: rgba(10, 10, 20, 1);
|
||||
}
|
||||
|
||||
.board-color-cleanlight .board-canvas {
|
||||
.board-color-cleanlight.board-wrapper {
|
||||
background: #FFFFFF;
|
||||
}
|
||||
|
||||
@@ -3690,3 +4201,27 @@
|
||||
.board-color-cleandark .is-selected .minicard, .draggable-hover-card .minicard {
|
||||
background: #23232B;
|
||||
}
|
||||
|
||||
/* Transparent modern scrollbar - cleanlight*/
|
||||
.board-color-cleanlight .board-canvas {
|
||||
scrollbar-color: #0a0a14d1 #e4e4e400;
|
||||
}
|
||||
|
||||
|
||||
/* Apply scrollbar to sidebar content*/
|
||||
.board-color-cleanlight .sidebar .sidebar-content {
|
||||
scrollbar-color: #0a0a14d1 #e4e4e400;
|
||||
}
|
||||
|
||||
/* Remove margins in between columns/fix spacing */
|
||||
|
||||
.board-color-cleanlight .list {
|
||||
border-left: none;
|
||||
padding-bottom: 8px;
|
||||
}
|
||||
|
||||
.board-color-cleanlight .list-body {
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
/* === END CleanDark/Light THEME === */
|
||||
@@ -6,37 +6,6 @@ const DOWNCLS = 'fa-sort-down';
|
||||
const UPCLS = 'fa-sort-up';
|
||||
*/
|
||||
const sortCardsBy = new ReactiveVar('');
|
||||
Template.boardMenuPopup.events({
|
||||
'click .js-rename-board': Popup.open('boardChangeTitle'),
|
||||
'click .js-custom-fields'() {
|
||||
Sidebar.setView('customFields');
|
||||
Popup.back();
|
||||
},
|
||||
'click .js-open-archives'() {
|
||||
Sidebar.setView('archives');
|
||||
Popup.back();
|
||||
},
|
||||
'click .js-change-board-color': Popup.open('boardChangeColor'),
|
||||
'click .js-change-language': Popup.open('changeLanguage'),
|
||||
'click .js-archive-board ': Popup.afterConfirm('archiveBoard', function() {
|
||||
const currentBoard = Utils.getCurrentBoard();
|
||||
currentBoard.archive();
|
||||
// XXX We should have some kind of notification on top of the page to
|
||||
// confirm that the board was successfully archived.
|
||||
FlowRouter.go('home');
|
||||
}),
|
||||
'click .js-delete-board': Popup.afterConfirm('deleteBoard', function() {
|
||||
const currentBoard = Utils.getCurrentBoard();
|
||||
Popup.back();
|
||||
Boards.remove(currentBoard._id);
|
||||
FlowRouter.go('home');
|
||||
}),
|
||||
'click .js-outgoing-webhooks': Popup.open('outgoingWebhooks'),
|
||||
'click .js-import-board': Popup.open('chooseBoardSource'),
|
||||
'click .js-subtask-settings': Popup.open('boardSubtaskSettings'),
|
||||
'click .js-card-settings': Popup.open('boardCardSettings'),
|
||||
'click .js-minicard-settings': Popup.open('boardMinicardSettings'),
|
||||
});
|
||||
|
||||
Template.boardChangeTitlePopup.events({
|
||||
submit(event, templateInstance) {
|
||||
|
||||
@@ -151,8 +151,8 @@ BlazeComponent.extendComponent({
|
||||
}
|
||||
const currUser = ReactiveCache.getCurrentUser();
|
||||
|
||||
let orgIdsUserBelongs = currUser !== undefined && currUser.teams !== 'undefined' ? currUser.orgIdsUserBelongs() : '';
|
||||
if (orgIdsUserBelongs && orgIdsUserBelongs != '') {
|
||||
let orgIdsUserBelongs = currUser?.orgIdsUserBelongs() || '';
|
||||
if (orgIdsUserBelongs) {
|
||||
let orgsIds = orgIdsUserBelongs.split(',');
|
||||
// for(let i = 0; i < orgsIds.length; i++){
|
||||
// query.$and[2].$or.push({'orgs.orgId': orgsIds[i]});
|
||||
@@ -162,8 +162,8 @@ BlazeComponent.extendComponent({
|
||||
query.$and[2].$or.push({ 'orgs.orgId': { $in: orgsIds } });
|
||||
}
|
||||
|
||||
let teamIdsUserBelongs = currUser !== undefined && currUser.teams !== 'undefined' ? currUser.teamIdsUserBelongs() : '';
|
||||
if (teamIdsUserBelongs && teamIdsUserBelongs != '') {
|
||||
let teamIdsUserBelongs = currUser?.teamIdsUserBelongs() || '';
|
||||
if (teamIdsUserBelongs) {
|
||||
let teamsIds = teamIdsUserBelongs.split(',');
|
||||
// for(let i = 0; i < teamsIds.length; i++){
|
||||
// query.$or[2].$or.push({'teams.teamId': teamsIds[i]});
|
||||
@@ -199,15 +199,12 @@ BlazeComponent.extendComponent({
|
||||
},
|
||||
|
||||
boardMembers(boardId) {
|
||||
let boardMembers = [];
|
||||
/* Bug Board icons random dance https://github.com/wekan/wekan/issues/4214
|
||||
const lists = ReactiveCache.getBoard(boardId)
|
||||
let members = lists.members
|
||||
members.forEach(member => {
|
||||
boardMembers.push(member.userId);
|
||||
});
|
||||
*/
|
||||
const boardMembers = lists?.members.map(member => member.userId);
|
||||
return boardMembers;
|
||||
*/
|
||||
return [];
|
||||
},
|
||||
|
||||
isStarred() {
|
||||
|
||||
@@ -117,8 +117,6 @@ template(name="attachmentActionsPopup")
|
||||
| {{_ 'remove-background-image'}}
|
||||
else
|
||||
| {{_ 'add-background-image'}}
|
||||
p.attachment-storage
|
||||
| {{versions.original.storage}}
|
||||
|
||||
if $neq versions.original.storage "fs"
|
||||
a.js-move-storage-fs
|
||||
|
||||
@@ -39,7 +39,7 @@ Template.attachmentGallery.events({
|
||||
'click .js-rename': Popup.open('attachmentRename'),
|
||||
'click .js-confirm-delete': Popup.afterConfirm('attachmentDelete', function() {
|
||||
Attachments.remove(this._id);
|
||||
Popup.back(2);
|
||||
Popup.back();
|
||||
}),
|
||||
});
|
||||
|
||||
@@ -501,7 +501,7 @@ BlazeComponent.extendComponent({
|
||||
if (name === DOMPurify.sanitize(name)) {
|
||||
Meteor.call('renameAttachment', this.data()._id, name);
|
||||
}
|
||||
Popup.back(2);
|
||||
Popup.back();
|
||||
},
|
||||
}
|
||||
]
|
||||
|
||||
@@ -5,7 +5,7 @@ template(name="cardDetails")
|
||||
|
||||
+attachmentViewer
|
||||
|
||||
section.card-details.js-card-details(class='{{#if cardMaximized}}card-details-maximized{{/if}}' class='{{#if isPopup}}card-details-popup{{/if}}'): .card-details-canvas
|
||||
section.card-details.js-card-details.nodragscroll(class='{{#if cardMaximized}}card-details-maximized{{/if}}' class='{{#if isPopup}}card-details-popup{{/if}}'): .card-details-canvas
|
||||
.card-details-header(class='{{#if colorClass}}card-details-{{colorClass}}{{/if}}')
|
||||
+inlinedForm(classNames="js-card-details-title")
|
||||
+editCardTitleForm
|
||||
@@ -527,9 +527,10 @@ template(name="cardDetails")
|
||||
if currentBoard.allowsDescriptionText
|
||||
a.js-open-inlined-form(title="{{_ 'edit'}}" value=title)
|
||||
i.fa.fa-pencil-square-o
|
||||
if getDescription
|
||||
+viewer
|
||||
= getDescription
|
||||
a.js-open-inlined-form(title="{{_ 'edit'}}" value=title)
|
||||
if getDescription
|
||||
+viewer
|
||||
= getDescription
|
||||
if (hasUnsavedValue 'cardDescription' _id)
|
||||
p.quiet
|
||||
| {{_ 'unsaved-description'}}
|
||||
|
||||
@@ -846,13 +846,15 @@ BlazeComponent.extendComponent({
|
||||
'click .js-palette-color'() {
|
||||
this.currentColor.set(this.currentData().color);
|
||||
},
|
||||
'click .js-submit'() {
|
||||
'click .js-submit'(event) {
|
||||
event.preventDefault();
|
||||
this.currentCard.setColor(this.currentColor.get());
|
||||
Popup.close();
|
||||
Popup.back();
|
||||
},
|
||||
'click .js-remove-color'() {
|
||||
'click .js-remove-color'(event) {
|
||||
event.preventDefault();
|
||||
this.currentCard.setColor(null);
|
||||
Popup.close();
|
||||
Popup.back();
|
||||
},
|
||||
},
|
||||
];
|
||||
|
||||
@@ -22,7 +22,7 @@ template(name="checklists")
|
||||
i.fa.fa-plus
|
||||
|
||||
template(name="checklistDetail")
|
||||
.js-checklist.checklist
|
||||
.js-checklist.checklist.nodragscroll
|
||||
+inlinedForm(classNames="js-edit-checklist-title" checklist = checklist)
|
||||
+editChecklistItemForm(checklist = checklist)
|
||||
else
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
template(name="minicard")
|
||||
.minicard(
|
||||
.minicard.nodragscroll(
|
||||
class="{{#if isLinkedCard}}linked-card{{/if}}"
|
||||
class="{{#if isLinkedBoard}}linked-board{{/if}}"
|
||||
class="{{#if colorClass}}minicard-{{colorClass}}{{/if}}")
|
||||
|
||||
@@ -42,11 +42,7 @@ BlazeComponent.extendComponent({
|
||||
const board = this.data().board();
|
||||
let ret = false;
|
||||
if (board) {
|
||||
ret =
|
||||
board.allowsCreatorOnMinicard === null ||
|
||||
board.allowsCreatorOnMinicard === undefined ||
|
||||
board.allowsCreatorOnMinicard
|
||||
;
|
||||
ret = board.allowsCreatorOnMinicard ?? false;
|
||||
}
|
||||
return ret;
|
||||
},
|
||||
|
||||
@@ -7,17 +7,11 @@
|
||||
border-left: 1px solid #ccc;
|
||||
padding: 0;
|
||||
float: left;
|
||||
/* min-width: 100px; TODO(mark-i-m): hardcoded? */
|
||||
/*max-width: 270px;*/
|
||||
/* Reverted incomplete change list width: */
|
||||
/* https://github.com/wekan/wekan/issues/4558 */
|
||||
/* Orinal width: 270px. Changes not saved yet: */
|
||||
/*resize: both; - List width and height resizeable */
|
||||
/* overflow: auto; - List width and height resizeable */
|
||||
}
|
||||
[id^="swimlane-"] .list:first-child {
|
||||
min-width: 20px;
|
||||
}
|
||||
.list:first-child {
|
||||
min-width: 20px;
|
||||
margin-left: 5px;
|
||||
border-left: none;
|
||||
}
|
||||
.card-details + .list {
|
||||
@@ -48,7 +42,7 @@
|
||||
}
|
||||
.list-header-add {
|
||||
flex: 0 0 auto;
|
||||
padding: 20px 12px 4px;
|
||||
padding: 12px;
|
||||
position: relative;
|
||||
min-height: 20px;
|
||||
}
|
||||
@@ -251,11 +245,11 @@
|
||||
padding: 15px 19px;
|
||||
}
|
||||
.list-header {
|
||||
padding: 0 12px 0px;
|
||||
/*Updated padding values for mobile devices, this should fix text grouping issue*/
|
||||
padding: 20px 0px 20px 0px;
|
||||
border-bottom: 0px solid #e4e4e4;
|
||||
height: 60px;
|
||||
min-height: 30px;
|
||||
margin-top: 10px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
.list-header .list-header-left-icon {
|
||||
|
||||
@@ -196,7 +196,7 @@ BlazeComponent.extendComponent({
|
||||
},
|
||||
|
||||
listWidth() {
|
||||
const user = Meteor.user();
|
||||
const user = ReactiveCache.getCurrentUser();
|
||||
const list = Template.currentData();
|
||||
return user.getListWidth(list.boardId, list._id);
|
||||
},
|
||||
|
||||
@@ -1,20 +1,18 @@
|
||||
template(name="listHeader")
|
||||
.list-header.js-list-header(
|
||||
.list-header.js-list-header.nodragscroll(
|
||||
class="{{#if limitToShowCardsCount}}list-header-card-count{{/if}}"
|
||||
class=colorClass)
|
||||
+inlinedForm
|
||||
+editListTitleForm
|
||||
else
|
||||
unless isMiniScreen
|
||||
if isMiniScreen
|
||||
if currentList
|
||||
a.list-header-left-icon.fa.fa-angle-left.js-unselect-list
|
||||
else
|
||||
if collapsed
|
||||
a.js-collapse(title="{{_ 'uncollapse'}}")
|
||||
i.fa.fa-arrow-left.list-header-uncollapse-left
|
||||
i.fa.fa-arrow-right.list-header-uncollapse-right
|
||||
if isMiniScreen
|
||||
if currentList
|
||||
a.list-header-left-icon.fa.fa-angle-left.js-unselect-list
|
||||
unless isMiniScreen
|
||||
if collapsed
|
||||
if showCardsCountForList cards.length
|
||||
br
|
||||
span.cardCount {{cardsCount}}
|
||||
@@ -28,7 +26,9 @@ template(name="listHeader")
|
||||
| (
|
||||
span(class="{{#if exceededWipLimit}}highlight{{/if}}") {{cards.length}}
|
||||
|/#{wipLimit.value})
|
||||
unless isMiniScreen
|
||||
if showCardsCountForList cards.length
|
||||
span.cardCount {{cardsCount}} {{cardsCountForListIsOne cards.length}}
|
||||
else
|
||||
div(class="{{#if collapsed}}list-rotated{{/if}}")
|
||||
h2.list-header-name(
|
||||
title="{{ moment modifiedAt 'LLL' }}"
|
||||
|
||||
@@ -362,7 +362,7 @@ BlazeComponent.extendComponent({
|
||||
listWidthValue() {
|
||||
const list = Template.currentData();
|
||||
const board = list.boardId;
|
||||
return Meteor.user().getListWidth(board, list._id);
|
||||
return ReactiveCache.getCurrentUser().getListWidth(board, list._id);
|
||||
},
|
||||
|
||||
events() {
|
||||
|
||||
@@ -2,15 +2,15 @@
|
||||
.inlined-form a.fa.fa-brands.fa-markdown {
|
||||
float: right;
|
||||
position: absolute;
|
||||
top: -20px;
|
||||
top: -10px;
|
||||
right: 60px;
|
||||
}
|
||||
.new-comment a.fa.fa-copy,
|
||||
.inlined-form a.fa.fa-copy {
|
||||
float: right;
|
||||
position: absolute;
|
||||
top: -20px;
|
||||
right: 6px;
|
||||
position: relative;
|
||||
top: -10px;
|
||||
right: 5px;
|
||||
}
|
||||
.js-inlined-form.viewer.btn-sm {
|
||||
position: absolute;
|
||||
|
||||
@@ -500,9 +500,9 @@ template(name="modifyTeamsUsers")
|
||||
| {{_ 'r-action'}}
|
||||
.form-group.flex
|
||||
input.wekan-form-control#addAction(type="radio" name="action" value="true" checked="checked")
|
||||
span {{_ 'add'}}
|
||||
label(for=addAction) {{_ 'add'}}
|
||||
input.wekan-form-control#deleteAction(type="radio" name="action" value="false")
|
||||
span {{_ 'delete'}}
|
||||
label(for=deleteAction) {{_ 'delete'}}
|
||||
div.buttonsContainer
|
||||
input.primary.wide#addTeamBtn(type="submit" value="{{_ 'save'}}")
|
||||
input.primary.wide#cancelBtn(type="submit" value="{{_ 'cancel'}}")
|
||||
|
||||
@@ -137,9 +137,9 @@ template(name='tableVisibilityModeSettings')
|
||||
.title {{_ 'tableVisibilityMode-allowPrivateOnly'}}
|
||||
.form-group.flex
|
||||
input.wekan-form-control#accounts-allowPrivateOnly(type="radio" name="allowPrivateOnly" value="true" checked="{{#if allowPrivateOnly}}checked{{/if}}")
|
||||
span {{_ 'yes'}}
|
||||
label {{_ 'yes'}}
|
||||
input.wekan-form-control#accounts-allowPrivateOnly(type="radio" name="allowPrivateOnly" value="false" checked="{{#unless allowPrivateOnly}}checked{{/unless}}")
|
||||
span {{_ 'no'}}
|
||||
label {{_ 'no'}}
|
||||
button.js-tableVisibilityMode-save.primary {{_ 'save'}}
|
||||
|
||||
template(name='accountSettings')
|
||||
@@ -150,21 +150,21 @@ template(name='accountSettings')
|
||||
.title {{_ 'accounts-allowEmailChange'}}
|
||||
.form-group.flex
|
||||
input.wekan-form-control#accounts-allowEmailChange(type="radio" name="allowEmailChange" value="true" checked="{{#if allowEmailChange}}checked{{/if}}")
|
||||
span {{_ 'yes'}}
|
||||
label {{_ 'yes'}}
|
||||
input.wekan-form-control#accounts-allowEmailChange(type="radio" name="allowEmailChange" value="false" checked="{{#unless allowEmailChange}}checked{{/unless}}")
|
||||
span {{_ 'no'}}
|
||||
label {{_ 'no'}}
|
||||
.title {{_ 'accounts-allowUserNameChange'}}
|
||||
.form-group.flex
|
||||
input.wekan-form-control#accounts-allowUserNameChange(type="radio" name="allowUserNameChange" value="true" checked="{{#if allowUserNameChange}}checked{{/if}}")
|
||||
span {{_ 'yes'}}
|
||||
label {{_ 'yes'}}
|
||||
input.wekan-form-control#accounts-allowUserNameChange(type="radio" name="allowUserNameChange" value="false" checked="{{#unless allowUserNameChange}}checked{{/unless}}")
|
||||
span {{_ 'no'}}
|
||||
label {{_ 'no'}}
|
||||
.title {{_ 'accounts-allowUserDelete'}}
|
||||
.form-group.flex
|
||||
input.wekan-form-control#accounts-allowUserDelete(type="radio" name="allowUserDelete" value="true" checked="{{#if allowUserDelete}}checked{{/if}}")
|
||||
span {{_ 'yes'}}
|
||||
label {{_ 'yes'}}
|
||||
input.wekan-form-control#accounts-allowUserDelete(type="radio" name="allowUserDelete" value="false" checked="{{#unless allowUserDelete}}checked{{/unless}}")
|
||||
span {{_ 'no'}}
|
||||
label {{_ 'no'}}
|
||||
button.js-accounts-save.primary {{_ 'save'}}
|
||||
|
||||
template(name='announcementSettings')
|
||||
@@ -201,9 +201,9 @@ template(name='layoutSettings')
|
||||
.title {{_ 'display-authentication-method'}}
|
||||
.form-group.flex
|
||||
input.wekan-form-control#display-authentication-method(type="radio" name="displayAuthenticationMethod" value="true" checked="{{#if currentSetting.displayAuthenticationMethod}}checked{{/if}}")
|
||||
span {{_ 'yes'}}
|
||||
label {{_ 'yes'}}
|
||||
input.wekan-form-control#display-authentication-method(type="radio" name="displayAuthenticationMethod" value="false" checked="{{#unless currentSetting.displayAuthenticationMethod}}checked{{/unless}}")
|
||||
span {{_ 'no'}}
|
||||
label {{_ 'no'}}
|
||||
li.layout-form
|
||||
.title {{_ 'default-authentication-method'}}
|
||||
+selectAuthenticationMethod(authenticationMethod=currentSetting.defaultAuthenticationMethod)
|
||||
@@ -218,9 +218,9 @@ template(name='layoutSettings')
|
||||
.title {{_ 'hide-logo'}}
|
||||
.form-group.flex
|
||||
input.wekan-form-control#hide-logo(type="radio" name="hideLogo" value="true" checked="{{#if currentSetting.hideLogo}}checked{{/if}}")
|
||||
span {{_ 'yes'}}
|
||||
label {{_ 'yes'}}
|
||||
input.wekan-form-control#hide-logo(type="radio" name="hideLogo" value="false" checked="{{#unless currentSetting.hideLogo}}checked{{/unless}}")
|
||||
span {{_ 'no'}}
|
||||
label {{_ 'no'}}
|
||||
li.layout-form
|
||||
.title {{_ 'custom-login-logo-image-url'}}
|
||||
.form-group
|
||||
@@ -257,16 +257,16 @@ template(name='layoutSettings')
|
||||
.title {{_ 'hide-card-counter-list'}}
|
||||
.form-group.flex
|
||||
input.wekan-form-control#hide-card-counter-list(type="radio" name="hideCardCounterList" value="true" checked="{{#if currentSetting.hideCardCounterList}}checked{{/if}}")
|
||||
span {{_ 'yes'}}
|
||||
label {{_ 'yes'}}
|
||||
input.wekan-form-control#hide-card-counter-list(type="radio" name="hideCardCounterList" value="false" checked="{{#unless currentSetting.hideCardCounterList}}checked{{/unless}}")
|
||||
span {{_ 'no'}}
|
||||
label {{_ 'no'}}
|
||||
li.layout-form
|
||||
.title {{_ 'hide-board-member-list'}}
|
||||
.form-group.flex
|
||||
input.wekan-form-control#hide-board-member-list(type="radio" name="hideBoardMemberList" value="true" checked="{{#if currentSetting.hideBoardMemberList}}checked{{/if}}")
|
||||
span {{_ 'yes'}}
|
||||
label {{_ 'yes'}}
|
||||
input.wekan-form-control#hide-board-member-list(type="radio" name="hideBoardMemberList" value="false" checked="{{#unless currentSetting.hideBoardMemberList}}checked{{/unless}}")
|
||||
span {{_ 'no'}}
|
||||
label {{_ 'no'}}
|
||||
li
|
||||
button.js-save-layout.primary {{_ 'save'}}
|
||||
|
||||
|
||||
@@ -16,9 +16,13 @@
|
||||
}
|
||||
.sidebar-xmark {
|
||||
position: absolute;
|
||||
right: 10px;
|
||||
top: 5px;
|
||||
right: 0px;
|
||||
top: 0px;
|
||||
font-size: 25px;
|
||||
padding: 10px;
|
||||
}
|
||||
.sidebar-xmark:hover {
|
||||
background: rgba(0,0,0,0.15);
|
||||
}
|
||||
.sidebar .sidebar-content {
|
||||
padding: 12px;
|
||||
|
||||
@@ -913,19 +913,11 @@ BlazeComponent.extendComponent({
|
||||
},
|
||||
|
||||
allowsCreator() {
|
||||
return (
|
||||
this.currentBoard.allowsCreator === null ||
|
||||
this.currentBoard.allowsCreator === undefined ||
|
||||
this.currentBoard.allowsCreator
|
||||
);
|
||||
return this.currentBoard.allowsCreator ?? false;
|
||||
},
|
||||
|
||||
allowsCreatorOnMinicard() {
|
||||
return (
|
||||
this.currentBoard.allowsCreatorOnMinicard === null ||
|
||||
this.currentBoard.allowsCreatorOnMinicard === undefined ||
|
||||
this.currentBoard.allowsCreatorOnMinicard
|
||||
);
|
||||
return this.currentBoard.allowsCreatorOnMinicard ?? false;
|
||||
},
|
||||
|
||||
allowsMembers() {
|
||||
|
||||
@@ -224,7 +224,7 @@ BlazeComponent.extendComponent({
|
||||
swimlaneHeightValue() {
|
||||
const swimlane = this.currentData();
|
||||
const board = swimlane.boardId;
|
||||
return Meteor.user().getSwimlaneHeight(board, swimlane._id);
|
||||
return ReactiveCache.getCurrentUser().getSwimlaneHeight(board, swimlane._id);
|
||||
},
|
||||
|
||||
events() {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
template(name="swimlane")
|
||||
.swimlane
|
||||
.swimlane.nodragscroll
|
||||
+swimlaneHeader
|
||||
unless collapseSwimlane
|
||||
.swimlane.js-lists.js-swimlane(id="swimlane-{{_id}}"
|
||||
|
||||
@@ -225,7 +225,7 @@ BlazeComponent.extendComponent({
|
||||
},
|
||||
|
||||
swimlaneHeight() {
|
||||
const user = Meteor.user();
|
||||
const user = ReactiveCache.getCurrentUser();
|
||||
const swimlane = Template.currentData();
|
||||
const height = user.getSwimlaneHeight(swimlane.boardId, swimlane._id);
|
||||
return height == -1 ? "auto" : (height + "px");
|
||||
@@ -288,7 +288,7 @@ BlazeComponent.extendComponent({
|
||||
|
||||
Template.swimlane.helpers({
|
||||
canSeeAddList() {
|
||||
return Meteor.user().isBoardAdmin();
|
||||
return ReactiveCache.getCurrentUser().isBoardAdmin();
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
@@ -325,7 +325,7 @@ Template.changeSettingsPopup.helpers({
|
||||
});
|
||||
},
|
||||
startDayOfWeek() {
|
||||
currentUser = Meteor.user();
|
||||
currentUser = ReactiveCache.getCurrentUser();
|
||||
if (currentUser) {
|
||||
return currentUser.getStartDayOfWeek();
|
||||
} else {
|
||||
@@ -343,7 +343,7 @@ Template.changeSettingsPopup.events({
|
||||
return ret;
|
||||
},
|
||||
'click .js-toggle-desktop-drag-handles'() {
|
||||
currentUser = Meteor.user();
|
||||
const currentUser = ReactiveCache.getCurrentUser();
|
||||
if (currentUser) {
|
||||
Meteor.call('toggleDesktopDragHandles');
|
||||
} else if (window.localStorage.getItem('showDesktopDragHandles')) {
|
||||
@@ -375,7 +375,7 @@ Template.changeSettingsPopup.events({
|
||||
templateInstance.$('#start-day-of-week').val(),
|
||||
10,
|
||||
);
|
||||
const currentUser = Meteor.user();
|
||||
const currentUser = ReactiveCache.getCurrentUser();
|
||||
if (isNaN(minLimit) || minLimit < -1) {
|
||||
minLimit = -1;
|
||||
}
|
||||
|
||||
+4
-3
@@ -4,10 +4,11 @@ Utils = {
|
||||
setBackgroundImage(url) {
|
||||
const currentBoard = Utils.getCurrentBoard();
|
||||
if (currentBoard.backgroundImageURL !== undefined) {
|
||||
$(".board-wrapper,.board-wrapper .board-canvas").css({"background":"url(" + currentBoard.backgroundImageURL + ")","background-size":"cover"});
|
||||
$(".board-wrapper").css({"background":"url(" + currentBoard.backgroundImageURL + ")","background-size":"cover"});
|
||||
$(".swimlane,.swimlane .list,.swimlane .list .list-body,.swimlane .list:first-child .list-body").css({"background-color":"transparent"});
|
||||
} else if (currentBoard.color !== undefined) {
|
||||
currentBoard.setColor(currentBoard.color);
|
||||
$(".minicard").css({"opacity": "0.9"});
|
||||
} else if (currentBoard["background-color"]) {
|
||||
currentBoard.setColor(currentBoard["background-color"]);
|
||||
}
|
||||
},
|
||||
/** returns the current board id
|
||||
|
||||
+8
-8
@@ -10,13 +10,13 @@
|
||||
# NOTE: MongoDB has changed from 3.x to 4.x, in that case you need backup/restore with --noIndexRestore
|
||||
# see https://github.com/wekan/wekan/wiki/Backup
|
||||
# 1) Stop Wekan:
|
||||
# docker-compose stop
|
||||
# docker compose stop
|
||||
# 2) Remove old Wekan app (wekan-app only, not that wekan-db container that has all your data)
|
||||
# docker rm wekan-app
|
||||
# 3) Get newest docker-compose.yml from https://github.com/wekan/wekan to have correct image,
|
||||
# for example: "image: quay.io/wekan/wekan" or version tag "image: quay.io/wekan/wekan:v4.52"
|
||||
# 4) Start Wekan:
|
||||
# docker-compose up -d
|
||||
# docker compose up -d
|
||||
#----------------------------------------------------------------------------------
|
||||
# ==== OPTIONAL: DEDICATED DOCKER USER ====
|
||||
# 1) Optionally create a dedicated user for Wekan, for example:
|
||||
@@ -36,14 +36,14 @@
|
||||
# ----------------------------------------------------------------------------------
|
||||
# ==== USAGE OF THIS docker-compose.yml ====
|
||||
# 1) For seeing does Wekan work, try this and check with your web browser:
|
||||
# docker-compose up
|
||||
# docker compose up
|
||||
# 2) Stop Wekan and start Wekan in background:
|
||||
# docker-compose stop
|
||||
# docker-compose up -d
|
||||
# docker compose stop
|
||||
# docker compose up -d
|
||||
# 3) See running Docker containers:
|
||||
# docker ps
|
||||
# 4) Stop Docker containers:
|
||||
# docker-compose stop
|
||||
# docker compose stop
|
||||
# ----------------------------------------------------------------------------------
|
||||
# ===== INSIDE DOCKER CONTAINERS, AND BACKUP/RESTORE ====
|
||||
# https://github.com/wekan/wekan/wiki/Backup
|
||||
@@ -140,7 +140,7 @@ services:
|
||||
- wekan-tier
|
||||
#-------------------------------------------------------------------------------------
|
||||
# ==== BUILD wekan-app DOCKER CONTAINER FROM SOURCE, if you uncomment these ====
|
||||
# ==== and use commands: docker-compose up -d --build
|
||||
# ==== and use commands: docker compose up -d --build
|
||||
#build:
|
||||
# context: .
|
||||
# dockerfile: Dockerfile
|
||||
@@ -585,7 +585,7 @@ services:
|
||||
# If using LDAPS: LDAP_ENCRYPTION=ssl
|
||||
#- LDAP_ENCRYPTION=false
|
||||
#
|
||||
# The certification for the LDAPS server. Certificate needs to be included in this docker-compose.yml file.
|
||||
# The certification for the LDAPS server. Certificate needs to be included in this docker compose.yml file.
|
||||
#- LDAP_CA_CERT=-----BEGIN CERTIFICATE-----MIIE+G2FIdAgIC...-----END CERTIFICATE-----
|
||||
#
|
||||
# Reject Unauthorized Certificate
|
||||
|
||||
@@ -18,14 +18,15 @@ Any telemetry at any Firefox based browser can be additionally most locked down
|
||||
Browser | [PWA](PWA) | Mobile | Desktop | OS
|
||||
------- | ----| ------ | ------- | -------
|
||||
[Mypal](https://releases.wekan.team/mypal/) | No | No | Newest | For 32bit ReactOS/WinXP/Win7/etc [issue](https://github.com/wekan/wekan/issues/3132), Other 32bit browsers probably not
|
||||
Firefox | Android Yes | Android Newest | Newest | Win/Mac/Linux/RasPi
|
||||
Morph Browser | No | Yes | Yes | [Ubuntu Touch](https://ubports.com) (based on Ubuntu 16.04) on PinePhone, OnePlus 3, [RasPi3](https://ci.ubports.com/job/rootfs/job/rootfs-rpi/) (not RasPi4 yet). Works best with bluetooth or USB mouse and keyboard.
|
||||
Firefox | Android Yes | Android Newest | Newest | Win/Mac/Linux/BSD/RasPi. [Haiku](https://discuss.haiku-os.org/t/progress-on-porting-firefox/13493/143) not tested yet - [HN](https://news.ycombinator.com/item?id=41214762).
|
||||
Morph Browser | No | Yes | Yes | [Ubuntu Touch](https://ubports.com) (based on Ubuntu 16.04) on PinePhone, OnePlus 3, [RasPi3](https://ci.ubports.com/job/rootfs/job/rootfs-rpi/) (not RasPi4 yet). Works best with bluetooth or USB mouse and keyboard. [Repo](https://gitlab.com/ubports/development/core/morph-browser)
|
||||
[OpenStore App](https://open-store.io/app/wekan.wekanteam) | Yes | Yes | Yes | Based on [Wekan PWA](https://boards.wekan.team/b/D2SzJKZDS4Z48yeQH/wekan-open-source-kanban-board-with-mit-license/s7SkzYviC2e963FkT), [Ubuntu Touch](https://ubports.com) app at [OpenStore](https://open-store.io/app/wekan.wekanteam) using Morph browser with Wekan demo & development server https://boards.wekan.team . Tested on [RasPi3](https://ci.ubports.com/job/rootfs/job/rootfs-rpi/). PWA URL is configured here https://github.com/wekan/wekan-openstore/blob/master/wekan.desktop#L3
|
||||
[Waterfox](https://www.waterfox.net) | No | No | Yes | Win/Mac/Linux, more private than Firefox, no tracking
|
||||
[Waterfox](https://www.waterfox.net) | No | No | Yes | Win/Mac/Linux, more private than Firefox, no tracking. [Repo](https://github.com/BrowserWorks/Waterfox)
|
||||
[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/)
|
||||
[LibreWolf](https://librewolf.net) | No | No | Yes | [Win/Mac/Linux](https://librewolf.net/installation/), [Repos](https://codeberg.org/librewolf)
|
||||
[Zen Browser](https://www.zen-browser.app/) | No | No | Yes | [Win/Mac/Linux](https://www.zen-browser.app/download), [Repos](https://github.com/zen-browser), [Review at YouTube](https://www.youtube.com/watch?v=tKM2N4TQHQY)
|
||||
|
||||
## Chromium based
|
||||
|
||||
@@ -54,6 +55,17 @@ Browser | [PWA](PWA) | Mobile | Desktop | OS
|
||||
------- | ----| ------ | ------- | -------
|
||||
Internet Explorer | No | No | No | No | No
|
||||
|
||||
## Servo based, not tested yet
|
||||
|
||||
- Apache 2.0 or MIT license
|
||||
- Repo: https://github.com/versotile-org/verso
|
||||
|
||||
## Ladybird based, not tested yet:
|
||||
|
||||
- BSD-2-Clause license
|
||||
- Website: https://ladybird.org
|
||||
- Repo: https://github.com/LadybirdBrowser/ladybird
|
||||
|
||||
## Other ways to create Mobile App with Meteor
|
||||
|
||||
https://guide.meteor.com/cordova
|
||||
@@ -70,4 +82,4 @@ https://forums.meteor.com/t/desktop-electron-meteor-app-with-todesktop/60904
|
||||
|
||||
- If there is sometime a need to develop payment feature, that does not exist yet
|
||||
- https://forums.meteor.com/t/need-help-adding-in-app-purchases-to-a-meteor-app-specifically-adding-subscription-support-for-android-play-store/40510
|
||||
- https://www.npmjs.com/package/cordova-plugin-purchase
|
||||
- https://www.npmjs.com/package/cordova-plugin-purchase
|
||||
@@ -1,18 +1,71 @@
|
||||
## Upgrading Meteor
|
||||
## Videos about upgrading to Meteor 3
|
||||
|
||||
- Disclaimer:
|
||||
- These are opinions about upgrading, from xet7, maintainer of WeKan Open Source kanban https://wekan.github.io
|
||||
- xet7 thinks, that it is good to keep using current frontend and backend frameworks, upgrade them when possible. If there is any problems, ask at https://forums.meteor.com
|
||||
- xet7 thinks, that upgrading to newest Meteor 2 and Meteor 3 is being made more easier all the time, when new dependencies become available, any bugs are fixed, etc. So it is good to make all possible upgrading steps available.
|
||||
- Upgrade to newest 2.14 https://guide.meteor.com/2.14-migration . Currently xet7 is using newest 2.14.1-beta.0 in production release of WeKan https://forums.meteor.com/t/meteor-v2-14-1-beta-0-is-out/61142
|
||||
- Prepare for 3.0 https://guide.meteor.com/3.0-migration
|
||||
- Migrate Async
|
||||
- Helper tool https://forums.meteor.com/t/blaze-async-migration-helper-babel-plugin-tracker-async-enhance-for-the-client-side-released/60842
|
||||
- https://guide.meteor.com/prepare-meteor-3.0
|
||||
- Look at progress of migrated packages https://forums.meteor.com/t/looking-for-help-migrating-packages-to-meteor-3-0/60985
|
||||
- Storyteller
|
||||
- 2024-07-15: WeKan Upgrades https://www.youtube.com/watch?v=Zjb3m9JsAD0
|
||||
- 2024-07-08: Upgrading Meteor examples https://www.youtube.com/watch?v=jzWXxOe93t4
|
||||
- Upcoming and past: https://www.youtube.com/@storytellercz/streams
|
||||
- React.js
|
||||
- WeKan uses Blaze and Jade, not React.
|
||||
- 2024-08-02:
|
||||
- https://www.youtube.com/watch?v=NnT7AbVMnj4
|
||||
- https://thenewstack.io/after-a-decade-of-react-is-frontend-a-post-react-world-now/
|
||||
- https://thenewstack.io/pivoting-from-react-to-native-dom-apis-a-real-world-example/
|
||||
- https://thenewstack.io/how-web-components-are-used-at-github-and-salesforce/
|
||||
- https://devclass.com/2024/07/22/react-community-splitting-into-full-stack-and-client-only-camps-suggests-survey/
|
||||
- https://news.ycombinator.com/item?id=41068685
|
||||
- 2024-07-10: Storyteller at React Wroclaw Meetup, talking about Meteor.js and React: https://www.youtube.com/watch?v=4dnM6bXZCz4&t=741s
|
||||
- How A Small Team of Developers Created React at Facebook | React.js: The Documentary https://www.youtube.com/watch?v=8pDqJVdNa44
|
||||
https://www.youtube.com/watch?v=8pDqJVdNa44
|
||||
- Meteor Dispatches Podcast
|
||||
- 46: 2024-07-12: Packages you need in every app https://www.youtube.com/watch?v=S2YkZfKN0DI
|
||||
- 25: 2024-02-09: WeKan Security https://www.youtube.com/watch?v=zic-h8jG6F8
|
||||
- 16: 2023-12-08: WeKan interview https://www.youtube.com/watch?v=ke-mbnZM3zE
|
||||
- Upcoming and past: https://www.youtube.com/@meteorjscommunity/streams
|
||||
- Playlists: https://www.youtube.com/@meteorjscommunity/playlists
|
||||
- Some recent also had info, how to make dependencies compatible with both Meteor 2 and Meteor 3
|
||||
- Add Eslint 3 and fix anything found
|
||||
- https://youtu.be/rFjNNNc_7-E
|
||||
- https://www.youtube.com/watch?v=rFjNNNc_7-E
|
||||
- https://github.com/quavedev/eslint-plugin
|
||||
- https://github.com/quavedev/meteor-template/pull/8
|
||||
- Watch Meteor Dispatches etc Podcasts https://www.youtube.com/@meteorjscommunity/playlists
|
||||
- Some recent also had info, how to make dependencies compatible with both Meteor 2 and Meteor 3
|
||||
|
||||
## Upgrading to Meteor 3
|
||||
|
||||
- Meteor 3 migration guide: https://v3-migration-docs.meteor.com ( older pages at https://guide.meteor.com/3.0-migration or https://guide.meteor.com/prepare-meteor-3.0 )
|
||||
- Look at progress of migrated packages https://forums.meteor.com/t/looking-for-help-migrating-packages-to-meteor-3-0/60985
|
||||
- Migrate from Fibers (works only at Meteor 2 and Node.js 14) to Async/Await (works with Meteor 3 and Node.js 20)
|
||||
- Helper tool https://forums.meteor.com/t/blaze-async-migration-helper-babel-plugin-tracker-async-enhance-for-the-client-side-released/60842
|
||||
- Info how Async/Await works, from Storyteller: https://github.com/wekan/wekan/wiki/AsyncAwait
|
||||
- Forums posts about migrating: https://forums.meteor.com
|
||||
- ( Older version upgrade to newest 2.14 https://guide.meteor.com/2.14-migration )
|
||||
|
||||
## Removing unused files
|
||||
|
||||
From Meteor Discord chat from someone:
|
||||
|
||||
> Nice tool that I found out about today. I was able to remove 58 unused files, functions, exports, types and dependencies 😄
|
||||
>
|
||||
> https://knip.dev
|
||||
|
||||
## Lint
|
||||
|
||||
From Meteor Discord chat from someone:
|
||||
|
||||
> We started using https://biomejs.dev to replace eslint and prettier on Galaxy 2, and it's been amazing. It's speedy, easy to configure, and has fewer packages to care about.
|
||||
>
|
||||
> Just sharing it here in case someone has never heard about it before
|
||||
|
||||
|
||||
## Building WeKan
|
||||
|
||||
- https://github.com/wekan/wekan/wiki/Emoji
|
||||
- Docs: https://github.com/wekan/wekan/tree/main/docs
|
||||
|
||||
## Similar technology
|
||||
|
||||
- https://en.wikipedia.org/wiki/JavaScript_engine
|
||||
- https://en.wikipedia.org/wiki/Single-page_application
|
||||
- https://en.wikipedia.org/wiki/Web_framework
|
||||
- https://en.wikipedia.org/wiki/Progressive_web_app
|
||||
- https://en.wikipedia.org/wiki/Web_2.0
|
||||
- https://en.wikipedia.org/wiki/Meteor_(web_framework)
|
||||
- https://en.wikipedia.org/wiki/Next.js
|
||||
@@ -1,5 +1,5 @@
|
||||
Some Python etc code in WeKan, that is not yet added directly to WeKan:
|
||||
- [LDAP sync script, that also correctly removes users](https://github.com/wekan/wekan/blob/main/ldap-sync/ldap-sync.py)
|
||||
- [LDAP sync script, that also correctly removes users](https://github.com/wekan/wekan/blob/main/docs/Login/ldap-sync/ldap-sync.py)
|
||||
- [Email notifications to AWS SES](https://github.com/wekan/wekan/issues/3543#issuecomment-1199897164)
|
||||
- [Prometheus Exporter](https://github.com/wekan/wekan-prometheus-exporter)
|
||||
- [Burndown Chart](Burndown-and-Velocity-Chart)
|
||||
@@ -12,4 +12,4 @@ Some Python etc code in WeKan, that is not yet added directly to WeKan:
|
||||
- [Logstash and ElasticSearch](https://github.com/wekan/wekan-logstash)
|
||||
- iCal server in [Python](https://github.com/wekan/wekan-ical-server) and [PHP](https://github.com/wekan/wekan-ical-php)
|
||||
- [Sandstorm CSV related Python code](Wekan-Sandstorm-cards-to-CSV-using-Python)
|
||||
- [Trello API test code](https://github.com/wekan/wekan/tree/main/trello)
|
||||
- [Trello API test code](https://github.com/wekan/wekan/tree/main/docs/ImportExport/trello)
|
||||
@@ -0,0 +1,12 @@
|
||||
Q: Is Multi-tenancy like ability to configure multiple ROOT_URL for same Meteor app? Or having relative URLs?
|
||||
|
||||
A: Yes
|
||||
|
||||
https://www.youtube.com/watch?v=917v1a01-Ko
|
||||
|
||||
https://github.com/Meteor-Community-Packages/meteor-partitioner
|
||||
|
||||
Related:
|
||||
|
||||
- https://www.enterpriseready.io
|
||||
- https://github.com/clinical-meteor/hipaa-audit-log
|
||||
+29
-1
@@ -1,4 +1,32 @@
|
||||
Related SAML code, not in WeKan yet: https://forums.meteor.com/t/what-are-you-working-on/59187
|
||||
Related Meteor SAML code, not in WeKan yet:
|
||||
|
||||
- New: https://forums.meteor.com/t/meteor-and-saml/61561
|
||||
- Old link: https://forums.meteor.com/t/what-are-you-working-on/59187
|
||||
|
||||
Sandstorm has SAML login, and old WeKan that will be updated someday:
|
||||
|
||||
- https://github.com/wekan/wekan/wiki/Sandstorm
|
||||
|
||||
How SAML works:
|
||||
|
||||
- https://ssoready.com/blog/engineering/a-gentle-intro-to-saml/
|
||||
- https://news.ycombinator.com/item?id=41036982
|
||||
- https://www.sheshbabu.com/posts/visual-explanation-of-saml-authentication/
|
||||
- https://news.ycombinator.com/item?id=41057814
|
||||
|
||||
Ruby on Rails OmniAuth, that has Shibboleth and SAML:
|
||||
|
||||
- https://github.com/omniauth/omniauth/wiki/List-of-Strategies
|
||||
- https://github.com/omniauth/omniauth
|
||||
|
||||
SAML at SSOReady:
|
||||
|
||||
- https://github.com/ssoready/ssoready
|
||||
- https://news.ycombinator.com/item?id=41110850
|
||||
|
||||
The SSO Wall of Shame:
|
||||
|
||||
- https://sso.tax
|
||||
|
||||
[SAML Issue](https://github.com/wekan/wekan/issues/708)
|
||||
|
||||
|
||||
@@ -1,3 +1,47 @@
|
||||
## Building custom Docker image
|
||||
|
||||
This is only for developers. For normal users, do not add these options, just start with `docker compose up -d`
|
||||
|
||||
This only builds `wekan-app` Docker image, where is Node.js 14.x and all Javascript code. This does not build `wekan-db` MongoDB image, that usually does not require modifications.
|
||||
|
||||
Alpine Linux does not work properly with current Meteor 2 based WeKan. Ubuntu works, and has newest security fixes.
|
||||
|
||||
Only amd64 currently works. Currently used Node.js 14.x segfaults at arm64 and s390x. Only Node.js 14.x is compatible with current version of Meteor 2 based WeKan. Trying to upgrade is in progress https://github.com/wekan/wekan/issues/5475
|
||||
|
||||
Dockerfile is at https://raw.githubusercontent.com/wekan/wekan/main/Dockerfile
|
||||
|
||||
For building custom image, and then running it, uncomment these lines,
|
||||
that are currently here, but line numbers could change, if that docker-compose.yml
|
||||
is later modified:
|
||||
|
||||
https://github.com/wekan/wekan/blob/main/docker-compose.yml#L144-L146
|
||||
|
||||
After your above modifications, text should look like this:
|
||||
|
||||
```
|
||||
#-------------------------------------------------------------------------------------
|
||||
# ==== BUILD wekan-app DOCKER CONTAINER FROM SOURCE, if you uncomment these ====
|
||||
# ==== and use commands: docker compose up -d --build
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile
|
||||
#-------------------------------------------------------------------------------------
|
||||
```
|
||||
|
||||
Then modify ROOT_URL, etc settings as needed, see https://github.com/wekan/wekan/wiki/Settings
|
||||
|
||||
Start WeKan with custom built Dockerfile with this command:
|
||||
```
|
||||
docker compose up -d --build
|
||||
```
|
||||
If you like to only build Dockerfile:
|
||||
```
|
||||
docker build .
|
||||
```
|
||||
You can also push your image to some Docker registry, like here it's done for WeKan:
|
||||
|
||||
https://github.com/wekan/wekan/blob/main/releases/docker-push-wekan.sh
|
||||
|
||||
## Docker Containers
|
||||
|
||||
- [GitHub](https://github.com/wekan/wekan/pkgs/container/wekan)
|
||||
@@ -12,7 +56,7 @@ export ROOT_URL=http://SERVER-IP-ADDRESS-HERE
|
||||
```
|
||||
Then start WeKan with:
|
||||
```
|
||||
docker-compose up -d
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
SSL/TLS info at https://github.com/wekan/wekan/wiki/Settings
|
||||
@@ -35,7 +79,7 @@ There is much more settings at well-documented [docker-compose.yml](https://raw.
|
||||
|
||||
If you don't need to build Wekan, use prebuilt container with docker-compose.yml from https://github.com/wekan/wekan like this:
|
||||
```
|
||||
docker-compose up -d
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
If you like to build from source, clone Wekan repo:
|
||||
@@ -46,7 +90,7 @@ Then edit docker-compose.yml with [these lines uncommented](https://github.com/w
|
||||
```
|
||||
#-------------------------------------------------------------------------------------
|
||||
# ==== BUILD wekan-app DOCKER CONTAINER FROM SOURCE, if you uncomment these ====
|
||||
# ==== and use commands: docker-compose up -d --build
|
||||
# ==== and use commands: docker compose up -d --build
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile
|
||||
@@ -62,7 +106,7 @@ Then edit docker-compose.yml with [these lines uncommented](https://github.com/w
|
||||
```
|
||||
Then you can build Wekan with
|
||||
```
|
||||
docker-compose up -d --build
|
||||
docker compose up -d --build
|
||||
```
|
||||
|
||||
## Example for latest Wekan, port 2000 to Docker Wekan internal port 8080
|
||||
@@ -112,7 +156,7 @@ docker rm wekan-app
|
||||
```
|
||||
Then edit docker-compose.yml to have higher wekan-app image version tag, like `image: wekanteam/wekan:v4.12`. Then:
|
||||
```
|
||||
docker-compose up -d
|
||||
docker compose up -d
|
||||
```
|
||||
### Images
|
||||
Quay: `image: quay.io/wekan/wekan:v4.07`
|
||||
@@ -206,25 +250,25 @@ docker run -d --restart=always --name wekan --link "wekan-db:db" -e "MONGO_URL=m
|
||||
- No build step and pull from [quay](https://quay.io/repository/wekan/wekan?tab=tags)
|
||||
|
||||
```
|
||||
sudo docker-compose up -d --nobuild
|
||||
sudo docker compose up -d --nobuild
|
||||
```
|
||||
|
||||
- Build default
|
||||
```
|
||||
sudo docker-compose up -d --build
|
||||
sudo docker compose up -d --build
|
||||
```
|
||||
|
||||
- Build with newer Node version:
|
||||
```
|
||||
echo 'NODE_VERSION=v8.11.1' >> .env && \
|
||||
sudo docker-compose up -d --build
|
||||
sudo docker compose up -d --build
|
||||
```
|
||||
|
||||
- Build custom image off a release candidate or beta for meteor
|
||||
```
|
||||
echo 'METEOR_EDGE=1.5-beta.17' >> .env && \
|
||||
echo 'USE_EDGE=true' >> .env && \
|
||||
sudo docker-compose up -d --build
|
||||
sudo docker compose up -d --build
|
||||
```
|
||||
|
||||
## Docker env for Wekan dev
|
||||
@@ -239,4 +283,4 @@ sudo docker-compose up -d --build
|
||||
|
||||
* [Caddy Webserver Config](Caddy-Webserver-Config)
|
||||
* [Nginx Webserver Config](Nginx-Webserver-Config)
|
||||
* [Apache Webserver Config](Apache)
|
||||
* [Apache Webserver Config](Apache)
|
||||
@@ -8,19 +8,19 @@ This is without container (without Docker or Snap).
|
||||
|
||||
Right click and download files 1-4:
|
||||
|
||||
1. [wekan-7.49-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.49/wekan-7.49-amd64-windows.zip)
|
||||
1. [wekan-7.55-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.55/wekan-7.55-amd64-windows.zip)
|
||||
|
||||
2. [node.exe](https://nodejs.org/dist/latest-v14.x/win-x64/node.exe)
|
||||
|
||||
3. [mongodb-windows-x86_64-6.0.15-signed.msi](https://fastdl.mongodb.org/windows/mongodb-windows-x86_64-6.0.15-signed.msi)
|
||||
3. [mongodb-windows-x86_64-6.0.16-signed.msi](https://fastdl.mongodb.org/windows/mongodb-windows-x86_64-6.0.16-signed.msi)
|
||||
|
||||
4. [start-wekan.bat](https://raw.githubusercontent.com/wekan/wekan/main/start-wekan.bat)
|
||||
|
||||
5. Copy files from steps 1-4 with USB stick or DVD to offline Windows computer
|
||||
|
||||
6. Double click `mongodb-windows-x86_64-6.0.15-signed.msi` . In installer, uncheck downloading MongoDB compass.
|
||||
6. Double click `mongodb-windows-x86_64-6.0.16-signed.msi` . In installer, uncheck downloading MongoDB compass.
|
||||
|
||||
7. Unzip `wekan-7.49-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files:
|
||||
7. Unzip `wekan-7.55-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files:
|
||||
|
||||
```
|
||||
bundle (directory)
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
https://arstechnica.com/security/2024/07/secure-boot-is-completely-compromised-on-200-models-from-5-big-device-makers/
|
||||
@@ -76,6 +76,446 @@ Caddy commands list:
|
||||
caddy help
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### PWA site.webmanifest icons override Caddy example
|
||||
|
||||
PWABuilder settings to create Android app at https://pwabuilder.com
|
||||
- Web view (not Custom Tabs)
|
||||
- Fullscreen (When not showing top and bottom toolbars. If you like to show those toolbars, change fullscreen to standalone)
|
||||
- Notifications [X] Enable
|
||||
- Signing key [X] Use mine
|
||||
|
||||
PWABuilder upgrades:
|
||||
- Android app upgrade to Android SDK 34 was made with help of this video https://github.com/pwa-builder/PWABuilder/issues/4766#issuecomment-2229867608
|
||||
|
||||
Icons override at site.webmanifest:
|
||||
- These settings at Caddyfile override icon URLs etc
|
||||
|
||||
If you like to show toolbars at top and bottom, change also here `fullscreen` to `standalone`
|
||||
|
||||
```
|
||||
boards.wekan.team {
|
||||
tls {
|
||||
alpn http/1.1
|
||||
}
|
||||
header /.well-known/* Content-Type application/json
|
||||
header /.well-known/* Access-Control-Allow-Origin *
|
||||
respond /.well-known/assetlinks.json `[ {
|
||||
"relation": ["delegate_permission/common.handle_all_urls"],
|
||||
"target": {
|
||||
"namespace": "android_app",
|
||||
"package_name": "team.wekan.boards.twa",
|
||||
"sha256_cert_fingerprints": ["AA:AA:ED:7D:4C:9C:5A:A3:B5:DA:10:66:14:34:07:5D:EB:BE:96:CD:82:7B:09:46:47:13:65:29:5B:EA:96:30","61:41:86:5B:05:13:9B:64:5F:39:75:5A:16:C3:F2:22:25:6C:DA:74:B9:B0:8C:5F:93:B0:D2:26:65:16:1B:E6"]
|
||||
}
|
||||
} ]`
|
||||
header /site.webmanifest/* Content-Type application/json
|
||||
header /site.webmanifest/* Access-Control-Allow-Origin *
|
||||
respond /site.webmanifest ` {
|
||||
"name": "Wekan",
|
||||
"short_name": "Wekan",
|
||||
"icons": [ {
|
||||
"src": "svg-etc/wekan-logo-512.svg",
|
||||
"sizes": "any",
|
||||
"type": "image/svg"
|
||||
} , {
|
||||
"src": "android-chrome-192x192.png",
|
||||
"sizes": "192x192",
|
||||
"type": "image/png"
|
||||
} , {
|
||||
"src": "android-chrome-512x512.png",
|
||||
"sizes": "512x512",
|
||||
"type": "image/png"
|
||||
} , {
|
||||
"src": "Square150x150Logo.scale-100.png",
|
||||
"sizes": "150x150",
|
||||
"type": "image/png"
|
||||
} , {
|
||||
"src": "Square44x44Logo.scale-100.png",
|
||||
"sizes": "44x44",
|
||||
"type": "image/png"
|
||||
} , {
|
||||
"src": "StoreLogo.scale-100.png",
|
||||
"sizes": "50x50",
|
||||
"type": "image/png"
|
||||
} , {
|
||||
"src": "maskable_icon.png",
|
||||
"sizes": "474x474",
|
||||
"type": "image/png",
|
||||
"purpose": "maskable"
|
||||
} , {
|
||||
"src": "monochrome-icon-512x512.png",
|
||||
"sizes": "512x512",
|
||||
"type": "image/png",
|
||||
"purpose": "monochrome"
|
||||
} , {
|
||||
"src": "windows11/SmallTile.scale-100.png",
|
||||
"sizes": "71x71"
|
||||
} , {
|
||||
"src": "windows11/SmallTile.scale-125.png",
|
||||
"sizes": "89x89"
|
||||
} , {
|
||||
"src": "windows11/SmallTile.scale-150.png",
|
||||
"sizes": "107x107"
|
||||
} , {
|
||||
"src": "windows11/SmallTile.scale-200.png",
|
||||
"sizes": "142x142"
|
||||
} , {
|
||||
"src": "windows11/SmallTile.scale-400.png",
|
||||
"sizes": "284x284"
|
||||
} , {
|
||||
"src": "windows11/Square150x150Logo.scale-100.png",
|
||||
"sizes": "150x150"
|
||||
} , {
|
||||
"src": "windows11/Square150x150Logo.scale-125.png",
|
||||
"sizes": "188x188"
|
||||
} , {
|
||||
"src": "windows11/Square150x150Logo.scale-150.png",
|
||||
"sizes": "225x225"
|
||||
} , {
|
||||
"src": "windows11/Square150x150Logo.scale-200.png",
|
||||
"sizes": "300x300"
|
||||
} , {
|
||||
"src": "windows11/Square150x150Logo.scale-400.png",
|
||||
"sizes": "600x600"
|
||||
} , {
|
||||
"src": "windows11/Wide310x150Logo.scale-100.png",
|
||||
"sizes": "310x150"
|
||||
} , {
|
||||
"src": "windows11/Wide310x150Logo.scale-125.png",
|
||||
"sizes": "388x188"
|
||||
} , {
|
||||
"src": "windows11/Wide310x150Logo.scale-150.png",
|
||||
"sizes": "465x225"
|
||||
} , {
|
||||
"src": "windows11/Wide310x150Logo.scale-200.png",
|
||||
"sizes": "620x300"
|
||||
} , {
|
||||
"src": "windows11/Wide310x150Logo.scale-400.png",
|
||||
"sizes": "1240x600"
|
||||
} , {
|
||||
"src": "windows11/LargeTile.scale-100.png",
|
||||
"sizes": "310x310"
|
||||
} , {
|
||||
"src": "windows11/LargeTile.scale-125.png",
|
||||
"sizes": "388x388"
|
||||
} , {
|
||||
"src": "windows11/LargeTile.scale-150.png",
|
||||
"sizes": "465x465"
|
||||
} , {
|
||||
"src": "windows11/LargeTile.scale-200.png",
|
||||
"sizes": "620x620"
|
||||
} , {
|
||||
"src": "windows11/LargeTile.scale-400.png",
|
||||
"sizes": "1240x1240"
|
||||
} , {
|
||||
"src": "windows11/Square44x44Logo.scale-100.png",
|
||||
"sizes": "44x44"
|
||||
} , {
|
||||
"src": "windows11/Square44x44Logo.scale-125.png",
|
||||
"sizes": "55x55"
|
||||
} , {
|
||||
"src": "windows11/Square44x44Logo.scale-150.png",
|
||||
"sizes": "66x66"
|
||||
} , {
|
||||
"src": "windows11/Square44x44Logo.scale-200.png",
|
||||
"sizes": "88x88"
|
||||
} , {
|
||||
"src": "windows11/Square44x44Logo.scale-400.png",
|
||||
"sizes": "176x176"
|
||||
} , {
|
||||
"src": "windows11/StoreLogo.scale-100.png",
|
||||
"sizes": "50x50"
|
||||
} , {
|
||||
"src": "windows11/StoreLogo.scale-125.png",
|
||||
"sizes": "63x63"
|
||||
} , {
|
||||
"src": "windows11/StoreLogo.scale-150.png",
|
||||
"sizes": "75x75"
|
||||
} , {
|
||||
"src": "windows11/StoreLogo.scale-200.png",
|
||||
"sizes": "100x100"
|
||||
} , {
|
||||
"src": "windows11/StoreLogo.scale-400.png",
|
||||
"sizes": "200x200"
|
||||
} , {
|
||||
"src": "windows11/SplashScreen.scale-100.png",
|
||||
"sizes": "620x300"
|
||||
} , {
|
||||
"src": "windows11/SplashScreen.scale-125.png",
|
||||
"sizes": "775x375"
|
||||
} , {
|
||||
"src": "windows11/SplashScreen.scale-150.png",
|
||||
"sizes": "930x450"
|
||||
} , {
|
||||
"src": "windows11/SplashScreen.scale-200.png",
|
||||
"sizes": "1240x600"
|
||||
} , {
|
||||
"src": "windows11/SplashScreen.scale-400.png",
|
||||
"sizes": "2480x1200"
|
||||
} , {
|
||||
"src": "windows11/Square44x44Logo.targetsize-16.png",
|
||||
"sizes": "16x16"
|
||||
} , {
|
||||
"src": "windows11/Square44x44Logo.targetsize-20.png",
|
||||
"sizes": "20x20"
|
||||
} , {
|
||||
"src": "windows11/Square44x44Logo.targetsize-24.png",
|
||||
"sizes": "24x24"
|
||||
} , {
|
||||
"src": "windows11/Square44x44Logo.targetsize-30.png",
|
||||
"sizes": "30x30"
|
||||
} , {
|
||||
"src": "windows11/Square44x44Logo.targetsize-32.png",
|
||||
"sizes": "32x32"
|
||||
} , {
|
||||
"src": "windows11/Square44x44Logo.targetsize-36.png",
|
||||
"sizes": "36x36"
|
||||
} , {
|
||||
"src": "windows11/Square44x44Logo.targetsize-40.png",
|
||||
"sizes": "40x40"
|
||||
} , {
|
||||
"src": "windows11/Square44x44Logo.targetsize-44.png",
|
||||
"sizes": "44x44"
|
||||
} , {
|
||||
"src": "windows11/Square44x44Logo.targetsize-48.png",
|
||||
"sizes": "48x48"
|
||||
} , {
|
||||
"src": "windows11/Square44x44Logo.targetsize-60.png",
|
||||
"sizes": "60x60"
|
||||
} , {
|
||||
"src": "windows11/Square44x44Logo.targetsize-64.png",
|
||||
"sizes": "64x64"
|
||||
} , {
|
||||
"src": "windows11/Square44x44Logo.targetsize-72.png",
|
||||
"sizes": "72x72"
|
||||
} , {
|
||||
"src": "windows11/Square44x44Logo.targetsize-80.png",
|
||||
"sizes": "80x80"
|
||||
} , {
|
||||
"src": "windows11/Square44x44Logo.targetsize-96.png",
|
||||
"sizes": "96x96"
|
||||
} , {
|
||||
"src": "windows11/Square44x44Logo.targetsize-256.png",
|
||||
"sizes": "256x256"
|
||||
} , {
|
||||
"src": "windows11/Square44x44Logo.altform-unplated_targetsize-16.png",
|
||||
"sizes": "16x16"
|
||||
} , {
|
||||
"src": "windows11/Square44x44Logo.altform-unplated_targetsize-20.png",
|
||||
"sizes": "20x20"
|
||||
} , {
|
||||
"src": "windows11/Square44x44Logo.altform-unplated_targetsize-24.png",
|
||||
"sizes": "24x24"
|
||||
} , {
|
||||
"src": "windows11/Square44x44Logo.altform-unplated_targetsize-30.png",
|
||||
"sizes": "30x30"
|
||||
} , {
|
||||
"src": "windows11/Square44x44Logo.altform-unplated_targetsize-32.png",
|
||||
"sizes": "32x32"
|
||||
} , {
|
||||
"src": "windows11/Square44x44Logo.altform-unplated_targetsize-36.png",
|
||||
"sizes": "36x36"
|
||||
} , {
|
||||
"src": "windows11/Square44x44Logo.altform-unplated_targetsize-40.png",
|
||||
"sizes": "40x40"
|
||||
} , {
|
||||
"src": "windows11/Square44x44Logo.altform-unplated_targetsize-44.png",
|
||||
"sizes": "44x44"
|
||||
} , {
|
||||
"src": "windows11/Square44x44Logo.altform-unplated_targetsize-48.png",
|
||||
"sizes": "48x48"
|
||||
} , {
|
||||
"src": "windows11/Square44x44Logo.altform-unplated_targetsize-60.png",
|
||||
"sizes": "60x60"
|
||||
} , {
|
||||
"src": "windows11/Square44x44Logo.altform-unplated_targetsize-64.png",
|
||||
"sizes": "64x64"
|
||||
} , {
|
||||
"src": "windows11/Square44x44Logo.altform-unplated_targetsize-72.png",
|
||||
"sizes": "72x72"
|
||||
} , {
|
||||
"src": "windows11/Square44x44Logo.altform-unplated_targetsize-80.png",
|
||||
"sizes": "80x80"
|
||||
} , {
|
||||
"src": "windows11/Square44x44Logo.altform-unplated_targetsize-96.png",
|
||||
"sizes": "96x96"
|
||||
} , {
|
||||
"src": "windows11/Square44x44Logo.altform-unplated_targetsize-256.png",
|
||||
"sizes": "256x256"
|
||||
} , {
|
||||
"src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-16.png",
|
||||
"sizes": "16x16"
|
||||
} , {
|
||||
"src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-20.png",
|
||||
"sizes": "20x20"
|
||||
} , {
|
||||
"src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-24.png",
|
||||
"sizes": "24x24"
|
||||
} , {
|
||||
"src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-30.png",
|
||||
"sizes": "30x30"
|
||||
} , {
|
||||
"src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-32.png",
|
||||
"sizes": "32x32"
|
||||
} , {
|
||||
"src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-36.png",
|
||||
"sizes": "36x36"
|
||||
} , {
|
||||
"src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-40.png",
|
||||
"sizes": "40x40"
|
||||
} , {
|
||||
"src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-44.png",
|
||||
"sizes": "44x44"
|
||||
} , {
|
||||
"src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-48.png",
|
||||
"sizes": "48x48"
|
||||
} , {
|
||||
"src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-60.png",
|
||||
"sizes": "60x60"
|
||||
} , {
|
||||
"src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-64.png",
|
||||
"sizes": "64x64"
|
||||
} , {
|
||||
"src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-72.png",
|
||||
"sizes": "72x72"
|
||||
} , {
|
||||
"src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-80.png",
|
||||
"sizes": "80x80"
|
||||
} , {
|
||||
"src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-96.png",
|
||||
"sizes": "96x96"
|
||||
} , {
|
||||
"src": "windows11/Square44x44Logo.altform-lightunplated_targetsize-256.png",
|
||||
"sizes": "256x256"
|
||||
} , {
|
||||
"src": "android/android-launchericon-512-512.png",
|
||||
"sizes": "512x512"
|
||||
} , {
|
||||
"src": "android/android-launchericon-192-192.png",
|
||||
"sizes": "192x192"
|
||||
} , {
|
||||
"src": "android/android-launchericon-144-144.png",
|
||||
"sizes": "144x144"
|
||||
} , {
|
||||
"src": "android/android-launchericon-96-96.png",
|
||||
"sizes": "96x96"
|
||||
} , {
|
||||
"src": "android/android-launchericon-72-72.png",
|
||||
"sizes": "72x72"
|
||||
} , {
|
||||
"src": "android/android-launchericon-48-48.png",
|
||||
"sizes": "48x48"
|
||||
} , {
|
||||
"src": "ios/16.png",
|
||||
"sizes": "16x16"
|
||||
} , {
|
||||
"src": "ios/20.png",
|
||||
"sizes": "20x20"
|
||||
} , {
|
||||
"src": "ios/29.png",
|
||||
"sizes": "29x29"
|
||||
} , {
|
||||
"src": "ios/32.png",
|
||||
"sizes": "32x32"
|
||||
} , {
|
||||
"src": "ios/40.png",
|
||||
"sizes": "40x40"
|
||||
} , {
|
||||
"src": "ios/50.png",
|
||||
"sizes": "50x50"
|
||||
} , {
|
||||
"src": "ios/57.png",
|
||||
"sizes": "57x57"
|
||||
} , {
|
||||
"src": "ios/58.png",
|
||||
"sizes": "58x58"
|
||||
} , {
|
||||
"src": "ios/60.png",
|
||||
"sizes": "60x60"
|
||||
} , {
|
||||
"src": "ios/64.png",
|
||||
"sizes": "64x64"
|
||||
} , {
|
||||
"src": "ios/72.png",
|
||||
"sizes": "72x72"
|
||||
} , {
|
||||
"src": "ios/76.png",
|
||||
"sizes": "76x76"
|
||||
} , {
|
||||
"src": "ios/80.png",
|
||||
"sizes": "80x80"
|
||||
} , {
|
||||
"src": "ios/87.png",
|
||||
"sizes": "87x87"
|
||||
} , {
|
||||
"src": "ios/100.png",
|
||||
"sizes": "100x100"
|
||||
} , {
|
||||
"src": "ios/114.png",
|
||||
"sizes": "114x114"
|
||||
} , {
|
||||
"src": "ios/120.png",
|
||||
"sizes": "120x120"
|
||||
} , {
|
||||
"src": "ios/128.png",
|
||||
"sizes": "128x128"
|
||||
} , {
|
||||
"src": "ios/144.png",
|
||||
"sizes": "144x144"
|
||||
} , {
|
||||
"src": "ios/152.png",
|
||||
"sizes": "152x152"
|
||||
} , {
|
||||
"src": "ios/167.png",
|
||||
"sizes": "167x167"
|
||||
} , {
|
||||
"src": "ios/180.png",
|
||||
"sizes": "180x180"
|
||||
} , {
|
||||
"src": "ios/192.png",
|
||||
"sizes": "192x192"
|
||||
} , {
|
||||
"src": "ios/256.png",
|
||||
"sizes": "256x256"
|
||||
} , {
|
||||
"src": "ios/512.png",
|
||||
"sizes": "512x512"
|
||||
} , {
|
||||
"src": "ios/1024.png",
|
||||
"sizes": "1024x1024"
|
||||
}
|
||||
],
|
||||
"screenshots": [ {
|
||||
"src": "screenshot1.webp",
|
||||
"sizes": "1280x720",
|
||||
"type": "image/webp"
|
||||
} , {
|
||||
"src": "screenshot2.webp",
|
||||
"sizes": "1280x720",
|
||||
"type": "image/webp"
|
||||
}
|
||||
],
|
||||
"theme_color": "#000000",
|
||||
"background_color": "#000000",
|
||||
"start_url": "sign-in",
|
||||
"display": "fullscreen",
|
||||
"orientation": "any",
|
||||
"categories": [
|
||||
"productivity"
|
||||
],
|
||||
"iarc_rating_id": "70d7c4a4-3e5a-4714-a7dc-fa006613ba96",
|
||||
"description": "Open Source kanban with MIT license",
|
||||
"dir": "auto",
|
||||
"scope": "https://boards.wekan.team",
|
||||
"prefer_related_applications": false,
|
||||
"display_override": [
|
||||
"fullscreen"
|
||||
]
|
||||
} `
|
||||
reverse_proxy 127.0.0.1:3025
|
||||
}
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
|
||||
@@ -128,9 +128,6 @@ ReactiveCacheServer = {
|
||||
return ret;
|
||||
},
|
||||
getUsers(selector = {}, options = {}, getQuery = false) {
|
||||
// getUsers(selector, options, getQuery) {
|
||||
// let ret = Users.find(undefined, {});
|
||||
// console.log("getUser count: ", ret.count())
|
||||
let ret = Users.find(selector, options);
|
||||
if (getQuery !== true) {
|
||||
ret = ret.fetch();
|
||||
|
||||
+14
-20
@@ -351,7 +351,7 @@ Cards.attachSchema(
|
||||
},
|
||||
'poker.question': {
|
||||
type: Boolean,
|
||||
defaultValue: false,
|
||||
optional: true,
|
||||
},
|
||||
'poker.one': {
|
||||
/**
|
||||
@@ -359,7 +359,6 @@ Cards.attachSchema(
|
||||
*/
|
||||
type: [String],
|
||||
optional: true,
|
||||
defaultValue: [],
|
||||
},
|
||||
'poker.two': {
|
||||
/**
|
||||
@@ -367,7 +366,6 @@ Cards.attachSchema(
|
||||
*/
|
||||
type: [String],
|
||||
optional: true,
|
||||
defaultValue: [],
|
||||
},
|
||||
'poker.three': {
|
||||
/**
|
||||
@@ -375,7 +373,6 @@ Cards.attachSchema(
|
||||
*/
|
||||
type: [String],
|
||||
optional: true,
|
||||
defaultValue: [],
|
||||
},
|
||||
'poker.five': {
|
||||
/**
|
||||
@@ -383,7 +380,6 @@ Cards.attachSchema(
|
||||
*/
|
||||
type: [String],
|
||||
optional: true,
|
||||
defaultValue: [],
|
||||
},
|
||||
'poker.eight': {
|
||||
/**
|
||||
@@ -391,7 +387,6 @@ Cards.attachSchema(
|
||||
*/
|
||||
type: [String],
|
||||
optional: true,
|
||||
defaultValue: [],
|
||||
},
|
||||
'poker.thirteen': {
|
||||
/**
|
||||
@@ -399,7 +394,6 @@ Cards.attachSchema(
|
||||
*/
|
||||
type: [String],
|
||||
optional: true,
|
||||
defaultValue: [],
|
||||
},
|
||||
'poker.twenty': {
|
||||
/**
|
||||
@@ -407,7 +401,6 @@ Cards.attachSchema(
|
||||
*/
|
||||
type: [String],
|
||||
optional: true,
|
||||
defaultValue: [],
|
||||
},
|
||||
'poker.forty': {
|
||||
/**
|
||||
@@ -415,7 +408,6 @@ Cards.attachSchema(
|
||||
*/
|
||||
type: [String],
|
||||
optional: true,
|
||||
defaultValue: [],
|
||||
},
|
||||
'poker.oneHundred': {
|
||||
/**
|
||||
@@ -423,7 +415,6 @@ Cards.attachSchema(
|
||||
*/
|
||||
type: [String],
|
||||
optional: true,
|
||||
defaultValue: [],
|
||||
},
|
||||
'poker.unsure': {
|
||||
/**
|
||||
@@ -431,16 +422,14 @@ Cards.attachSchema(
|
||||
*/
|
||||
type: [String],
|
||||
optional: true,
|
||||
defaultValue: [],
|
||||
},
|
||||
'poker.end': {
|
||||
type: Date,
|
||||
optional: true,
|
||||
defaultValue: null,
|
||||
},
|
||||
'poker.allowNonBoardMembers': {
|
||||
type: Boolean,
|
||||
defaultValue: false,
|
||||
optional: true,
|
||||
},
|
||||
'poker.estimation': {
|
||||
/**
|
||||
@@ -993,15 +982,16 @@ Cards.helpers({
|
||||
},
|
||||
|
||||
parentCard() {
|
||||
if (this.parentId === '') {
|
||||
return null;
|
||||
let ret = null;
|
||||
if (this.parentId) {
|
||||
ret = ReactiveCache.getCard(this.parentId);
|
||||
}
|
||||
return ReactiveCache.getCard(this.parentId);
|
||||
return ret;
|
||||
},
|
||||
|
||||
parentCardName() {
|
||||
let result = '';
|
||||
if (this.parentId !== '') {
|
||||
if (this.parentId) {
|
||||
const card = ReactiveCache.getCard(this.parentId);
|
||||
if (card) {
|
||||
result = card.title;
|
||||
@@ -1013,7 +1003,7 @@ Cards.helpers({
|
||||
parentListId() {
|
||||
const result = [];
|
||||
let crtParentId = this.parentId;
|
||||
while (crtParentId !== '') {
|
||||
while (crtParentId) {
|
||||
const crt = ReactiveCache.getCard(crtParentId);
|
||||
if (crt === null || crt === undefined) {
|
||||
// maybe it has been deleted
|
||||
@@ -1033,7 +1023,7 @@ Cards.helpers({
|
||||
const resultId = [];
|
||||
const result = [];
|
||||
let crtParentId = this.parentId;
|
||||
while (crtParentId !== '') {
|
||||
while (crtParentId) {
|
||||
const crt = ReactiveCache.getCard(crtParentId);
|
||||
if (crt === null || crt === undefined) {
|
||||
// maybe it has been deleted
|
||||
@@ -1059,7 +1049,11 @@ Cards.helpers({
|
||||
},
|
||||
|
||||
isTopLevel() {
|
||||
return this.parentId === '';
|
||||
let ret = false;
|
||||
if (this.parentId) {
|
||||
ret = true;
|
||||
}
|
||||
return ret;
|
||||
},
|
||||
|
||||
isLinkedCard() {
|
||||
|
||||
+8
-14
@@ -687,14 +687,11 @@ Users.helpers({
|
||||
return '';
|
||||
},
|
||||
orgIdsUserBelongs() {
|
||||
let ret = '';
|
||||
if (this.orgs) {
|
||||
return this.orgs
|
||||
.map(function (org) {
|
||||
return org.orgId;
|
||||
})
|
||||
.join(',');
|
||||
ret = this.orgs.map(org => org.orgId).join(',');
|
||||
}
|
||||
return '';
|
||||
return ret;
|
||||
},
|
||||
teamsUserBelongs() {
|
||||
if (this.teams) {
|
||||
@@ -708,14 +705,11 @@ Users.helpers({
|
||||
return '';
|
||||
},
|
||||
teamIdsUserBelongs() {
|
||||
let ret = '';
|
||||
if (this.teams) {
|
||||
return this.teams
|
||||
.map(function (team) {
|
||||
return team.teamId;
|
||||
})
|
||||
.join(',');
|
||||
ret = this.teams.map(team => team.teamId).join(',');
|
||||
}
|
||||
return '';
|
||||
return ret;
|
||||
},
|
||||
boards() {
|
||||
return Boards.userBoards(this._id, null, {}, { sort: { sort: 1 } });
|
||||
@@ -1254,14 +1248,14 @@ Meteor.methods({
|
||||
check(boardId, String);
|
||||
check(listId, String);
|
||||
check(width, Number);
|
||||
const user = Meteor.user();
|
||||
const user = ReactiveCache.getCurrentUser();
|
||||
user.setListWidth(boardId, listId, width);
|
||||
},
|
||||
applySwimlaneHeight(boardId, swimlaneId, height) {
|
||||
check(boardId, String);
|
||||
check(swimlaneId, String);
|
||||
check(height, Number);
|
||||
const user = Meteor.user();
|
||||
const user = ReactiveCache.getCurrentUser();
|
||||
user.setSwimlaneHeight(boardId, swimlaneId, height);
|
||||
},
|
||||
});
|
||||
|
||||
Generated
+93
-141
@@ -1,13 +1,13 @@
|
||||
{
|
||||
"name": "wekan",
|
||||
"version": "v7.52.0",
|
||||
"version": "v7.57.0",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
"@babel/runtime": {
|
||||
"version": "7.24.7",
|
||||
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.7.tgz",
|
||||
"integrity": "sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==",
|
||||
"version": "7.25.0",
|
||||
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.0.tgz",
|
||||
"integrity": "sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==",
|
||||
"requires": {
|
||||
"regenerator-runtime": "^0.14.0"
|
||||
}
|
||||
@@ -39,85 +39,6 @@
|
||||
"lodash.uniq": "^4.5.0"
|
||||
}
|
||||
},
|
||||
"@ldapjs/asn1": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@ldapjs/asn1/-/asn1-2.0.0.tgz",
|
||||
"integrity": "sha512-G9+DkEOirNgdPmD0I8nu57ygQJKOOgFEMKknEuQvIHbGLwP3ny1mY+OTUYLCbCaGJP4sox5eYgBJRuSUpnAddA=="
|
||||
},
|
||||
"@ldapjs/attribute": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@ldapjs/attribute/-/attribute-1.0.0.tgz",
|
||||
"integrity": "sha512-ptMl2d/5xJ0q+RgmnqOi3Zgwk/TMJYG7dYMC0Keko+yZU6n+oFM59MjQOUht5pxJeS4FWrImhu/LebX24vJNRQ==",
|
||||
"requires": {
|
||||
"@ldapjs/asn1": "2.0.0",
|
||||
"@ldapjs/protocol": "^1.2.1",
|
||||
"process-warning": "^2.1.0"
|
||||
}
|
||||
},
|
||||
"@ldapjs/change": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@ldapjs/change/-/change-1.0.0.tgz",
|
||||
"integrity": "sha512-EOQNFH1RIku3M1s0OAJOzGfAohuFYXFY4s73wOhRm4KFGhmQQ7MChOh2YtYu9Kwgvuq1B0xKciXVzHCGkB5V+Q==",
|
||||
"requires": {
|
||||
"@ldapjs/asn1": "2.0.0",
|
||||
"@ldapjs/attribute": "1.0.0"
|
||||
}
|
||||
},
|
||||
"@ldapjs/controls": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@ldapjs/controls/-/controls-2.1.0.tgz",
|
||||
"integrity": "sha512-2pFdD1yRC9V9hXfAWvCCO2RRWK9OdIEcJIos/9cCVP9O4k72BY1bLDQQ4KpUoJnl4y/JoD4iFgM+YWT3IfITWw==",
|
||||
"requires": {
|
||||
"@ldapjs/asn1": "^1.2.0",
|
||||
"@ldapjs/protocol": "^1.2.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"@ldapjs/asn1": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@ldapjs/asn1/-/asn1-1.2.0.tgz",
|
||||
"integrity": "sha512-KX/qQJ2xxzvO2/WOvr1UdQ+8P5dVvuOLk/C9b1bIkXxZss8BaR28njXdPgFCpj5aHaf1t8PmuVnea+N9YG9YMw=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"@ldapjs/dn": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@ldapjs/dn/-/dn-1.1.0.tgz",
|
||||
"integrity": "sha512-R72zH5ZeBj/Fujf/yBu78YzpJjJXG46YHFo5E4W1EqfNpo1UsVPqdLrRMXeKIsJT3x9dJVIfR6OpzgINlKpi0A==",
|
||||
"requires": {
|
||||
"@ldapjs/asn1": "2.0.0",
|
||||
"process-warning": "^2.1.0"
|
||||
}
|
||||
},
|
||||
"@ldapjs/filter": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/@ldapjs/filter/-/filter-2.1.1.tgz",
|
||||
"integrity": "sha512-TwPK5eEgNdUO1ABPBUQabcZ+h9heDORE4V9WNZqCtYLKc06+6+UAJ3IAbr0L0bYTnkkWC/JEQD2F+zAFsuikNw==",
|
||||
"requires": {
|
||||
"@ldapjs/asn1": "2.0.0",
|
||||
"@ldapjs/protocol": "^1.2.1",
|
||||
"process-warning": "^2.1.0"
|
||||
}
|
||||
},
|
||||
"@ldapjs/messages": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/@ldapjs/messages/-/messages-1.3.0.tgz",
|
||||
"integrity": "sha512-K7xZpXJ21bj92jS35wtRbdcNrwmxAtPwy4myeh9duy/eR3xQKvikVycbdWVzkYEAVE5Ce520VXNOwCHjomjCZw==",
|
||||
"requires": {
|
||||
"@ldapjs/asn1": "^2.0.0",
|
||||
"@ldapjs/attribute": "^1.0.0",
|
||||
"@ldapjs/change": "^1.0.0",
|
||||
"@ldapjs/controls": "^2.1.0",
|
||||
"@ldapjs/dn": "^1.1.0",
|
||||
"@ldapjs/filter": "^2.1.1",
|
||||
"@ldapjs/protocol": "^1.2.1",
|
||||
"process-warning": "^2.2.0"
|
||||
}
|
||||
},
|
||||
"@ldapjs/protocol": {
|
||||
"version": "1.2.1",
|
||||
"resolved": "https://registry.npmjs.org/@ldapjs/protocol/-/protocol-1.2.1.tgz",
|
||||
"integrity": "sha512-O89xFDLW2gBoZWNXuXpBSM32/KealKCTb3JGtJdtUQc7RjAk8XzrRgyz02cPAwGKwKPxy0ivuC7UP9bmN87egQ=="
|
||||
},
|
||||
"@mapbox/node-pre-gyp": {
|
||||
"version": "1.0.11",
|
||||
"resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz",
|
||||
@@ -187,6 +108,10 @@
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.63.tgz",
|
||||
"integrity": "sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ=="
|
||||
},
|
||||
"@wekanteam/dragscroll": {
|
||||
"version": "github:wekan/dragscroll#6ea215c8cdbde9362ecba8ffb72ce9f9fde842d2",
|
||||
"from": "github:wekan/dragscroll"
|
||||
},
|
||||
"@wekanteam/exceljs": {
|
||||
"version": "github:wekan/exceljs#e0229907e7a81bc3fe6daf4e42b1fdfbecdcb7cb",
|
||||
"from": "github:wekan/exceljs",
|
||||
@@ -347,6 +272,14 @@
|
||||
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
|
||||
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
|
||||
},
|
||||
"asn1": {
|
||||
"version": "0.2.6",
|
||||
"resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz",
|
||||
"integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==",
|
||||
"requires": {
|
||||
"safer-buffer": "~2.1.0"
|
||||
}
|
||||
},
|
||||
"assert-plus": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
|
||||
@@ -667,9 +600,9 @@
|
||||
}
|
||||
},
|
||||
"dompurify": {
|
||||
"version": "2.5.5",
|
||||
"resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.5.5.tgz",
|
||||
"integrity": "sha512-FgbqnEPiv5Vdtwt6Mxl7XSylttCC03cqP5ldNT2z+Kj0nLxPHJH4+1Cyf5Jasxhw93Rl4Oo11qRoUV72fmya2Q=="
|
||||
"version": "2.5.6",
|
||||
"resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.5.6.tgz",
|
||||
"integrity": "sha512-zUTaUBO8pY4+iJMPE1B9XlO2tXVYIcEA4SNGtvDELzTSCQO7RzH+j7S180BmhmJId78lqGU2z19vgVx2Sxs/PQ=="
|
||||
},
|
||||
"domutils": {
|
||||
"version": "2.8.0",
|
||||
@@ -1244,25 +1177,27 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"ldapjs": {
|
||||
"version": "3.0.7",
|
||||
"resolved": "https://registry.npmjs.org/ldapjs/-/ldapjs-3.0.7.tgz",
|
||||
"integrity": "sha512-1ky+WrN+4CFMuoekUOv7Y1037XWdjKpu0xAPwSP+9KdvmV9PG+qOKlssDV6a+U32apwxdD3is/BZcWOYzN30cg==",
|
||||
"ldap-filter": {
|
||||
"version": "0.3.3",
|
||||
"resolved": "https://registry.npmjs.org/ldap-filter/-/ldap-filter-0.3.3.tgz",
|
||||
"integrity": "sha512-/tFkx5WIn4HuO+6w9lsfxq4FN3O+fDZeO9Mek8dCD8rTUpqzRa766BOBO7BcGkn3X86m5+cBm1/2S/Shzz7gMg==",
|
||||
"requires": {
|
||||
"@ldapjs/asn1": "^2.0.0",
|
||||
"@ldapjs/attribute": "^1.0.0",
|
||||
"@ldapjs/change": "^1.0.0",
|
||||
"@ldapjs/controls": "^2.1.0",
|
||||
"@ldapjs/dn": "^1.1.0",
|
||||
"@ldapjs/filter": "^2.1.1",
|
||||
"@ldapjs/messages": "^1.3.0",
|
||||
"@ldapjs/protocol": "^1.2.1",
|
||||
"abstract-logging": "^2.0.1",
|
||||
"assert-plus": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"ldapjs": {
|
||||
"version": "2.3.3",
|
||||
"resolved": "https://registry.npmjs.org/ldapjs/-/ldapjs-2.3.3.tgz",
|
||||
"integrity": "sha512-75QiiLJV/PQqtpH+HGls44dXweviFwQ6SiIK27EqzKQ5jU/7UFrl2E5nLdQ3IYRBzJ/AVFJI66u0MZ0uofKYwg==",
|
||||
"requires": {
|
||||
"abstract-logging": "^2.0.0",
|
||||
"asn1": "^0.2.4",
|
||||
"assert-plus": "^1.0.0",
|
||||
"backoff": "^2.5.0",
|
||||
"ldap-filter": "^0.3.3",
|
||||
"once": "^1.4.0",
|
||||
"vasync": "^2.2.1",
|
||||
"verror": "^1.10.1"
|
||||
"vasync": "^2.2.0",
|
||||
"verror": "^1.8.1"
|
||||
}
|
||||
},
|
||||
"lie": {
|
||||
@@ -1438,9 +1373,9 @@
|
||||
"integrity": "sha512-SBbbYWvFYvsxHVL+q6ZB8lT3rp2LSvfALD2V52H+MGH2IgJsevy0VtXRkRG0EsUewwOaDTIKBn9DlD8HQ3GSwg=="
|
||||
},
|
||||
"meteor-node-stubs": {
|
||||
"version": "1.2.9",
|
||||
"resolved": "https://registry.npmjs.org/meteor-node-stubs/-/meteor-node-stubs-1.2.9.tgz",
|
||||
"integrity": "sha512-EKRezc1/PblYtYiK4BOT3h5geWDo9AFBBSYNamPNh8AC5msUbVCcg8kekzAa7r7JPzBX8nZWaXEQVar4t8q/Hg==",
|
||||
"version": "1.2.10",
|
||||
"resolved": "https://registry.npmjs.org/meteor-node-stubs/-/meteor-node-stubs-1.2.10.tgz",
|
||||
"integrity": "sha512-zP1AVg8sOATz15yfy11R2VTx+IZFfAOXi8GuZa8tOfeVT1tKaqDooAbFylnIXwpStSu6HRBUhQqHtR06Qr9aEA==",
|
||||
"requires": {
|
||||
"@meteorjs/crypto-browserify": "^3.12.1",
|
||||
"assert": "^2.1.0",
|
||||
@@ -1449,7 +1384,7 @@
|
||||
"console-browserify": "^1.2.0",
|
||||
"constants-browserify": "^1.0.0",
|
||||
"domain-browser": "^4.23.0",
|
||||
"elliptic": "^6.5.4",
|
||||
"elliptic": "^6.5.7",
|
||||
"events": "^3.3.0",
|
||||
"https-browserify": "^1.0.0",
|
||||
"os-browserify": "^0.3.0",
|
||||
@@ -1463,7 +1398,7 @@
|
||||
"string_decoder": "^1.3.0",
|
||||
"timers-browserify": "^2.0.12",
|
||||
"tty-browserify": "0.0.1",
|
||||
"url": "^0.11.3",
|
||||
"url": "^0.11.4",
|
||||
"util": "^0.12.5",
|
||||
"vm-browserify": "^1.1.2"
|
||||
},
|
||||
@@ -1663,12 +1598,14 @@
|
||||
"bundled": true
|
||||
},
|
||||
"call-bind": {
|
||||
"version": "1.0.5",
|
||||
"version": "1.0.7",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"es-define-property": "^1.0.0",
|
||||
"es-errors": "^1.3.0",
|
||||
"function-bind": "^1.1.2",
|
||||
"get-intrinsic": "^1.2.1",
|
||||
"set-function-length": "^1.1.1"
|
||||
"get-intrinsic": "^1.2.4",
|
||||
"set-function-length": "^1.2.1"
|
||||
}
|
||||
},
|
||||
"cipher-base": {
|
||||
@@ -1729,12 +1666,12 @@
|
||||
}
|
||||
},
|
||||
"define-data-property": {
|
||||
"version": "1.1.1",
|
||||
"version": "1.1.4",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"get-intrinsic": "^1.2.1",
|
||||
"gopd": "^1.0.1",
|
||||
"has-property-descriptors": "^1.0.0"
|
||||
"es-define-property": "^1.0.0",
|
||||
"es-errors": "^1.3.0",
|
||||
"gopd": "^1.0.1"
|
||||
}
|
||||
},
|
||||
"define-properties": {
|
||||
@@ -1774,7 +1711,7 @@
|
||||
"bundled": true
|
||||
},
|
||||
"elliptic": {
|
||||
"version": "6.5.5",
|
||||
"version": "6.5.7",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"bn.js": "^4.11.9",
|
||||
@@ -1792,6 +1729,17 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"es-define-property": {
|
||||
"version": "1.0.0",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"get-intrinsic": "^1.2.4"
|
||||
}
|
||||
},
|
||||
"es-errors": {
|
||||
"version": "1.3.0",
|
||||
"bundled": true
|
||||
},
|
||||
"events": {
|
||||
"version": "3.3.0",
|
||||
"bundled": true
|
||||
@@ -1816,9 +1764,10 @@
|
||||
"bundled": true
|
||||
},
|
||||
"get-intrinsic": {
|
||||
"version": "1.2.2",
|
||||
"version": "1.2.4",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"es-errors": "^1.3.0",
|
||||
"function-bind": "^1.1.2",
|
||||
"has-proto": "^1.0.1",
|
||||
"has-symbols": "^1.0.3",
|
||||
@@ -1833,10 +1782,10 @@
|
||||
}
|
||||
},
|
||||
"has-property-descriptors": {
|
||||
"version": "1.0.1",
|
||||
"version": "1.0.2",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"get-intrinsic": "^1.2.2"
|
||||
"es-define-property": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"has-proto": {
|
||||
@@ -1969,7 +1918,7 @@
|
||||
"bundled": true
|
||||
},
|
||||
"object-inspect": {
|
||||
"version": "1.13.1",
|
||||
"version": "1.13.2",
|
||||
"bundled": true
|
||||
},
|
||||
"object-is": {
|
||||
@@ -2070,10 +2019,10 @@
|
||||
"bundled": true
|
||||
},
|
||||
"qs": {
|
||||
"version": "6.11.2",
|
||||
"version": "6.13.0",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"side-channel": "^1.0.4"
|
||||
"side-channel": "^1.0.6"
|
||||
}
|
||||
},
|
||||
"querystring-es3": {
|
||||
@@ -2117,13 +2066,15 @@
|
||||
"bundled": true
|
||||
},
|
||||
"set-function-length": {
|
||||
"version": "1.1.1",
|
||||
"version": "1.2.2",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"define-data-property": "^1.1.1",
|
||||
"get-intrinsic": "^1.2.1",
|
||||
"define-data-property": "^1.1.4",
|
||||
"es-errors": "^1.3.0",
|
||||
"function-bind": "^1.1.2",
|
||||
"get-intrinsic": "^1.2.4",
|
||||
"gopd": "^1.0.1",
|
||||
"has-property-descriptors": "^1.0.0"
|
||||
"has-property-descriptors": "^1.0.2"
|
||||
}
|
||||
},
|
||||
"setimmediate": {
|
||||
@@ -2139,12 +2090,13 @@
|
||||
}
|
||||
},
|
||||
"side-channel": {
|
||||
"version": "1.0.4",
|
||||
"version": "1.0.6",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"call-bind": "^1.0.0",
|
||||
"get-intrinsic": "^1.0.2",
|
||||
"object-inspect": "^1.9.0"
|
||||
"call-bind": "^1.0.7",
|
||||
"es-errors": "^1.3.0",
|
||||
"get-intrinsic": "^1.2.4",
|
||||
"object-inspect": "^1.13.1"
|
||||
}
|
||||
},
|
||||
"stream-browserify": {
|
||||
@@ -2184,11 +2136,11 @@
|
||||
"bundled": true
|
||||
},
|
||||
"url": {
|
||||
"version": "0.11.3",
|
||||
"version": "0.11.4",
|
||||
"bundled": true,
|
||||
"requires": {
|
||||
"punycode": "^1.4.1",
|
||||
"qs": "^6.11.2"
|
||||
"qs": "^6.12.3"
|
||||
}
|
||||
},
|
||||
"util": {
|
||||
@@ -2438,9 +2390,9 @@
|
||||
"integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="
|
||||
},
|
||||
"object-inspect": {
|
||||
"version": "1.13.1",
|
||||
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz",
|
||||
"integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ=="
|
||||
"version": "1.13.2",
|
||||
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz",
|
||||
"integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g=="
|
||||
},
|
||||
"once": {
|
||||
"version": "1.4.0",
|
||||
@@ -2534,20 +2486,15 @@
|
||||
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
|
||||
"integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
|
||||
},
|
||||
"process-warning": {
|
||||
"version": "2.3.2",
|
||||
"resolved": "https://registry.npmjs.org/process-warning/-/process-warning-2.3.2.tgz",
|
||||
"integrity": "sha512-n9wh8tvBe5sFmsqlg+XQhaQLumwpqoAUruLwjCopgTmUBjJ/fjtBsJzKleCaIGBOMXYEhp1YfKl4d7rJ5ZKJGA=="
|
||||
},
|
||||
"punycode": {
|
||||
"version": "2.3.1",
|
||||
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
|
||||
"integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg=="
|
||||
},
|
||||
"qs": {
|
||||
"version": "6.12.1",
|
||||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.12.1.tgz",
|
||||
"integrity": "sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ==",
|
||||
"version": "6.13.0",
|
||||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz",
|
||||
"integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==",
|
||||
"requires": {
|
||||
"side-channel": "^1.0.6"
|
||||
}
|
||||
@@ -2625,6 +2572,11 @@
|
||||
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
|
||||
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
|
||||
},
|
||||
"safer-buffer": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
|
||||
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
|
||||
},
|
||||
"sax": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz",
|
||||
|
||||
+7
-6
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "wekan",
|
||||
"version": "v7.52.0",
|
||||
"version": "v7.57.0",
|
||||
"description": "Open-Source kanban",
|
||||
"private": true,
|
||||
"repository": {
|
||||
@@ -17,9 +17,10 @@
|
||||
"sinon": "^13.0.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.24.7",
|
||||
"@babel/runtime": "^7.25.0",
|
||||
"@mapbox/node-pre-gyp": "^1.0.10",
|
||||
"@rwap/jquery-ui-touch-punch": "^1.0.11",
|
||||
"@wekanteam/dragscroll": "github:wekan/dragscroll",
|
||||
"@wekanteam/exceljs": "github:wekan/exceljs",
|
||||
"@wekanteam/html-to-markdown": "^1.0.2",
|
||||
"@wekanteam/meteor-globals": "^1.1.4",
|
||||
@@ -27,7 +28,7 @@
|
||||
"ajv": "^6.12.6",
|
||||
"bcryptjs": "^2.4.3",
|
||||
"bson": "^4.5.2",
|
||||
"dompurify": "^2.5.5",
|
||||
"dompurify": "^2.5.6",
|
||||
"es6-promise": "^4.2.4",
|
||||
"escape-string-regexp": "^5.0.0",
|
||||
"fibers": "^5.0.3",
|
||||
@@ -38,19 +39,19 @@
|
||||
"jquery": "^3.7.1",
|
||||
"jquery-ui": "^1.13.3",
|
||||
"jszip": "^3.7.1",
|
||||
"ldapjs": "^3.0.7",
|
||||
"ldapjs": "^2.3.3",
|
||||
"markdown-it": "^12.3.2",
|
||||
"markdown-it-emoji": "^2.0.0",
|
||||
"markdown-it-mathjax3": "^4.3.2",
|
||||
"meteor-accounts-t9n": "^2.6.0",
|
||||
"meteor-node-stubs": "^1.2.9",
|
||||
"meteor-node-stubs": "^1.2.10",
|
||||
"minio": "^7.1.3",
|
||||
"moment": "^2.29.4",
|
||||
"os": "^0.1.2",
|
||||
"page": "^1.11.6",
|
||||
"papaparse": "^5.3.1",
|
||||
"pretty-ms": "^7.0.1",
|
||||
"qs": "^6.12.1",
|
||||
"qs": "^6.13.0",
|
||||
"simpl-schema": "^3.4.6",
|
||||
"source-map-support": "^0.5.20",
|
||||
"uuid": "^8.3.2"
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<meta charset="utf-8">
|
||||
<meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<title>Wekan REST API v7.52</title>
|
||||
<title>Wekan REST API v7.57</title>
|
||||
|
||||
<style>
|
||||
</style>
|
||||
@@ -1548,7 +1548,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
|
||||
<ul class="toc-list-h1">
|
||||
|
||||
<li>
|
||||
<a href="#wekan-rest-api" class="toc-h1 toc-link" data-title="Wekan REST API v7.52">Wekan REST API v7.52</a>
|
||||
<a href="#wekan-rest-api" class="toc-h1 toc-link" data-title="Wekan REST API v7.57">Wekan REST API v7.57</a>
|
||||
|
||||
</li>
|
||||
|
||||
@@ -2067,7 +2067,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
|
||||
<div class="page-wrapper">
|
||||
<div class="dark-box"></div>
|
||||
<div class="content">
|
||||
<h1 id="wekan-rest-api">Wekan REST API v7.52</h1>
|
||||
<h1 id="wekan-rest-api">Wekan REST API v7.57</h1>
|
||||
<blockquote>
|
||||
<p>Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.</p>
|
||||
</blockquote>
|
||||
@@ -19387,7 +19387,7 @@ UserSecurity
|
||||
<tr>
|
||||
<td>question</td>
|
||||
<td>boolean</td>
|
||||
<td>true</td>
|
||||
<td>false</td>
|
||||
<td>none</td>
|
||||
<td>none</td>
|
||||
</tr>
|
||||
@@ -19471,7 +19471,7 @@ UserSecurity
|
||||
<tr>
|
||||
<td>allowNonBoardMembers</td>
|
||||
<td>boolean</td>
|
||||
<td>true</td>
|
||||
<td>false</td>
|
||||
<td>none</td>
|
||||
<td>none</td>
|
||||
</tr>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
swagger: '2.0'
|
||||
info:
|
||||
title: Wekan REST API
|
||||
version: v7.52
|
||||
version: v7.57
|
||||
description: |
|
||||
The REST API allows you to control and extend Wekan with ease.
|
||||
|
||||
@@ -3436,9 +3436,6 @@ definitions:
|
||||
description: |
|
||||
poker estimation value
|
||||
type: number
|
||||
required:
|
||||
- question
|
||||
- allowNonBoardMembers
|
||||
CardsCustomfields:
|
||||
type: object
|
||||
ChecklistItems:
|
||||
|
||||
@@ -508,7 +508,7 @@
|
||||
"theme_color": "#000000",
|
||||
"background_color": "#000000",
|
||||
"start_url": "sign-in",
|
||||
"display": "fullscreen",
|
||||
"display": "standalone",
|
||||
"orientation": "any",
|
||||
"categories": [
|
||||
"productivity"
|
||||
@@ -519,6 +519,6 @@
|
||||
"scope": "https://boards.wekan.team",
|
||||
"prefer_related_applications": false,
|
||||
"display_override": [
|
||||
"fullscreen"
|
||||
"standalone"
|
||||
]
|
||||
}
|
||||
@@ -20,7 +20,7 @@ cd ~/repos/w/wekan.github.io
|
||||
git pull
|
||||
|
||||
# 4) Change version number in website
|
||||
sed -i "s|>v$1<\/span>|>v$2<\/span>|g" index.html
|
||||
sed -i "s|>v$1<\/span>|>v$2<\/span>|g" install/index.html
|
||||
|
||||
# 5) Change version number in API docs index page
|
||||
cd api
|
||||
|
||||
@@ -22,10 +22,10 @@ const pkgdef :Spk.PackageDefinition = (
|
||||
appTitle = (defaultText = "Wekan"),
|
||||
# The name of the app as it is displayed to the user.
|
||||
|
||||
appVersion = 752,
|
||||
appVersion = 757,
|
||||
# Increment this for every release.
|
||||
|
||||
appMarketingVersion = (defaultText = "7.52.0~2024-08-03"),
|
||||
appMarketingVersion = (defaultText = "7.57.0~2024-09-04"),
|
||||
# Human-readable presentation of the app version.
|
||||
|
||||
minUpgradableAppVersion = 0,
|
||||
|
||||
@@ -1443,3 +1443,17 @@ Migrations.add('attachment-cardCopy-fix-boardId-etc', () => {
|
||||
});
|
||||
});
|
||||
*/
|
||||
|
||||
Migrations.add('remove-unused-planning-poker', () => {
|
||||
Cards.update(
|
||||
{
|
||||
"poker.question": false,
|
||||
},
|
||||
{
|
||||
$unset: {
|
||||
"poker": 1,
|
||||
},
|
||||
},
|
||||
noValidateMulti,
|
||||
);
|
||||
});
|
||||
@@ -80,17 +80,14 @@ if [ -z "$MONGO_URL" ]; then
|
||||
|
||||
# start mongo deamon
|
||||
BIND_OPTIONS=""
|
||||
SH_BIND_OPTIONS=""
|
||||
if [ "nill" != "$MONGODB_BIND_UNIX_SOCKET" ] && [ "x" != "x${MONGODB_BIND_UNIX_SOCKET}" ]; then
|
||||
BIND_OPTIONS+=" --unixSocketPrefix $MONGODB_BIND_UNIX_SOCKET"
|
||||
fi
|
||||
if [ "x" != "x${MONGODB_BIND_IP}" ]; then
|
||||
BIND_OPTIONS+=" --bind_ip $MONGODB_BIND_IP"
|
||||
SH_BIND_OPTIONS+=" --host $MONGODB_BIND_IP"
|
||||
fi
|
||||
if [ "x" != "x${MONGODB_PORT}" ]; then
|
||||
BIND_OPTIONS+=" --port $MONGODB_PORT"
|
||||
SH_BIND_OPTIONS+=" --port $MONGODB_PORT"
|
||||
fi
|
||||
echo "mongodb bind options: $BIND_OPTIONS"
|
||||
|
||||
@@ -112,16 +109,16 @@ if [ -z "$MONGO_URL" ]; then
|
||||
|
||||
|
||||
# Disable MongoDB telemetry and free monitoring
|
||||
mongosh wekan --eval 'disableTelemetry();' $SH_BIND_OPTIONS
|
||||
mongosh wekan --eval 'db.disableFreeMonitoring();' $SH_BIND_OPTIONS
|
||||
mongosh wekan --eval 'disableTelemetry();' $BIND_OPTIONS
|
||||
mongosh wekan --eval 'db.disableFreeMonitoring();' $BIND_OPTIONS
|
||||
# Snap: Disable apparmor="DENIED" at syslog
|
||||
# https://github.com/wekan/wekan/issues/4855
|
||||
mongosh wekan --eval 'db.adminCommand({ setParameter: 1, diagnosticDataCollectionEnabled: false});' $SH_BIND_OPTIONS
|
||||
mongosh wekan --eval 'db.adminCommand({ setParameter: 1, diagnosticDataCollectionEnabled: false});' $BIND_OPTIONS
|
||||
# Drop indexes on database upgrade, when starting MongoDB
|
||||
#mongosh wekan --eval "db.getCollectionNames().forEach(function(col_name) { var coll = db.getCollection(col_name); coll.dropIndexes(); });" $SH_BIND_OPTIONS
|
||||
mongosh wekan --eval 'db.adminCommand({ setFeatureCompatibilityVersion: "4.4" });' $SH_BIND_OPTIONS
|
||||
#mongosh wekan --eval "db.getCollectionNames().forEach(function(col_name) { var coll = db.getCollection(col_name); coll.dropIndexes(); });" $BIND_OPTIONS
|
||||
mongosh wekan --eval 'db.adminCommand({ setFeatureCompatibilityVersion: "4.4" });' $BIND_OPTIONS
|
||||
# Delete incomplete uploads so that they would not prevent starting WeKan
|
||||
mongosh wekan --eval 'db.getCollection("cfs.attachments.filerecord").find( { "uploadedAt": { "$exists": true }, "copies.attachments" : null,"failures.copies.attachments.doneTrying" : {"$ne" : true}});' $SH_BIND_OPTIONS
|
||||
mongosh wekan --eval 'db.getCollection("cfs.attachments.filerecord").find( { "uploadedAt": { "$exists": true }, "copies.attachments" : null,"failures.copies.attachments.doneTrying" : {"$ne" : true}});' $BIND_OPTIONS
|
||||
|
||||
else
|
||||
|
||||
@@ -141,15 +138,15 @@ else
|
||||
fi
|
||||
|
||||
# Disable MongoDB telemetry and free monitoring
|
||||
mongosh wekan --eval 'disableTelemetry();' $SH_BIND_OPTIONS
|
||||
mongosh wekan --eval 'db.disableFreeMonitoring();' $SH_BIND_OPTIONS
|
||||
mongosh wekan --eval 'disableTelemetry();' $BIND_OPTIONS
|
||||
mongosh wekan --eval 'db.disableFreeMonitoring();' $BIND_OPTIONS
|
||||
# Snap: Disable apparmor="DENIED" at syslog
|
||||
# https://github.com/wekan/wekan/issues/4855
|
||||
mongosh wekan --eval 'db.adminCommand({ setParameter: 1, diagnosticDataCollectionEnabled: false});' $SH_BIND_OPTIONS
|
||||
mongosh wekan --eval 'db.adminCommand({ setParameter: 1, diagnosticDataCollectionEnabled: false});' $BIND_OPTIONS
|
||||
# Drop indexes on database upgrade, when starting MongoDB
|
||||
#mongosh wekan --eval "db.getCollectionNames().forEach(function(col_name) { var coll = db.getCollection(col_name); coll.dropIndexes(); });" $SH_BIND_OPTIONS
|
||||
mongosh wekan --eval 'db.adminCommand({ setFeatureCompatibilityVersion: "4.2" });' $SH_BIND_OPTIONS
|
||||
#mongosh wekan --eval "db.getCollectionNames().forEach(function(col_name) { var coll = db.getCollection(col_name); coll.dropIndexes(); });" $BIND_OPTIONS
|
||||
mongosh wekan --eval 'db.adminCommand({ setFeatureCompatibilityVersion: "4.2" });' $BIND_OPTIONS
|
||||
# Delete incomplete uploads so that they would not prevent starting WeKan
|
||||
mongosh wekan --eval 'db.getCollection("cfs.attachments.filerecord").find( { "uploadedAt": { "$exists": true }, "copies.attachments" : null,"failures.copies.attachments.doneTrying" : {"$ne" : true}});' $SH_BIND_OPTIONS
|
||||
mongosh wekan --eval 'db.getCollection("cfs.attachments.filerecord").find( { "uploadedAt": { "$exists": true }, "copies.attachments" : null,"failures.copies.attachments.doneTrying" : {"$ne" : true}});' $BIND_OPTIONS
|
||||
|
||||
fi
|
||||
+5
-5
@@ -1,5 +1,5 @@
|
||||
name: wekan
|
||||
version: '7.52'
|
||||
version: '7.57'
|
||||
base: core20
|
||||
summary: Open Source kanban
|
||||
description: |
|
||||
@@ -65,7 +65,7 @@ apps:
|
||||
|
||||
parts:
|
||||
mongodb:
|
||||
source: https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu2004-6.0.15.tgz
|
||||
source: https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu2004-6.0.17.tgz
|
||||
plugin: dump
|
||||
stage-packages:
|
||||
- libssl1.1
|
||||
@@ -170,9 +170,9 @@ parts:
|
||||
# Cleanup
|
||||
mkdir .build
|
||||
cd .build
|
||||
wget https://github.com/wekan/wekan/releases/download/v7.52/wekan-7.52-amd64.zip
|
||||
unzip wekan-7.52-amd64.zip
|
||||
rm wekan-7.52-amd64.zip
|
||||
wget https://github.com/wekan/wekan/releases/download/v7.57/wekan-7.57-amd64.zip
|
||||
unzip wekan-7.57-amd64.zip
|
||||
rm wekan-7.57-amd64.zip
|
||||
cd ..
|
||||
##cd .build/bundle
|
||||
##find . -type d -name '*-garbage*' | xargs rm -rf
|
||||
|
||||
Reference in new issue
Block a user