Compare commits

...
40 Commits
Author SHA1 Message Date
Lauri Ojansivu c826438328 v6.80 2023-03-23 22:18:18 +02:00
Lauri Ojansivu e39390ab92 Updated ChangeLog. 2023-03-23 22:14:16 +02:00
Lauri Ojansivu 120f57894f Merge pull request #4864 from mfilser/custom_fields_hide_grid_button_if_1_field
Custom Fields, display Grid Button only if more than 1 custom field
2023-03-22 20:10:41 +00:00
Martin Filser b89a01fddf Custom Fields, display Grid Button only if more than 1 custom field 2023-03-22 07:49:55 +01:00
Lauri Ojansivu 21e4a64dc7 v6.79 2023-03-22 00:07:24 +02:00
Lauri Ojansivu 4aeab872de Use MongoDB 6.
Thanks to xet7 !
2023-03-21 23:59:17 +02:00
Lauri Ojansivu a0a2c9375e Updated translations. 2023-03-21 07:50:10 +02:00
Lauri Ojansivu d1dd9ba955 Updated ChangeLog. 2023-03-21 07:49:45 +02:00
Lauri Ojansivu e48db7d7ea Upgraded to Meteor 2.11.0 .
Thanks to Meteor developers !
2023-03-21 07:48:22 +02:00
Lauri Ojansivu 239dea793a Updated ChangeLog. 2023-03-21 07:32:26 +02:00
Lauri Ojansivu b0ce378629 Merge pull request #4857 from mfilser/avatar_broken_if_no_size_is_configured
Avatar upload was broken if no size is configured
2023-03-16 16:22:59 +01:00
Martin Filser 7de50c0f4b Bugfix, Avatar upload message "avatar-too-big" shows now the configured max filesize 2023-03-15 19:43:02 +01:00
Martin Filser 07926386ea Bugfix, Avatar Upload didn't work if AVATARS_UPLOAD_MAX_SIZE wasn't defined or lower or equal to 0 2023-03-15 19:43:02 +01:00
Lauri Ojansivu f1c962fbbc v6.78 2023-02-28 14:21:46 +02:00
Lauri Ojansivu 5d79c231ed Try to fix some security issue.
Thanks to Responsible Security Disclousure contributors and xet7 !
2023-02-28 14:16:08 +02:00
Lauri Ojansivu 972f0481e5 v6.77 2023-02-27 17:29:57 +02:00
Lauri Ojansivu 49781aae17 Updated ChangeLog. 2023-02-27 17:26:08 +02:00
Lauri Ojansivu 51f22f48dc Use MongoDB 5 at docker-compose.yml .
Thanks to xet7 !
2023-02-27 17:24:54 +02:00
Lauri Ojansivu a64381153f MongoDB to 5 for beta Snap. MongoDB 5 does not seem to show some errors that only MongoDB 6 has. 2023-02-27 17:03:47 +02:00
Lauri Ojansivu 10280966ac Updated ChangeLog. 2023-02-27 17:01:23 +02:00
Lauri Ojansivu 16ad6bf9fc Try to fix attachment migrations to ostrioFiles, allow existing files to be migrated. Part 2.
Thanks to xet7 !

Related #4780,
related https://github.com/wekan/wekan/pull/4648
2023-02-27 16:58:12 +02:00
Lauri Ojansivu 1aa5c23bba Updated ChangeLog. 2023-02-27 16:44:00 +02:00
Lauri Ojansivu 9216a69c05 Temporarily disable file validation, because it prevents migrating some attachments at wekan/server/migrations.js to ostrio Meteor-Files.
Thanks to xet7 !

Related #4780,
related https://github.com/wekan/wekan/pull/4648
2023-02-27 16:38:16 +02:00
Lauri Ojansivu 7b2cff4c5e Fix attachment migration error about avatarUrl startsWith undefined.
Thanks to xet7 !

Related #4780
2023-02-27 16:31:43 +02:00
Lauri Ojansivu bf42958059 Updated ChangeLog. 2023-02-26 01:38:01 +02:00
Lauri Ojansivu 1deccf2f4b Added "Move card to archive" to minicard ☰ menu.
Thanks to mohammadZahedian and xet7 !

Fixes #4303
2023-02-26 01:35:42 +02:00
Lauri Ojansivu 57755ef413 Updated ChangeLog. 2023-02-26 00:50:46 +02:00
Lauri Ojansivu c2cf850179 Made ☰ menu buttons bigger at minicard and list.
Thanks to mohammadZahedian and xet7 !

