Compare commits

...
142 Commits
Author SHA1 Message Date
Lauri Ojansivu e3149289db v6.30 2022-07-11 20:07:17 +03:00
Lauri Ojansivu b680cf4938 Updated ChangeLog. 2022-07-11 19:59:29 +03:00
Lauri Ojansivu 69d454dd03 Fix uploading attachments.
Thanks to BabyFnord and xet7 !

Related #4585
2022-07-11 19:54:28 +03:00
Lauri Ojansivu 703c849482 Updated ChangeLog. 2022-07-11 17:47:05 +03:00
Lauri Ojansivu 284f440136 OIDC/OAuth2 autologin settings for Docker/Snap/Source/Bundle platforms.
Thanks to xet7 !
2022-07-11 17:44:58 +03:00
Lauri Ojansivu 267becdb9a Updated ChangeLog. 2022-07-11 17:06:34 +03:00
Lauri Ojansivu 054d420dc9 On CentOS 7 Docker there is seccomp issue with glibc 6, so setting it to unconfined to get WeKan working.
Thanks to m-brangeon !

Related #4585,
related #4587
2022-07-11 17:02:05 +03:00
Lauri Ojansivu 0fbc6efbcf Updated ChangeLog. 2022-07-11 16:47:04 +03:00
Lauri Ojansivu 63f5c88a15 Updated ChangeLog. 2022-07-11 16:20:03 +03:00
Lauri Ojansivu 24598eaf00 Merge pull request #4588 from Viehlieb/feature/direct_login_from_oidc
Feature/direct login from OIDC
2022-07-11 16:10:29 +03:00
viehlieb 2e9fca93ec remove unneccessary line in layout.js 2022-07-11 14:48:05 +02:00
Lauri Ojansivu c2f5355f9a Updated ChangeLog. 2022-07-11 00:23:58 -04:00
Lauri Ojansivu 9fdf739695 Updated ChangeLog. 2022-07-11 02:21:44 +03:00
Lauri Ojansivu 17f8f8f14f Try to fix Snap.
Thanks to xet7 !
2022-07-11 02:18:48 +03:00
Lauri Ojansivu 9a68c96585 v6.29 2022-07-11 01:20:31 +03:00
Lauri Ojansivu ed2a725a2c Updated dependencies. 2022-07-11 00:52:32 +03:00
Lauri Ojansivu 8914d4404e Updated dependencies. 2022-07-08 23:33:08 +03:00
viehlieb c5dd0b729d get ServiceConfiguration from server 2022-07-08 16:48:06 +02:00
Lauri Ojansivu f4f9c501d1 Updated ChangeLog. 2022-07-08 10:13:24 -04:00
Lauri Ojansivu 239dd1a341 Updated to Node.js v14.20.0. Thanks to Node.js developers. 2022-07-08 10:10:34 -04:00
viehlieb ee254cb9c8 wait for service config load to redirect to oidc provider 2022-07-08 15:09:39 +02:00
viehlieb 05a98fa88b Merge branch 'master' of https://github.com/wekan/wekan into feature/direct_login_from_oidc 2022-07-08 12:01:57 +02:00
viehlieb 5df5c7f5d7 merge master changes 2022-07-08 11:55:32 +02:00
Lauri Ojansivu ccea223ef7 Updated ChangeLog. 2022-07-06 00:34:27 +03:00
Lauri Ojansivu 25f9963645 Merge pull request #4582 from mfilser/move_copy_card_closes_popup_if_done
Move/Copy card closes now the popup if done
2022-07-06 00:33:31 +03:00
Lauri Ojansivu b1c41518df Updated ChangeLog. 2022-07-06 00:32:37 +03:00
Lauri Ojansivu ae09f0f008 Updated dependencies. 2022-07-06 00:31:13 +03:00
Martin Filser 490ad65b6e Move/Copy card closes now the popup if done
- Resolves discussion: #4337
2022-07-05 23:15:52 +02:00
Lauri Ojansivu cb78501b04 Updated ChangeLog. 2022-07-05 23:40:28 +03:00
Lauri Ojansivu 65a031f29d Merge pull request #4581 from mfilser/checkStartup-details_of_wekan_user
00checkStartup, on error give more details on current user which run's wekan
2022-07-05 23:21:22 +03:00
Martin Filser 6c94b57cfc 00checkStartup, on error give more details on current user which run's Wekan 2022-07-05 21:35:59 +02:00
Lauri Ojansivu 7ae15cae27 Updated translations. 2022-07-04 17:54:59 +03:00
Lauri Ojansivu 0596595284 Updated ChangeLog. 2022-07-04 17:47:54 +03:00
Lauri Ojansivu 724d1386f6 Comment out unused CSS.
Thanks to xet7 !
2022-07-04 17:46:36 +03:00
Lauri Ojansivu 920b32735f Updated ChangeLog. 2022-07-04 17:46:20 +03:00
Lauri Ojansivu 86aa7ff353 Merge pull request #4577 from JonasPfeiferb1/master
fixed one Typo in CSS Style Sheet
2022-07-04 17:04:13 +03:00
Jonas Pfeifer 20d87f2299 fixed Typo 2022-07-04 15:24:21 +02:00
Lauri Ojansivu 88f05e8c4e Updated ChangeLog. 2022-06-30 18:45:11 +03:00
Lauri Ojansivu c3bfcb78e9 Updated ostrio:files .
Thanks to developers of dependencies !
2022-06-30 18:43:37 +03:00
Lauri Ojansivu 83a78c792a Updated ChangeLog. 2022-06-30 18:40:04 +03:00
Lauri Ojansivu 99b2fdbf99 Added translations: Arabic (Algeria) (ar_DZ), Azerbaijani (az), Azerbaijani (Azerbaijan) (az_AZ), Azerbaijani (Latin) (az@latin).
Thanks to translators !
2022-06-30 18:35:37 +03:00
Lauri Ojansivu 7ca9e8f4d3 Updated ChangeLog. 2022-06-25 21:58:00 +03:00
Lauri Ojansivu dac85c0a03 Merge pull request #4574 from helioguardabaxo/master
Fix div max-width on My Cards table view
2022-06-25 21:54:47 +03:00
helioguardabaxo 04e04ead92 Add display timestamp on 'Boards in Archive' 2022-06-24 22:19:40 -03:00
helioguardabaxo 008fc806e8 Fix div max-width on My Cards table view 2022-06-24 21:50:07 -03:00
Lauri Ojansivu af7874b700 Merge pull request #4565 from wekan/dependabot/github_actions/actions/dependency-review-action-2
Bump actions/dependency-review-action from 1 to 2
2022-06-24 23:59:03 +03:00
Lauri Ojansivu 94e1fa79b3 Merge pull request #4573 from helioguardabaxo/master
Do not show archived lists on All Boards
2022-06-24 23:58:29 +03:00
helioguardabaxo 6694088ac7 Do not show archived lists on All Boards 2022-06-24 16:40:03 -03:00
dependabot[bot] b4c74b8d4c Bump actions/dependency-review-action from 1 to 2
Bumps [actions/dependency-review-action](https://github.com/actions/dependency-review-action) from 1 to 2.
- [Release notes](https://github.com/actions/dependency-review-action/releases)
- [Commits](https://github.com/actions/dependency-review-action/compare/v1...v2)

---
updated-dependencies:
- dependency-name: actions/dependency-review-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-20 20:34:39 +00:00
Lauri Ojansivu 28612612bd Update README.md
Fix typos
2022-06-20 08:21:21 +03:00
Lauri Ojansivu f2f834e810 Update README.md
Fix typos
2022-06-20 08:18:23 +03:00
Lauri Ojansivu 3e5f8f458c Update README.md
Fix typos
2022-06-20 08:14:05 +03:00
Lauri Ojansivu cffb5baa68 Updated ChangeLog. 2022-06-19 09:30:47 +03:00
Lauri Ojansivu 01d0dd3b1d Resizeable size of list width and height. Size is not saved yet. In Progress.
Thanks to NLBlackEagle and xet7 !

Related #4558
2022-06-19 09:28:50 +03:00
Lauri Ojansivu c8bb3c7353 Try migrate mongo 3 to mongo 5. 2022-06-16 03:11:56 +03:00
Lauri Ojansivu 709b17805b Try to fix Snap. 2022-06-16 02:00:54 +03:00
Lauri Ojansivu e9982e34ed Try to fix Snap. 2022-06-16 01:57:51 +03:00
Lauri Ojansivu 1c2c3d9dea Try to fix Snap: Add wget 2022-06-16 01:04:17 +03:00
Lauri Ojansivu bd26ed7f7a Try to fix Snap. 2022-06-16 00:56:54 +03:00
Lauri Ojansivu c48299c0dd Try to fix nap 2022-06-14 09:11:27 +03:00
Lauri Ojansivu 753c54a741 Try to fix Snap. 2022-06-14 08:49:00 +03:00
Lauri Ojansivu 48a9fe3440 Try to fix Snap. 2022-06-14 08:22:25 +03:00
Lauri Ojansivu be1893e66a Updated ChangeLog. 2022-06-13 13:59:07 +03:00
Lauri Ojansivu 0d67a86f2c Updated ostrio:files.
Thanks to developers of dependencies !
2022-06-13 13:57:47 +03:00
Lauri Ojansivu 6e979beb01 Updated ChangeLog. 2022-06-13 13:56:47 +03:00
Lauri Ojansivu 12615fef5d Added translation Asturia (Spain).
Thanks to translators !
2022-06-13 13:54:54 +03:00
Lauri Ojansivu 403e2f4cbd Updated ChangeLog. 2022-06-13 13:41:57 +03:00
Lauri Ojansivu 6b4ffa69c6 Docker base image to Ubuntu 22.04 .
Thanks to Ubuntu developers !
2022-06-13 13:39:35 +03:00
viehlieb 84d51393e4 enable redirect to oidc provider to empower sso solutions even further 2022-06-10 17:52:52 +02:00
Lauri Ojansivu 51fb490c22 v6.28 2022-06-08 09:42:53 +03:00
Lauri Ojansivu f9e25e028e Updated ChangeLog. 2022-06-08 09:36:24 +03:00
Lauri Ojansivu 937797356c Updated dependencies. Try to fix Binary release on releases.wekan.team lacks the CSS.
Thanks to znerol, mrcancer91, BabyFnord and xet7 !

Fixes #4545
2022-06-08 09:32:34 +03:00
Lauri Ojansivu 21ae1b59d6 Updated ChangeLog. 2022-06-08 07:54:26 +03:00
Lauri Ojansivu e25050316f Try to detect Japanese (Japan) better.
Thanks to takenoko14 at Transifex and xet7 !
2022-06-08 07:52:20 +03:00
Lauri Ojansivu 2e06d466b9 Updated ChangeLog. 2022-06-08 07:44:55 +03:00
Lauri Ojansivu 5739b5d93c Merge pull request #4557 from mfilser/move_and_copy_card_set_sorting
Move and copy card set sorting
2022-06-08 07:43:21 +03:00
Martin Filser 6b6bdddce6 Move card to top/bottom using now the same internal code logic 2022-06-07 06:32:52 +02:00
Martin Filser dcff70c983 Copy card is now at the top too (same as move card) 2022-06-07 06:32:52 +02:00
Martin Filser ad5167de55 Card Details, move card between lists moves now the card to the top by default
- mostly the card is sorted anywhere and you have to scroll the list,
  now, the card is always at the top
2022-06-07 06:32:52 +02:00
Lauri Ojansivu 947692693c Merge pull request #4552 from wekan/dependabot/github_actions/VeryGoodOpenSource/very_good_coverage-1.2.1
Bump VeryGoodOpenSource/very_good_coverage from 1.1.1 to 1.2.1
2022-06-07 00:37:24 +03:00
Lauri Ojansivu 0c8e812991 Merge pull request #4555 from wekan/dependabot/github_actions/helm/chart-releaser-action-1.4.0
Bump helm/chart-releaser-action from 1.1.0 to 1.4.0
2022-06-07 00:35:01 +03:00
Lauri Ojansivu fb1742b149 Merge pull request #4554 from wekan/dependabot/github_actions/docker/build-push-action-3
Bump docker/build-push-action from 2.5.0 to 3
2022-06-07 00:34:37 +03:00
Lauri Ojansivu 054915031e Merge pull request #4553 from wekan/dependabot/github_actions/actions/download-artifact-3
Bump actions/download-artifact from 2 to 3
2022-06-07 00:34:19 +03:00
Lauri Ojansivu ada6b8ee9c Merge pull request #4556 from wekan/dependabot/github_actions/actions/upload-artifact-3
Bump actions/upload-artifact from 2 to 3
2022-06-07 00:34:01 +03:00
dependabot[bot] 63e0597c68 Bump actions/upload-artifact from 2 to 3
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 2 to 3.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-06 20:20:26 +00:00
dependabot[bot] c71cedf9f4 Bump helm/chart-releaser-action from 1.1.0 to 1.4.0
Bumps [helm/chart-releaser-action](https://github.com/helm/chart-releaser-action) from 1.1.0 to 1.4.0.
- [Release notes](https://github.com/helm/chart-releaser-action/releases)
- [Commits](https://github.com/helm/chart-releaser-action/compare/v1.1.0...v1.4.0)

---
updated-dependencies:
- dependency-name: helm/chart-releaser-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-06 20:20:23 +00:00
dependabot[bot] f6ee321d0f Bump docker/build-push-action from 2.5.0 to 3
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 2.5.0 to 3.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/ad44023a93711e3deb337508980b4b5e9bcdc5dc...e551b19e49efd4e98792db7592c17c09b89db8d8)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-06 20:20:19 +00:00
dependabot[bot] 2a24720fad Bump actions/download-artifact from 2 to 3
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 2 to 3.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-06 20:20:14 +00:00
dependabot[bot] a7fd512124 Bump VeryGoodOpenSource/very_good_coverage from 1.1.1 to 1.2.1
Bumps [VeryGoodOpenSource/very_good_coverage](https://github.com/VeryGoodOpenSource/very_good_coverage) from 1.1.1 to 1.2.1.
- [Release notes](https://github.com/VeryGoodOpenSource/very_good_coverage/releases)
- [Changelog](https://github.com/VeryGoodOpenSource/very_good_coverage/blob/main/CHANGELOG.md)
- [Commits](https://github.com/VeryGoodOpenSource/very_good_coverage/compare/v1.1.1...v1.2.1)

---
updated-dependencies:
- dependency-name: VeryGoodOpenSource/very_good_coverage
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-06 20:20:09 +00:00
Lauri Ojansivu b7f62cf5f2 Updated ChangeLog. 2022-06-06 15:00:22 +03:00
Lauri Ojansivu dfea3d0e73 Removed lightbox that caused bugs like Maximum stack size exceeded. TODO later: Add a new way to open attachment image bigger.
Thanks to xet7 !

Related #4545
2022-06-06 14:58:45 +03:00
Lauri Ojansivu e4e1a8f4e6 Updated ChangeLog. 2022-06-06 10:45:56 +03:00
Lauri Ojansivu 43b2d71404 Upgraded to Meteor 2.7.3 .
Thanks to Meteor developers !
2022-06-06 10:41:49 +03:00
Lauri Ojansivu c9f8e111c5 Updated ChangeLog. 2022-06-06 10:34:48 +03:00
Lauri Ojansivu 67596602d7 Merge branch 'master' of github.com:wekan/wekan 2022-06-06 10:33:13 +03:00
Lauri Ojansivu 5af4f54f4c Added translations: Moroccan Arabic (ary) and Standard Moroccan Tamazight (zgh).
Thanks to translators!
2022-06-06 10:32:36 +03:00
Lauri Ojansivu 0d7d38b358 Merge pull request #4543 from turrisxyz/Dependency-GitHub 2022-06-02 05:51:49 +03:00
naveen 680770a7df chore(deps): Included dependency review
> Dependency Review GitHub Action in your repository to enforce dependency
> reviews on your pull requests.
> The action scans for vulnerable versions of dependencies introduced by package version
> changes in pull requests,
> and warns you about the associated security vulnerabilities.
> This gives you better visibility of what's changing in a pull request,
> and helps prevent vulnerabilities being added to your repository.

https://docs.github.com/en/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review#dependency-review-enforcement
Signed-off-by: naveen <172697+naveensrinivasan@users.noreply.github.com>
2022-06-01 23:35:00 +00:00
Lauri Ojansivu 14c3432896 Merge pull request #4539 from wekan/dependabot/github_actions/github/codeql-action-2
Bump github/codeql-action from 1 to 2
2022-05-31 05:17:43 +03:00
Lauri Ojansivu 34fc724d95 Merge pull request #4537 from wekan/dependabot/github_actions/docker/login-action-2
Bump docker/login-action from 1.9.0 to 2
2022-05-31 05:17:11 +03:00
dependabot[bot] 1ed2c3b45a Bump docker/login-action from 1.9.0 to 2
Bumps [docker/login-action](https://github.com/docker/login-action) from 1.9.0 to 2.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/28218f9b04b4f3f62068d7b6ce6ca5b26e35336c...49ed152c8eca782a232dede0303416e8f356c37b)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-31 02:16:56 +00:00
Lauri Ojansivu 81f74f4db6 Merge pull request #4536 from wekan/dependabot/github_actions/docker/metadata-action-4.0.1
Bump docker/metadata-action from 3.3.0 to 4.0.1
2022-05-31 05:16:33 +03:00
Lauri Ojansivu b5bc07d2e7 Merge pull request #4535 from wekan/dependabot/github_actions/actions/checkout-3
Bump actions/checkout from 2 to 3
2022-05-31 05:15:57 +03:00
Lauri Ojansivu 85fcaff678 Merge pull request #4538 from wekan/dependabot/github_actions/actions/cache-3
Bump actions/cache from 2 to 3
2022-05-31 05:15:11 +03:00
dependabot[bot] d5247daf8a Bump github/codeql-action from 1 to 2
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 1 to 2.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/v1...v2)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-31 02:12:27 +00:00
dependabot[bot] 9ff87d189f Bump actions/cache from 2 to 3
Bumps [actions/cache](https://github.com/actions/cache) from 2 to 3.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-31 02:12:24 +00:00
dependabot[bot] 2d36116823 Bump docker/metadata-action from 3.3.0 to 4.0.1
Bumps [docker/metadata-action](https://github.com/docker/metadata-action) from 3.3.0 to 4.0.1.
- [Release notes](https://github.com/docker/metadata-action/releases)
- [Upgrade guide](https://github.com/docker/metadata-action/blob/master/UPGRADE.md)
- [Commits](https://github.com/docker/metadata-action/compare/98669ae865ea3cffbcbaa878cf57c20bbf1c6c38...69f6fc9d46f2f8bf0d5491e4aabe0bb8c6a4678a)

---
updated-dependencies:
- dependency-name: docker/metadata-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-31 02:12:17 +00:00
dependabot[bot] 9f0b9b29a5 Bump actions/checkout from 2 to 3
Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-31 02:12:13 +00:00
Lauri Ojansivu 1d7e08390c Merge pull request #4534 from turrisxyz/Dependabot-GitHub-Actions
chore: Included githubactions in the dependabot config
2022-05-31 05:11:48 +03:00
naveen bbffa2eb6b chore: Included githubactions in the dependabot config
This should help with keeping the GitHub actions updated on new releases. This will also help with keeping it secure.

Dependabot helps in keeping the supply chain secure https://docs.github.com/en/code-security/dependabot

GitHub actions up to date https://docs.github.com/en/code-security/dependabot/working-with-dependabot/keeping-your-actions-up-to-date-with-dependabot

https://github.com/ossf/scorecard/blob/main/docs/checks.md#dependency-update-tool
Signed-off-by: naveen <172697+naveensrinivasan@users.noreply.github.com>
2022-05-31 01:40:38 +00:00
Lauri Ojansivu 52ea940265 Merge pull request #4533 from turrisxyz/Pinned-Dependencies-GitHub
chore: Set permissions for GitHub actions
2022-05-30 04:15:47 +03:00
neilnaveen 355b358fe2 chore: Set permissions for GitHub actions
Restrict the GitHub token permissions only to the required ones; this way, even if the attackers will succeed in compromising your workflow, they won’t be able to do much.

- Included permissions for the action. https://github.com/ossf/scorecard/blob/main/docs/checks.md#token-permissions

https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions

https://docs.github.com/en/actions/using-jobs/assigning-permissions-to-jobs

[Keeping your GitHub Actions and workflows secure Part 1: Preventing pwn requests](https://securitylab.github.com/research/github-actions-preventing-pwn-requests/)

Signed-off-by: neilnaveen <42328488+neilnaveen@users.noreply.github.com>
2022-05-30 01:09:08 +00:00
Lauri Ojansivu d74662bfd7 Updated ChangeLog. 2022-05-29 00:26:23 +03:00
Lauri Ojansivu e151da7163 Updated ChangeLog. 2022-05-29 00:24:42 +03:00
Lauri Ojansivu 1c71baec81 Update package-lock.json 2022-05-28 23:17:03 +03:00
Lauri Ojansivu 9382c2cd04 v6.27 2022-05-28 23:10:25 +03:00
Lauri Ojansivu 25e50e3908 Upgraded to Meteor 2.7.3-beta.0 .
Thanks to Meteor developers !
2022-05-28 22:58:04 +03:00
Lauri Ojansivu c6331830d4 Updated translations. 2022-05-28 22:38:17 +03:00
Lauri Ojansivu 4226a0bc37 Updated ChangeLog. 2022-05-24 00:47:35 +03:00
Lauri Ojansivu 693a49f852 Try to fix Snap. Part 8.
Thanks to xet7 !
2022-05-24 00:46:41 +03:00
Lauri Ojansivu 0b797ceb7e Updated ChangeLog. 2022-05-24 00:33:06 +03:00
Lauri Ojansivu 2587e2f00a Try to fix Snap. Part 7.
Thanks to xet7 !
2022-05-24 00:32:20 +03:00
Lauri Ojansivu 6ad83bcaeb Updated ChangeLog. 2022-05-24 00:15:29 +03:00
Lauri Ojansivu f2815a9039 Try to fix Snap. Part 6.
Thanks to xet7 !
2022-05-24 00:14:12 +03:00
Lauri Ojansivu 6d7e69cc9f Updated ChangeLog. 2022-05-24 00:02:19 +03:00
Lauri Ojansivu fac1ba5952 Try to fix Snap. Part 5.
Thanks to xet7 !
2022-05-24 00:01:13 +03:00
Lauri Ojansivu 3db14ad03a Updated ChangeLog. 2022-05-23 23:45:16 +03:00
Lauri Ojansivu 9ca26d22d0 Try to fix Snap. Part 4.
Thanks to xet7 !
2022-05-23 23:44:16 +03:00
Lauri Ojansivu 7640c7c04d Updated ChangeLog. 2022-05-23 23:23:34 +03:00
Lauri Ojansivu ea66eca60d Try to fix Snap. Part 3: Added --unsafe-perm to npm install.
Thanks to xet7 !

Related https://github.com/wekan/wekan/issues/4505#issuecomment-1135101672
2022-05-23 23:22:00 +03:00
Lauri Ojansivu 0ae8de4c04 Updated ChangeLog. 2022-05-23 22:58:45 +03:00
Lauri Ojansivu e50d69cfb7 Try to fix Snap. Part 2.
Thanks to xet7 !
2022-05-23 22:57:36 +03:00
Lauri Ojansivu d95436df51 Updated ChangeLog. 2022-05-23 22:34:39 +03:00
Lauri Ojansivu 3b419848d1 Try to fix Snap.
Thanks to xet7 !

Related #4524,
related #4423
2022-05-23 22:32:45 +03:00
Lauri Ojansivu 8efc8605a1 Updated ChangeLog. 2022-05-23 14:09:07 +03:00
Lauri Ojansivu 4f44c5bf87 Removed wekan-accounts-sandstorm .test-app directory, that could not be git cloned on Windows.
Thanks to xet7 !
2022-05-23 13:39:55 +03:00
Lauri Ojansivu 4b12245537 Updated ChangeLog. 2022-05-23 00:53:17 +03:00
Lauri Ojansivu adcc33ed7f Fix opening card scrolls to wrong position when many swimlanes and card at bottom of board.
Thanks to xet7 !
2022-05-23 00:50:21 +03:00
Lauri Ojansivu f1482cfa94 Updated translations. 2022-05-22 23:38:13 +03:00
viehlieb 2e354f9b1e wip redirect on landing page and logout to oidc provider 2022-05-11 09:05:43 +02:00
viehlieb b97c51abde Revert "Updated ChangeLog."
This reverts commit 75525c2215.
2022-04-29 10:13:59 +02:00
viehlieb 8c8560cfc2 add i18n to gitignote rm i18n from git tracking for faster development 2022-04-29 09:41:14 +02:00
85 changed files with 9459 additions and 1133 deletions

No files matched your search

+1 -1
View File
@@ -10,7 +10,7 @@ ENV DEBIAN_FRONTEND=noninteractive
ENV \
DEBUG=false \
NODE_VERSION=v14.19.3 \
NODE_VERSION=v14.20.0 \
METEOR_RELEASE=1.10.2 \
USE_EDGE=false \
METEOR_EDGE=1.5-beta.17 \
+1 -1
View File
@@ -81,7 +81,7 @@ parts:
wekan:
source: .
plugin: nodejs
node-engine: 14.19.3
node-engine: 14.20.0
node-packages:
- node-gyp
- node-pre-gyp
+6
View File
@@ -0,0 +1,6 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
+11 -4
View File
@@ -9,8 +9,15 @@ on:
schedule:
- cron: '0 16 * * 3'
permissions:
contents: read
jobs:
analyze:
permissions:
actions: read # for github/codeql-action/init to get workflow details
contents: read # for actions/checkout to fetch code
security-events: write # for github/codeql-action/autobuild to send a status report
name: Analyze
runs-on: ubuntu-latest
@@ -25,7 +32,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v2
uses: actions/checkout@v3
with:
# We must fetch at least the immediate parents so that if this is
# a pull request then we can checkout the head.
@@ -38,14 +45,14 @@ jobs:
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v1
uses: github/codeql-action/init@v2
with:
languages: ${{ matrix.language }}
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v1
uses: github/codeql-action/autobuild@v2
# ℹ️ Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
@@ -59,4 +66,4 @@ jobs:
# make release
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1
uses: github/codeql-action/analyze@v2
+14
View File
@@ -0,0 +1,14 @@
name: 'Dependency Review'
on: [pull_request]
permissions:
contents: read
jobs:
dependency-review:
runs-on: ubuntu-latest
steps:
- name: 'Checkout Repository'
uses: actions/checkout@v3
- name: 'Dependency Review'
uses: actions/dependency-review-action@v2
+4 -4
View File
@@ -32,13 +32,13 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v2
uses: actions/checkout@v3
# Login against a Docker registry except on PR
# https://github.com/docker/login-action
- name: Log into registry ${{ env.REGISTRY }}
if: github.event_name != 'pull_request'
uses: docker/login-action@28218f9b04b4f3f62068d7b6ce6ca5b26e35336c
uses: docker/login-action@49ed152c8eca782a232dede0303416e8f356c37b
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
@@ -48,14 +48,14 @@ jobs:
# https://github.com/docker/metadata-action
- name: Extract Docker metadata
id: meta
uses: docker/metadata-action@98669ae865ea3cffbcbaa878cf57c20bbf1c6c38
uses: docker/metadata-action@69f6fc9d46f2f8bf0d5491e4aabe0bb8c6a4678a
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
# 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@ad44023a93711e3deb337508980b4b5e9bcdc5dc
uses: docker/build-push-action@e551b19e49efd4e98792db7592c17c09b89db8d8
with:
context: .
push: ${{ github.event_name != 'pull_request' }}
+4 -1
View File
@@ -5,6 +5,9 @@ on:
branches:
- master
permissions:
contents: read
jobs:
build:
@@ -12,6 +15,6 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v3
- name: Build the Docker image
run: docker build . --file Dockerfile --tag wekan:$(date +%s)
+7 -2
View File
@@ -5,12 +5,17 @@ on:
branches:
- master
permissions:
contents: read
jobs:
release:
permissions:
contents: write # for helm/chart-releaser-action to push chart release and create a release
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v3
with:
fetch-depth: 0
@@ -20,6 +25,6 @@ jobs:
git config user.email "$GITHUB_ACTOR@users.noreply.github.com"
- name: Run chart-releaser
uses: helm/chart-releaser-action@v1.1.0
uses: helm/chart-releaser-action@v1.4.0
env:
CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
+11 -11
View File
@@ -15,7 +15,7 @@ jobs:
# runs-on: ubuntu-latest
# steps:
# - name: checkout
# uses: actions/checkout@v2
# uses: actions/checkout@v3
#
# - name: setup node
# uses: actions/setup-node@v1
@@ -39,7 +39,7 @@ jobs:
# needs: [lintcode]
# steps:
# - name: checkout
# uses: actions/checkout@v2
# uses: actions/checkout@v3
#
# - name: setup node
# uses: actions/setup-node@v1
@@ -62,7 +62,7 @@ jobs:
# needs: [lintcode,lintstyle]
# steps:
# - name: checkout
# uses: actions/checkout@v2
# uses: actions/checkout@v3
#
# - name: setup node
# uses: actions/setup-node@v1
@@ -87,12 +87,12 @@ jobs:
# CHECKOUTS
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v3
# CACHING
- name: Install Meteor
id: cache-meteor-install
uses: actions/cache@v2
uses: actions/cache@v3
with:
path: ~/.meteor
key: v1-meteor-${{ hashFiles('.meteor/versions') }}
@@ -101,7 +101,7 @@ jobs:
- name: Cache NPM dependencies
id: cache-meteor-npm
uses: actions/cache@v2
uses: actions/cache@v3
with:
path: ~/.npm
key: v1-npm-${{ hashFiles('package-lock.json') }}
@@ -110,7 +110,7 @@ jobs:
- name: Cache Meteor build
id: cache-meteor-build
uses: actions/cache@v2
uses: actions/cache@v3
with:
path: |
.meteor/local/resolver-result-cache.json
@@ -133,7 +133,7 @@ jobs:
run: sh ./test-wekan.sh -cv
- name: Upload coverage
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v3
with:
name: coverage-folder
path: .coverage/
@@ -144,17 +144,17 @@ jobs:
needs: [tests]
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v3
- name: Download coverage
uses: actions/download-artifact@v2
uses: actions/download-artifact@v3
with:
name: coverage-folder
path: .coverage/
- name: Coverage Report
uses: VeryGoodOpenSource/very_good_coverage@v1.1.1
uses: VeryGoodOpenSource/very_good_coverage@v1.2.1
with:
path: ".coverage/lcov.info"
min_coverage: 1 # TODO add tests and increase to 95!
+13 -18
View File
@@ -7,7 +7,6 @@ meteor-base@1.5.1
# Build system
ecmascript@0.16.2
standard-minifier-css@1.8.1
standard-minifier-js@2.8.0
mquandalle:jade
coffeescript@2.4.1!
@@ -26,9 +25,17 @@ mongo@1.15.0
mquandalle:collection-mutations
# Account system
#wekan-ldap
#wekan-accounts-cas
#wekan-accounts-oidc
accounts-password@2.3.1
useraccounts:core
useraccounts:flow-routing
useraccounts:unstyled
simple:rest-accounts-password
wekan-ldap
wekan-accounts-cas
wekan-accounts-sandstorm
wekan-accounts-lockout
wekan-oidc
wekan-accounts-oidc
# Utilities
check@1.3.1
@@ -62,7 +69,6 @@ rajit:bootstrap3-datepicker
shell-server@0.5.0
email@2.2.1
dynamic-import@0.7.2
cfs:gridfs
rzymek:fullcalendar
msavin:usercache
@@ -74,7 +80,7 @@ konecty:mongo-counter
percolate:synced-cron
cfs:filesystem
ostrio:cookies
ostrio:files@2.0.1
ostrio:files@2.0.1!
rajit:bootstrap3-datepicker-fi
rajit:bootstrap3-datepicker-ar
rajit:bootstrap3-datepicker-bg
@@ -128,21 +134,10 @@ pascoual:pdfkit
lmieulet:meteor-coverage
meteortesting:mocha@2.0.3
aldeed:simple-schema
accounts-password@2.3.1
matb33:collection-hooks
simple:json-routes
kadira:flow-router
spacebars
useraccounts:core
useraccounts:flow-routing
useraccounts:unstyled
service-configuration@1.3.0
communitypackages:picker
simple:rest-accounts-password
wekan-accounts-sandstorm
wekan-accounts-lockout
wekan-oidc
wekan-accounts-oidc
wekan-ldap
wekan-accounts-cas
czbaker:lightbox2
minifier-css
+1 -1
View File
@@ -1 +1 @@
METEOR@2.7.2
METEOR@2.7.3
+4 -6
View File
@@ -11,7 +11,7 @@ arillo:flow-router-helpers@0.5.2
audit-argument-checks@1.0.7
autoupdate@1.8.0
babel-compiler@7.9.0
babel-runtime@1.5.0
babel-runtime@1.5.1
base64@1.0.12
binary-heap@1.0.11
blaze@2.6.0
@@ -43,7 +43,6 @@ coffeescript@2.4.1
coffeescript-compiler@2.4.1
communitypackages:picker@1.1.0
cottz:publish-relations@2.0.8
czbaker:lightbox2@2.7.1_1
dburles:collection-helpers@1.1.0
ddp@1.4.0
ddp-client@2.5.0
@@ -124,10 +123,10 @@ oauth2@1.3.1
observe-sequence@1.0.20
ongoworks:speakingurl@1.1.0
ordered-dict@1.1.0
ostrio:cookies@2.7.0
ostrio:cstorage@2.2.2
ostrio:cookies@2.7.2
ostrio:cstorage@4.0.1
ostrio:files@2.0.1
ostrio:i18n@3.1.0
ostrio:i18n@3.2.0
pascoual:pdfkit@1.0.7
peerlibrary:assert@0.3.0
peerlibrary:base-component@0.17.1
@@ -209,7 +208,6 @@ simple:rest-json-error-handler@1.1.1
socket-stream-client@0.5.0
spacebars@1.3.0
spacebars-compiler@1.3.1
standard-minifier-css@1.8.1
standard-minifier-js@2.8.0
templates:tabs@2.3.0
templating@1.4.1
+1 -1
View File
@@ -3,7 +3,7 @@ sudo: required
env:
TRAVIS_DOCKER_COMPOSE_VERSION: 1.24.0
TRAVIS_NODE_VERSION: 14.19.3
TRAVIS_NODE_VERSION: 14.20.0
TRAVIS_NPM_VERSION: latest
before_install:
+1 -1
View File
@@ -39,7 +39,7 @@ host = https://www.transifex.com
# tap:i18n requires us to use `-` separator in the language identifiers whereas
# Transifex uses a `_` separator, without an option to customize it on one side
# or the other, so we need to do a Manual mapping.
lang_map = ar_EG:ar-EG, bg_BG:bg, cs_CZ:cs-CZ, cy_GB:cy-GB, de_AT:de-AT, de_CH:de-CH, en_BR:en-BR, en_DE:en-DE, en_IT:en-IT, en_GB:en-GB, et_EE:et-EE, es_AR:es-AR, en@ysv:en-YS, es_CL:es-CL, es_419:es-LA, es_PE:es-PE, es_MX:es-MX, es_TX:es-TX, es_PY:es-PY, el_GR:el-GR, fa_IR:fa-IR, fi_FI:fi, fr_FR:fr-FR, fr_CH:fr-CH, fy_NL:fy-NL, gl_ES:gl-ES, gu_IN:gu-IN, he_IL:he-IL, hi_IN:hi-IN, hu_HU:hu, id_ID:id, mn_MN:mn, ms_MY:ms-MY, nl_NL:nl-NL, ko_KR:ko-KR, lv_LV:lv, pl_PL:pl-PL, pt_BR:pt-BR, ro_RO:ro, ru_UA:ru-UA, sl_SI:sl, uk_UA:uk-UA, uz@Arab:uz-AR, uz@Latn:uz-LA, uz_UZ:uz-UZ, vec:ve-CC, vep:ve-PP, vls:vl-SS, war:wa-RR, vi_VN:vi-VN, zh_CN:zh-CN, zh_TW:zh-TW, zh_Hans:zh-Hans, zh_HK:zh-HK, zu_ZA:zu-ZA
lang_map = ar_DZ:ar-DZ, ar_EG:ar-EG, az_AZ:az-AZ, az@latin:az-LA, bg_BG:bg, cs_CZ:cs-CZ, cy_GB:cy-GB, de_AT:de-AT, de_CH:de-CH, en_BR:en-BR, en_DE:en-DE, en_IT:en-IT, en_GB:en-GB, et_EE:et-EE, ast_ES:ast-ES, es_AR:es-AR, en@ysv:en-YS, es_CL:es-CL, es_419:es-LA, es_PE:es-PE, es_MX:es-MX, es_TX:es-TX, es_PY:es-PY, el_GR:el-GR, fa_IR:fa-IR, ja_JP:ja, fi_FI:fi, fr_FR:fr-FR, fr_CH:fr-CH, fy_NL:fy-NL, gl_ES:gl-ES, gu_IN:gu-IN, he_IL:he-IL, hi_IN:hi-IN, hu_HU:hu, id_ID:id, mn_MN:mn, ms_MY:ms-MY, nl_NL:nl-NL, ko_KR:ko-KR, lv_LV:lv, pl_PL:pl-PL, pt_BR:pt-BR, ro_RO:ro, ru_UA:ru-UA, sl_SI:sl, uk_UA:uk-UA, uz@Arab:uz-AR, uz@Latn:uz-LA, uz_UZ:uz-UZ, vec:ve-CC, vep:ve-PP, vls:vl-SS, war:wa-RR, vi_VN:vi-VN, zh_CN:zh-CN, zh_TW:zh-TW, zh_Hans:zh-Hans, zh_HK:zh-HK, zu_ZA:zu-ZA
[wekan.application]
file_filter = imports/i18n/data/<lang>.i18n.json
+127 -5
View File
@@ -1,5 +1,127 @@
[Mac ChangeLog](https://github.com/wekan/wekan/wiki/Mac)
Required versions of Node.js, MongoDB etc are listed at https://wekan.github.io
Download section.
[How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585)
# v6.30 2022-07-11 WeKan ® release
This release adds the following new features:
- [Automatic login with OIDC](https://github.com/wekan/wekan/pull/4588).
Thanks to Viehlieb.
- [OIDC/OAuth2 autologin settings for Docker/Snap/Source/Bundle platforms](https://github.com/wekan/wekan/commit/284f4401369aadcec72e67fa935dfc3a9fead721).
Thanks to xet7.
and tries to fix the following bugs:
- [Try to fix Snap](https://github.com/wekan/wekan/commit/17f8f8f14ff205d0cbb316c63a2da36f61ba4a1d).
Thanks to xet7.
- [On CentOS 7 Docker there is seccomp issue with glibc 6, so setting it to unconfined to get WeKan working](https://github.com/wekan/wekan/commit/054d420dc97cadee6ed7896c608d95a6fe09dc9d (HEAD -> master)
Thanks to m-brangeon.
- [Fix uploading attachments](https://github.com/wekan/wekan/commit/69d454dd035a989266175eb4268ffc3d7891eb95).
Thanks to BabyFnord and xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v6.29 2022-07-11 WeKan ® release
This release adds the following features:
- [Resizeable size of list width and height. Size is not saved yet. In Progress](https://github.com/wekan/wekan/commit/01d0dd3b1dd0a3c9764e7c9d31eab739db2d3ad8).
Thanks to NLBlackEagle and xet7.
- [00checkStartup, on error give more details on current user which run's wekan](https://github.com/wekan/wekan/pull/4581).
Thanks to mfilser.
and adds the following updates:
- [Updated to Node.js v14.20.0](https://github.com/wekan/wekan/commit/239dd1a3411a3d4f51b109e1a0505a5a23bc72ee).
Thanks to Node.js developers.
- [Docker base image to Ubuntu 22.04](https://github.com/wekan/wekan/commit/6b4ffa69c64f0186a8b1b3ac175b633ac7c24263).
Thanks to Ubuntu developers.
- Updated ostrio:files.
[Part 1](https://github.com/wekan/wekan/commit/0d67a86f2c9c1c9696d8507c60e53d47a226a6ad),
[Part 2](https://github.com/wekan/wekan/commit/c3bfcb78e9047a84d43041bebcec56718eaa140b).
Thanks to developers of dependencies.
- [Updated dependencies](https://github.com/wekan/wekan/commit/ae09f0f0083a96c2211fdc02e60b4ff6a2f413ca).
Thanks to developers of dependencies.
and adds the following translations:
- [Added translation Asturia (Spain)](https://github.com/wekan/wekan/commit/12615fef5d44cf611b3f1d9fc0a7be3e98b8c042).
Thanks to translators.
- [Added translations: Arabic (Algeria) (ar_DZ), Azerbaijani (az), Azerbaijani (Azerbaijan) (az_AZ), Azerbaijani (Latin) (az@latin)](https://github.com/wekan/wekan/commit/99b2fdbf99f26ee9df2e1ff906db2d740210f902).
Thanks to translators.
and fixes the following bugs:
- [Do not show archived lists on All Boards](https://github.com/wekan/wekan/pull/4573).
Thanks to helioguardabaxo.
- [Fix div max-width on My Cards table view](https://github.com/wekan/wekan/pull/4574).
Thanks to helioguardabaxo.
- [Fixed one Typo in CSS Style Sheet](https://github.com/wekan/wekan/pull/4577).
Thanks to JonasPfeiferb1.
- [Comment out unused CSS](https://github.com/wekan/wekan/commit/724d1386f6943ad87b8e32f5544cc84ae211904c).
Thanks to xet7.
- [Move/Copy card closes now the popup if done](https://github.com/wekan/wekan/pull/4582).
Thanks to mfilser.
Thanks to above GitHub users for their contributions and translators for their translations.
# v6.28 2022-06-08 WeKan ® release
This release adds the following updates:
- [Upgraded to Meteor 2.7.3](https://github.com/wekan/wekan/commit/43b2d714043e053874e3c1101ae6e464d2e61b7e).
Thanks to Meteor developers.
and adds the following translations:
- [Added translations: Moroccan Arabic (ary) and Standard Moroccan Tamazight (zgh)](https://github.com/wekan/wekan/commit/5af4f54f4c702f9cc4df60a27ac234421e41575d).
Thanks to translators.
- [Try to detect Japanese (Japan) better](https://github.com/wekan/wekan/commit/e25050316f6f018f68b03bef6fccbdaea7248461).
Thanks to takenoko14 at Transifex and xet7.
and fixes the following bugs:
- [Removed lightbox that caused bugs like Maximum stack size exceeded. TODO later: Add a new way to open attachment image bigger](https://github.com/wekan/wekan/commit/dfea3d0e735f1665a14f7e534e352e0e00871a02).
Thanks to xet7.
- [Move and copy card set sorting](https://github.com/wekan/wekan/pull/4557).
Thanks to mfilser.
- [Updated dependencies. Try to fix Binary release on releases.wekan.team lacks the CSS](https://github.com/wekan/wekan/commit/937797356ceeb99bf66eb826e13fc55f266c8739).
Thanks to znerol, mrcancer91, BabyFnord and xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v6.27 2022-05-28 WeKan ® release
This release adds the following updates:
- [Upgraded to Meteor 2.7.3-beta.0](https://github.com/wekan/wekan/commit/25e50e3908a52a7bac61f8b939ad7c78cbd79060).
Thanks to Meteor developers.
and fixes the following bugs:
- [Fix opening card scrolls to wrong position when many swimlanes and card at bottom of board](https://github.com/wekan/wekan/commit/adcc33ed7fe686d46a85da6c11ea448d29e94ca7).
Thanks to xet7.
- [Removed wekan-accounts-sandstorm .test-app directory, that could not be git cloned on Windows](https://github.com/wekan/wekan/commit/4f44c5bf872e369cd89ea0e8791482cc925294d3).
Thanks to xet7.
- Try to fix Snap.
[Part 1](https://github.com/wekan/wekan/commit/3b419848d1b7a7f421db3662d860dcea1ea6af1c),
[Part 2](https://github.com/wekan/wekan/commit/e50d69cfb78e5f0150e96cc90337255ccbd59e76),
[Part 3](https://github.com/wekan/wekan/commit/ea66eca60ddbf7127c9fbed9ab41df52542ad279),
[Part 4](https://github.com/wekan/wekan/commit/9ca26d22d0c2c9bee792e50ff203a5c18c9d556b),
[Part 5](https://github.com/wekan/wekan/commit/fac1ba5952f763d257b04a934e3407f9b1d1d37a),
[Part 6](https://github.com/wekan/wekan/commit/f2815a90393418dea88aa49ee74c6af91fafe96d),
[Part 7](https://github.com/wekan/wekan/commit/2587e2f00ae27742893e48e98845a3139e3f3a02),
[Part 8](https://github.com/wekan/wekan/commit/693a49f85200adcf81f5cf0ea56c7dd795757988).
Thanks to xet7.
- [WeKan Gantt GPLv2: Try to fix Gantt, by adding translations, but is not visible yet](https://github.com/wekan/wekan-gantt-gpl/commit/a08c01c76eaaf2884890a39c97d1f72da222fba1).
Thanks to xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v6.26 2022-05-21 WeKan ® release
This release adds the following updates:
@@ -829,7 +951,7 @@ This release removes the following new features:
- [Revert change from WeKan v5.81: At Sandstorm, every WeKan user is now WeKan Admin and has Admin Panel](https://github.com/wekan/wekan/commit/ebc7741fcb9ad854234921ed0546255411adeec9).
Thanks to ocdtrekkie and xet7.
and adds the following new features:
- [List header contains now a button to add the card to the bottom of the list](https://github.com/wekan/wekan/pull/4195).
@@ -1081,7 +1203,7 @@ and fixes the following bugs:
Thanks to niklasdahlheimer.
- [Popup fixes: Archive cards, upload attachements etc](https://github.com/wekan/wekan/pull/4101).
Thanks to mfilser.
Thanks to above GitHub users for their contributions and translators for their translations.
# v5.68 2021-10-27 WeKan ® release
@@ -2052,7 +2174,7 @@ This release adds the following new features:
- [Custom Field "String Template"](https://github.com/wekan/wekan/pull/3701).
Thanks to tod31.
- [1) Admin reports. An option added to the admin panel that has reports an admin can run.
- [1) Admin reports. An option added to the admin panel that has reports an admin can run.
Right now it has two reports for attachments and broken cards.
2) Add the creator avatar to `cardDetails` and `minicard`. Avatar is only shown if it is selected in card settings.
3) Added a new search operator `creator`.
@@ -2785,7 +2907,7 @@ and fixes the following bugs:
Thanks to xet7.
- [Rules not copied during board copy](https://github.com/wekan/wekan/pull/3458).
Thanks to jrsupplee.
Thanks to above GitHub users for their contributions and translators for their translations.
# v4.83 2021-01-20 Wekan release
@@ -2806,7 +2928,7 @@ and fixes the following bugs:
Thanks to jrsupplee.
Thanks to above GitHub users for their contributions and translators for their translations.
# v4.82 2021-01-20 Wekan release
This release adds the following new features:
+7 -2
View File
@@ -1,4 +1,4 @@
FROM ubuntu:21.10
FROM ubuntu:22.04
LABEL maintainer="wekan"
# 2022-04-25:
@@ -16,7 +16,7 @@ ARG DEBIAN_FRONTEND=noninteractive
ENV BUILD_DEPS="apt-utils libarchive-tools gnupg gosu wget curl bzip2 g++ build-essential git ca-certificates python3" \
DEBUG=false \
NODE_VERSION=v14.19.3 \
NODE_VERSION=v14.20.0 \
METEOR_RELEASE=1.10.2 \
USE_EDGE=false \
METEOR_EDGE=1.5-beta.17 \
@@ -50,6 +50,7 @@ ENV BUILD_DEPS="apt-utils libarchive-tools gnupg gosu wget curl bzip2 g++ build-
TRUSTED_URL="" \
WEBHOOKS_ATTRIBUTES="" \
OAUTH2_ENABLED=false \
OIDC_REDIRECTION_ENABLED=false \
OAUTH2_CA_CERT="" \
OAUTH2_ADFS_ENABLED=false \
OAUTH2_LOGIN_STYLE=redirect \
@@ -147,6 +148,10 @@ ENV BUILD_DEPS="apt-utils libarchive-tools gnupg gosu wget curl bzip2 g++ build-
NODE_OPTIONS="--max_old_space_size=4096" \
WRITABLE_PATH=/data
#---------------------------------------------
# == at docker-compose.yml: AUTOLOGIN WITH OIDC/OAUTH2 ====
# https://github.com/wekan/wekan/wiki/autologin
#- OIDC_REDIRECTION_ENABLED=true
#---------------------------------------------------------------------
# https://github.com/wekan/wekan/issues/3585#issuecomment-1021522132
# Add more Node heap:
+2 -2
View File
@@ -4,7 +4,7 @@ FROM amd64/alpine:3.7 AS builder
ENV QEMU_VERSION=v4.2.0-6 \
QEMU_ARCHITECTURE=aarch64 \
NODE_ARCHITECTURE=linux-arm64 \
NODE_VERSION=v14.19.3 \
NODE_VERSION=v14.20.0 \
WEKAN_VERSION=latest \
WEKAN_ARCHITECTURE=arm64 \
NODE_OPTIONS="--max_old_space_size=4096"
@@ -49,7 +49,7 @@ LABEL maintainer="wekan"
# Set the environment variables (defaults where required)
ENV QEMU_ARCHITECTURE=aarch64 \
NODE_ARCHITECTURE=linux-arm64 \
NODE_VERSION=v14.19.3 \
NODE_VERSION=v14.20.0 \
NODE_ENV=production \
NPM_VERSION=latest \
WITH_API=true \
+5 -5
View File
@@ -17,9 +17,9 @@
## [Translate WeKan ® at Transifex](https://transifex.com/wekan/wekan)
Translations to non-English languages are accepted only at [Transifex](https://transifex.com/wekan/wekan) using webbrowser.
New English strings of new features can be added as PRs to edge branch file wekan/i18n/en.i18n.json .
New English strings of new features can be added as PRs to master branch file wekan/imports/i18n/data/en.i18n.json .
## [Wekan feature requests and bugs](https://github.com/wekan/wekan/issues)
## [WeKan ® feature requests and bugs](https://github.com/wekan/wekan/issues)
Please add most of your questions as GitHub issue: [WeKan ® Feature Requests and Bugs](https://github.com/wekan/wekan/issues).
It's better than at chat where details get lost when chat scrolls up.
@@ -28,7 +28,7 @@ It's better than at chat where details get lost when chat scrolls up.
[Discussions][discussions] - WeKan Community GitHub Discussions, that are not [Feature Requests and Bugs](https://github.com/wekan/wekan/issues).
[Wekan IRC FAQ](https://github.com/wekan/wekan/wiki/IRC-FAQ)
[WeKan IRC FAQ](https://github.com/wekan/wekan/wiki/IRC-FAQ)
## Docker: Please only use Docker release tags
@@ -56,8 +56,8 @@ install Wekan on your own computer or server. In fact we encourage you to do
that by providing one-click installation on various platforms.
- WeKan ® is used in [most countries of the world](https://snapcraft.io/wekan).
- Wekan largest user has 22k users using Wekan in their company.
- Wekan has been [translated](https://transifex.com/wekan/wekan) to about 105 languages.
- WeKan ® largest user has 22k users using WeKan ® in their company.
- WeKan ® has been [translated](https://transifex.com/wekan/wekan) to about 105 languages.
- [Features][features]: WeKan ® has real-time user interface.
- [Platforms][platforms]: WeKan ® supports many platforms.
WeKan ® is critical part of new platforms Wekan is currently being integrated to.
+1 -1
View File
@@ -1,5 +1,5 @@
appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928
appVersion: "v6.26.0"
appVersion: "v6.30.0"
files:
userUploads:
- README.md
@@ -14,6 +14,7 @@ template(name="archivedBoards")
i.fa.fa-undo
| {{_ 'restore-board'}}
= title
span {{ moment archivedAt 'LLL' }}
else
li.no-items-message {{_ 'no-archived-boards'}}
+1 -1
View File
@@ -1141,7 +1141,7 @@
color: rgba(0,0,0,0.5);
position: absolute;
margin-top: -34px;
margin-let: -11px;
margin-left: -11px;
}
.board-color-clearblue a.fa,
.board-color-clearblue a i.fa {
+1 -1
View File
@@ -1,4 +1,4 @@
@import url("css/reset.css") print, screen;
/* @import url("css/reset.css") print, screen; */
.board-list {
margin: 0 8px;
+1 -1
View File
@@ -197,7 +197,7 @@ BlazeComponent.extendComponent({
},
boardLists(boardId) {
let boardLists = [];
const lists = Lists.find({'boardId' : boardId})
const lists = Lists.find({'boardId' : boardId, 'archived': false})
lists.forEach(list => {
let cardCount = Cards.find({'boardId':boardId, 'listId':list._id}).count()
boardLists.push(`${list.title}: ${cardCount}`);
+3 -1
View File
@@ -19,7 +19,9 @@ template(name="attachmentsGalery")
.attachments-galery
each attachments
.attachment-item
a.attachment-thumbnail(href="{{link}}" title="{{name}}" data-lightbox="{{name}}")
// TODO: Add popup of attachment image later, with some swipebox or lightbox that would not add bugs
// a.attachment-thumbnail(href="{{link}}" title="{{name}}")
span.attachment-thumbnail(href="{{link}}" title="{{name}}")
if link
if isImage
img.attachment-thumbnail-img(src="{{link}}")
+24 -21
View File
@@ -212,11 +212,6 @@ BlazeComponent.extendComponent({
//-------------
}
if (!Utils.isMiniScreen()) {
Meteor.setTimeout(() => {
this.scrollParentContainer();
}, 500);
}
const $checklistsDom = this.$('.card-checklist-items');
$checklistsDom.sortable({
@@ -393,7 +388,9 @@ BlazeComponent.extendComponent({
let card = this.data();
const listSelect = this.$('.js-select-card-details-lists')[0];
const listId = listSelect.options[listSelect.selectedIndex].value;
card.move(card.boardId, card.swimlaneId, listId, card.sort);
const minOrder = card.getMinSort(listId, card.swimlaneId);
card.move(card.boardId, card.swimlaneId, listId, minOrder - 1);
},
'click .js-go-to-linked-card'() {
Utils.goCardId(this.data().linkedId);
@@ -440,10 +437,20 @@ BlazeComponent.extendComponent({
'click .js-maximize-card-details'() {
Meteor.call('toggleCardMaximized');
autosize($('.card-details'));
if (!Utils.isMiniScreen()) {
Meteor.setTimeout(() => {
this.scrollParentContainer();
}, 500);
}
},
'click .js-minimize-card-details'() {
Meteor.call('toggleCardMaximized');
autosize($('.card-details'));
if (!Utils.isMiniScreen()) {
Meteor.setTimeout(() => {
this.scrollParentContainer();
}, 500);
}
},
'click .js-vote'(e) {
const forIt = $(e.target).hasClass('js-vote-positive');
@@ -672,21 +679,13 @@ Template.cardDetailsActionsPopup.events({
'click .js-set-card-color': Popup.open('setCardColor'),
'click .js-move-card-to-top'(event) {
event.preventDefault();
const minOrder = _.min(
this.list()
.cardsUnfiltered(this.swimlaneId)
.map((c) => c.sort),
);
const minOrder = this.getMinSort();
this.move(this.boardId, this.swimlaneId, this.listId, minOrder - 1);
Popup.back();
},
'click .js-move-card-to-bottom'(event) {
event.preventDefault();
const maxOrder = _.max(
this.list()
.cardsUnfiltered(this.swimlaneId)
.map((c) => c.sort),
);
const maxOrder = this.getMaxSort();
this.move(this.boardId, this.swimlaneId, this.listId, maxOrder + 1);
Popup.back();
},
@@ -831,14 +830,16 @@ Template.moveCardPopup.events({
const listId = lSelect.options[lSelect.selectedIndex].value;
const slSelect = $('.js-select-swimlanes')[0];
const swimlaneId = slSelect.options[slSelect.selectedIndex].value;
card.move(boardId, swimlaneId, listId, 0);
const minOrder = card.getMinSort(listId, swimlaneId);
card.move(boardId, swimlaneId, listId, minOrder - 1);
// set new id's to card object in case the card is moved to top by the comment "moveCard" after this command (.js-move-card)
this.boardId = boardId;
this.swimlaneId = swimlaneId;
this.listId = listId;
Popup.back();
Popup.back(2);
},
});
BlazeComponent.extendComponent({
@@ -959,8 +960,10 @@ Template.copyCardPopup.events({
const boardId = bSelect.options[bSelect.selectedIndex].value;
const textarea = $('#copy-card-title');
const title = textarea.val().trim();
// insert new card to the bottom of new list
card.sort = Lists.findOne(card.listId).cards().count();
// insert new card to the top of new list
const minOrder = card.getMinSort(listId, swimlaneId);
card.sort = minOrder - 1;
if (title) {
card.title = title;
@@ -972,7 +975,7 @@ Template.copyCardPopup.events({
// See https://github.com/wekan/wekan/issues/80
Filter.addException(_id);
Popup.back();
Popup.back(2);
}
},
});
+3 -2
View File
@@ -7,8 +7,9 @@
border-left: 1px solid #ccc;
padding: 0;
float: left;
min-width: 270px;
max-width: 270px;
width: 270px; /* Orinal width: 270px. Changes not saved yet: */
resize: both; /* - List width and height resizeable */
overflow: auto; /* - List width and height resizeable */
}
.list:first-child {
margin-left: 5px;
+1
View File
@@ -16,6 +16,7 @@ head
meta(name="application-name" content="Wekan")
meta(name="msapplication-TileColor" content="#00aba9")
meta(name="theme-color" content="#ffffff")
//link(rel="stylesheet" type="text/css" class="__meteor-css__" href="css/html5-default-theme.css")
template(name="userFormsLayout")
section.auth-layout
+37 -26
View File
@@ -4,7 +4,7 @@ BlazeLayout.setRoot('body');
let alreadyCheck = 1;
let isCheckDone = false;
let counter = 0;
const validator = {
set(obj, prop, value) {
if (prop === 'state' && value !== 'signIn') {
@@ -21,7 +21,7 @@ const validator = {
// let isSettingDatabaseFctCallDone = false;
Template.userFormsLayout.onCreated(function() {
Template.userFormsLayout.onCreated(function () {
const templateInstance = this;
templateInstance.currentSetting = new ReactiveVar();
templateInstance.isLoading = new ReactiveVar(false);
@@ -37,7 +37,7 @@ Template.userFormsLayout.onCreated(function() {
}
// isSettingDatabaseFctCallDone = true;
if(currSetting && currSetting !== undefined && currSetting.customLoginLogoImageUrl !== undefined)
if (currSetting && currSetting !== undefined && currSetting.customLoginLogoImageUrl !== undefined)
document.getElementById("isSettingDatabaseCallDone").style.display = 'none';
else
document.getElementById("isSettingDatabaseCallDone").style.display = 'block';
@@ -50,6 +50,18 @@ Template.userFormsLayout.onCreated(function() {
}
});
if (!Meteor.user()?.profile) {
Meteor.call('isOidcRedirectionEnabled', (_, result) => {
if (result) {
AccountsTemplates.options.socialLoginStyle = 'redirect';
options = {
loginStyle: AccountsTemplates.options.socialLoginStyle,
};
Meteor.loginWithOidc(options);
}
else console.log("oidc redirect not set");
});
}
Meteor.call('isDisableRegistration', (_, result) => {
if (result) {
$('.at-signup-link').hide();
@@ -81,22 +93,22 @@ Template.userFormsLayout.helpers({
// return isSettingDatabaseFctCallDone;
// },
isLegalNoticeLinkExist(){
isLegalNoticeLinkExist() {
const currSet = Template.instance().currentSetting.get();
if(currSet && currSet !== undefined && currSet != null){
if (currSet && currSet !== undefined && currSet != null) {
return currSet.legalNotice !== undefined && currSet.legalNotice.trim() != "";
}
else
return false;
},
getLegalNoticeWithWritTraduction(){
getLegalNoticeWithWritTraduction() {
let spanLegalNoticeElt = $("#legalNoticeSpan");
if(spanLegalNoticeElt != null && spanLegalNoticeElt != undefined){
if (spanLegalNoticeElt != null && spanLegalNoticeElt != undefined) {
spanLegalNoticeElt.html(TAPi18n.__('acceptance_of_our_legalNotice', {}));
}
let atLinkLegalNoticeElt = $("#legalNoticeAtLink");
if(atLinkLegalNoticeElt != null && atLinkLegalNoticeElt != undefined){
if (atLinkLegalNoticeElt != null && atLinkLegalNoticeElt != undefined) {
atLinkLegalNoticeElt.html(TAPi18n.__('legalNotice', {}));
}
return true;
@@ -147,41 +159,41 @@ Template.userFormsLayout.events({
}
isCheckDone = false;
},
'click #at-signUp'(event, templateInstance){
'click #at-signUp'(event, templateInstance) {
isCheckDone = false;
},
'DOMSubtreeModified #at-oidc'(event){
if(alreadyCheck <= 2){
'DOMSubtreeModified #at-oidc'(event) {
if (alreadyCheck <= 2) {
let currSetting = Settings.findOne();
let oidcBtnElt = $("#at-oidc");
if(currSetting && currSetting !== undefined && currSetting.oidcBtnText !== undefined && oidcBtnElt != null && oidcBtnElt != undefined){
if (currSetting && currSetting !== undefined && currSetting.oidcBtnText !== undefined && oidcBtnElt != null && oidcBtnElt != undefined) {
let htmlvalue = "<i class='fa fa-oidc'></i>" + currSetting.oidcBtnText;
if(alreadyCheck == 1){
if (alreadyCheck == 1) {
alreadyCheck++;
oidcBtnElt.html("");
}
else{
else {
alreadyCheck++;
oidcBtnElt.html(htmlvalue);
}
}
}
else{
else {
alreadyCheck = 1;
}
},
'DOMSubtreeModified .at-form'(event){
if(alreadyCheck <= 2 && !isCheckDone){
if(document.getElementById("at-oidc") != null){
'DOMSubtreeModified .at-form'(event) {
if (alreadyCheck <= 2 && !isCheckDone) {
if (document.getElementById("at-oidc") != null) {
let currSetting = Settings.findOne();
let oidcBtnElt = $("#at-oidc");
if(currSetting && currSetting !== undefined && currSetting.oidcBtnText !== undefined && oidcBtnElt != null && oidcBtnElt != undefined){
if (currSetting && currSetting !== undefined && currSetting.oidcBtnText !== undefined && oidcBtnElt != null && oidcBtnElt != undefined) {
let htmlvalue = "<i class='fa fa-oidc'></i>" + currSetting.oidcBtnText;
if(alreadyCheck == 1){
if (alreadyCheck == 1) {
alreadyCheck++;
oidcBtnElt.html("");
}
else{
else {
alreadyCheck++;
isCheckDone = true;
oidcBtnElt.html(htmlvalue);
@@ -189,7 +201,7 @@ Template.userFormsLayout.events({
}
}
}
else{
else {
alreadyCheck = 1;
}
},
@@ -221,7 +233,7 @@ async function authentication(event, templateInstance) {
switch (result) {
case 'ldap':
return new Promise(resolve => {
Meteor.loginWithLDAP(match, password, function() {
Meteor.loginWithLDAP(match, password, function () {
resolve(FlowRouter.go('/'));
});
});
@@ -233,7 +245,7 @@ async function authentication(event, templateInstance) {
{
provider,
},
function() {
function () {
resolve(FlowRouter.go('/'));
},
);
@@ -241,7 +253,7 @@ async function authentication(event, templateInstance) {
case 'cas':
return new Promise(resolve => {
Meteor.loginWithCas(match, password, function() {
Meteor.loginWithCas(match, password, function () {
resolve(FlowRouter.go('/'));
});
});
@@ -267,7 +279,6 @@ function getUserAuthenticationMethod(defaultAuthenticationMethod, match) {
Meteor.subscribe('user-authenticationMethod', match, {
onReady() {
const user = Users.findOne();
const authenticationMethod = user
? user.authenticationMethod
: defaultAuthenticationMethod;
+1
View File
@@ -63,6 +63,7 @@
.my-cards-card-title-table {
font-weight: bold;
padding-left: 2px;
max-width: 243px;
}
.my-cards-board-badge {
width: 36px;
+2
View File
@@ -80,6 +80,8 @@ function initSortable(boardComponent, $listsDom) {
Lists.update(list._id, {
$set: {
sort: sortIndex.base,
width: list._id.width(),
height: list._id.height(),
},
});
+35 -5
View File
@@ -5,6 +5,16 @@ const emailField = AccountsTemplates.removeField('email');
let disableRegistration = false;
let disableForgotPassword = false;
let passwordLoginDisabled = false;
let oidcRedirectionEnabled = false;
let oauthServerUrl = "home";
let oauthDashboardUrl = "";
Meteor.call('isOidcRedirectionEnabled', (_, result) => {
if(result)
{
oidcRedirectionEnabled = true;
}
});
Meteor.call('isPasswordLoginDisabled', (_, result) => {
if (result) {
@@ -14,6 +24,18 @@ Meteor.call('isPasswordLoginDisabled', (_, result) => {
}
});
Meteor.call('getOauthServerUrl', (_, result) => {
if (result) {
oauthServerUrl = result;
}
});
Meteor.call('getOauthDashboardUrl', (_, result) => {
if (result) {
oauthDashboardUrl = result;
}
});
Meteor.call('isDisableRegistration', (_, result) => {
if (result) {
disableRegistration = true;
@@ -59,11 +81,19 @@ AccountsTemplates.configure({
showForgotPasswordLink: !disableForgotPassword,
forbidClientAccountCreation: disableRegistration,
onLogoutHook() {
const homePage = 'home';
if (FlowRouter.getRouteName() === homePage) {
FlowRouter.reload();
} else {
FlowRouter.go(homePage);
// here comeslogic for redirect
if(oidcRedirectionEnabled)
{
window.location = oauthServerUrl + oauthDashboardUrl;
}
else
{
const homePage = 'home';
if (FlowRouter.getRouteName() === homePage) {
FlowRouter.reload();
} else {
FlowRouter.go(homePage);
}
}
},
});
+10
View File
@@ -127,6 +127,12 @@ services:
# image: wekanteam/wekan
#-------------------------------------------------------------------------------------
container_name: wekan-app
# On CentOS 7 there is seccomp issue with glibc 6, so setting it to unconfined
# to get WeKan working. See:
# - https://github.com/wekan/wekan/issues/4585
# - https://github.com/wekan/wekan/issues/4587
security_opt:
- seccomp:unconfined
restart: always
networks:
- wekan-tier
@@ -336,6 +342,10 @@ services:
#-----------------------------------------------------------------
# ==== Debug OIDC OAuth2 etc ====
#- DEBUG=true
#---------------------------------------------
# ==== AUTOLOGIN WITH OIDC/OAUTH2 ====
# https://github.com/wekan/wekan/wiki/autologin
#- OIDC_REDIRECTION_ENABLED=true
#-----------------------------------------------------------------
# ==== OAUTH2 ORACLE on premise identity manager OIM ====
#- ORACLE_OIM_ENABLED=true
+1 -1
View File
@@ -1,5 +1,5 @@
apiVersion: v2
appVersion: "6.26"
appVersion: "6.30"
dependencies:
- condition: mongodb.enabled
name: mongodb
+1 -1
View File
@@ -14,7 +14,7 @@ serviceAccounts:
##
image:
repository: quay.io/wekan/wekan
tag: v6.26
tag: v6.30
pullPolicy: IfNotPresent
## Configuration for wekan component
File diff suppressed because it is too large. Load diff
+68 -68
View File
@@ -1,41 +1,41 @@
{
"accept": "قبول",
"act-activity-notify": "اشعار النشاط",
"act-addAttachment": "added attachment __attachment__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-removeChecklistItem": "removed checklist item __checklistItem__ from checklist __checkList__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-checkedItem": "checked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-uncheckedItem": "unchecked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-completeChecklist": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-editComment": "edited comment on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-deleteComment": "deleted comment on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-createBoard": "created board __board__",
"act-createSwimlane": "created swimlane __swimlane__ to board __board__",
"act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
"act-createCustomField": "created custom field __customField__ at board __board__",
"act-deleteCustomField": "deleted custom field __customField__ at board __board__",
"act-setCustomField": "edited custom field __customField__: __customFieldValue__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-createList": "added list __list__ to board __board__",
"act-addBoardMember": "added member __member__ to board __board__",
"act-archivedBoard": "Board __board__ moved to Archive",
"act-archivedCard": "Card __card__ at list __list__ at swimlane __swimlane__ at board __board__ moved to Archive",
"act-archivedList": "List __list__ at swimlane __swimlane__ at board __board__ moved to Archive",
"act-archivedSwimlane": "Swimlane __swimlane__ at board __board__ moved to Archive",
"act-importBoard": "imported board __board__",
"act-importCard": "imported card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
"act-importList": "imported list __list__ to swimlane __swimlane__ at board __board__",
"act-joinMember": "added member __member__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-moveCard": "moved card __card__ at board __board__ from list __oldList__ at swimlane __oldSwimlane__ to list __list__ at swimlane __swimlane__",
"act-addAttachment": "ماتمت اضافتة__اضافة_للكرت\n__الكرت__في قائمة__قائمة__في المنطقة العائمة \n__المنطقة العائمة__في اللوح__اللوح__",
"act-deleteAttachment": "حذف الاضافة__الاضافة__في كرت\n__كرت__في قائمة__قائمة__في المنطقة العائمة\n__المنطقة العائمة__في اللوح__اللوح__",
"act-addSubtask": "مهمة فرعية مضافة__مهمة فرعية__ للكرت\n__الكرت__في قائمة__قائمة__في المنطقة العائمة\n__المنطقة العائمة__في اللوح__اللوح__",
"act-addLabel": "العلامة المضافة__العلامة__للكرت__كرت__في قائمة__القائمة__في المنطقة العائمة__المنطقة العائمة__في اللوح__اللوح__",
"act-addedLabel": "العلامة المضافة__العلامة__للكرت__كرت__في قائمة__القائمة__في المنطقة العائمة__المنطقة العائمة__في اللوح__اللوح__",
"act-removeLabel": "العلامة المحذوفة__العلامة__من الكرت__في قائمة__القائمة__في المنطقة العائمة__المنطقة العائمة__في اللوح__اللوح__",
"act-removedLabel": "العلامة المحذوفة__العلامة__من الكرت__في قائمة__القائمة__في المنطقة العائمة__المنطقة العائمة__في اللوح__اللوح__",
"act-addChecklist": "قائمة التأكد المضافة__قائمة التأكد__للكرت__كرت__في قائمة__قائمة__في المنطقة العائمة__المنطقة العائمة__في اللوح__اللوح__",
"act-addChecklistItem": "عنصر قائمة التأكد المضافة__عنصر قائمة التأكد__لقائمة التأكد__قائمة التأكد__لكرت__الكرت__في قائمة__القائمة__في المنطقة العائمة__المنطقة العائمة__في اللوح__اللوح__",
"act-removeChecklist": " قائمة التأكد المحذوفة__عنصر قائمة التأكد__لقائمة التأكد__قائمة التأكد__لكرت__الكرت__في قائمة__القائمة__في المنطقة العائمة__المنطقة العائمة__في اللوح__اللوح__",
"act-removeChecklistItem": "عنصر قائمة التأكد المحذوف__عنصر قائمة التأكد__لقائمة التأكد__قائمة التأكد__لكرت__الكرت__في قائمة__القائمة__في المنطقة العائمة__المنطقة العائمة__في اللوح__اللوح__",
"act-checkedItem": "مختار__عنصر قائمة التأكد__لقائمة التأكد__قائمة التأكد__ لكرت__الكرت__في قائمة__القائمة__في المنطقة العائمة__المنطقة العائمة__في اللوح__اللوح__",
"act-uncheckedItem": "غير مختار__عنصر قائمة التأكد__لقائمة التأكد__قائمة التأكد__ لكرت__الكرت__في قائمة__القائمة__في المنطقة العائمة__المنطقة العائمة__في اللوح__اللوح__",
"act-completeChecklist": "قائمة تأكد مكتملة__عنصر قائمة التأكد__لقائمة التأكد__قائمة التأكد__ لكرت__الكرت__في قائمة__القائمة__في المنطقة العائمة__المنطقة العائمة__في اللوح__اللوح__",
"act-uncompleteChecklist": "قائمة تأكد غير مكتملة__عنصر قائمة التأكد__لقائمة التأكد__قائمة التأكد__ لكرت__الكرت__في قائمة__القائمة__في المنطقة العائمة__المنطقة العائمة__في اللوح__اللوح__",
"act-addComment": "تعليق على كرت__كرت__:\n__تعليق__في قائمة__قائمة__في المنطقة العائمة__المنطقة العائمة__في اللوح__اللوح__",
"act-editComment": "تعليق معدل على كرت__كرت__:\n__تعليق__في قائمة__قائمة__في المنطقة العائمة__المنطقة العائمة__في اللوح__اللوح__",
"act-deleteComment": "تعليق محذوف على كرت__كرت__:\n__تعليق__في قائمة__قائمة__في المنطقة العائمة__المنطقة العائمة__في اللوح__اللوح__",
"act-createBoard": "لوح مكون__لوح__",
"act-createSwimlane": "منطقة عائمة مكونة__منطقة عائمة__في اللوح__اللوح__",
"act-createCard": "كرت مكون__كرت__في قائمة__قائمة__في المنطقة العائمة__المنطقة العائمة__في اللوح__اللوح__",
"act-createCustomField": "مجال مخصوص مكون__مجال مخصوص__في اللوح__اللوح__",
"act-deleteCustomField": "مجال مخصوص محذوف__مجال مخصوص__في اللوح__اللوح__",
"act-setCustomField": "مجال مخصوص معدل__مجال مخصوص__:__قيمة مجال مخصوص__للكرت_الكرت__في قائمة__القائمة__في المنطقة العائمة__المنطقة العائمة__في اللوح__اللوح__",
"act-createList": "قائمة مضافة__قائمة__ في اللوح __اللوح__",
"act-addBoardMember": "عضو مضاف__عضو__في اللوح__اللوح__",
"act-archivedBoard": "اللوح__اللوح__منقول الى الارشيف",
"act-archivedCard": "الكرت__الكرت__في قائمة__القائمة__في المنطقة العائمة__المنطقة العائمة__في قائمة__القائمة__ منقول الى الارشيف",
"act-archivedList": "القائمة__القائمة__في المنطقة العائمة__المنطقة العائمة__في اللوح__اللوح__ منقول الى الارشيف",
"act-archivedSwimlane": "المنطقة العائمة__المنطقة العائمة__في اللوح__اللوح__ منقول الى الارشيف",
"act-importBoard": "اللوح المستورد__اللوح__",
"act-importCard": "الكرت المستورد__الكرت__في القائمة__القائمة__في المنطقة العائمة__المنطقة العائمة__في اللوح__اللوح__",
"act-importList": " القائمة المستوردة__القائمة__في المنطقة العائمة__المنطقة العائمة__في اللوح__اللوح__",
"act-joinMember": "العضو المضاف__العضو__للكرت_الكرت__في قائمة__القائمة__في المنطقة العائمة__المنطقة العائمة__في اللوح__اللوح__",
"act-moveCard": "الكرت المحذوف__الكرت__في اللوح_اللوح__من قائمة__قائمة قديمة__في المنطقة العائمة__منطقة عائمة قديمة__في القائمة__القائمة__في المنطقة العائمة__المنطقة العائمة__",
"act-moveCardToOtherBoard": "moved card __card__ from list __oldList__ at swimlane __oldSwimlane__ at board __oldBoard__ to list __list__ at swimlane __swimlane__ at board __board__",
"act-removeBoardMember": "removed member __member__ from board __board__",
"act-restoredCard": "restored card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
@@ -71,7 +71,7 @@
"add": "أضف",
"activity-checked-item-card": "checked %s in checklist %s",
"activity-unchecked-item-card": "unchecked %s in checklist %s",
"activity-checklist-completed-card": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"activity-checklist-completed-card": "قائمة تأكد مكتماة__عنصر قائمة التأكد__لقائمة التأكد__قائمة التأكد__ لكرت__الكرت__في قائمة__القائمة__في المنطقة العائمة__المنطقة العائمة__في اللوح__اللوح__",
"activity-checklist-uncompleted-card": "uncompleted the checklist %s",
"activity-editComment": "edited comment %s",
"activity-deleteComment": "تعليق محذوف %s",
@@ -107,7 +107,7 @@
"and-n-other-card_plural": "And __count__ other بطاقات",
"apply": "طبق",
"app-is-offline": "Loading, please wait. Refreshing the page will cause data loss. If loading does not work, please check that server has not stopped.",
"app-try-reconnect": "Try to reconnect.",
"app-try-reconnect": "محاولة إعادة الاتصال.",
"archive": "نقل الى الارشيف",
"archive-all": "نقل الكل الى الارشيف",
"archive-board": "نقل اللوح الى الارشيف",
@@ -136,9 +136,9 @@
"back": "رجوع",
"board-change-color": "تغيير اللومr",
"show-at-all-boards-page": "Show at All Boards page",
"board-info-on-my-boards": "All Boards Settings",
"boardInfoOnMyBoardsPopup-title": "All Boards Settings",
"boardInfoOnMyBoards-title": "All Boards Settings",
"board-info-on-my-boards": "جميع إعدادات اللوحات",
"boardInfoOnMyBoardsPopup-title": "جميع إعدادات اللوحات",
"boardInfoOnMyBoards-title": "جميع إعدادات اللوحات",
"show-card-counter-per-list": "Show card count per list",
"show-board_members-avatar": "Show Board members avatars",
"board-nb-stars": "%s نجوم",
@@ -150,13 +150,13 @@
"boardChangeTitlePopup-title": "إعادة تسمية اللوحة",
"boardChangeVisibilityPopup-title": "تعديل وضوح الرؤية",
"boardChangeWatchPopup-title": "تغيير المتابعة",
"boardMenuPopup-title": "Board Settings",
"boardMenuPopup-title": "إعدادات اللوحة",
"boardChangeViewPopup-title": "عرض اللوحات",
"boards": "لوحات",
"board-view": "عرض اللوحات",
"board-view-cal": "التقويم",
"board-view-swimlanes": "خطوط السباحة",
"board-view-collapse": "Collapse",
"board-view-collapse": "انهيار",
"board-view-gantt": "Gantt",
"board-view-lists": "القائمات",
"bucket-example": "مثل « todo list » على سبيل المثال",
@@ -193,7 +193,7 @@
"vote-public": "Show who voted what",
"vote-for-it": "مع",
"vote-against": "ضد",
"deleteVotePopup-title": "Delete vote?",
"deleteVotePopup-title": "حذف التصويت؟",
"vote-delete-pop": "Deleting is permanent. You will lose all actions associated with this vote.",
"cardStartPlanningPokerPopup-title": "Start a Planning Poker",
"card-edit-planning-poker": "Edit Planning Poker",
@@ -208,10 +208,10 @@
"poker-twenty": "20",
"poker-forty": "40",
"poker-oneHundred": "100",
"poker-unsure": "?",
"poker-unsure": "؟",
"poker-finish": "Finish",
"poker-result-votes": "Votes",
"poker-result-who": "Who",
"poker-result-votes": "الأصوات",
"poker-result-who": "من",
"poker-replay": "Replay",
"set-estimation": "Set Estimation",
"deletePokerPopup-title": "Delete planning poker?",
@@ -274,7 +274,7 @@
"color-slateblue": "slateblue",
"color-white": "أبيض",
"color-yellow": "yellow",
"unset-color": "Unset",
"unset-color": "غير محدد",
"comment": "تعليق",
"comment-placeholder": "أكتب تعليق",
"comment-only": "التعليق فقط",
@@ -283,7 +283,7 @@
"deleteCommentPopup-title": "Delete comment?",
"no-comments": "لا يوجد تعليقات",
"no-comments-desc": "Can not see comments and activities.",
"worker": "Worker",
"worker": "عامل",
"worker-desc": "Can only move cards, assign itself to card and comment.",
"computer": "حاسوب",
"confirm-subtask-delete-popup": "Are you sure you want to delete subtask?",
@@ -307,7 +307,7 @@
"current": "الحالي",
"custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.",
"custom-field-checkbox": "Checkbox",
"custom-field-currency": "Currency",
"custom-field-currency": "عملة",
"custom-field-currency-option": "Currency Code",
"custom-field-date": "تاريخ",
"custom-field-dropdown": "Dropdown List",
@@ -543,7 +543,7 @@
"restore": "استعادة",
"save": "حفظ",
"search": "بحث",
"rules": "Rules",
"rules": "قواعد",
"search-cards": "Search from card/list titles, descriptions and custom fields on this board",
"search-example": "Write text you search and press Enter",
"select-color": "اختيار اللون",
@@ -832,14 +832,14 @@
"r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
"r-when-a-card-is-moved": "When a card is moved to another list",
"r-set": "Set",
"r-update": "Update",
"r-update": "تحديث",
"r-datefield": "date field",
"r-df-start-at": "بداية",
"r-df-due-at": "due",
"r-df-end-at": "نهاية",
"r-df-received-at": "received",
"r-to-current-datetime": "to current date/time",
"r-remove-value-from": "Remove value from",
"r-remove-value-from": "إزالة القيمة من",
"ldap": "LDAP",
"oauth2": "OAuth2",
"cas": "CAS",
@@ -862,9 +862,9 @@
"swimlaneDeletePopup-title": "Delete Swimlane ?",
"swimlane-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the swimlane. There is no undo.",
"restore-all": "Restore all",
"delete-all": "Delete all",
"delete-all": "حذف الكل",
"loading": "Loading, please wait.",
"previous_as": "last time was",
"previous_as": "كانت آخر مرة",
"act-a-dueAt": "modified due time to \nWhen: __timeValue__\nWhere: __card__\n previous due was __timeOldValue__",
"act-a-endAt": "modified ending time to __timeValue__ from (__timeOldValue__)",
"act-a-startAt": "modified starting time to __timeValue__ from (__timeOldValue__)",
@@ -893,13 +893,13 @@
"addmore-detail": "Add a more detailed description",
"show-on-card": "Show on Card",
"show-on-minicard": "Show on Minicard",
"new": "New",
"new": "جديد",
"editOrgPopup-title": "Edit Organization",
"newOrgPopup-title": "New Organization",
"editTeamPopup-title": "Edit Team",
"newTeamPopup-title": "New Team",
"editUserPopup-title": "Edit User",
"newUserPopup-title": "New User",
"newUserPopup-title": "مستخدم جديد",
"notifications": "Notifications",
"view-all": "View All",
"filter-by-unread": "Filter by Unread",
@@ -909,18 +909,18 @@
"allowRenamePopup-title": "Allow Rename",
"start-day-of-week": "Set day of the week start",
"monday": "Monday",
"tuesday": "Tuesday",
"tuesday": "الثلاثاء",
"wednesday": "Wednesday",
"thursday": "Thursday",
"thursday": "الخميس",
"friday": "Friday",
"saturday": "Saturday",
"saturday": "السبت",
"sunday": "Sunday",
"status": "Status",
"swimlane": "Swimlane",
"owner": "Owner",
"last-modified-at": "Last modified at",
"last-activity": "Last activity",
"voting": "Voting",
"voting": "التصويت",
"archived": "Archived",
"delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list",
@@ -932,8 +932,8 @@
"teams": "Teams",
"displayName": "Display Name",
"shortName": "Short Name",
"website": "Website",
"person": "Person",
"website": "موقع الكتروني",
"person": "شخص",
"my-cards": "My Cards",
"card": "بطاقة",
"board": "Board",
@@ -968,7 +968,7 @@
"n-cards-found": "%s Cards Found",
"n-n-of-n-cards-found": "__start__-__end__ of __total__ Cards Found",
"operator-board": "لوح",
"operator-board-abbrev": "b",
"operator-board-abbrev": "ب",
"operator-swimlane": "swimlane",
"operator-swimlane-abbrev": "s",
"operator-list": "قائمة",
@@ -987,7 +987,7 @@
"operator-created": "created",
"operator-modified": "modified",
"operator-sort": "sort",
"operator-comment": "comment",
"operator-comment": "تعليق",
"operator-has": "has",
"operator-limit": "limit",
"operator-debug": "debug",
@@ -1114,12 +1114,12 @@
"open": "مفتوح",
"pending": "Pending",
"closed": "مقفل",
"resolved": "Resolved",
"resolved": "تم الحل",
"cancelled": "الغاء",
"history": "تاريخ",
"request": "Request",
"requests": "Requests",
"help-request": "Help Request",
"request": "طلب",
"requests": "الطلبات",
"help-request": "طلب مساعدة",
"editCardSortOrderPopup-title": "Change Sorting",
"cardDetailsPopup-title": "نقاصيل البطاقة",
"add-teams": "اضافة فرق",
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
+30 -30
View File
@@ -135,12 +135,12 @@
"avatar-too-big": "Das Profilbild ist zu gross (520KB max)",
"back": "Zurück",
"board-change-color": "Farbe ändern",
"show-at-all-boards-page": "Show at All Boards page",
"board-info-on-my-boards": "All Boards Settings",
"boardInfoOnMyBoardsPopup-title": "All Boards Settings",
"boardInfoOnMyBoards-title": "All Boards Settings",
"show-card-counter-per-list": "Show card count per list",
"show-board_members-avatar": "Show Board members avatars",
"show-at-all-boards-page": "Zeigen auf der Seite \"Alle Boards\"",
"board-info-on-my-boards": "Einstellungen für alle Boards",
"boardInfoOnMyBoardsPopup-title": "Einstellungen für alle Boards",
"boardInfoOnMyBoards-title": "Einstellungen für alle Boards",
"show-card-counter-per-list": "Zeige Kartenanzahl pro Liste",
"show-board_members-avatar": "Zeige Profilbilder der Board-Mitglieder",
"board-nb-stars": "%s Sterne",
"board-not-found": "Board nicht gefunden",
"board-private-info": "Dieses Board wird <strong>privat</strong> sein.",
@@ -288,7 +288,7 @@
"computer": "Computer",
"confirm-subtask-delete-popup": "Wollen Sie die Teilaufgabe wirklich löschen?",
"confirm-checklist-delete-popup": "Wollen Sie diese Checkliste wirklich löschen?",
"subtaskDeletePopup-title": "Delete Subtask?",
"subtaskDeletePopup-title": "Teilaufgabe löschen?",
"checklistDeletePopup-title": "Checkliste löschen?",
"copy-card-link-to-clipboard": "Kopiere Link zur Karte in die Zwischenablage",
"copy-text-to-clipboard": "Text in die Zwischenablage kopieren",
@@ -578,8 +578,8 @@
"has-spenttime-cards": "Hat Karten mit aufgewendeten Zeiten",
"time": "Zeit",
"title": "Titel",
"toggle-labels": "Toggle labels 1-9 for card. Multi-Selection adds labels 1-9",
"remove-labels-multiselect": "Multi-Selection removes labels 1-9",
"toggle-labels": "Label 1-9 zur Karte hinzufügen. Bei Mehrfachauswahl Label 1-9 hinzufügen",
"remove-labels-multiselect": "Labels 1-9 bei Karten-Mehrfachauswahl entfernen",
"tracking": "Folgen",
"tracking-info": "Sie werden über alle Änderungen an Karten benachrichtigt, an denen Sie als Ersteller oder Mitglied beteiligt sind.",
"type": "Typ",
@@ -707,14 +707,14 @@
"queue": "Warteschlange",
"subtask-settings": "Einstellungen für Teilaufgaben",
"card-settings": "Karten-Einstellungen",
"minicard-settings": "Minicard Settings",
"minicard-settings": "Einstellungen für Minikarte",
"boardSubtaskSettingsPopup-title": "Boardeinstellungen für Teilaufgaben",
"boardCardSettingsPopup-title": "Karten-Einstellungen",
"boardMinicardSettingsPopup-title": "Minicard Settings",
"boardMinicardSettingsPopup-title": "Einstellungen für Minikarte",
"deposit-subtasks-board": "Teilaufgaben in diesem Board ablegen:",
"deposit-subtasks-list": "Zielliste für hier abgelegte Teilaufgaben:",
"show-parent-in-minicard": "Übergeordnetes Element auf Minikarte anzeigen:",
"description-on-minicard": "Description on minicard",
"description-on-minicard": "Beschreibung auf Minikarte",
"prefix-with-full-path": "Vollständiger Pfad über Titel",
"prefix-with-parent": "Über Titel",
"subtext-with-full-path": "Vollständiger Pfad unter Titel",
@@ -892,7 +892,7 @@
"cardAssigneesPopup-title": "Zugewiesen",
"addmore-detail": "Eine detailliertere Beschreibung hinzufügen",
"show-on-card": "Zeige auf Karte",
"show-on-minicard": "Show on Minicard",
"show-on-minicard": "Anzeigen auf Minikarte",
"new": "Neu",
"editOrgPopup-title": "Organisation bearbeiten",
"newOrgPopup-title": "Neue Organisation",
@@ -938,10 +938,10 @@
"card": "Karte",
"board": "Board",
"context-separator": "/",
"myCardsViewChange-title": "My Cards View",
"myCardsViewChangePopup-title": "My Cards View",
"myCardsViewChange-title": "Meine Kartenansicht",
"myCardsViewChangePopup-title": "Meine Kartenansicht",
"myCardsViewChange-choice-boards": "Boards",
"myCardsViewChange-choice-table": "Table",
"myCardsViewChange-choice-table": "Tabelle",
"myCardsSortChange-title": "Meine Karten Sortierung",
"myCardsSortChangePopup-title": "Meine Karten Sortierung",
"myCardsSortChange-choice-board": "nach Board",
@@ -1162,20 +1162,20 @@
"copyChecklist": "Checkliste kopieren",
"copyChecklistPopup-title": "Checkliste kopieren",
"card-show-lists": "Listen anzeigen",
"subtaskActionsPopup-title": "Subtask Actions",
"attachmentActionsPopup-title": "Attachment Actions",
"attachment-move-storage-fs": "Move attachment to filesystem",
"attachment-move-storage-gridfs": "Move attachment to GridFS",
"attachment-move": "Move Attachment",
"move-all-attachments-to-fs": "Move all attachments to filesystem",
"move-all-attachments-to-gridfs": "Move all attachments to GridFS",
"move-all-attachments-of-board-to-fs": "Move all attachments of board to filesystem",
"move-all-attachments-of-board-to-gridfs": "Move all attachments of board to GridFS",
"path": "Path",
"version-name": "Version-Name",
"size": "Size",
"storage": "Storage",
"subtaskActionsPopup-title": "Teilaufgabenaktionen",
"attachmentActionsPopup-title": "Anhang-Aktionen",
"attachment-move-storage-fs": "Verschiebe den Anhang ins Dateisystem",
"attachment-move-storage-gridfs": "Verschiebe den Anhang zu GridFS",
"attachment-move": "Verschiebe den Anhang",
"move-all-attachments-to-fs": "Verschiebe alle Anhänge ins Dateisystem",
"move-all-attachments-to-gridfs": "Verschiebe alle Anhänge zu GridFS",
"move-all-attachments-of-board-to-fs": "Verschiebe alle Anhänge des Boards ins Dateisystem",
"move-all-attachments-of-board-to-gridfs": "Verschiebe alle Anhänge des Boards zu GridFS",
"path": "Pfad",
"version-name": "Versionsname",
"size": "Grösse",
"storage": "Speicher",
"action": "Aktion",
"board-title": "Board Title",
"board-title": "Board-Titel",
"attachmentRenamePopup-title": "Umbenennen"
}
+3 -3
View File
@@ -137,8 +137,8 @@
"board-change-color": "Farbe ändern",
"show-at-all-boards-page": "Zeige auf \"Alle Boards\" Seite",
"board-info-on-my-boards": "\"Alle Boards\" Einstellungen",
"boardInfoOnMyBoardsPopup-title": "\"Alle Boards\" Einstellungen",
"boardInfoOnMyBoards-title": "\"Alle Boards\" Einstellungen",
"boardInfoOnMyBoardsPopup-title": "Einstellungen für Alle Boards",
"boardInfoOnMyBoards-title": "Einstellungen für Alle Boards",
"show-card-counter-per-list": "Zeige Kartenanzahl pro Liste",
"show-board_members-avatar": "Zeige Profilbilder der Board-Mitglieder",
"board-nb-stars": "%s Sterne",
@@ -1158,7 +1158,7 @@
"checklistActionsPopup-title": "Checklistenaktionen",
"moveChecklist": "Checkliste verschieben",
"moveChecklistPopup-title": "Checkliste verschieben",
"newlineBecomesNewChecklistItem": "Neue Zeile wird ein neues Checklistenelement",
"newlineBecomesNewChecklistItem": "Neue Zeile wird neuer Checklisteneintrag",
"copyChecklist": "Checkliste kopieren",
"copyChecklistPopup-title": "Checkliste kopieren",
"card-show-lists": "Listen anzeigen",
+1 -1
View File
@@ -107,7 +107,7 @@
"and-n-other-card_plural": "y otras __count__ tarjetas",
"apply": "Aplicar",
"app-is-offline": "Cargando, espera por favor. Refrescar esta página causará pérdida de datos. Si la carga no funciona, por favor comprueba que el servidor no se ha parado.",
"app-try-reconnect": "Try to reconnect.",
"app-try-reconnect": "Intente reconectar.",
"archive": "Archivar",
"archive-all": "Archivar todo",
"archive-board": "Archivar este tablero",
+9 -9
View File
@@ -1156,11 +1156,11 @@
"legalNotice": "legal notice",
"copied": "복사됨",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"moveChecklist": "체크리스트 이동",
"moveChecklistPopup-title": "체크리스트 이동",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item",
"copyChecklist": "Copy Checklist",
"copyChecklistPopup-title": "Copy Checklist",
"copyChecklist": "체크리스트 복사",
"copyChecklistPopup-title": "체크리스트 복사",
"card-show-lists": "Card Show Lists",
"subtaskActionsPopup-title": "Subtask Actions",
"attachmentActionsPopup-title": "Attachment Actions",
@@ -1171,11 +1171,11 @@
"move-all-attachments-to-gridfs": "Move all attachments to GridFS",
"move-all-attachments-of-board-to-fs": "Move all attachments of board to filesystem",
"move-all-attachments-of-board-to-gridfs": "Move all attachments of board to GridFS",
"path": "Path",
"version-name": "Version-Name",
"size": "Size",
"storage": "Storage",
"path": "경로",
"version-name": "버전 이름",
"size": "크기",
"storage": "저장소",
"action": "동작",
"board-title": "Board Title",
"board-title": "보드 제목",
"attachmentRenamePopup-title": "새이름"
}
File diff suppressed because it is too large. Load diff
+48
View File
@@ -1,4 +1,10 @@
export default {
"ar-DZ": {
code: "ar",
tag: "ar-DZ",
name: "دزيرية",
load: () => import('./data/ar-DZ.i18n.json'),
},
"ar-EG": {
code: "ar",
tag: "ar-EG",
@@ -11,6 +17,30 @@ export default {
name: "العربية",
load: () => import('./data/ar.i18n.json'),
},
"ary": {
code: "ary",
tag: "ary",
name: "عربي مغربي",
load: () => import('./data/ary.i18n.json'),
},
"az-AZ": {
code: "az",
tag: "az-AZ",
name: "Azərbaycan (Azərbaycan)",
load: () => import('./data/az-AZ.i18n.json'),
},
"az-LA": {
code: "az",
tag: "az-LA",
name: "Azərbaycan (Latin)",
load: () => import('./data/az-LA.i18n.json'),
},
"az": {
code: "az",
tag: "az",
name: "Azərbaycan",
load: () => import('./data/az.i18n.json'),
},
"bg": {
code: "bg",
tag: "bg",
@@ -131,6 +161,12 @@ export default {
name: "Esperanto",
load: () => import('./data/eo.i18n.json'),
},
"ast-ES": {
code: "es",
tag: "ast-ES",
name: "español de Asturias",
load: () => import('./data/ast-ES.i18n.json'),
},
"es-AR": {
code: "es",
tag: "es-AR",
@@ -323,6 +359,12 @@ export default {
name: "日本語",
load: () => import('./data/ja.i18n.json'),
},
"ja-JP": {
code: "ja",
tag: "ja-JP",
name: "日本語",
load: () => import('./data/ja.i18n.json'),
},
"ka": {
code: "ka",
tag: "ka",
@@ -611,6 +653,12 @@ export default {
name: "Èdè Yorùbá",
load: () => import('./data/yo.i18n.json'),
},
"zgh": {
code: "zgh",
tag: "zgh",
name: "ⵜⴰⵎⴰⵣⵉⵖⵜ ⵜⴰⵏⴰⵡⴰⵢⵜ",
load: () => import('./data/zgh.i18n.json'),
},
"zh-CN": {
code: "zh",
tag: "zh-CN",
+47
View File
@@ -691,6 +691,53 @@ Cards.helpers({
return _.contains(this.labelIds, labelId);
},
/** returns the sort number of a list
* @param listId a list id
* @param swimlaneId a swimlane id
* top sorting of the card at the top if true, or from the bottom if false
*/
getSort(listId, swimlaneId, top) {
if (!_.isBoolean(top)) {
top = true;
}
if (!listId) {
listId = this.listId;
}
if (!swimlaneId) {
swimlaneId = this.swimlaneId;
}
const selector = {
listId: listId,
swimlaneId: swimlaneId,
archived: false,
};
const sorting = top ? 1 : -1;
const card = Cards.findOne(selector, { sort: { sort: sorting } });
let ret = null
if (card) {
ret = card.sort;
}
return ret;
},
/** returns the sort number of a list from the card at the top
* @param listId a list id
* @param swimlaneId a swimlane id
*/
getMinSort(listId, swimlaneId) {
const ret = this.getSort(listId, swimlaneId, true);
return ret;
},
/** returns the sort number of a list from the card at the bottom
* @param listId a list id
* @param swimlaneId a swimlane id
*/
getMaxSort(listId, swimlaneId) {
const ret = this.getSort(listId, swimlaneId, false);
return ret;
},
user() {
return Users.findOne(this.userId);
},
+15
View File
@@ -79,6 +79,21 @@ Lists.attachSchema(
// XXX We should probably provide a default
optional: true,
},
width: {
/**
* list width, default 270px
*/
type: String,
defaultValue: '270px',
optional: true,
},
height: {
/**
* list height
*/
type: String,
optional: true,
},
updatedAt: {
/**
* last update of the list
+18
View File
@@ -229,6 +229,12 @@ if (Meteor.isServer) {
]);
}
function loadOidcConfig(service){
check(service, String);
var config = ServiceConfiguration.configurations.findOne({service: service});
return config;
}
function sendInvitationEmail(_id) {
const icode = InvitationCodes.findOne(_id);
const author = Users.findOne(Meteor.userId());
@@ -495,6 +501,12 @@ if (Meteor.isServer) {
};
},
getOauthServerUrl(){
return process.env.OAUTH2_SERVER_URL;
},
getOauthDashboardUrl(){
return process.env.DASHBOARD_URL;
},
getDefaultAuthenticationMethod() {
return process.env.DEFAULT_AUTHENTICATION_METHOD;
},
@@ -502,6 +514,12 @@ if (Meteor.isServer) {
isPasswordLoginDisabled() {
return process.env.PASSWORD_LOGIN_ENABLED === 'false';
},
isOidcRedirectionEnabled(){
return process.env.OIDC_REDIRECTION_ENABLED === 'true' && Object.keys(loadOidcConfig("oidc")).length > 0;
},
getServiceConfiguration(service){
return loadOidcConfig(service);
}
});
}
+313 -500
View File
File diff suppressed because it is too large. Load diff
+2 -6
View File
@@ -1,6 +1,6 @@
{
"name": "wekan",
"version": "v6.26.0",
"version": "v6.30.0",
"description": "Open-Source kanban",
"private": true,
"repository": {
@@ -17,7 +17,6 @@
"chai": "^4.3.6",
"chai-as-promised": "^7.1.1",
"flatted": "^3.2.2",
"puppeteer": "^1.20.0",
"sinon": "^13.0.2",
"sinon-chai": "^3.7.0"
},
@@ -25,7 +24,7 @@
"@babel/core": "^7.15.5",
"@babel/runtime": "^7.15.4",
"@mapbox/node-pre-gyp": "^1.0.8",
"@wekanteam/markdown-it-mermaid": "^0.5.4",
"@wekanteam/markdown-it-mermaid": "^0.5.5",
"ajv": "^6.12.6",
"babel-runtime": "^6.26.0",
"bcryptjs": "^2.4.3",
@@ -59,8 +58,5 @@
"source-map-support": "^0.5.20",
"summernote": "^0.8.20",
"uuid": "^8.3.2"
},
"meteor": {
"testModule": "tests/main.js"
}
}
+2 -2
View File
@@ -7,11 +7,11 @@ if (Meteor.isClient) {
callback = options;
options = null;
}
var credentialRequestCompleteCallback = Accounts.oauth.credentialRequestCompleteHandler(callback);
Oidc.requestCredential(options, credentialRequestCompleteCallback);
};
} else {
}
else {
Accounts.addAutopublishFields({
// not sure whether the OIDC api can be used from the browser,
// thus not sure if we should be sending access tokens; but we do it
@@ -1,17 +0,0 @@
# This file contains information which helps Meteor properly upgrade your
# app when you run 'meteor update'. You should check it into version control
# with your project.
notices-for-0.9.0
notices-for-0.9.1
0.9.4-platform-file
notices-for-facebook-graph-api-2
1.2.0-standard-minifiers-package
1.2.0-meteor-platform-split
1.2.0-cordova-changes
1.2.0-breaking-changes
1.3.0-split-minifiers-package
1.4.0-remove-old-dev-bundle-link
1.4.1-add-shell-server-package
1.4.3-split-account-service-packages
1.5-add-dynamic-import-package
@@ -1 +0,0 @@
local
@@ -1,7 +0,0 @@
# This file contains a token that is unique to your project.
# Check it into your repository along with the rest of this directory.
# It can be used for purposes such as:
# - ensuring you don't accidentally deploy one app on top of another
# - providing package authors with aggregated statistics
1w4v0yxh077n01wrnl8j
@@ -1,31 +0,0 @@
# Meteor packages used by this project, one per line.
# Check this file (and the other files in this directory) into your repository.
#
# 'meteor add' and 'meteor remove' will edit this file for you,
# but you can also edit it by hand.
# List accounts-sandstorm first so that any missing dependencies it has
# are discovered.
kenton:accounts-sandstorm
# Optional dependency. Should still work commented-out.
accounts-base@1.3.1
meteor-base@1.1.0 # Packages every Meteor app needs to have
mobile-experience@1.0.4 # Packages for a great mobile UX
mongo@1.1.19 # The database Meteor supports right now
blaze-html-templates # Compile .html files into Meteor Blaze views
session@1.1.7 # Client-side reactive dictionary for your app
jquery@1.11.10 # Helpful client-side library
tracker@1.1.3 # Meteor's client-side reactive programming library
es5-shim@4.6.15 # ECMAScript 5 compatibility for older browsers.
ecmascript@0.8.1 # Enable ECMAScript2015+ syntax in app code
autopublish@1.0.7 # Publish all data to the clients (for prototyping)
insecure@1.0.7 # Allow all DB writes from clients (for prototyping)
standard-minifier-css
standard-minifier-js
shell-server
dynamic-import
@@ -1,2 +0,0 @@
server
browser
@@ -1 +0,0 @@
METEOR@1.5.1
@@ -1,83 +0,0 @@
accounts-base@1.3.1
allow-deny@1.0.6
autopublish@1.0.7
autoupdate@1.3.12
babel-compiler@6.19.4
babel-runtime@1.0.1
base64@1.0.10
binary-heap@1.0.10
blaze@2.3.2
blaze-html-templates@1.1.2
blaze-tools@1.0.10
boilerplate-generator@1.1.1
caching-compiler@1.1.9
caching-html-compiler@1.1.2
callback-hook@1.0.10
check@1.2.5
ddp@1.3.0
ddp-client@2.0.0
ddp-common@1.2.9
ddp-rate-limiter@1.0.7
ddp-server@2.0.0
deps@1.0.12
diff-sequence@1.0.7
dynamic-import@0.1.1
ecmascript@0.8.2
ecmascript-runtime@0.4.1
ecmascript-runtime-client@0.4.3
ecmascript-runtime-server@0.4.1
ejson@1.0.13
es5-shim@4.6.15
fastclick@1.0.13
geojson-utils@1.0.10
hot-code-push@1.0.4
html-tools@1.0.11
htmljs@1.0.11
http@1.2.12
id-map@1.0.9
insecure@1.0.7
jquery@1.11.10
kenton:accounts-sandstorm@0.7.0
launch-screen@1.1.1
livedata@1.0.18
localstorage@1.1.1
logging@1.1.17
meteor@1.7.1
meteor-base@1.1.0
minifier-css@1.2.16
minifier-js@2.1.1
minimongo@1.2.1
mobile-experience@1.0.4
mobile-status-bar@1.0.14
modules@0.9.4
modules-runtime@0.8.0
mongo@1.1.22
mongo-id@1.0.6
npm-mongo@2.2.30
observe-sequence@1.0.16
ordered-dict@1.0.9
promise@0.8.9
random@1.0.10
rate-limit@1.0.8
reactive-dict@1.1.9
reactive-var@1.0.11
reload@1.1.11
retry@1.0.9
routepolicy@1.0.12
service-configuration@1.0.11
session@1.1.7
shell-server@0.2.4
spacebars@1.0.15
spacebars-compiler@1.1.3
standard-minifier-css@1.3.4
standard-minifier-js@2.1.1
templating@1.3.2
templating-compiler@1.3.2
templating-runtime@1.3.2
templating-tools@1.1.2
tracker@1.1.3
ui@1.0.13
underscore@1.0.10
url@1.1.0
webapp@1.3.17
webapp-hashing@1.0.9
@@ -1 +0,0 @@
/* CSS declarations go here */
@@ -1,19 +0,0 @@
<head>
<title>accounts-meteor-test</title>
</head>
<body>
<h1>Welcome to Meteor!</h1>
{{> hello}}
</body>
<template name="hello">
<p>Resubscribes: {{counter}}</p>
<h2>server</h2>
<pre>{{serverInfo}}</pre>
<h2>client</h2>
<pre>{{clientInfo}}</pre>
</template>
@@ -1,48 +0,0 @@
if (Meteor.isClient) {
var Info = new Mongo.Collection("info");
var Counter = new Mongo.Collection("counter");
Template.hello.onCreated(function () {
Meteor.subscribe("info");
Meteor.subscribe("counter");
});
Template.hello.helpers({
counter: function () {
if (!Template.instance().subscriptionsReady()) return "not ready";
return Counter.findOne("counter").counter;
},
serverInfo: function () {
var obj = Info.findOne("info");
console.log("server", Meteor.loggingIn && Meteor.loggingIn(), obj);
return JSON.stringify(obj, null, 2);
},
clientInfo: function () {
var obj = Meteor.sandstormUser();
console.log("client", Meteor.loggingIn && Meteor.loggingIn(), obj);
return JSON.stringify(obj, null, 2);
},
});
}
if (Meteor.isServer) {
Meteor.startup(function () {
// code to run on server at startup
});
Meteor.publish("info", function () {
var user = Meteor.users && this.userId && Meteor.users.findOne(this.userId);
this.added("info", "info", {userId: this.userId, user: user, sandstormUser: this.connection.sandstormUser(),
sessionId: this.connection.sandstormSessionId(),
tabId: this.connection.sandstormTabId()});
this.ready();
});
var counter = 0;
Meteor.publish("counter", function () {
this.added("counter", "counter", {counter: counter++});
this.ready();
});
}
@@ -1,74 +0,0 @@
@0xb412d6a17c04e5cc;
using Spk = import "/sandstorm/package.capnp";
const pkgdef :Spk.PackageDefinition = (
id = "y49n7yrxk6p3ud1hkgeup1mah6f7a488nancvay7v6y1wxq78cn0",
manifest = (
appTitle = (defaultText = "Meteor Accounts Test App"),
appVersion = 0,
appMarketingVersion = (defaultText = "0.0.0"),
actions = [
( title = (defaultText = "New Test"),
command = .myCommand
)
],
continueCommand = .myCommand,
),
sourceMap = (
searchPath = [
( sourcePath = ".meteor-spk/deps" ),
( sourcePath = ".meteor-spk/bundle" )
]
),
alwaysInclude = [ "." ],
bridgeConfig = (
viewInfo = (
permissions = [
(
name = "editor",
title = (defaultText = "editor"),
description = (defaultText = "grants ability to modify data"),
),
(
name = "commenter",
title = (defaultText = "commenter"),
description = (defaultText = "grants ability to modify data"),
),
],
roles = [
(
title = (defaultText = "editor"),
permissions = [true, true],
verbPhrase = (defaultText = "can edit"),
description = (defaultText = "editors may view all site data and change settings."),
),
(
title = (defaultText = "commenter"),
permissions = [false, true],
verbPhrase = (defaultText = "can comment"),
description = (defaultText = "viewers may view what other users have written."),
),
(
title = (defaultText = "viewer"),
permissions = [false, false],
verbPhrase = (defaultText = "can view"),
description = (defaultText = "viewers may view what other users have written."),
),
],
),
),
);
const myCommand :Spk.Manifest.Command = (
argv = ["/sandstorm-http-bridge", "4000", "--", "node", "start.js"],
environ = [
(key = "PATH", value = "/usr/local/bin:/usr/bin:/bin"),
(key = "SANDSTORM", value = "1"),
]
);
+22 -2
View File
@@ -47,6 +47,26 @@ See example below:
NOTE: orgs & teams won't be updated if they already exist.
5. Manages admin rights as well. If user is in Group which has isAdmin: set to true, user will get admin
privileges in Wekan as well.
5. Manages admin rights as well. If user is in Group which has isAdmin: set to true, user will get admin
privileges in Wekan as well.
If no adjustments (e.g. 1-3) are made on oidc provider's side, user will receive his/her admin rights from before.
## For further empowerment of oidc as sso solution
If you want to be redirected to your oidc provider on LOGIN without going the extra loop of signing in.
On LOGOUT you will be redirected to the oidc provider as well.
Add to your .env file:
OIDC_REDIRECTION_ENABLED=true
OAUTH2_SERVER_URL=http://localhost:9000
DASHBOARD_URL=/if/session-end/wekan/
Example for authentik.
The latter specifies the OIDC Dashboard you'll get redirected on logout
Flow:
You need to have an oidc provider configured to get this feature
Make sure to have
Authorize Application (default-provider-authorization-implicit-consent)
enabled
+50 -45
View File
@@ -12,56 +12,61 @@ Oidc.requestCredential = function (options, credentialRequestCompleteCallback) {
options = {};
}
var config = ServiceConfiguration.configurations.findOne({service: 'oidc'});
if (!config) {
credentialRequestCompleteCallback && credentialRequestCompleteCallback(
new ServiceConfiguration.ConfigError('Service oidc not configured.'));
return;
}
Meteor.call("getServiceConfiguration", "oidc",(_, result) => {
if (result) {
var config = result;
var credentialToken = Random.secret();
var loginStyle = OAuth._loginStyle('oidc', config, options);
// options
options = options || {};
options.client_id = config.clientId;
options.response_type = options.response_type || 'code';
options.redirect_uri = OAuth._redirectUri('oidc', config);
options.state = OAuth._stateParam(loginStyle, credentialToken, options.redirectUrl);
options.scope = config.requestPermissions || 'openid profile email';
var credentialToken = Random.secret();
var loginStyle = OAuth._loginStyle('oidc', config, options);
if (config.loginStyle && config.loginStyle == 'popup') {
options.display = 'popup';
}
// options
options = options || {};
options.client_id = config.clientId;
options.response_type = options.response_type || 'code';
options.redirect_uri = OAuth._redirectUri('oidc', config);
options.state = OAuth._stateParam(loginStyle, credentialToken, options.redirectUrl);
options.scope = config.requestPermissions || 'openid profile email';
var loginUrl = config.serverUrl + config.authorizationEndpoint;
// check if the loginUrl already contains a "?"
var first = loginUrl.indexOf('?') === -1;
for (var k in options) {
if (first) {
loginUrl += '?';
first = false;
}
else {
loginUrl += '&'
}
loginUrl += encodeURIComponent(k) + '=' + encodeURIComponent(options[k]);
}
if (config.loginStyle && config.loginStyle == 'popup') {
options.display = 'popup';
}
//console.log('XXX: loginURL: ' + loginUrl)
var loginUrl = config.serverUrl + config.authorizationEndpoint;
// check if the loginUrl already contains a "?"
var first = loginUrl.indexOf('?') === -1;
for (var k in options) {
if (first) {
loginUrl += '?';
first = false;
options.popupOptions = options.popupOptions || {};
var popupOptions = {
width: options.popupOptions.width || 320,
height: options.popupOptions.height || 450
};
OAuth.launchLogin({
loginService: 'oidc',
loginStyle: loginStyle,
loginUrl: loginUrl,
credentialRequestCompleteCallback: credentialRequestCompleteCallback,
credentialToken: credentialToken,
popupOptions: popupOptions,
});
}
else {
loginUrl += '&'
else
{
credentialRequestCompleteCallback && credentialRequestCompleteCallback(
new ServiceConfiguration.ConfigError('Service oidc not configured.'));
return;
}
loginUrl += encodeURIComponent(k) + '=' + encodeURIComponent(options[k]);
}
//console.log('XXX: loginURL: ' + loginUrl)
options.popupOptions = options.popupOptions || {};
var popupOptions = {
width: options.popupOptions.width || 320,
height: options.popupOptions.height || 450
};
OAuth.launchLogin({
loginService: 'oidc',
loginStyle: loginStyle,
loginUrl: loginUrl,
credentialRequestCompleteCallback: credentialRequestCompleteCallback,
credentialToken: credentialToken,
popupOptions: popupOptions,
});
};
-1
View File
@@ -19,7 +19,6 @@ var serviceData = {};
var userinfo = {};
OAuth.registerService('oidc', 2, null, function (query) {
var debug = process.env.DEBUG || false;
var token = getToken(query);
+21 -3
View File
@@ -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 v6.26</title>
<title>Wekan REST API v6.30</title>
<style>
</style>
@@ -1558,7 +1558,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 v6.26">Wekan REST API v6.26</a>
<a href="#wekan-rest-api" class="toc-h1 toc-link" data-title="Wekan REST API v6.30">Wekan REST API v6.30</a>
</li>
@@ -2156,7 +2156,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 v6.26</h1>
<h1 id="wekan-rest-api">Wekan REST API v6.30</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>
@@ -15280,6 +15280,8 @@ System.out.println(response.toString());
<span class="hljs-attr">&quot;swimlaneId&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
<span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
<span class="hljs-attr">&quot;sort&quot;</span>: <span class="hljs-number">0</span>,
<span class="hljs-attr">&quot;width&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
<span class="hljs-attr">&quot;height&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
<span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
<span class="hljs-attr">&quot;modifiedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
<span class="hljs-attr">&quot;wipLimit&quot;</span>: {
@@ -20996,6 +20998,8 @@ UserSecurity
<span class="hljs-attr">&quot;swimlaneId&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
<span class="hljs-attr">&quot;createdAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
<span class="hljs-attr">&quot;sort&quot;</span>: <span class="hljs-number">0</span>,
<span class="hljs-attr">&quot;width&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
<span class="hljs-attr">&quot;height&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
<span class="hljs-attr">&quot;updatedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
<span class="hljs-attr">&quot;modifiedAt&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
<span class="hljs-attr">&quot;wipLimit&quot;</span>: {
@@ -21078,6 +21082,20 @@ UserSecurity
<td>is the list sorted</td>
</tr>
<tr>
<td>width</td>
<td>string¦null</td>
<td>false</td>
<td>none</td>
<td>list width, default 270px</td>
</tr>
<tr>
<td>height</td>
<td>string¦null</td>
<td>false</td>
<td>none</td>
<td>list height</td>
</tr>
<tr>
<td>updatedAt</td>
<td>string¦null</td>
<td>false</td>
+11 -1
View File
@@ -1,7 +1,7 @@
swagger: '2.0'
info:
title: Wekan REST API
version: v6.26
version: v6.30
description: |
The REST API allows you to control and extend Wekan with ease.
@@ -3745,6 +3745,16 @@ definitions:
is the list sorted
type: number
x-nullable: true
width:
description: |
list width, default 270px
type: string
x-nullable: true
height:
description: |
list height
type: string
x-nullable: true
updatedAt:
description: |
last update of the list
+2 -2
View File
@@ -15,8 +15,8 @@ REM Install chocolatey
choco install -y git curl python2 dotnet4.5.2 nano mongodb-4 mongoclient
curl -O https://nodejs.org/dist/v14.19.3/node-v14.19.3-x64.msi
call node-v14.19.3-x64.msi
curl -O https://nodejs.org/dist/v14.20.0/node-v14.20.0-x64.msi
call node-v14.20.0-x64.msi
call npm config -g set msvs_version 2015
call meteor npm config -g set msvs_version 2015
+1 -1
View File
@@ -39,7 +39,7 @@ do
#curl -0 -L https://npmjs.org/install.sh | sudo sh
#sudo chown -R $(id -u):$(id -g) $HOME/.npm
sudo npm -g install n
sudo n 14.19.3
sudo n 14.20.0
#sudo npm -g install npm
## Latest npm with Meteor 2.2
sudo npm -g install node-gyp
@@ -6,6 +6,21 @@ tx pull -f -l ar
echo "Arabic (Egypt), simply Masri (مَصرى, [ˈmɑsˤɾi], Egyptian, Masr refers to Cairo):"
tx pull -f -l ar_EG
echo "Arabic (Moroccan):"
tx pull -f -l ary
echo "Arabic (Algeria):"
tx pull -f -l ar_DZ
echo "Azerbaijani:"
tx pull -f -l az
echo "Azerbaijani (Azerbaijan):"
tx pull -f -l az_AZ
echo "Azerbaijani (Latin):"
tx pull -f -l az@latin
echo "Armenian:"
tx pull -f -l hy
@@ -208,6 +223,9 @@ tx pull -f -l es
echo "Spanish (Argentina):"
tx pull -f -l es_AR
echo "Spanish (Asturia):"
tx pull -f -l ast_ES
echo "Spanish (Chile):"
tx pull -f -l es_CL
@@ -232,6 +250,9 @@ tx pull -f -l sk
echo "Slovenian:"
tx pull -f -l sl_SI
echo "Standard Moroccan Tamazight"
tx pull -f -l zgh
echo "Swahili:"
tx pull -f -l sw
+2 -2
View File
@@ -22,10 +22,10 @@ const pkgdef :Spk.PackageDefinition = (
appTitle = (defaultText = "Wekan"),
# The name of the app as it is displayed to the user.
appVersion = 626,
appVersion = 630,
# Increment this for every release.
appMarketingVersion = (defaultText = "6.26.0~2022-05-21"),
appMarketingVersion = (defaultText = "6.30.0~2022-07-11"),
# Human-readable presentation of the app version.
minUpgradableAppVersion = 0,
+2
View File
@@ -1,4 +1,5 @@
var fs = require('fs');
var os = require('os');
let errors = [];
if (!process.env.WRITABLE_PATH) {
@@ -9,6 +10,7 @@ if (!process.env.WRITABLE_PATH) {
} catch (err) {
errors.push("can't write to " + process.env.WRITABLE_PATH, err);
errors.push("the path of WRITABLE_PATH (" + process.env.WRITABLE_PATH + ") must be writable !!!");
errors.push("username: " + userInfo["username"] + " - uid: " + userInfo["uid"] + " - gid: " + userInfo["gid"]);
}
}
+1 -1
View File
@@ -108,7 +108,7 @@ Meteor.startup(() => {
// OAUTH2_ID_TOKEN_WHITELIST_FIELDS || [],
// OAUTH2_REQUEST_PERMISSIONS || 'openid profile email',
},
);
);
} else if (
process.env.CAS_ENABLED === 'true' ||
process.env.CAS_ENABLED === true
+5 -1
View File
@@ -3,7 +3,7 @@
# All supported keys are defined here together with descriptions and default values
# list of supported keys
keys="DEBUG MONGO_LOG_DESTINATION MONGO_URL MONGODB_BIND_UNIX_SOCKET MONGO_URL MONGODB_BIND_IP MONGODB_PORT MAIL_URL MAIL_FROM MAIL_SERVICE MAIL_SERVICE_USER MAIL_SERVICE_PASSWORD ROOT_URL PORT DISABLE_MONGODB CADDY_ENABLED CADDY_BIND_PORT WITH_API RICHER_CARD_COMMENT_EDITOR CARD_OPENED_WEBHOOK_ENABLED ACCOUNTS_LOCKOUT_KNOWN_USERS_FAILURES_BEFORE ACCOUNTS_LOCKOUT_KNOWN_USERS_PERIOD ACCOUNTS_LOCKOUT_KNOWN_USERS_FAILURE_WINDOW ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURES_BERORE ACCOUNTS_LOCKOUT_UNKNOWN_USERS_LOCKOUT_PERIOD ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURE_WINDOW ACCOUNTS_COMMON_LOGIN_EXPIRATION_IN_DAYS MAX_IMAGE_PIXEL IMAGE_COMPRESS_RATIO BIGEVENTS_PATTERN NOTIFICATION_TRAY_AFTER_READ_DAYS_BEFORE_REMOVE NOTIFY_DUE_DAYS_BEFORE_AND_AFTER NOTIFY_DUE_AT_HOUR_OF_DAY EMAIL_NOTIFICATION_TIMEOUT CORS CORS_ALLOW_HEADERS CORS_EXPOSE_HEADERS MATOMO_ADDRESS MATOMO_SITE_ID MATOMO_DO_NOT_TRACK MATOMO_WITH_USERNAME BROWSER_POLICY_ENABLED TRUSTED_URL WEBHOOKS_ATTRIBUTES OAUTH2_ENABLED OAUTH2_CA_CERT OAUTH2_LOGIN_STYLE OAUTH2_CLIENT_ID OAUTH2_SECRET OAUTH2_SERVER_URL OAUTH2_AUTH_ENDPOINT OAUTH2_USERINFO_ENDPOINT OAUTH2_TOKEN_ENDPOINT OAUTH2_ID_MAP OAUTH2_USERNAME_MAP OAUTH2_FULLNAME_MAP OAUTH2_ID_TOKEN_WHITELIST_FIELDS OAUTH2_EMAIL_MAP OAUTH2_REQUEST_PERMISSIONS OAUTH2_ADFS_ENABLED LDAP_ENABLE LDAP_PORT LDAP_HOST LDAP_AD_SIMPLE_AUTH LDAP_BASEDN LDAP_LOGIN_FALLBACK LDAP_RECONNECT LDAP_TIMEOUT LDAP_IDLE_TIMEOUT LDAP_CONNECT_TIMEOUT LDAP_AUTHENTIFICATION LDAP_AUTHENTIFICATION_USERDN LDAP_AUTHENTIFICATION_PASSWORD LDAP_LOG_ENABLED LDAP_BACKGROUND_SYNC LDAP_BACKGROUND_SYNC_INTERVAL LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED LDAP_BACKGROUND_SYNC_IMPORT_NEW_USERS LDAP_ENCRYPTION LDAP_CA_CERT LDAP_REJECT_UNAUTHORIZED LDAP_USER_AUTHENTICATION LDAP_USER_AUTHENTICATION_FIELD LDAP_USER_SEARCH_FILTER LDAP_USER_SEARCH_SCOPE LDAP_USER_SEARCH_FIELD LDAP_SEARCH_PAGE_SIZE LDAP_SEARCH_SIZE_LIMIT LDAP_GROUP_FILTER_ENABLE LDAP_GROUP_FILTER_OBJECTCLASS LDAP_GROUP_FILTER_GROUP_ID_ATTRIBUTE LDAP_GROUP_FILTER_GROUP_MEMBER_ATTRIBUTE LDAP_GROUP_FILTER_GROUP_MEMBER_FORMAT LDAP_GROUP_FILTER_GROUP_NAME LDAP_UNIQUE_IDENTIFIER_FIELD LDAP_UTF8_NAMES_SLUGIFY LDAP_USERNAME_FIELD LDAP_FULLNAME_FIELD LDAP_MERGE_EXISTING_USERS LDAP_SYNC_USER_DATA LDAP_SYNC_USER_DATA_FIELDMAP LDAP_SYNC_GROUP_ROLES LDAP_DEFAULT_DOMAIN LDAP_EMAIL_MATCH_ENABLE LDAP_EMAIL_MATCH_REQUIRE LDAP_EMAIL_MATCH_VERIFIED LDAP_EMAIL_FIELD LDAP_SYNC_ADMIN_STATUS LDAP_SYNC_ADMIN_GROUPS HEADER_LOGIN_ID HEADER_LOGIN_FIRSTNAME HEADER_LOGIN_LASTNAME HEADER_LOGIN_EMAIL LOGOUT_WITH_TIMER LOGOUT_IN LOGOUT_ON_HOURS LOGOUT_ON_MINUTES DEFAULT_AUTHENTICATION_METHOD PASSWORD_LOGIN_ENABLED CAS_ENABLED CAS_BASE_URL CAS_LOGIN_URL CAS_VALIDATE_URL SAML_ENABLED SAML_PROVIDER SAML_ENTRYPOINT SAML_ISSUER SAML_CERT SAML_IDPSLO_REDIRECTURL SAML_PRIVATE_KEYFILE SAML_PUBLIC_CERTFILE SAML_IDENTIFIER_FORMAT SAML_LOCAL_PROFILE_MATCH_ATTRIBUTE SAML_ATTRIBUTES ORACLE_OIM_ENABLED RESULTS_PER_PAGE WAIT_SPINNER NODE_OPTIONS"
keys="DEBUG MONGO_LOG_DESTINATION MONGO_URL MONGODB_BIND_UNIX_SOCKET MONGO_URL MONGODB_BIND_IP MONGODB_PORT MAIL_URL MAIL_FROM MAIL_SERVICE MAIL_SERVICE_USER MAIL_SERVICE_PASSWORD ROOT_URL PORT DISABLE_MONGODB CADDY_ENABLED CADDY_BIND_PORT WITH_API RICHER_CARD_COMMENT_EDITOR CARD_OPENED_WEBHOOK_ENABLED ACCOUNTS_LOCKOUT_KNOWN_USERS_FAILURES_BEFORE ACCOUNTS_LOCKOUT_KNOWN_USERS_PERIOD ACCOUNTS_LOCKOUT_KNOWN_USERS_FAILURE_WINDOW ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURES_BERORE ACCOUNTS_LOCKOUT_UNKNOWN_USERS_LOCKOUT_PERIOD ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURE_WINDOW ACCOUNTS_COMMON_LOGIN_EXPIRATION_IN_DAYS MAX_IMAGE_PIXEL IMAGE_COMPRESS_RATIO BIGEVENTS_PATTERN NOTIFICATION_TRAY_AFTER_READ_DAYS_BEFORE_REMOVE NOTIFY_DUE_DAYS_BEFORE_AND_AFTER NOTIFY_DUE_AT_HOUR_OF_DAY EMAIL_NOTIFICATION_TIMEOUT CORS CORS_ALLOW_HEADERS CORS_EXPOSE_HEADERS MATOMO_ADDRESS MATOMO_SITE_ID MATOMO_DO_NOT_TRACK MATOMO_WITH_USERNAME BROWSER_POLICY_ENABLED TRUSTED_URL WEBHOOKS_ATTRIBUTES OAUTH2_ENABLED OIDC_REDIRECTION_ENABLED OAUTH2_CA_CERT OAUTH2_LOGIN_STYLE OAUTH2_CLIENT_ID OAUTH2_SECRET OAUTH2_SERVER_URL OAUTH2_AUTH_ENDPOINT OAUTH2_USERINFO_ENDPOINT OAUTH2_TOKEN_ENDPOINT OAUTH2_ID_MAP OAUTH2_USERNAME_MAP OAUTH2_FULLNAME_MAP OAUTH2_ID_TOKEN_WHITELIST_FIELDS OAUTH2_EMAIL_MAP OAUTH2_REQUEST_PERMISSIONS OAUTH2_ADFS_ENABLED LDAP_ENABLE LDAP_PORT LDAP_HOST LDAP_AD_SIMPLE_AUTH LDAP_BASEDN LDAP_LOGIN_FALLBACK LDAP_RECONNECT LDAP_TIMEOUT LDAP_IDLE_TIMEOUT LDAP_CONNECT_TIMEOUT LDAP_AUTHENTIFICATION LDAP_AUTHENTIFICATION_USERDN LDAP_AUTHENTIFICATION_PASSWORD LDAP_LOG_ENABLED LDAP_BACKGROUND_SYNC LDAP_BACKGROUND_SYNC_INTERVAL LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED LDAP_BACKGROUND_SYNC_IMPORT_NEW_USERS LDAP_ENCRYPTION LDAP_CA_CERT LDAP_REJECT_UNAUTHORIZED LDAP_USER_AUTHENTICATION LDAP_USER_AUTHENTICATION_FIELD LDAP_USER_SEARCH_FILTER LDAP_USER_SEARCH_SCOPE LDAP_USER_SEARCH_FIELD LDAP_SEARCH_PAGE_SIZE LDAP_SEARCH_SIZE_LIMIT LDAP_GROUP_FILTER_ENABLE LDAP_GROUP_FILTER_OBJECTCLASS LDAP_GROUP_FILTER_GROUP_ID_ATTRIBUTE LDAP_GROUP_FILTER_GROUP_MEMBER_ATTRIBUTE LDAP_GROUP_FILTER_GROUP_MEMBER_FORMAT LDAP_GROUP_FILTER_GROUP_NAME LDAP_UNIQUE_IDENTIFIER_FIELD LDAP_UTF8_NAMES_SLUGIFY LDAP_USERNAME_FIELD LDAP_FULLNAME_FIELD LDAP_MERGE_EXISTING_USERS LDAP_SYNC_USER_DATA LDAP_SYNC_USER_DATA_FIELDMAP LDAP_SYNC_GROUP_ROLES LDAP_DEFAULT_DOMAIN LDAP_EMAIL_MATCH_ENABLE LDAP_EMAIL_MATCH_REQUIRE LDAP_EMAIL_MATCH_VERIFIED LDAP_EMAIL_FIELD LDAP_SYNC_ADMIN_STATUS LDAP_SYNC_ADMIN_GROUPS HEADER_LOGIN_ID HEADER_LOGIN_FIRSTNAME HEADER_LOGIN_LASTNAME HEADER_LOGIN_EMAIL LOGOUT_WITH_TIMER LOGOUT_IN LOGOUT_ON_HOURS LOGOUT_ON_MINUTES DEFAULT_AUTHENTICATION_METHOD PASSWORD_LOGIN_ENABLED CAS_ENABLED CAS_BASE_URL CAS_LOGIN_URL CAS_VALIDATE_URL SAML_ENABLED SAML_PROVIDER SAML_ENTRYPOINT SAML_ISSUER SAML_CERT SAML_IDPSLO_REDIRECTURL SAML_PRIVATE_KEYFILE SAML_PUBLIC_CERTFILE SAML_IDENTIFIER_FORMAT SAML_LOCAL_PROFILE_MATCH_ATTRIBUTE SAML_ATTRIBUTES ORACLE_OIM_ENABLED RESULTS_PER_PAGE WAIT_SPINNER NODE_OPTIONS"
#DESCRIPTION_WRITABLE_PATH="Writable path. Default: $SNAP_COMMON/files"
#DEFAULT_WRITABLE_PATH="$SNAP_COMMON/files"
@@ -209,6 +209,10 @@ DESCRIPTION_OAUTH2_ENABLED="Enable the OAuth2 connection. Default: false"
DEFAULT_OAUTH2_ENABLED="false"
KEY_OAUTH2_ENABLED="oauth2-enabled"
DESCRIPTION_OIDC_REDIRECTION_ENABLED="Enable the OIDC/OAuth2 autologin. See https://github.com/wekan/wekan/wiki/autologin . Default: false"
DEFAULT_OIDC_REDIRECTION_ENABLED="false"
KEY_OIDC_REDIRECTION_ENABLED="oidc-redirection-enabled"
DESCRIPTION_OAUTH2_CA_CERT="Optional OAuth2 CA Cert, see https://github.com/wekan/wekan/issues/3299."
DEFAULT_OAUTH2_CA_CERT=""
KEY_OAUTH2_CA_CERT="oauth2-ca-cert"
+4
View File
@@ -0,0 +1,4 @@
#!/bin/bash
# List backups
ls -al $SNAP_COMMON/db-backups/
+40
View File
@@ -17,6 +17,46 @@ fi
export LC_ALL=C
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/snap/${SNAP_NAME}/current/lib/x86_64-linux-gnu
if test -f "$SNAP_COMMON/01-migrate-mongo3-to-mongo5.txt"; then
touch "$SNAP_COMMON/01-migrate-mongo3-to-mongo5.txt"
# Stop MongoDB
touch "$SNAP_COMMON/02-disable-mongo.txt"
snapctl stop --disable ${SNAP_NAME}.mongodb
touch "$SNAP_COMMON/03-eval-stop-mongo.txt"
mongo wekan --eval "db.getSiblingDB('admin').shutdownServer()" $BIND_OPTIONS
# Start MongoDB 4.4
touch "$SNAP_COMMON/04-start-mongo44.txt"
$SNAP/mongo44bin/mongod --dbpath $SNAP_COMMON --logpath $SNAP_COMMON/02_mongodb_log_while_migrate.txt --logappend --journal $MONGO_URL --quiet
# Wait MongoDB 4.4 to start
touch "$SNAP_COMMON/05-wait-2s-mongo44-start.txt"
sleep 2s
# Dump Old MongoDB 3.x database
touch "$SNAP_COMMON/06-dump-database.txt"
(cd $SNAP_COMMON && mongodump --port ${MONGODB_PORT})
# Stop MongoDB 4.4
touch "$SNAP_COMMON/07-stop-mongo44.txt"
$SNAP/mongo44bin/mongo wekan --eval "db.getSiblingDB('admin').shutdownServer()" $BIND_OPTIONS
# Wait MongoDB 4.4 to stop
touch "$SNAP_COMMON/08-wait-2s-mongo44-stop.txt"
sleep 2s
# Start MongoDB 5
touch "$SNAP_COMMON/09-start-mongo5.txt"
mongod --dbpath $SNAP_COMMON --logpath $SNAP_COMMON/10_mongodb_log_while_migrate.txt --logappend --journal $MONGO_URL --quiet
# Restore database
touch "$SNAP_COMMON/11-mongorestore-to-mongo5.txt"
(cd $SNAP_COMMON && mongorestore --port ${MONGODB_PORT})
# Wait 5s
touch "$SNAP_COMMON/12-wait-5s-after-restore.txt"
sleep 5s
# Shutdown mongodb
touch "$SNAP_COMMON/13-shutdown-mongodb.txt"
mongo wekan --eval "db.getSiblingDB('admin').shutdownServer()" $BIND_OPTIONS
touch "$SNAP_COMMON/14-wait-5s-after-mongo5-shutdown.txt"
sleep 5s
# Enable MongoDB 5
touch "$SNAP_COMMON/15-enable-mongo-5.txt"
snapctl start --enable ${SNAP_NAME}.mongodb
fi
# When starting MongoDB, if logfile exist, delete it, because now uses syslog instead of logfile,
# because syslog usually already has log rotation.
# https://github.com/wekan/wekan-snap/issues/92
+6
View File
@@ -214,6 +214,12 @@ echo -e "\t$ snap set $SNAP_NAME oauth2-enabled='true'"
echo -e "\t-Disable the OAuth2 of Wekan:"
echo -e "\t$ snap unset $SNAP_NAME oauth2-enabled"
echo -e "\n"
echo -e "OIDC/OAuth2 redirection to autologin, see https://github.com/wekan/wekan/wiki/autologin"
echo -e "To enable the autologin of Wekan:"
echo -e "\t$ snap set $SNAP_NAME oidc-redirection-enabled='true'"
echo -e "\t-Disable the autologin of Wekan:"
echo -e "\t$ snap unset $SNAP_NAME oidc-redirection-enabled"
echo -e "\n"
echo -e "Optional OAuth2 CA Cert, see https://github.com/wekan/wekan/issues/3299"
echo -e "To enable the OAuth2 of Wekan:"
echo -e "\t$ snap set $SNAP_NAME oauth2-ca-cert='ABCD134'"
+90 -43
View File
@@ -1,5 +1,6 @@
name: wekan
version: '6.26'
version: '6.30'
base: core20
summary: Open Source kanban
description: |
WeKan ® is an Open Source and collaborative kanban board application.
@@ -34,66 +35,89 @@ slots:
apps:
wekan:
command: wekan-control
command: ./bin/wekan-control
daemon: simple
plugs: [network, network-bind]
mongodb:
command: mongodb-control
command: ./bin/mongodb-control
daemon: simple
plugs: [network, network-bind]
caddy:
command: caddy-control
command: ./bin/caddy-control
daemon: simple
plugs: [network, network-bind]
help:
command: wekan-help
command: ./bin/wekan-help
database-backup:
command: mongodb-backup
command: ./bin/mongodb-backup
plugs: [network, network-bind]
database-list-backups:
command: ls -al $SNAP_COMMON/db-backups/
command: ./bin/database-list-backups
database-restore:
command: mongodb-restore
command: ./bin/mongodb-restore
plugs: [network, network-bind]
parts:
mongodb:
source: https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1604-3.2.22.tgz
source: https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu2004-5.0.9.tgz
plugin: dump
stage-packages: [libssl1.0.0]
stage-packages:
- libssl1.1
- libcurl4
- libstemmer0d
- zlib1g
- libsnappy1v5
- libyaml-cpp0.6
- libpcre3
- libpcrecpp0v5
- libboost-system1.71.0
- libboost-iostreams1.71.0
- libboost-filesystem1.71.0
- libboost-program-options1.71.0
- libgoogle-perftools4
filesets:
mongo:
- usr
- bin
- lib
- usr
stage:
- $mongo
prime:
- $mongo
mongodb44:
source: https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu2004-4.4.14.tgz
plugin: dump
organize:
bin: mongo44bin
usr: mongo44usr
stage:
- -init
wekan:
source: .
plugin: nodejs
node-engine: 14.19.3
node-packages:
- node-gyp
- node-pre-gyp
- fibers
plugin: npm
npm-node-version: 14.20.0
#npm-packages:
# - node-gyp
# - node-pre-gyp
# - fibers
build-packages:
- build-essential
- ca-certificates
- apt-utils
- python
# - python3
# - python2
- python3
- g++
- capnproto
- curl
- wget
- unzip
- execstack
- nodejs
- npm
@@ -102,33 +126,50 @@ parts:
- libfontconfig1
override-build: |
echo "Cleaning environment first"
rm -rf ~/.meteor ~/.npm /usr/local/lib/node_modules
#rm -rf ~/.meteor ~/.npm /usr/local/lib/node_modules
rm -rf .build
echo "Installing meteor"
curl https://install.meteor.com/ -o install_meteor.sh
chmod +x install_meteor.sh
sh install_meteor.sh
rm install_meteor.sh
rm -rf .build
chmod u+w *.json
npm install
meteor build .build --directory --allow-superuser
#echo "Using http npm packages so speedup install process https://stackoverflow.com/questions/39760113/callback-called-more-than-once-while-running-npm-install"
#echo "registry=http://registry.npmjs.org/" > ~/.npmrc
#echo "Installing npm, node-gyp, node-pre-gyp, fibers"
#npm -g install n --unsafe-perm
#n 14.20.0
#npm -g install node-gyp --unsafe-perm
#npm -g install node-pre-gyp --unsafe-perm
#npm -g install fibers --unsafe-perm
##echo "Installing meteor"
##curl https://install.meteor.com/ -o install_meteor.sh
##chmod +x install_meteor.sh
##sh install_meteor.sh
##rm install_meteor.sh
#npm -g install meteor --unsafe-perm --allow-superuser
#rm -rf .build
##chmod u+w *.json
#npm install --unsafe-perm
##npm install
##meteor build .build --directory --allow-superuser
# Remove legacy webbroser bundle, so that Wekan works also at Android Firefox, iOS Safari, etc.
rm -rf .build/bundle/programs/web.browser.legacy
##rm -rf .build/bundle/programs/web.browser.legacy
# Change to directory .build/bundle/programs/server
cd .build/bundle/programs/server
chmod u+w *.json
npm install
cd node_modules/fibers
node build.js
cd ../../../../../..
##cd .build/bundle/programs/server
##chmod u+w *.json
#npm install --unsafe-perm
##npm install
##cd node_modules/fibers
##node build.js
##cd ../../../../../..
# Cleanup
cd .build/bundle
find . -type d -name '*-garbage*' | xargs rm -rf
find . -name '*phantom*' | xargs rm -rf
find . -name '.*.swp' | xargs rm -f
find . -name '*.swp' | xargs rm -f
cd ../..
mkdir .build
cd .build
wget https://github.com/wekan/wekan/releases/download/v6.30/wekan-6.30-amd64.zip
unzip wekan-6.30-amd64.zip
rm wekan-6.30-amd64.zip
cd ..
##cd .build/bundle
##find . -type d -name '*-garbage*' | xargs rm -rf
##find . -name '*phantom*' | xargs rm -rf
##find . -name '.*.swp' | xargs rm -f
##find . -name '*.swp' | xargs rm -f
##cd ../..
# Add fibers multi arch
#cd .build/bundle/programs/server/node_modules/fibers/bin
#curl https://releases.wekan.team/fibers-multi.7z -o fibers-multi.7z
@@ -136,6 +177,12 @@ parts:
#rm fibers-multi.7z
#cd ../../../../../../..
# Copy to Snap
wget https://nodejs.org/dist/latest-v14.x/node-v14.20.0-linux-x64.tar.xz
tar -xf node-v14.20.0-linux-x64.tar.xz node-v14.20.0-linux-x64/bin/node
rm node-v14.20.0-linux-x64.tar.xz
mkdir $SNAPCRAFT_PART_INSTALL/bin
cp -p node-v14.20.0-linux-x64/bin/node $SNAPCRAFT_PART_INSTALL/bin/
rm -rf node-v14.20.0-linux-x64
cp -r .build/bundle/* $SNAPCRAFT_PART_INSTALL/
cp .build/bundle/.node_version.txt $SNAPCRAFT_PART_INSTALL/
rm -f $SNAPCRAFT_PART_INSTALL/lib/node_modules/wekan
+1 -1
View File
@@ -2,7 +2,7 @@
set -euxo pipefail
BUILD_DEPS="bsdtar gnupg wget curl bzip2 python git ca-certificates perl-Digest-SHA"
NODE_VERSION=v14.19.3
NODE_VERSION=v14.20.0
#METEOR_RELEASE=1.6.0.1 - for Stacksmith, meteor-1.8 branch that could have METEOR@1.8.1-beta.8 or newer
USE_EDGE=false
METEOR_EDGE=1.5-beta.17
+6
View File
@@ -128,6 +128,12 @@ REM SET WEBHOOKS_ATTRIBUTES=
REM ------------------------------------------------------------
REM ## ==== AUTOLOGIN WITH OIDC/OAUTH2 ====
REM ## https://github.com/wekan/wekan/wiki/autologin
REM # SET OIDC_REDIRECTION_ENABLED=true
REM ------------------------------------------------------------
REM # OAUTH2 ORACLE on premise identity manager OIM
REM SET ORACLE_OIM_ENABLED=true
+4
View File
@@ -137,6 +137,10 @@
# Example: export WEBHOOKS_ATTRIBUTES=cardId,listId,oldListId,boardId,comment,user,card,commentId
export WEBHOOKS_ATTRIBUTES=''
#---------------------------------------------
# ==== AUTOLOGIN WITH OIDC/OAUTH2 ====
# https://github.com/wekan/wekan/wiki/autologin
#export OIDC_REDIRECTION_ENABLED=true
#---------------------------------------------
# OAUTH2 ORACLE on premise identity manager OIM
#export ORACLE_OIM_ENABLED=true
#---------------------------------------------
+4
View File
@@ -351,6 +351,10 @@ services:
# example: WEBHOOKS_ATTRIBUTES=cardId,listId,oldListId,boardId,comment,user,card,commentId
#- WEBHOOKS_ATTRIBUTES=
#-----------------------------------------------------------------
# ==== AUTOLOGIN WITH OIDC/OAUTH2 ====
# https://github.com/wekan/wekan/wiki/autologin
#- OIDC_REDIRECTION_ENABLED=true
#---------------------------------------------
# ==== OAUTH2 ORACLE on premise identity manager OIM ====
#- ORACLE_OIM_ENABLED=true
#-----------------------------------------------------------------