mirror of
https://github.com/wekan/wekan.git
synced 2026-11-08 19:35:19 -05:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
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 | ||
|
|
f9654d17d5 | ||
|
|
c89f3ba3da | ||
|
|
1dc5ae444e | ||
|
|
5db67e47a8 | ||
|
|
3877e5feb9 | ||
|
|
7456186265 | ||
|
|
952f7feb49 | ||
|
|
3983d750f3 | ||
|
|
b4f2a8ab5b | ||
|
|
e8a4554789 | ||
|
|
de3bc9cb4d | ||
|
|
e09f028cd1 | ||
|
|
ea9f597685 | ||
|
|
e538fb9514 | ||
|
|
32fed3d048 | ||
|
|
c6b6d1aa40 | ||
|
|
b9615ccbad | ||
|
|
0032a91f66 | ||
|
|
88f6076422 | ||
|
|
8e11ecf799 | ||
|
|
d04c5c9846 | ||
|
|
e46a66904f | ||
|
|
d038cb4a2d | ||
|
|
78e68c7fea | ||
|
|
700f345576 | ||
|
|
22067198ab | ||
|
|
21d6dfd790 | ||
|
|
e663ce038a | ||
|
|
367b7778fd | ||
|
|
989e0a5326 | ||
|
|
13940f0663 | ||
|
|
09e87f207c | ||
|
|
954ec05d41 |
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 \
|
||||
|
||||
@@ -38,7 +38,7 @@ jobs:
|
||||
# https://github.com/docker/login-action
|
||||
- name: Log into registry ${{ env.REGISTRY }}
|
||||
if: github.event_name != 'pull_request'
|
||||
uses: docker/login-action@0d4c9c5ea7693da7b068278f7b52bda2a190a446
|
||||
uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567
|
||||
with:
|
||||
registry: ${{ env.REGISTRY }}
|
||||
username: ${{ github.actor }}
|
||||
@@ -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@31159d49c0d4756269a0940a750801a1ea5d7003
|
||||
uses: docker/build-push-action@5176d81f87c23d6fc96624dfdbcd9f3830bbe445
|
||||
with:
|
||||
context: .
|
||||
push: ${{ github.event_name != 'pull_request' }}
|
||||
|
||||
+133
@@ -15,6 +15,139 @@ Fixing other platforms In Progress.
|
||||
|
||||
[How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585)
|
||||
|
||||
# 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:
|
||||
|
||||
- [Helm Chart: Add option to set resource limits for initContainer](https://github.com/wekan/charts/pull/33).
|
||||
Thanks to mreichelt-dicos.
|
||||
- [Helm Chart: Fixes for mongodb persistence. Please test is this correct](https://github.com/wekan/charts/commit/7efb071dd91d76c3971e1865fd18f9d43d8c6891).
|
||||
Thanks to emoritzx.
|
||||
- [Helm Chart: Added info about rarely used running WeKan at subpath](https://github.com/wekan/charts/commit/7d4176c7b328c5477c1fa29a323574aac78616a9).
|
||||
Thanks to emoritzx.
|
||||
|
||||
and adds the following updates:
|
||||
|
||||
- Updated dependencies.
|
||||
[Part 1](https://github.com/wekan/wekan/pull/5460),
|
||||
[Part 2](https://github.com/wekan/wekan/pull/5464),
|
||||
[Part 3](https://github.com/wekan/wekan/pull/5460),
|
||||
[Part 4](https://github.com/wekan/wekan/pull/5469),
|
||||
[Part 5](https://github.com/wekan/wekan/pull/5470),
|
||||
[Part 6](https://github.com/wekan/wekan/pull/5471),
|
||||
[Part 7](https://github.com/wekan/wekan/pull/5473).
|
||||
Thanks to dependabot.
|
||||
- Added RepoCloud SaaS.
|
||||
[Part 1](https://github.com/wekan/wekan/commit/21d6dfd79090f9885635f55537bd9fa1ef8539e1),
|
||||
[Part 2](https://github.com/wekan/wekan/commit/e663ce038af397f547e8823d61ce5dc2e3cea84d),
|
||||
[Part 3](https://github.com/wekan/wekan.github.io/commit/e9e0550824cdda31daae42df7c497fbd037fd78f).
|
||||
Thanks to RepoCloud.
|
||||
- [Updated WeKan app webmanifest](https://github.com/wekan/wekan/commit/745618626535743938b9d2e8c88afe6345807a85).
|
||||
Thanks to xet7.
|
||||
- [Revert forking of ldapjs](https://github.com/wekan/wekan/commit/c89f3ba3da6512169e033d76377a9190b35a92d2).
|
||||
Thanks to xet7.
|
||||
|
||||
and fixes the following bugs:
|
||||
|
||||
- [Fixes to Clean light and Clean dark themes](https://github.com/wekan/wekan/pull/5458).
|
||||
Thanks to abramchikd.
|
||||
- [Activities, adding back "created at" field](https://github.com/wekan/wekan/pull/5476).
|
||||
Thanks to mfilser.
|
||||
- [Fix typos at attachments code](https://github.com/wekan/wekan/commit/de3bc9cb4d20590c45ff72ef7749d830ea3fc16c).
|
||||
Thanks to xet7.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v7.51 2024-06-27 WeKan ® release
|
||||
|
||||
This release adds the following updates:
|
||||
|
||||
+3
-3
@@ -202,7 +202,7 @@ ln -s "/usr/local/bin/node" "/usr/local/bin/nodejs"
|
||||
mkdir -p "/opt/nodejs/lib/node_modules/fibers/.node-gyp" "/root/.node-gyp/${NODE_VERSION} /home/wekan/.config"
|
||||
|
||||
# Install node dependencies
|
||||
npm install -g npm@${NPM_VERSION}
|
||||
npm install -g npm@${NPM_VERSION} --production
|
||||
chown --recursive wekan:wekan /home/wekan/.config
|
||||
|
||||
# Install Meteor
|
||||
@@ -222,11 +222,11 @@ cd /home/wekan/app
|
||||
mkdir -p /home/wekan/.npm
|
||||
chown --recursive wekan:wekan /home/wekan/.npm
|
||||
chmod u+w *.json
|
||||
gosu wekan:wekan meteor npm install
|
||||
gosu wekan:wekan meteor npm install --production
|
||||
gosu wekan:wekan /home/wekan/.meteor/meteor build --directory /home/wekan/app_build
|
||||
cd /home/wekan/app_build/bundle/programs/server/
|
||||
chmod u+w *.json
|
||||
gosu wekan:wekan meteor npm install
|
||||
gosu wekan:wekan meteor npm install --production
|
||||
cd node_modules/fibers
|
||||
node build.js
|
||||
cd ../..
|
||||
|
||||
+1
-2
@@ -1,8 +1,7 @@
|
||||
About money, see [CONTRIBUTING.md](CONTRIBUTING.md)
|
||||
|
||||
Security is very important to us. If you discover any issue regarding security, please disclose
|
||||
the information responsibly by sending an email to support (at) wekan.team using
|
||||
[this PGP public key](support-at-wekan.team_pgp-publickey.asc) and not by
|
||||
the information responsibly by sending an email to support@wekan.team and not by
|
||||
creating a GitHub issue. We will respond swiftly to fix verifiable security issues.
|
||||
|
||||
We thank you with a place at our hall of fame page, that is
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928
|
||||
appVersion: "v7.51.0"
|
||||
appVersion: "v7.55.0"
|
||||
files:
|
||||
userUploads:
|
||||
- README.md
|
||||
|
||||
@@ -16,7 +16,6 @@ template(name="cardActivities")
|
||||
+activity(activity=activityData card=card mode=mode)
|
||||
|
||||
template(name="editOrDeleteComment")
|
||||
= ' - '
|
||||
a.js-open-inlined-form {{_ "edit"}}
|
||||
= ' - '
|
||||
a.js-delete-comment {{_ "delete"}}
|
||||
@@ -145,11 +144,10 @@ template(name="activity")
|
||||
+viewer
|
||||
= activity.comment.text
|
||||
+commentReactions(reactions=activity.comment.reactions commentId=activity.comment._id)
|
||||
span(title=activity.createdAt).activity-meta {{ moment activity.createdAt }}
|
||||
if($eq currentUser._id activity.comment.userId)
|
||||
+editOrDeleteComment
|
||||
else if currentUser.isBoardAdmin
|
||||
+editOrDeleteComment
|
||||
if($eq currentUser._id activity.comment.userId)
|
||||
+editOrDeleteComment
|
||||
else if currentUser.isBoardAdmin
|
||||
+editOrDeleteComment
|
||||
|
||||
if($eq activity.activityType 'deleteComment')
|
||||
| {{{_ 'activity-deleteComment' activity.commentId}}}.
|
||||
@@ -242,3 +240,5 @@ template(name="activity")
|
||||
= ' @'
|
||||
else if(currentData.timeValue)
|
||||
| {{_ activity.activityType currentData.timeValue}}
|
||||
|
||||
div(title=activity.createdAt).activity-meta {{ moment activity.createdAt }}
|
||||
@@ -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();
|
||||
},
|
||||
|
||||
|
||||
File diff suppressed because it is too large.
Load diff
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
https://repocloud.io
|
||||
|
||||
[](https://repocloud.io/details/?app_id=34)
|
||||
@@ -0,0 +1,11 @@
|
||||
<svg version="1.2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 185 42" width="185" height="42">
|
||||
<title>New Project</title>
|
||||
<defs>
|
||||
<image width="185" height="42" id="img1" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALkAAAAqCAMAAADYgQqDAAAAAXNSR0IB2cksfwAAAiVQTFRFAAAAADbzADb0ADf0ADf0AEP+ADb0ADf0ADf0ADf0ADb0ADn1ADb0ADfzADr0ADb0ACn+ADX0ADb1ADf1ADb1AjjwFD3FIUCmKEKVJ0KYHT+wDTvWDzvPMESDQElcVFljaG11XGNtSE9aPUhkJkKZBznkHD+yREpUeHyE29vg9fX59vb67O/1x9Xenqy2TlVeDDrXRE1fpaeu8/P38PL31uHpu8rVaXF7CzrZCTrfPkhilpqg9PX5usnUMkV9JUGeHj+sDTvVYGVt3N3i8vP4ws7XY2t1TlRdVVxlSE5YIkGjAzjuBDjrMUWAnaCncnd+VlxkwsTJ5+zyxNTelqOtR01WAjfwGT66PUhjnJ+l5OXpzM3S4+To4unwx9fiorC6SlFcHT+vEzzGN0ZzTlNdY2hwT1VeV11lv8HHz9zmxtbhf4mTO0hnBjnnBjnlOUdsz9HW4uLn0dLXiIyTiY2U2OLqnqu2QklXDDrYHD+xWV5n2tvf2+TsqLXADTvUJ0KXg4iP8vL21eDpk6CqQEldCTreJUGcfICH7u7z8fL3y9nkxNTfZG12NEV6FT3DTFJdvL7D1uHqwtLdeIOMQUpeL0SESE5XlJeevb/EwcLIqbK6hZCaVl5nQ0pUFj2/BTjpIUCnOkdrOkdqLUSKAzjsBznjBzniADfzADf1ADv4AP7+ADbzADf0ADb0AEn+ADbzADn2ADf0ADb0ADb2ADf1ADfzADX1vF/DlwAAALd0Uk5TAESj1f8Mkf6QuLBgWNAS/QhIQFJR////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////KCAB9eiABc8v/PkuheA9q/Y6cAAAAetJREFUeJzt2E0oBGEcx/Hnl2g3djNtxEFpU/aipBycXDcRdm1LXo6Su5ODcpDEWdoLIWvLtltKzi6UknKhJOWwSvL+krSemd0ZuzNqXg7z39V+LzM9T1OfpmeemV0wHnisaErz+IGLy4Fvao25yvD9JcqdX9QS81W8cXnlJzXDSo4XMNc7tcJKzme48UqtsFIlIDxTI6zlhueR2mCt6pLc9kpy+1PLBUjdUnmMp5LXQe6KjGSwfLlXgb+4zuhQhsqTe/mL6YMfnZx+V3NMpzJSrrwdeMicCZ+Om4ZzH3BA5dIvV17rQyp7Wg9cNwIXzdgngumWI/cDl8p4EyDecxx2xGlguv3K/XyR41Qeb8UJY23is7pORdNJkY9l9pS8hS20iEPLJDDdZPkkkn0icy9vtuu1Clgkgekmy6eAhHa2/94TC8/ZbTKWLJ8GYtrZcIpvMjN2m4wly2f/ehSltX9UoJuLLF8AIuo5IcTh8yntRQWRLA90av/nkjabcQqVkZRdMQKsqCcnsFS4310579BV9T1Pbw2P2g4y3P/5TVQ8leT2V5LbXzWiI9QGa20ihiFqhJWiA2A7YWqFlbaDYHGEqBnmc64F+Bs/gSA1xGxx9DDpW2UXvdQWMyXT3Yyx7FeWu3i2mI3BJ+n4A1vsbia38Q0EAAAAAElFTkSuQmCC"/>
|
||||
</defs>
|
||||
<style>
|
||||
.s0 { fill: #ffffff }
|
||||
</style>
|
||||
<use id="Layer 3" href="#img1" x="0" y="0"/>
|
||||
<path id="Deploy on RepoCloud " class="s0" aria-label="Deploy on RepoCloud " d="m41.3 25h-2.7v-1.8h2.6q0.9 0 1.6-0.4 0.6-0.3 1-1 0.3-0.8 0.3-1.9 0-1.1-0.3-1.8-0.4-0.8-1-1.1-0.7-0.3-1.6-0.3h-2.6v-1.9h2.7q1.5 0 2.6 0.6 1.2 0.6 1.7 1.8 0.6 1.1 0.6 2.7 0 1.6-0.6 2.7-0.6 1.2-1.7 1.8-1.1 0.6-2.6 0.6zm-3.6-10.2h2.1v10.2h-2.1zm13.1 10.3q-1.2 0-2-0.4-0.9-0.5-1.3-1.4-0.5-0.9-0.5-2.1 0-1.2 0.5-2.1 0.4-0.9 1.3-1.4 0.8-0.5 1.9-0.5 0.8 0 1.4 0.3 0.7 0.2 1.2 0.7 0.5 0.5 0.7 1.2 0.3 0.8 0.3 1.7v0.6h-6.4v-1.3h5.4l-1 0.3q0-0.5-0.2-1-0.1-0.4-0.5-0.6-0.3-0.3-0.9-0.3-0.5 0-0.8 0.3-0.4 0.2-0.6 0.6-0.2 0.4-0.2 1v0.9q0 0.6 0.2 1 0.3 0.5 0.6 0.7 0.4 0.3 0.9 0.3 0.4 0 0.7-0.1 0.3-0.1 0.5-0.3 0.2-0.2 0.3-0.5l2 0.1q-0.2 0.7-0.6 1.2-0.5 0.6-1.2 0.8-0.7 0.3-1.7 0.3zm6.5 2.7h-2.1v-10.5h2.1v1.3h0.1q0.1-0.3 0.4-0.6 0.3-0.3 0.7-0.5 0.4-0.3 1.1-0.3 0.8 0 1.5 0.5 0.7 0.4 1.1 1.3 0.5 0.9 0.5 2.2 0 1.2-0.4 2.1-0.5 0.9-1.2 1.4-0.7 0.4-1.5 0.4-0.6 0-1.1-0.2-0.4-0.2-0.7-0.5-0.3-0.3-0.4-0.6h-0.1zm1.6-4.5q0.5 0 0.9-0.2 0.3-0.3 0.5-0.8 0.2-0.5 0.2-1.2 0-0.7-0.2-1.2-0.2-0.5-0.5-0.8-0.4-0.3-0.9-0.3-0.5 0-0.9 0.3-0.3 0.3-0.5 0.8-0.2 0.5-0.2 1.2 0 0.7 0.2 1.2 0.2 0.5 0.5 0.8 0.4 0.2 0.9 0.2zm4.7-8.6h2.1v10.2h-2.1zm6.8 10.3q-1.2 0-2-0.5-0.9-0.5-1.3-1.3-0.5-0.9-0.5-2.1 0-1.2 0.5-2.1 0.4-0.9 1.3-1.3 0.8-0.5 2-0.5 1.1 0 2 0.5 0.8 0.4 1.3 1.3 0.4 0.9 0.4 2.1 0 1.2-0.4 2.1-0.5 0.8-1.3 1.3-0.9 0.5-2 0.5zm0-1.6q0.5 0 0.9-0.3 0.3-0.3 0.5-0.8 0.2-0.5 0.2-1.2 0-0.7-0.2-1.2-0.2-0.5-0.5-0.8-0.4-0.3-0.9-0.3-0.5 0-0.9 0.3-0.4 0.3-0.5 0.8-0.2 0.5-0.2 1.2 0 0.7 0.2 1.2 0.1 0.5 0.5 0.8 0.4 0.3 0.9 0.3zm5.7 4.3q-0.4 0.1-0.7 0-0.4-0.1-0.6-0.2l0.5-1.5q0.6 0.1 1 0 0.3 0 0.5-0.6l0.2-0.3-2.8-7.9h2.3l1.5 5.7h0.1l1.6-5.7h2.2l-2.9 8.5q-0.2 0.6-0.6 1.1-0.4 0.4-0.9 0.7-0.6 0.2-1.4 0.2zm12.7-2.7q-1.1 0-2-0.5-0.8-0.5-1.3-1.3-0.4-0.9-0.4-2.1 0-1.2 0.4-2.1 0.5-0.9 1.3-1.3 0.9-0.5 2-0.5 1.2 0 2 0.5 0.9 0.4 1.3 1.3 0.5 0.9 0.5 2.1 0 1.2-0.5 2.1-0.4 0.8-1.3 1.3-0.8 0.5-2 0.5zm0-1.6q0.5 0 0.9-0.3 0.4-0.3 0.5-0.8 0.2-0.5 0.2-1.2 0-0.7-0.2-1.2-0.1-0.5-0.5-0.8-0.4-0.3-0.9-0.3-0.5 0-0.9 0.3-0.3 0.3-0.5 0.8-0.2 0.5-0.2 1.2 0 0.7 0.2 1.2 0.2 0.5 0.5 0.8 0.4 0.3 0.9 0.3zm6.8-2.9v4.4h-2.1v-7.7h2.1v1.4h0.1q0.2-0.7 0.8-1.1 0.6-0.3 1.4-0.3 0.8 0 1.4 0.3 0.6 0.3 0.9 1 0.3 0.6 0.3 1.5v4.9h-2.1v-4.5q0-0.7-0.3-1.1-0.4-0.4-1-0.4-0.5 0-0.8 0.2-0.3 0.2-0.5 0.5-0.2 0.4-0.2 0.9zm11.2 4.4h-2.2v-10.2h4q1.2 0 2 0.4 0.8 0.4 1.2 1.2 0.5 0.7 0.5 1.7 0 1-0.5 1.8-0.4 0.7-1.2 1.1-0.9 0.4-2 0.4h-2.7v-1.7h2.3q0.6 0 1-0.2 0.5-0.2 0.7-0.5 0.2-0.4 0.2-0.9 0-0.5-0.2-0.8-0.2-0.4-0.7-0.5-0.4-0.2-1-0.2h-1.4zm5.8 0h-2.3l-2.5-4.7h2.3zm4 0.2q-1.1 0-2-0.5-0.9-0.5-1.3-1.4-0.5-0.8-0.5-2.1 0-1.1 0.5-2 0.4-0.9 1.3-1.4 0.8-0.5 1.9-0.5 0.8 0 1.4 0.2 0.7 0.3 1.2 0.8 0.5 0.4 0.8 1.2 0.2 0.7 0.2 1.7v0.6h-6.4v-1.4h5.4l-1 0.4q0-0.6-0.2-1-0.1-0.5-0.5-0.7-0.3-0.2-0.9-0.2-0.5 0-0.8 0.2-0.4 0.3-0.6 0.7-0.2 0.4-0.2 0.9v0.9q0 0.7 0.2 1.1 0.3 0.4 0.6 0.7 0.4 0.2 1 0.2 0.3 0 0.6-0.1 0.3-0.1 0.5-0.3 0.2-0.2 0.3-0.5l2 0.2q-0.2 0.7-0.6 1.2-0.5 0.5-1.2 0.8-0.7 0.3-1.7 0.3zm6.5 2.7h-2.1v-10.5h2.1v1.3h0.1q0.1-0.3 0.4-0.7 0.3-0.3 0.7-0.5 0.4-0.2 1.1-0.2 0.8 0 1.5 0.4 0.7 0.5 1.1 1.3 0.5 0.9 0.5 2.2 0 1.3-0.4 2.2-0.5 0.9-1.2 1.3-0.7 0.5-1.5 0.5-0.6 0-1.1-0.2-0.4-0.3-0.7-0.6-0.2-0.3-0.4-0.6h-0.1zm1.6-4.4q0.5 0 0.9-0.3 0.3-0.3 0.5-0.8 0.2-0.5 0.2-1.2 0-0.6-0.2-1.1-0.2-0.5-0.5-0.8-0.4-0.3-0.9-0.3-0.5 0-0.9 0.3-0.3 0.2-0.5 0.8-0.2 0.5-0.2 1.1 0 0.7 0.2 1.2 0.2 0.5 0.5 0.8 0.4 0.3 0.9 0.3zm8.1 1.7q-1.1 0-2-0.5-0.8-0.5-1.3-1.4-0.4-0.9-0.4-2 0-1.2 0.4-2.1 0.5-0.9 1.3-1.4 0.9-0.5 2-0.5 1.2 0 2 0.5 0.9 0.5 1.3 1.4 0.5 0.9 0.5 2.1 0 1.1-0.5 2-0.4 0.9-1.3 1.4-0.8 0.5-2 0.5zm0.1-1.7q0.5 0 0.8-0.2 0.4-0.3 0.6-0.9 0.2-0.5 0.2-1.1 0-0.7-0.2-1.2-0.2-0.5-0.6-0.8-0.3-0.3-0.8-0.3-0.6 0-0.9 0.3-0.4 0.3-0.6 0.8-0.2 0.5-0.2 1.2 0 0.6 0.2 1.1 0.2 0.6 0.6 0.9 0.3 0.2 0.9 0.2zm9.2 1.7q-1.3 0-2.4-0.6-1.1-0.6-1.7-1.8-0.6-1.2-0.6-2.8 0-1.7 0.6-2.9 0.6-1.1 1.7-1.8 1.1-0.6 2.4-0.6 0.9 0 1.7 0.3 0.7 0.2 1.3 0.7 0.6 0.5 1 1.2 0.3 0.7 0.4 1.5h-2.1q-0.1-0.4-0.3-0.7-0.2-0.4-0.4-0.6-0.3-0.2-0.7-0.3-0.4-0.2-0.8-0.2-0.8 0-1.4 0.4-0.6 0.4-0.9 1.2-0.3 0.7-0.3 1.8 0 1.1 0.3 1.8 0.3 0.7 0.9 1.1 0.6 0.4 1.4 0.4 0.4 0 0.8-0.1 0.3-0.1 0.6-0.4 0.3-0.2 0.5-0.5 0.2-0.3 0.3-0.7h2.1q0 0.7-0.4 1.3-0.3 0.7-0.9 1.2-0.5 0.5-1.3 0.8-0.8 0.3-1.8 0.3zm5.5-10.3h2.1v10.2h-2.1zm6.8 10.3q-1.2 0-2-0.5-0.8-0.5-1.3-1.4-0.5-0.9-0.5-2 0-1.2 0.5-2.1 0.5-0.9 1.3-1.4 0.8-0.5 2-0.5 1.2 0 2 0.5 0.8 0.5 1.3 1.4 0.5 0.9 0.5 2.1 0 1.1-0.5 2-0.5 0.9-1.3 1.4-0.8 0.5-2 0.5zm0-1.7q0.5 0 0.9-0.3 0.3-0.3 0.5-0.8 0.2-0.5 0.2-1.2 0-0.6-0.2-1.1-0.2-0.6-0.5-0.9-0.4-0.2-0.9-0.2-0.5 0-0.9 0.2-0.3 0.3-0.5 0.9-0.2 0.5-0.2 1.1 0 0.7 0.2 1.2 0.2 0.5 0.5 0.8 0.4 0.3 0.9 0.3zm9.6-1.7v-4.4h2.1v7.6h-2v-1.3h-0.1q-0.3 0.6-0.9 1-0.6 0.4-1.4 0.4-0.8 0-1.4-0.3-0.6-0.4-0.9-1-0.3-0.6-0.3-1.5v-4.9h2.1v4.5q0 0.7 0.4 1.1 0.3 0.3 0.9 0.3 0.4 0 0.7-0.1 0.4-0.2 0.6-0.6 0.2-0.3 0.2-0.8zm6.1 3.4q-0.8 0-1.5-0.5-0.7-0.4-1.2-1.3-0.4-0.9-0.4-2.2 0-1.3 0.5-2.2 0.4-0.8 1.1-1.3 0.7-0.4 1.5-0.4 0.7 0 1.1 0.2 0.4 0.2 0.7 0.6 0.3 0.3 0.4 0.6h0.1v-3.8h2.1v10.1h-2.1v-1.2h-0Line truncated
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 7.1 KiB |
@@ -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
|
||||
}
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
|
||||
@@ -85,14 +85,14 @@
|
||||
"add-card": "Přidat kartu",
|
||||
"add-card-to-top-of-list": "Přidat kartu na začátek seznamu",
|
||||
"add-card-to-bottom-of-list": "Přidat kartu na konec seznamu",
|
||||
"setListWidthPopup-title": "Set List Width",
|
||||
"set-list-width": "Set List Width",
|
||||
"set-list-width-value": "List Width (pixels)",
|
||||
"list-width-error-message": "List width must be a positive integer",
|
||||
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
|
||||
"set-swimlane-height": "Set Swimlane Height",
|
||||
"set-swimlane-height-value": "Swimlane Height (pixels)",
|
||||
"swimlane-height-error-message": "Swimlane height must be a positive integer",
|
||||
"setListWidthPopup-title": "Nastavit šířku seznamu",
|
||||
"set-list-width": "Nastavit šířku seznamu",
|
||||
"set-list-width-value": "Šířka seznamu (pixely)",
|
||||
"list-width-error-message": "Šířka seznamu musí být kladné celé číslo",
|
||||
"setSwimlaneHeightPopup-title": "Nastavit výšku swimlane",
|
||||
"set-swimlane-height": "Nastavit výšku swimlane",
|
||||
"set-swimlane-height-value": "Výška swimlane (pixely)",
|
||||
"swimlane-height-error-message": "Výška swimlane musí být celé kladné číslo",
|
||||
"add-swimlane": "Přidat Swimlane",
|
||||
"add-subtask": "Přidat Podúkol",
|
||||
"add-checklist": "Přidat zaškrtávací seznam",
|
||||
@@ -100,10 +100,10 @@
|
||||
"close-add-checklist-item": "Close add an item to checklist form",
|
||||
"close-edit-checklist-item": "Close edit an item to checklist form",
|
||||
"convertChecklistItemToCardPopup-title": "Převést na kartu",
|
||||
"add-cover": "Add cover image to minicard",
|
||||
"add-cover": "Přidat titulní obrázek k minikartě",
|
||||
"add-label": "Přidat štítek",
|
||||
"add-list": "Přidat sloupec",
|
||||
"add-after-list": "Add After List",
|
||||
"add-after-list": "Přidat za seznam",
|
||||
"add-members": "Přidat členy",
|
||||
"added": "Přidán",
|
||||
"addMemberPopup-title": "Členové",
|
||||
@@ -143,13 +143,13 @@
|
||||
"attachmentDeletePopup-title": "Smazat přílohu?",
|
||||
"attachments": "Přílohy",
|
||||
"auto-watch": "Automaticky sleduj tabla když jsou vytvořena",
|
||||
"avatar-too-big": "The avatar is too large (__size__ max)",
|
||||
"avatar-too-big": "Avatar je příliš velký (__size__ max)",
|
||||
"back": "Zpět",
|
||||
"board-change-color": "Změnit barvu",
|
||||
"board-change-background-image": "Change Background Image",
|
||||
"board-background-image-url": "Background Image URL",
|
||||
"add-background-image": "Add Background Image",
|
||||
"remove-background-image": "Remove Background Image",
|
||||
"board-change-background-image": "Změnit obrázek na pozadí",
|
||||
"board-background-image-url": "URL obrázku na pozadí",
|
||||
"add-background-image": "Přidat obrázek na pozadí",
|
||||
"remove-background-image": "Odstranit obrázek z pozadí",
|
||||
"show-at-all-boards-page" : "Show at All Boards page",
|
||||
"board-info-on-my-boards" : "All Boards Settings",
|
||||
"boardInfoOnMyBoardsPopup-title" : "All Boards Settings",
|
||||
@@ -162,9 +162,9 @@
|
||||
"board-public-info": "Toto tablo bude <strong>veřejné</strong>.",
|
||||
"board-drag-drop-reorder-or-click-open": "Přetažením změníte pořadí ikon tabel. Kliknutím otevřete tablo.",
|
||||
"boardChangeColorPopup-title": "Změnit pozadí tabla",
|
||||
"boardChangeBackgroundImagePopup-title": "Change Background Image",
|
||||
"boardChangeBackgroundImagePopup-title": "Změnit obrázek na pozadí",
|
||||
"allBoardsChangeColorPopup-title": "Změnit barvu",
|
||||
"allBoardsChangeBackgroundImagePopup-title": "Change Background Image",
|
||||
"allBoardsChangeBackgroundImagePopup-title": "Změnit obrázek na pozadí",
|
||||
"boardChangeTitlePopup-title": "Přejmenovat tablo",
|
||||
"boardChangeVisibilityPopup-title": "Upravit viditelnost",
|
||||
"boardChangeWatchPopup-title": "Změnit sledování",
|
||||
@@ -532,8 +532,8 @@
|
||||
"normal": "Normální",
|
||||
"normal-desc": "Může zobrazovat a upravovat karty. Nemůže měnit nastavení.",
|
||||
"not-accepted-yet": "Pozvánka ještě nebyla přijmuta",
|
||||
"notify-participate": "Receive updates to any cards you participate as creator or member",
|
||||
"notify-watch": "Dostane aktualitace to všech tabel, sloupců nebo karet, které sledujete",
|
||||
"notify-participate": "Dostanete aktualizace o všech kartách, kterých se účastníte jako tvůrce nebo člen",
|
||||
"notify-watch": "Dostane aktualizace o všech tabel, sloupců nebo karet, které sledujete",
|
||||
"optional": "volitelný",
|
||||
"or": "nebo",
|
||||
"page-maybe-private": "Tato stránka může být soukromá. Můžete ji zobrazit po <a href='%s'>přihlášení</a>.",
|
||||
@@ -550,7 +550,7 @@
|
||||
"public": "Veřejný",
|
||||
"public-desc": "Toto tablo je veřejné. Je viditelné pro každého, kdo na něj má odkaz a bude zobrazeno ve vyhledávačích jako je Google. Pouze vybraní uživatelé ho mohou upravovat.",
|
||||
"quick-access-description": "Pro přidání odkazu do této lišty označ tablo hvězdičkou.",
|
||||
"remove-cover": "Remove cover image from minicard",
|
||||
"remove-cover": "Odstranit titulní obrázek z minikarty",
|
||||
"remove-from-board": "Odstranit z tabla",
|
||||
"remove-label": "Odstranit štítek",
|
||||
"listDeletePopup-title": "Smazat sloupec?",
|
||||
@@ -703,8 +703,8 @@
|
||||
"accounts": "Účty",
|
||||
"accounts-allowEmailChange": "Povolit změnu Emailu",
|
||||
"accounts-allowUserNameChange": "Povolit změnu uživatelského jména",
|
||||
"tableVisibilityMode-allowPrivateOnly": "Boards visibility: Allow private boards only",
|
||||
"tableVisibilityMode" : "Boards visibility",
|
||||
"tableVisibilityMode-allowPrivateOnly": "Viditelnost tabel: Povolit pouze soukromé tabla",
|
||||
"tableVisibilityMode" : "Viditelnost tabel",
|
||||
"createdAt": "Vytvořeno v",
|
||||
"modifiedAt": "Modifikováno",
|
||||
"verified": "Ověřen",
|
||||
@@ -739,10 +739,10 @@
|
||||
"deposit-subtasks-board": "Vložit podúkoly do tohoto tabla",
|
||||
"deposit-subtasks-list": "Landing list for subtasks deposited here:",
|
||||
"show-parent-in-minicard": "Ukázat předka na minikartě",
|
||||
"description-on-minicard": "Description on minicard",
|
||||
"cover-attachment-on-minicard": "Cover image on minicard",
|
||||
"badge-attachment-on-minicard": "Count of attachments on minicard",
|
||||
"card-sorting-by-number-on-minicard": "Card sorting by number on minicard",
|
||||
"description-on-minicard": "Popis na minikartě",
|
||||
"cover-attachment-on-minicard": "Titulní obrázek na minikartě",
|
||||
"badge-attachment-on-minicard": "Počet příloh na minikartě",
|
||||
"card-sorting-by-number-on-minicard": "Řazení karet podle čísla na minikartě",
|
||||
"prefix-with-full-path": "Prefix s celou cestou",
|
||||
"prefix-with-parent": "Prefix s předkem",
|
||||
"subtext-with-full-path": "Podtext s celou cestou",
|
||||
@@ -884,7 +884,7 @@
|
||||
"error-ldap-login": "Během přihlašování nastala chyba",
|
||||
"display-authentication-method": "Zobraz způsob ověřování",
|
||||
"oidc-button-text": "Customize the OIDC button text",
|
||||
"default-authentication-method": "Zobraz způsob ověřování",
|
||||
"default-authentication-method": "Výchozí způsob ověřování",
|
||||
"duplicate-board": "Duplikovat tablo",
|
||||
"org-number": "Počet organizací je:",
|
||||
"team-number": "Počet týmů je:",
|
||||
@@ -974,7 +974,7 @@
|
||||
"myCardsViewChange-title": "My Cards View",
|
||||
"myCardsViewChangePopup-title": "My Cards View",
|
||||
"myCardsViewChange-choice-boards": "Tabla",
|
||||
"myCardsViewChange-choice-table": "Table",
|
||||
"myCardsViewChange-choice-table": "Tabulka",
|
||||
"myCardsSortChange-title": "Pořadí mých karet",
|
||||
"myCardsSortChangePopup-title": "Pořadí mých karet",
|
||||
"myCardsSortChange-choice-board": "Podle tabla",
|
||||
@@ -1100,13 +1100,13 @@
|
||||
"label-names": "Štítek jména",
|
||||
"archived-at": "archivováno",
|
||||
"sort-cards": "Třídit",
|
||||
"sort-is-on": "Sort is on",
|
||||
"sort-is-on": "Řazení je zapnuté",
|
||||
"cardsSortPopup-title": "Třídit",
|
||||
"due-date": "Požadovaný termín",
|
||||
"server-error": "Chyba na serveru",
|
||||
"server-error-troubleshooting": "Odešlete prosím chybu, kterou server vygeneroval.\nV případě instalace přes snap spusťte: `sudo snap logs wekan.wekan`\nV případě instalace přes Docker spusťte: `sudo docker logs wekan-app`",
|
||||
"title-alphabetically": "Nadpis (Abecedně)",
|
||||
"created-at-newest-first": "Vyvtořeno (Od nejnovějších)",
|
||||
"created-at-newest-first": "Vytvořeno (Od nejnovějších)",
|
||||
"created-at-oldest-first": "Vytvořeno (Od nejstarších)",
|
||||
"links-heading": "Odkazy",
|
||||
"hide-system-messages-of-all-users": "Skrýt systémové zprávy všech uživatelů",
|
||||
@@ -1118,7 +1118,7 @@
|
||||
"custom-field-stringtemplate-separator": "Oddělovač (pro mezeru použijte   nebo )",
|
||||
"custom-field-stringtemplate-item-placeholder": "Stiskněte enter pro přidání více položek",
|
||||
"creator": "Tvůrce",
|
||||
"creator-on-minicard": "Creator on minicard",
|
||||
"creator-on-minicard": "Tvůrce na minikartě",
|
||||
"filesReportTitle": "Report souborů",
|
||||
"reports": "Reporty",
|
||||
"rulesReportTitle": "Report pravidel",
|
||||
@@ -1141,7 +1141,7 @@
|
||||
"delete-org-warning-message": "Tuto organizaci není možné smazat, protože do ní patří uživatel(é)",
|
||||
"delete-team-warning-message": "Tento tým není možné smazat, protože do nej patří uživatel(é)",
|
||||
"subject": "Subject",
|
||||
"details": "Details",
|
||||
"details": "Podrobnosti",
|
||||
"carbon-copy": "Carbon Copy (Cc:)",
|
||||
"ticket": "Ticket",
|
||||
"tickets": "Tickets",
|
||||
@@ -1155,17 +1155,17 @@
|
||||
"request": "Request",
|
||||
"requests": "Requests",
|
||||
"help-request": "Help Request",
|
||||
"editCardSortOrderPopup-title": "Change Sorting",
|
||||
"cardDetailsPopup-title": "Card Details",
|
||||
"add-teams": "Add teams",
|
||||
"add-teams-label": "Added teams are displayed below:",
|
||||
"remove-team-from-table": "Are you sure you want to remove this team from the board ?",
|
||||
"confirm-btn": "Confirm",
|
||||
"editCardSortOrderPopup-title": "Změnit řazení",
|
||||
"cardDetailsPopup-title": "Podrobnosti karty",
|
||||
"add-teams": "Přidat týmy",
|
||||
"add-teams-label": "Přidané týmy jsou zobrazeny zde:",
|
||||
"remove-team-from-table": "Opravdu chcete odstranit tento tým z tabla ?",
|
||||
"confirm-btn": "Potvrdit",
|
||||
"remove-btn": "Odstranit",
|
||||
"filter-card-title-label": "Filter by card title",
|
||||
"filter-card-title-label": "Filtrovat pomocí názvů karet",
|
||||
"invite-people-success": "Invitation to register sent with success",
|
||||
"invite-people-error": "Error while sending invitation to register",
|
||||
"can-invite-if-same-mailDomainName": "Email domain name",
|
||||
"can-invite-if-same-mailDomainName": "Emailová doména",
|
||||
"to-create-teams-contact-admin": "To create teams, please contact the administrator.",
|
||||
"Node_heap_total_heap_size": "Node heap: total heap size",
|
||||
"Node_heap_total_heap_size_executable": "Node heap: total heap size executable",
|
||||
@@ -1224,29 +1224,29 @@
|
||||
"if-you-already-have-an-account": "If you already have an account",
|
||||
"register": "Register",
|
||||
"forgot-password": "Forgot password",
|
||||
"minicardDetailsActionsPopup-title": "Card Details",
|
||||
"minicardDetailsActionsPopup-title": "Podrobnosti karty",
|
||||
"Mongo_sessions_count": "Mongo sessions count",
|
||||
"change-visibility": "Upravit viditelnost",
|
||||
"max-upload-filesize": "Max upload filesize in bytes:",
|
||||
"allowed-upload-filetypes": "Allowed upload filetypes:",
|
||||
"max-avatar-filesize": "Max avatar filesize in bytes:",
|
||||
"max-upload-filesize": "Maximální velikost nahraného souboru v bajtech:",
|
||||
"allowed-upload-filetypes": "Povolené typy nahraných souborů:",
|
||||
"max-avatar-filesize": "Maximální velikost avatara v bajtech:",
|
||||
"allowed-avatar-filetypes": "Allowed avatar filetypes:",
|
||||
"invalid-file": "If filename is invalid, upload or rename is cancelled.",
|
||||
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.",
|
||||
"drag-board": "Drag board",
|
||||
"translation-number": "The number of custom translation strings is:",
|
||||
"delete-translation-confirm-popup": "Are you sure you want to delete this custom translation string? There is no undo.",
|
||||
"newTranslationPopup-title": "New custom translation string",
|
||||
"editTranslationPopup-title": "Edit custom translation string",
|
||||
"settingsTranslationPopup-title": "Delete this custom translation string?",
|
||||
"translation": "Translation",
|
||||
"invalid-file": "Pokud je název souboru neplatný, nahrávání nebo přejmenovávání se zruší.",
|
||||
"preview-pdf-not-supported": "Vaše zařízení nepodporuje zobrazení PDF. Zkuste soubor stáhnout.",
|
||||
"drag-board": "Přetáhnout tablo",
|
||||
"translation-number": "Počet vlastní překladů je:",
|
||||
"delete-translation-confirm-popup": "Opravdu chcete smazat tento vlastní překlad? Tuto akci nelze vrátit zpět.",
|
||||
"newTranslationPopup-title": "Nový vlastní překlad",
|
||||
"editTranslationPopup-title": "Upravit vlastní překlad",
|
||||
"settingsTranslationPopup-title": "Smazat tento vlastní překlad?",
|
||||
"translation": "Překlad",
|
||||
"text": "Text",
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"translation-text": "Text překladu",
|
||||
"show-at-minicard": "Zobrazit na minikartě",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Sbalit",
|
||||
"uncollapse": "Uncollapse"
|
||||
"uncollapse": "Rozbalit"
|
||||
}
|
||||
@@ -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() {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import Excel from 'exceljs';
|
||||
import Excel from '@wekanteam/exceljs';
|
||||
|
||||
export const createWorkbook = function() {
|
||||
return new Excel.Workbook();
|
||||
|
||||
@@ -450,9 +450,9 @@ export class TrelloCreator {
|
||||
}
|
||||
};
|
||||
if (att.url) {
|
||||
Attachment.load(att.url, opts, cb, true);
|
||||
Attachments.load(att.url, opts, cb, true);
|
||||
} else if (att.file) {
|
||||
Attachment.write(att.file, opts, cb, true);
|
||||
Attachments.insert(att.file, opts, cb, true);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
+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);
|
||||
},
|
||||
});
|
||||
|
||||
@@ -471,9 +471,9 @@ export class WekanCreator {
|
||||
}
|
||||
};
|
||||
if (att.url) {
|
||||
Attachment.load(att.url, opts, cb, true);
|
||||
Attachments.load(att.url, opts, cb, true);
|
||||
} else if (att.file) {
|
||||
Attachment.write(att.file, opts, cb, true);
|
||||
Attachments.insert(att.file, opts, cb, true);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Generated
+38
-34
@@ -1,13 +1,13 @@
|
||||
{
|
||||
"name": "wekan",
|
||||
"version": "v7.51.0",
|
||||
"version": "v7.55.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"
|
||||
}
|
||||
@@ -108,6 +108,25 @@
|
||||
"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",
|
||||
"requires": {
|
||||
"archiver": "^5.0.0",
|
||||
"dayjs": "^1.8.34",
|
||||
"fast-csv": "^4.3.1",
|
||||
"jszip": "^3.10.1",
|
||||
"readable-stream": "^3.6.0",
|
||||
"saxes": "^5.0.1",
|
||||
"tmp": "^0.2.0",
|
||||
"unzipper": "^0.10.11",
|
||||
"uuid": "^8.3.0"
|
||||
}
|
||||
},
|
||||
"@wekanteam/html-to-markdown": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/@wekanteam/html-to-markdown/-/html-to-markdown-1.0.2.tgz",
|
||||
@@ -514,9 +533,9 @@
|
||||
"integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw=="
|
||||
},
|
||||
"dayjs": {
|
||||
"version": "1.11.11",
|
||||
"resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.11.tgz",
|
||||
"integrity": "sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg=="
|
||||
"version": "1.11.12",
|
||||
"resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.12.tgz",
|
||||
"integrity": "sha512-Rt2g+nTbLlDWZTwwrIXjy9MeiZmSDI375FvZs72ngxx8PDC6YXOeR3q5LAuPzjZQxhiWdRKac7RKV+YyQYfYIg=="
|
||||
},
|
||||
"debug": {
|
||||
"version": "4.3.4",
|
||||
@@ -581,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",
|
||||
@@ -697,21 +716,6 @@
|
||||
"resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz",
|
||||
"integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA=="
|
||||
},
|
||||
"exceljs": {
|
||||
"version": "git+https://github.com/exceljs/exceljs.git#5bed18b45e824f409b08456b59b87430ded023ab",
|
||||
"from": "git+https://github.com/exceljs/exceljs.git",
|
||||
"requires": {
|
||||
"archiver": "^5.0.0",
|
||||
"dayjs": "^1.8.34",
|
||||
"fast-csv": "^4.3.1",
|
||||
"jszip": "^3.10.1",
|
||||
"readable-stream": "^3.6.0",
|
||||
"saxes": "^5.0.1",
|
||||
"tmp": "^0.2.0",
|
||||
"unzipper": "^0.10.11",
|
||||
"uuid": "^8.3.0"
|
||||
}
|
||||
},
|
||||
"extsprintf": {
|
||||
"version": "1.4.1",
|
||||
"resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz",
|
||||
@@ -737,9 +741,9 @@
|
||||
"integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
|
||||
},
|
||||
"fast-xml-parser": {
|
||||
"version": "4.3.2",
|
||||
"resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.3.2.tgz",
|
||||
"integrity": "sha512-rmrXUXwbJedoXkStenj1kkljNF7ugn5ZjR9FJcwmCfcCbtOMDghPajbc+Tck6vE6F5XsDmx+Pr2le9fw8+pXBg==",
|
||||
"version": "4.4.1",
|
||||
"resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.1.tgz",
|
||||
"integrity": "sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==",
|
||||
"requires": {
|
||||
"strnum": "^1.0.5"
|
||||
}
|
||||
@@ -2369,9 +2373,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",
|
||||
@@ -2471,9 +2475,9 @@
|
||||
"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"
|
||||
}
|
||||
|
||||
+6
-5
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "wekan",
|
||||
"version": "v7.51.0",
|
||||
"version": "v7.55.0",
|
||||
"description": "Open-Source kanban",
|
||||
"private": true,
|
||||
"repository": {
|
||||
@@ -17,19 +17,20 @@
|
||||
"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",
|
||||
"@wekanteam/meteor-reactive-cache": "^1.0.6",
|
||||
"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",
|
||||
"exceljs": "git+https://github.com/exceljs/exceljs.git",
|
||||
"fibers": "^5.0.3",
|
||||
"file-type": "^16.5.4",
|
||||
"filesize": "^8.0.7",
|
||||
@@ -50,7 +51,7 @@
|
||||
"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.51</title>
|
||||
<title>Wekan REST API v7.55</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.51">Wekan REST API v7.51</a>
|
||||
<a href="#wekan-rest-api" class="toc-h1 toc-link" data-title="Wekan REST API v7.55">Wekan REST API v7.55</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.51</h1>
|
||||
<h1 id="wekan-rest-api">Wekan REST API v7.55</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.51
|
||||
version: v7.55
|
||||
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:
|
||||
|
||||
@@ -2,6 +2,11 @@
|
||||
"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",
|
||||
@@ -503,7 +508,7 @@
|
||||
"theme_color": "#000000",
|
||||
"background_color": "#000000",
|
||||
"start_url": "sign-in",
|
||||
"display": "fullscreen",
|
||||
"display": "standalone",
|
||||
"orientation": "any",
|
||||
"categories": [
|
||||
"productivity"
|
||||
@@ -514,6 +519,6 @@
|
||||
"scope": "https://boards.wekan.team",
|
||||
"prefer_related_applications": false,
|
||||
"display_override": [
|
||||
"fullscreen"
|
||||
"standalone"
|
||||
]
|
||||
}
|
||||
+3
-3
@@ -95,12 +95,12 @@ do
|
||||
#cd ..
|
||||
#sudo chown -R $(id -u):$(id -g) $HOME/.npm $HOME/.meteor
|
||||
rm -rf .build/bundle node_modules .meteor/local .build
|
||||
meteor npm install
|
||||
meteor npm install --production
|
||||
meteor build .build --directory --platforms=web.browser
|
||||
rm -rf .build/bundle/programs/web.browser.legacy
|
||||
(cd .build/bundle/programs/server && rm -rf node_modules && chmod u+w *.json && meteor npm install)
|
||||
(cd .build/bundle/programs/server && rm -rf node_modules && chmod u+w *.json && meteor npm install --production)
|
||||
(cd .build/bundle/programs/server/node_modules/fibers && node build.js)
|
||||
(cd .build/bundle/programs/server/npm/node_modules/meteor/accounts-password && meteor npm remove bcrypt && meteor npm install bcrypt)
|
||||
(cd .build/bundle/programs/server/npm/node_modules/meteor/accounts-password && meteor npm remove bcrypt && meteor npm install bcrypt --production)
|
||||
# Cleanup
|
||||
cd .build/bundle
|
||||
find . -type d -name '*-garbage*' | xargs rm -rf
|
||||
|
||||
@@ -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 = 751,
|
||||
appVersion = 755,
|
||||
# Increment this for every release.
|
||||
|
||||
appMarketingVersion = (defaultText = "7.51.0~2024-06-27"),
|
||||
appMarketingVersion = (defaultText = "7.55.0~2024-08-08"),
|
||||
# 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,
|
||||
);
|
||||
});
|
||||
+5
-5
@@ -1,5 +1,5 @@
|
||||
name: wekan
|
||||
version: '7.51'
|
||||
version: '7.55'
|
||||
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.16.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.51/wekan-7.51-amd64.zip
|
||||
unzip wekan-7.51-amd64.zip
|
||||
rm wekan-7.51-amd64.zip
|
||||
wget https://github.com/wekan/wekan/releases/download/v7.55/wekan-7.55-amd64.zip
|
||||
unzip wekan-7.55-amd64.zip
|
||||
rm wekan-7.55-amd64.zip
|
||||
cd ..
|
||||
##cd .build/bundle
|
||||
##find . -type d -name '*-garbage*' | xargs rm -rf
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
Version: OpenPGP.js v4.10.8
|
||||
Comment: https://openpgpjs.org
|
||||
|
||||
xjMEX3HbABYJKwYBBAHaRw8BAQdAQ2UBWCK1H3/z7gMgwVudRL+NlwJVCPw+
|
||||
Vsp9PGSLh9jNJ3N1cHBvcnRAd2VrYW4udGVhbSA8c3VwcG9ydEB3ZWthbi50
|
||||
ZWFtPsKPBBAWCgAgBQJfcdsABgsJBwgDAgQVCAoCBBYCAQACGQECGwMCHgEA
|
||||
IQkQRkG8ZpPn6f4WIQRI5gPihwJLiXfveDBGQbxmk+fp/kCXAQD/JXsgVq4d
|
||||
9sKmYDGHpCaIfsO//6cmiCGz3Mf5SDc0ygD/WpJO31Fyu6pfr3nWe4n50H93
|
||||
lXXz937+K1bB9rfqugDOOARfcdsAEgorBgEEAZdVAQUBAQdALydXPub/n7hx
|
||||
8qYjZa2tzBvcz5KkdnIxOoB+vaQZFQwDAQgHwngEGBYIAAkFAl9x2wACGwwA
|
||||
IQkQRkG8ZpPn6f4WIQRI5gPihwJLiXfveDBGQbxmk+fp/uyXAQCRLPksHCJ6
|
||||
RTl7HrtSS9lkeOmh32u+Rnjijn970PYIIQEAiGgXoJGBTzyVil9aPeqfWFK+
|
||||
0hvTsnNY3JT3K84OmQQ=
|
||||
=SNk3
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
Reference in new issue
Block a user