Fixes #4303
2023-02-26 00:47:59 +02:00
Lauri Ojansivu 67838ae29e Updated translations. 2023-02-26 00:47:02 +02:00
Lauri Ojansivu 4d22477477 Updated ChangeLog. 2023-02-26 00:26:45 +02:00
Lauri Ojansivu 96b5ed1df6 Merge pull request #4846 from Entepotenz/master
fix indentation for image  size and compression
2023-02-26 00:24:07 +02:00
Florian Kretschmer b9ec43c0f7 fix indentation for image size and compression 2023-02-25 23:00:13 +01:00
Lauri Ojansivu 8a0899a819 Updated ChangeLog. 2023-02-23 17:00:16 +02:00
Lauri Ojansivu e390852a67 Updated release scripts. 2023-02-23 16:56:55 +02:00
Lauri Ojansivu c4083c23d6 Back to Snap Candidate MongoDB 6.x 2023-02-22 02:47:42 +02:00
Lauri Ojansivu bdc751ac24 MongoDB 5.x to WeKan Snap Beta channel only. 2023-02-22 02:31:01 +02:00
Lauri Ojansivu 0e23975964 Updated ChangeLog. 2023-02-22 01:56:41 +02:00
Lauri Ojansivu ad53414c4d Updated release scripts.
Thanks to xet7 !
2023-02-22 01:52:57 +02:00
Lauri Ojansivu 23e01130e9 Updated release scripts.
Thanks to xet7 !
2023-02-22 01:20:42 +02:00
Lauri Ojansivu f779c35d0e Updated ChangeLog. 2023-02-22 00:44:07 +02:00
37 changed files with 2658 additions and 1358 deletions

No files matched your search

+6 -6
View File
@@ -6,7 +6,7 @@
meteor-base@1.5.1
# Build system
ecmascript@0.16.5
ecmascript@0.16.6
standard-minifier-js@2.8.1
mquandalle:jade
coffeescript@2.4.1!
@@ -21,11 +21,11 @@ cottz:publish-relations
dburles:collection-helpers
idmontie:migrations
easy:search
mongo@1.16.4
mongo@1.16.5
mquandalle:collection-mutations
# Account system
accounts-password@2.3.3
accounts-password@2.3.4
useraccounts:core
useraccounts:flow-routing
useraccounts:unstyled
@@ -43,8 +43,8 @@ jquery@1.11.10
random@1.2.1
reactive-dict@1.3.1
session@1.2.1
tracker@1.3.0
underscore@1.0.11
tracker@1.3.1
underscore@1.0.12
arillo:flow-router-helpers
audit-argument-checks@1.0.7
kadira:blaze-layout
@@ -67,7 +67,7 @@ templates:tabs
meteor-autosize
rajit:bootstrap3-datepicker
shell-server@0.5.0
email@2.2.3
email@2.2.4
horka:swipebox
dynamic-import@0.7.2
cfs:gridfs
+1 -1
View File
@@ -1 +1 @@
METEOR@2.10.0
METEOR@2.11.0
+18 -18
View File
@@ -1,6 +1,6 @@
accounts-base@2.2.6
accounts-base@2.2.7
accounts-oauth@1.4.2
accounts-password@2.3.3
accounts-password@2.3.4
aldeed:collection2@2.10.0
aldeed:collection2-core@1.2.0
aldeed:schema-deny@1.1.0
@@ -10,7 +10,7 @@ allow-deny@1.1.1
arillo:flow-router-helpers@0.5.2
audit-argument-checks@1.0.7
autoupdate@1.8.0
babel-compiler@7.10.2
babel-compiler@7.10.3
babel-runtime@1.5.1
base64@1.0.12
binary-heap@1.0.11
@@ -39,7 +39,7 @@ cfs:tempstore@0.1.6
cfs:upload-http@0.0.20
cfs:worker@0.1.5
check@1.3.2
coffeescript@2.4.1
coffeescript@2.7.0
coffeescript-compiler@2.4.1
communitypackages:picker@1.1.0
cottz:publish-relations@2.0.8
@@ -56,12 +56,12 @@ easy:search@2.2.1
easylogic:summernote@0.8.8
easysearch:components@2.2.2
easysearch:core@2.2.2
ecmascript@0.16.5
ecmascript@0.16.6
ecmascript-runtime@0.8.0
ecmascript-runtime-client@0.12.1
ecmascript-runtime-server@0.11.0
ejson@1.1.3
email@2.2.3
email@2.2.4
es5-shim@4.8.0
fetch@0.1.3
fortawesome:fontawesome@4.7.0
@@ -82,10 +82,10 @@ konecty:mongo-counter@0.0.5_3
livedata@1.0.18
lmieulet:meteor-coverage@1.1.4
localstorage@1.2.0
logging@1.3.1
matb33:collection-hooks@1.2.0
logging@1.3.2
matb33:collection-hooks@1.2.1
mdg:validation-error@0.5.1
meteor@1.11.0
meteor@1.11.1
meteor-autosize@5.0.1
meteor-base@1.5.1
meteorhacks:aggregate@1.3.0
@@ -93,17 +93,17 @@ meteorhacks:collection-utils@1.2.0
meteorhacks:picker@1.0.3
meteorhacks:subs-manager@1.6.4
meteortesting:browser-tests@1.4.2
meteortesting:mocha@2.0.4
meteortesting:mocha@2.1.0
meteortesting:mocha-core@8.0.1
minifier-css@1.6.2
minifier-js@2.7.5
minifiers@1.1.8-faster-rebuild.0
minimongo@1.9.1
minimongo@1.9.2
modern-browsers@0.1.9
modules@0.19.0
modules-runtime@0.13.1
momentjs:moment@2.29.3
mongo@1.16.4
mongo@1.16.5
mongo-decimal@0.1.3
mongo-dev-server@1.1.0
mongo-id@1.0.8
@@ -116,8 +116,8 @@ mquandalle:jade-compiler@0.4.5
mquandalle:jquery-textcomplete@0.8.0_1
mquandalle:mousetrap-bindglobal@0.0.1
msavin:usercache@1.8.0
npm-mongo@4.12.1
oauth@2.1.3
npm-mongo@4.14.0
oauth@2.2.0
oauth2@1.3.2
observe-sequence@1.0.20
ongoworks:speakingurl@1.1.0
@@ -188,7 +188,7 @@ rajit:bootstrap3-datepicker-zh-cn@1.7.1
rajit:bootstrap3-datepicker-zh-tw@1.7.1
random@1.2.1
rate-limit@1.0.9
react-fast-refresh@0.2.5
react-fast-refresh@0.2.6
reactive-dict@1.3.1
reactive-var@1.0.12
reload@1.3.1
@@ -213,15 +213,15 @@ templating@1.4.1
templating-compiler@1.4.1
templating-runtime@1.5.0
templating-tools@1.2.2
tracker@1.3.0
tracker@1.3.1
twbs:bootstrap@3.3.6
ui@1.0.13
underscore@1.0.11
underscore@1.0.12
url@1.3.2
useraccounts:core@1.16.2
useraccounts:flow-routing@1.15.0
useraccounts:unstyled@1.14.2
webapp@1.13.3
webapp@1.13.4
webapp-hashing@1.1.1
wekan-accounts-cas@0.1.0
wekan-accounts-lockout@1.0.0
+78
View File
@@ -10,6 +10,82 @@ Note:
[How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585)
# v6.80 2023-03-23 WeKan ® release
This release adds the following improvements:
- [Helm Charts secretEnv: Modify secret and deployment to allow users to provide secretEnv with empty value](https://github.com/wekan/charts/pull/13).
Thanks to jehutyy.
and fixes the following bugs:
- [Custom Fields, display Grid Button only if more than 1 custom field](https://github.com/wekan/wekan/pull/4864).
Thanks to mfilser.
- Helm Charts: Add missing data-storage as pvc for WRITABLE_PATH.
[Part 1](https://github.com/wekan/charts/issues/14),
[Part 2](https://github.com/wekan/charts/pull/15),
[Part 3](https://github.com/wekan/charts/pull/16).
Thanks to Nightreaver, NotTheEvilOne and xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v6.79 2023-03-22 WeKan ® release
This release adds the following updates:
- [Upgraded to Meteor 2.11.0](https://github.com/wekan/wekan/commit/e48db7d7ea7e70dc767576126be35927ced24ee5).
Thanks to Meteor developers.
- [Use MongoDB 6](https://github.com/wekan/wekan/commit/4aeab872de2c9d0365a4b8872b6b015a36666615).
Thanks to to MongoDB.
and fixes the following bugs:
- [Avatar upload was broken if no size is configured](https://github.com/wekan/wekan/pull/4857).
Thanks to mfilser.
Thanks to above GitHub users for their contributions and translators for their translations.
# v6.78 2023-02-28 WeKan ® release
This release fixes the following CRITICAL SECURITY ISSUES:
- [Try to fix some security issue](https://github.com/wekan/wekan/commit/5d79c231ed3cfc09636ab678b3f62ea9f36160f2).
Thanks to Responsible Security Disclousure contributors and xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v6.77 2023-02-27 WeKan ® release
This release adds the following updates:
- Updated release scripts
[Part 1](https://github.com/wekan/wekan/commit/23e01130e907f0068333046dc4b88a471b781ce7),
[Part 2](https://github.com/wekan/wekan/commit/ad53414c4d415b93e808ec88cc36af5a4741f681),
[Part 3](https://github.com/wekan/wekan/commit/e390852a673be25e00cb397acf4dbdc5a7d2a1f9).
Updated release scripts.
Thanks to xet7.
and fixes the following bugs:
- [Fixed indentation for image size and compression in docker-compose.yml](https://github.com/wekan/wekan/pull/4846).
Thanks to Entepotenz.
- [Made ☰ menu buttons bigger at minicard and list, they were too hard to click when they were small](https://github.com/wekan/wekan/commit/c2cf850179ad0079d83561675b6dc2c59825cc11).
Thanks to mohammadZahedian and xet7.
- [Added "Move card to archive" to minicard ☰ menu](https://github.com/wekan/wekan/commit/1deccf2f4b5ba1a72bc76d5ae83858e6c50b36ae).
Thanks to mohammadZahedian and xet7.
- [Fix attachment migration error about avatarUrl startsWith undefined](https://github.com/wekan/wekan/commit/7b2cff4c5e7bae4971776638b680696596edc7e6).
Thanks to xet7.
- Try to fix attachment migrations to ostrioFiles, allow existing files to be migrated.
[Part 1](https://github.com/wekan/wekan/commit/9216a69c0541325be6941c07d256b07627a8ec73),
[Part 2](https://github.com/wekan/wekan/commit/16ad6bf9fc75b39e6e8cedb8a5a98ec963ccf14a).
Thanks to xet7.
- [MongoDB to 5 for beta Snap. MongoDB 5 does not seem to show some errors that only MongoDB 6 has](https://github.com/wekan/wekan/commit/a64381153fd762b67f2a752b590b2cdd196bcfe5).
Thanks to xet7.
- [Use MongoDB 5 at docker-compose.yml](https://github.com/wekan/wekan/commit/51f22f48dc916717ed6be9502dc767798692f07b).
Thanks to xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v6.76 2023-02-22 WeKan ® release
This release adds the following updates:
@@ -52,6 +128,8 @@ and fixes the following bugs:
Thanks to garciadavy.
- [Swipebox slide background gradient of black to blue, so that back SVG images are visible](https://github.com/wekan/wekan/commit/c3577aa434ac5330d664f17d0771ff9679cced86).
Thanks to xet7.
- [Fix typo](https://github.com/wekan/wekan/pull/4840).
Thanks to robert-scheck.
Thanks to above GitHub users for their contributions and translators for their translations.
+1 -1
View File
@@ -1,5 +1,5 @@
appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928
appVersion: "v6.76.0"
appVersion: "v6.80.0"
files:
userUploads:
- README.md
+8 -6
View File
@@ -266,12 +266,14 @@ template(name="cardDetails")
i.fa.fa-list-alt
= definition.name
+cardCustomField
.material-toggle-switch(title="{{_ 'change'}} {{_ 'custom-fields'}} {{_ 'layout'}}")
if customFieldsGrid
input.toggle-switch(type="checkbox" id="toggleCustomFieldsGridButton" checked="checked")
else
input.toggle-switch(type="checkbox" id="toggleCustomFieldsGridButton")
label.toggle-label(for="toggleCustomFieldsGridButton")
if $gt customFieldsWD.length 1
.material-toggle-switch(title="{{_ 'change'}} {{_ 'custom-fields'}} {{_ 'layout'}}")
if customFieldsGrid
input.toggle-switch(type="checkbox" id="toggleCustomFieldsGridButton" checked="checked")
else
input.toggle-switch(type="checkbox" id="toggleCustomFieldsGridButton")
label.toggle-label(for="toggleCustomFieldsGridButton")
a.fa.fa-plus.js-custom-fields.card-details-item.custom-fields(title="{{_ 'custom-fields'}}")
if getVoteQuestion
+2 -2
View File
@@ -45,12 +45,12 @@
}
.minicard-details-menu-with-handle {
float: right;
font-size: 14px;
font-size: 18px;
padding-right: 30px;
}
.minicard-details-menu {
float: right;
font-size: 14px;
font-size: 18px;
}
@media print {
.minicard-details-menu,
+6
View File
@@ -172,6 +172,12 @@ template(name="minicardDetailsActionsPopup")
i.fa.fa-copy
| {{_ 'copyCardPopup-title'}}
hr
li
a.js-archive
i.fa.fa-arrow-right
i.fa.fa-archive
| {{_ 'archive-card'}}
hr
li
a.js-move-card-to-top
i.fa.fa-arrow-up
+5
View File
@@ -168,4 +168,9 @@ Template.minicardDetailsActionsPopup.events({
this.move(this.boardId, this.swimlaneId, this.listId, maxOrder + 1);
Popup.back();
},
'click .js-archive': Popup.afterConfirm('cardArchive', function () {
Popup.close();
this.archive();
Utils.goBoardId(this.boardId);
}),
});
+3
View File
@@ -112,6 +112,9 @@
color: #4d4d4d;
padding-left: 4px;
}
.js-open-list-menu {
font-size: 18px;
}
.list-body {
flex: 1 1 auto;
flex-direction: column;
+2 -2
View File
@@ -287,8 +287,8 @@ services:
#---------------------------------------------------------------
# ==== Allow to shrink attached/pasted image ====
# https://github.com/wekan/wekan/pull/2544
#-MAX_IMAGE_PIXEL=1024
#-IMAGE_COMPRESS_RATIO=80
#- MAX_IMAGE_PIXEL=1024
#- IMAGE_COMPRESS_RATIO=80
#---------------------------------------------------------------
# ==== NOTIFICATION TRAY AFTER READ DAYS BEFORE REMOVE =====
# Number of days after a notification is read before we remove it.
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
+1 -1
View File
@@ -134,7 +134,7 @@
"attachmentDeletePopup-title": "Anhang löschen?",
"attachments": "Anhänge",
"auto-watch": "Neue Boards nach Erstellung automatisch beobachten",
"avatar-too-big": "Das Profilbild ist zu groß (520KB max)",
"avatar-too-big": "Das Profilbild ist zu groß (__size__ max)",
"back": "Zurück",
"board-change-color": "Farbe ändern",
"show-at-all-boards-page": "Zeige auf \"Alle Boards\" Seite",
+1 -1
View File
@@ -134,7 +134,7 @@
"attachmentDeletePopup-title": "Delete Attachment?",
"attachments": "Attachments",
"auto-watch": "Automatically watch boards when they are created",
"avatar-too-big": "The avatar is too large (520KB max)",
"avatar-too-big": "The avatar is too large (__size__ max)",
"back": "Back",
"board-change-color": "Change color",
"show-at-all-boards-page" : "Show at All Boards page",
+7 -4
View File
@@ -3,10 +3,13 @@ import { FilesCollection } from 'meteor/ostrio:files';
import { formatFleURL } from 'meteor/ostrio:files/lib';
import { isFileValid } from './fileValidation';
import { createBucket } from './lib/grid/createBucket';
import { TAPi18n } from '/imports/i18n';
import fs from 'fs';
import path from 'path';
import FileStoreStrategyFactory, { FileStoreStrategyFilesystem, FileStoreStrategyGridFs, STORAGE_NAME_FILESYSTEM } from '/models/lib/fileStoreStrategy';
const filesize = require('filesize');
let avatarsUploadExternalProgram;
let avatarsUploadMimeTypes = [];
let avatarsUploadSize = 72000;
@@ -20,10 +23,10 @@ if (Meteor.isServer) {
}
if (process.env.AVATARS_UPLOAD_MAX_SIZE) {
avatarsUploadSize = parseInt(process.env.AVATARS_UPLOAD_MAX_SIZE);
avatarsUploadSize_ = parseInt(process.env.AVATARS_UPLOAD_MAX_SIZE);
if (isNaN(avatarsUploadSize)) {
avatarsUploadSize = 0
if (_.isNumber(avatarsUploadSize_) && avatarsUploadSize_ > 0) {
avatarsUploadSize = avatarsUploadSize_;
}
}
@@ -84,7 +87,7 @@ Avatars = new FilesCollection({
if (file.size <= avatarsUploadSize && file.type.startsWith('image/')) {
return true;
}
return 'avatar-too-big';
return TAPi18n.__('avatar-too-big', {size: filesize(avatarsUploadSize)});
},
onAfterUpload(fileObj) {
// current storage is the filesystem, update object and database
+34 -29
View File
@@ -1,4 +1,5 @@
import escapeForRegex from 'escape-string-regexp';
import DOMPurify from 'dompurify';
CardComments = new Mongo.Collection('card_comments');
@@ -101,39 +102,43 @@ CardComments.helpers({
},
toggleReaction(reactionCodepoint) {
const cardCommentReactions = CardCommentReactions.findOne({cardCommentId: this._id});
const reactions = !!cardCommentReactions ? cardCommentReactions.reactions : [];
const userId = Meteor.userId();
const reaction = reactions.find(r => r.reactionCodepoint === reactionCodepoint);
// If no reaction is set for the codepoint, add this
if (!reaction) {
reactions.push({ reactionCodepoint, userIds: [userId] });
if (reactionCodepoint !== DOMPurify.sanitize(reactionCodepoint)) {
return false;
} else {
// toggle user reaction upon previous reaction state
const userHasReacted = reaction.userIds.includes(userId);
if (userHasReacted) {
reaction.userIds.splice(reaction.userIds.indexOf(userId), 1);
if (reaction.userIds.length === 0) {
reactions.splice(reactions.indexOf(reaction), 1);
}
const cardCommentReactions = CardCommentReactions.findOne({cardCommentId: this._id});
const reactions = !!cardCommentReactions ? cardCommentReactions.reactions : [];
const userId = Meteor.userId();
const reaction = reactions.find(r => r.reactionCodepoint === reactionCodepoint);
// If no reaction is set for the codepoint, add this
if (!reaction) {
reactions.push({ reactionCodepoint, userIds: [userId] });
} else {
reaction.userIds.push(userId);
}
}
// If no reaction doc exists yet create otherwise update reaction set
if (!!cardCommentReactions) {
return CardCommentReactions.update({ _id: cardCommentReactions._id }, { $set: { reactions } });
} else {
return CardCommentReactions.insert({
boardId: this.boardId,
cardCommentId: this._id,
cardId: this.cardId,
reactions
});
// toggle user reaction upon previous reaction state
const userHasReacted = reaction.userIds.includes(userId);
if (userHasReacted) {
reaction.userIds.splice(reaction.userIds.indexOf(userId), 1);
if (reaction.userIds.length === 0) {
reactions.splice(reactions.indexOf(reaction), 1);
}
} else {
reaction.userIds.push(userId);
}
}
// If no reaction doc exists yet create otherwise update reaction set
if (!!cardCommentReactions) {
return CardCommentReactions.update({ _id: cardCommentReactions._id }, { $set: { reactions } });
} else {
return CardCommentReactions.insert({
boardId: this.boardId,
cardCommentId: this._id,
cardId: this.cardId,
reactions
});
}
}
}
});
+24 -22
View File
@@ -13,35 +13,37 @@ if (Meteor.isServer) {
export async function isFileValid(fileObj, mimeTypesAllowed, sizeAllowed, externalCommandLine) {
let isValid = true;
if (mimeTypesAllowed.length) {
const mimeTypeResult = await FileType.fromFile(fileObj.path);
if (Meteor.settings.public.ostrioFilesMigrationInProgress !== "true") {
if (mimeTypesAllowed.length) {
const mimeTypeResult = await FileType.fromFile(fileObj.path);
const mimeType = (mimeTypeResult ? mimeTypeResult.mime : fileObj.type);
const baseMimeType = mimeType.split('/', 1)[0];
const mimeType = (mimeTypeResult ? mimeTypeResult.mime : fileObj.type);
const baseMimeType = mimeType.split('/', 1)[0];
isValid = mimeTypesAllowed.includes(mimeType) || mimeTypesAllowed.includes(baseMimeType + '/*') || mimeTypesAllowed.includes('*');
isValid = mimeTypesAllowed.includes(mimeType) || mimeTypesAllowed.includes(baseMimeType + '/*') || mimeTypesAllowed.includes('*');
if (!isValid) {
console.log("Validation of uploaded file failed: file " + fileObj.path + " - mimetype " + mimeType);
if (!isValid) {
console.log("Validation of uploaded file failed: file " + fileObj.path + " - mimetype " + mimeType);
}
}
}
if (isValid && sizeAllowed && fileObj.size > sizeAllowed) {
console.log("Validation of uploaded file failed: file " + fileObj.path + " - size " + fileObj.size);
isValid = false;
}
if (isValid && externalCommandLine) {
await asyncExec(externalCommandLine.replace("{file}", '"' + fileObj.path + '"'));
isValid = fs.existsSync(fileObj.path);
if (!isValid) {
console.log("Validation of uploaded file failed: file " + fileObj.path + " has been deleted externally");
if (isValid && sizeAllowed && fileObj.size > sizeAllowed) {
console.log("Validation of uploaded file failed: file " + fileObj.path + " - size " + fileObj.size);
isValid = false;
}
}
if (isValid) {
console.debug("Validation of uploaded file successful: file " + fileObj.path);
if (isValid && externalCommandLine) {
await asyncExec(externalCommandLine.replace("{file}", '"' + fileObj.path + '"'));
isValid = fs.existsSync(fileObj.path);
if (!isValid) {
console.log("Validation of uploaded file failed: file " + fileObj.path + " has been deleted externally");
}
}
if (isValid) {
console.debug("Validation of uploaded file successful: file " + fileObj.path);
}
}
return isValid;
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "wekan",
"version": "v6.76.0",
"version": "v6.80.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "wekan",
"version": "v6.76.0",
"version": "v6.80.0",
"description": "Open-Source kanban",
"private": true,
"repository": {
+3 -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.76</title>
<title>Wekan REST API v6.80</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.76">Wekan REST API v6.76</a>
<a href="#wekan-rest-api" class="toc-h1 toc-link" data-title="Wekan REST API v6.80">Wekan REST API v6.80</a>
</li>
@@ -2161,7 +2161,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.76</h1>
<h1 id="wekan-rest-api">Wekan REST API v6.80</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>
+1 -1
View File
@@ -1,7 +1,7 @@
swagger: '2.0'
info:
title: Wekan REST API
version: v6.76
version: v6.80
description: |
The REST API allows you to control and extend Wekan with ease.
+1 -1
View File
@@ -17,7 +17,7 @@ rm -rf bundle
rm wekan-$1-arm64.zip
#rm wekan-$1.zip
#wget https://releases.wekan.team/wekan-$1.zip
7z x wekan-$1.zip
7z x wekan-$1-amd64.zip
(cd bundle/programs/server && chmod u+w *.json && cd node_modules/fibers && node build.js)
#cd ../../../..
+1 -3
View File
@@ -15,9 +15,7 @@ sudo npm -g uninstall node-pre-gyp
sudo npm -g install @mapbox/node-pre-gyp
rm -rf bundle
rm wekan-$1-ppc64le.zip
#rm wekan-$1.zip
#wget https://releases.wekan.team/wekan-$1.zip
7z x wekan-$1.zip
7z x wekan-$1-amd64.zip
(cd bundle/programs/server && chmod u+w *.json && cd node_modules/fibers && node build.js)
#cd ../../../..
+2 -2
View File
@@ -29,8 +29,8 @@ rm -rf bundle
rm wekan-$1-s390x.zip
#rm wekan-$1.zip
#wget https://releases.wekan.team/wekan-$1.zip
7za x wekan-$1.zip
#wget https://releases.wekan.team/wekan-$1-amd64.zip
7za x wekan-$1-amd64.zip
(cd bundle/programs/server && chmod u+w *.json && cd node_modules/fibers && node build.js)
#cd ../../../..
+3 -3
View File
@@ -6,11 +6,11 @@ ECHO 1) Deleting old bundle
CALL DEL /F /S /Q bundle
ECHO 2) Downloading new WeKan.zip
CALL DEL wekan-%1.zip
CALL wget https://releases.wekan.team/wekan-%1.zip
CALL DEL wekan-%1-amd64.zip
CALL wget https://releases.wekan.team/wekan-%1-amd64.zip
ECHO 3) Unarchiving new WeKan
CALL 7z x wekan-%1.zip
CALL 7z x wekan-%1-amd64.zip
ECHO 4) Reinstalling bcrypt
cmd /c "CD bundle\programs\server\npm\node_modules\meteor\accounts-password && npm remove bcrypt && npm install bcrypt"
+1 -1
View File
@@ -11,4 +11,4 @@ fi
mkdir ~/rel$1
mv ~/repos/wekan/wekan-$1*.zip /home/wekan/rel$1/
mv ~/Julkinen/wekan-$1*.zip /home/wekan/rel$1/
mv /home/wekan/repos/wekan/.build/wekan-$1.zip /home/wekan/rel$1/wekan-$1-amd64.zip
mv /home/wekan/repos/wekan/.build/wekan-$1-amd64.zip /home/wekan/rel$1/wekan-$1-amd64.zip
+4 -4
View File
@@ -3,16 +3,16 @@ sudo apt-get -y install parallel
./releases/rebuild-release.sh
#./releases/delete-phantomjs.sh
cd ~/repos/wekan/.build
zip -r wekan-$1.zip bundle
zip -r wekan-$1-amd64.zip bundle
{
scp ~/repos/wekan/releases/build-bundle-arm64.sh a:/home/wekan/
scp ~/repos/wekan/releases/build-bundle-s390x.sh s:/home/linux1/
#scp ~/repos/wekan/releases/build-bundle-ppc64el.sh o:/home/ubuntu/
scp ~/repos/wekan/releases/release-x2.sh x2:/data/websites/
scp wekan-$1.zip x2:/data/websites/releases.wekan.team/
scp wekan-$1.zip a:/home/wekan/
scp wekan-$1.zip s:/home/linux1/
scp wekan-$1-amd64.zip x2:/data/websites/releases.wekan.team/
scp wekan-$1-amd64.zip a:/home/wekan/
scp wekan-$1-amd64.zip s:/home/linux1/
#scp wekan-$1.zip o:/home/ubuntu/
} | parallel -k
+1 -1
View File
@@ -31,7 +31,7 @@ meteor-spk pack wekan-$1.spk
spk publish wekan-$1.spk
# Upload spk to https://releases.wekan.team/sandstorm/
scp wekan-$1.spk x2:/var/websites/releases.wekan.team/public/sandstorm/
scp wekan-$1.spk x2:/data/websites/releases.wekan.team/dev/sandstorm/
# Delete old temporary build directory
rm -rf ~/repos/wekan/.meteor-spk
+8 -21
View File
@@ -8,51 +8,38 @@ if [ $# -ne 2 ]
fi
echo "Release: x64"
cd /data/websites/releases.wekan.team/public
cd /data/websites/releases.wekan.team
mkdir -p /data/websites/old-releases
mv wekan-$1.zip /data/websites/old-releases/
#mv SHA256SUMS.txt x64-SHA256SUMS.txt
#cat x64-SHA256SUMS.txt | grep -v wekan-$1.zip > SHA256SUMS.txt
#rm x64-SHA256SUMS.txt
cp wekan-$2.zip wekan-latest-x64.zip
mv wekan-$1-amd64.zip /data/websites/old-releases/
cp wekan-$2-amd64.zip wekan-latest-amd64.zip
cp wekan-$2-amd64.zip wekan-$2.zip
sha256sum wekan-*.zip > SHA256SUMS.txt
echo "Release: x64 windows"
cd /data/websites/releases.wekan.team/public/windows
cd /data/websites/releases.wekan.team/windows
mkdir -p /data/websites/old-releases/windows
mv wekan-$1-amd64-windows.zip /data/websites/old-releases/windows/
#sha256sum wekan-$2-amd64-windows.zip >> SHA256SUMS.txt
#mv SHA256SUMS.txt x64-windows-SHA256SUMS.txt
#cat x64-windows-SHA256SUMS.txt | grep -v wekan-$1-amd64-windows.zip > SHA256SUMS.txt
#rm x64-windows-SHA256SUMS.txt
cp wekan-$2-amd64-windows.zip wekan-latest-amd64-windows.zip
sha256sum wekan-*.zip > SHA256SUMS.txt
echo "Release: arm64"
cd /data/websites/releases.wekan.team/public/raspi3
cd /data/websites/releases.wekan.team/raspi3
mkdir -p /data/websites/old-releases/raspi3/
mv wekan-$1-arm64.zip /data/websites/old-releases/raspi3/
#sha256sum wekan-$2-arm64.zip >> SHA256SUMS.txt
#mv SHA256SUMS.txt arm64-SHA256SUMS.txt
#cat arm64-SHA256SUMS.txt | grep -v wekan-$1-arm64.zip > SHA256SUMS.txt
#rm arm64-SHA256SUMS.txt
cp wekan-$2-arm64.zip wekan-latest-arm64.zip
sha256sum wekan-*.zip > SHA256SUMS.txt
echo "Release: s390x"
cd /data/websites/releases.wekan.team/public/s390x
cd /data/websites/releases.wekan.team/s390x
mkdir -p /data/websites/old-releases/s390x
mv wekan-$1-s390x.zip /data/websites/old-releases/s390x/
#sha256sum wekan-$2-s390x.zip >> SHA256SUMS.txt
#mv SHA256SUMS.txt s390x-SHA256SUMS.txt
#cat s390x-SHA256SUMS.txt | grep -v wekan-$1-s390x.zip > SHA256SUMS.txt
#rm s390x-SHA256SUMS.txt
cp wekan-$2-s390x.zip wekan-latest-s390x.zip
sha256sum wekan-*.zip > SHA256SUMS.txt
# OpenPower MiniCloud is discontinued, no ppc64le build server
#echo "Release: ppc64le"
#cd /data/websites/releases.wekan.team/public/ppc64le
#cd /data/websites/releases.wekan.team/ppc64le
#mkdir -p /data/websites/old-releases/ppc64le
#mv wekan-$1-ppc64le.zip /data/websites/old-releases/ppc64le/
#sha256sum wekan-$2-ppc64le.zip >> SHA256SUMS.txt
+1 -1
View File
@@ -14,4 +14,4 @@ fi
scp a:/home/wekan/wekan-$1-arm64.zip .
# 3) Upload arm64 release to download server
scp wekan-$1-arm64.zip x2:/data/websites/releases.wekan.team/public/raspi3/
scp wekan-$1-arm64.zip x2:/data/websites/releases.wekan.team/raspi3/
+1 -1
View File
@@ -14,4 +14,4 @@ fi
scp o:/home/ubuntu/wekan-$1-ppc64le.zip .
# 3) Upload ppc64le release to download server
scp wekan-$1-ppc64le.zip x2:/data/websites/releases.wekan.team/public/ppc64le/
scp wekan-$1-ppc64le.zip x2:/data/websites/releases.wekan.team/ppc64le/
+1 -1
View File
@@ -14,4 +14,4 @@ fi
scp s:/home/linux1/wekan-$1-s390x.zip .
# 3) Upload s390x release to download server
scp wekan-$1-s390x.zip x2:/data/websites/releases.wekan.team/public/s390x/
scp wekan-$1-s390x.zip x2:/data/websites/releases.wekan.team/s390x/
+1 -1
View File
@@ -11,4 +11,4 @@ if [ $# -ne 1 ]
fi
# 2) Upload windows release to download server
scp ../../Julkinen/wekan-$1-amd64-windows.zip x2:/data/websites/releases.wekan.team/public/windows/
scp ../../Julkinen/wekan-$1-amd64-windows.zip x2:/data/websites/releases.wekan.team/windows/
+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 = 676,
appVersion = 680,
# Increment this for every release.
appMarketingVersion = (defaultText = "6.76.0~2023-02-22"),
appMarketingVersion = (defaultText = "6.80.0~2023-03-23"),
# Human-readable presentation of the app version.
minUpgradableAppVersion = 0,
+14 -8
View File
@@ -1246,6 +1246,7 @@ Migrations.add('add-card-details-show-lists', () => {
});
Migrations.add('migrate-attachments-collectionFS-to-ostrioFiles', () => {
Meteor.settings.public.ostrioFilesMigrationInProgress = "true";
AttachmentsOld.find().forEach(function(fileObj) {
const newFileName = fileObj.name();
const storagePath = Attachments.storagePath({});
@@ -1306,9 +1307,11 @@ Migrations.add('migrate-attachments-collectionFS-to-ostrioFiles', () => {
readStream.pipe(writeStream);
});
Meteor.settings.public.ostrioFilesMigrationInProgress = "false";
});
Migrations.add('migrate-avatars-collectionFS-to-ostrioFiles', () => {
Meteor.settings.public.ostrioFilesMigrationInProgress = "true";
AvatarsOld.find().forEach(function(fileObj) {
const newFileName = fileObj.name();
const storagePath = Avatars.storagePath({});
@@ -1361,14 +1364,16 @@ Migrations.add('migrate-avatars-collectionFS-to-ostrioFiles', () => {
'original',
'/',
);
if (user.profile.avatarUrl.startsWith(old_url)) {
// Set avatar url to new url
Users.direct.update(
{ _id: user._id },
{ $set: { 'profile.avatarUrl': new_url } },
noValidate,
);
console.log('User avatar updated: ', user._id, new_url);
if (user.profile.avatarUrl !== undefined) {
if (user.profile.avatarUrl.startsWith(old_url)) {
// Set avatar url to new url
Users.direct.update(
{ _id: user._id },
{ $set: { 'profile.avatarUrl': new_url } },
noValidate,
);
console.log('User avatar updated: ', user._id, new_url);
}
}
});
fileObj.remove();
@@ -1384,6 +1389,7 @@ Migrations.add('migrate-avatars-collectionFS-to-ostrioFiles', () => {
readStream.pipe(writeStream);
});
Meteor.settings.public.ostrioFilesMigrationInProgress = "false";
});
Migrations.add('migrate-attachment-drop-index-cardId', () => {
+6 -6
View File
@@ -1,5 +1,5 @@
name: wekan
version: '6.76'
version: '6.80'
base: core20
summary: Open Source kanban
description: |
@@ -65,8 +65,8 @@ apps:
parts:
mongodb:
#source: https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu2004-5.0.14.tgz
source: https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu2004-6.0.4.tgz
#source: https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu2004-5.0.15.tgz
source: https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu2004-6.0.5.tgz
plugin: dump
stage-packages:
- libssl1.1
@@ -169,9 +169,9 @@ parts:
# Cleanup
mkdir .build
cd .build
wget https://github.com/wekan/wekan/releases/download/v6.76/wekan-6.76-amd64.zip
unzip wekan-6.76-amd64.zip
rm wekan-6.76-amd64.zip
wget https://github.com/wekan/wekan/releases/download/v6.80/wekan-6.80-amd64.zip
unzip wekan-6.80-amd64.zip
rm wekan-6.80-amd64.zip
cd ..
##cd .build/bundle
##find . -type d -name '*-garbage*' | xargs rm -rf