Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f61b9239de | ||
|
|
409bd50d67 | ||
|
|
48dcd11af0 | ||
|
|
08afc05c38 | ||
|
|
28e97808f5 | ||
|
|
8a1c2e8860 | ||
|
|
4b22174183 | ||
|
|
9bf3b960a1 | ||
|
|
fa58d0ec3b | ||
|
|
03f7fd6340 | ||
|
|
d48068f63c | ||
|
|
998f3fe8a7 | ||
|
|
81ece7cec2 | ||
|
|
30073ce1d6 | ||
|
|
fc9fb9132c | ||
|
|
2f8c01eccf | ||
|
|
6d1705af34 | ||
|
|
fa6db6118d | ||
|
|
f555acee6f | ||
|
|
4bc5799b4f | ||
|
|
b2b8a99899 | ||
|
|
9641ac7ee8 | ||
|
|
f9823f67bd | ||
|
|
af14ff6e89 | ||
|
|
323f1b1d87 | ||
|
|
3e23a5ddce | ||
|
|
037bba83d6 | ||
|
|
a60acac51a | ||
|
|
eea0b1afc4 | ||
|
|
9a6d0c4aad | ||
|
|
1c530632ac | ||
|
|
18c49695b1 | ||
|
|
c8a743bb8e | ||
|
|
7e92068955 | ||
|
|
8c84254392 | ||
|
|
6b1403984f | ||
|
|
c965cc9b76 | ||
|
|
ab40737211 | ||
|
|
950b477d9d | ||
|
|
529a43fa0e | ||
|
|
eb16cd19bb | ||
|
|
fbd64a6a9e | ||
|
|
7536c7b532 | ||
|
|
406766a82b |
No files matched your search
@@ -20,6 +20,66 @@ Note:
|
||||
|
||||
[How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585)
|
||||
|
||||
# v7.07 2023-08-16 WeKan ® release
|
||||
|
||||
This release adds the following updates:
|
||||
|
||||
- [Update Windows bundle build script](https://github.com/wekan/wekan/commit/d48068f63c93fc5a9f8041acb220d6491b5e22ae).
|
||||
Thanks to xet7.
|
||||
|
||||
and fixes the following bugs:
|
||||
|
||||
- [Fix downloading attachments with unusual filenames](https://github.com/wekan/wekan/pull/5083).
|
||||
Thanks to VidVidex.
|
||||
- [Add some filename, if there is no filename after sanitize](https://github.com/wekan/wekan/commit/3d1a161c59a0cb4eafb50ab2fdb04443d54b2086).
|
||||
Thanks to xet7.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v7.06 2023-08-15 WeKan ® release
|
||||
|
||||
This release adds the following updates:
|
||||
|
||||
- [Updated exceljs and jszip](https://github.com/wekan/wekan/commit/f9823f67bd7ded44982298b15487f945e8216b60).
|
||||
Thanks to developers of dependencies.
|
||||
- [Update building Windows bundle](https://github.com/wekan/wekan/commit/6d1705af344a36e1cd7846c3d41e486ae0200e2e).
|
||||
Thanks to xet7.
|
||||
- [s390x disabled, because there is problem adding fibers](https://github.com/wekan/wekan/commit/9bf3b960a199ec8d65faab3061947d809144ebdc).
|
||||
Thanks to xet7.
|
||||
|
||||
and fixes the following bugs:
|
||||
|
||||
- [Alphabetic ordered member lists on assigne and member lists](https://github.com/wekan/wekan/pull/5071).
|
||||
Thanks to chrisi51.
|
||||
- [Label drag/drop (reorder labels) works now again](https://github.com/wekan/wekan/pull/5075).
|
||||
Thanks to mfilser.
|
||||
- [Add attachment swiping](https://github.com/wekan/wekan/pull/5080).
|
||||
Thanks to VidVidex.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v7.05 2023-08-08 WeKan ® release
|
||||
|
||||
This release adds the following updates:
|
||||
|
||||
- [Updated dependencies](https://github.com/wekan/wekan/commit/529a43fa0e47ff478dd6b2e6f1c7b4513fe0bbbb).
|
||||
Thanks to developers of dependencies.
|
||||
|
||||
and fixes the following bugs:
|
||||
|
||||
- [Make default swimlane auto-height](https://github.com/wekan/wekan/pull/5059).
|
||||
Thanks to mark-i-m.
|
||||
- [Show option b) -1 for disabling swimlane height at swimlane height popup](https://github.com/wekan/wekan/commit/ab4073721151e1308b2e9ffd32a1ee765c7b7668).
|
||||
Thanks to xet7.
|
||||
- [Fixed Normal (non-admin) board users cannot adjust swimlane height](https://github.com/wekan/wekan/commit/6b1403984f3b11700f6b06b4eff64a062916381a).
|
||||
Thanks to mgdbbrt and xet7.
|
||||
- [Fixing positioning of opened cards](https://github.com/wekan/wekan/pull/5066).
|
||||
Thanks to chrisi51.
|
||||
- [Cleaner memberlist popups](https://github.com/wekan/wekan/issues/5068).
|
||||
Thanks to chrisi51.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v7.04 2023-08-03 WeKan ® release
|
||||
|
||||
This release fixes the following bugs:
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928
|
||||
appVersion: "v7.04.0"
|
||||
appVersion: "v7.07.0"
|
||||
files:
|
||||
userUploads:
|
||||
- README.md
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
.board-wrapper .board-canvas.is-sibling-sidebar-open {
|
||||
margin-right: 248px;
|
||||
}
|
||||
.board-wrapper .board-canvas.overlayed {overflow:hidden}
|
||||
.board-wrapper .board-canvas .board-overlay {
|
||||
position: fixed;
|
||||
left: 0;
|
||||
|
||||
@@ -21,7 +21,8 @@ template(name="boardBody")
|
||||
.board-canvas.js-swimlanes(
|
||||
class="{{#if Sidebar.isOpen}}is-sibling-sidebar-open{{/if}}"
|
||||
class="{{#if MultiSelection.isActive}}is-multiselection-active{{/if}}"
|
||||
class="{{#if draggingActive.get}}is-dragging-active{{/if}}")
|
||||
class="{{#if draggingActive.get}}is-dragging-active{{/if}}"
|
||||
class="{{#if showOverlay.get}}overlayed{{/if}}")
|
||||
if showOverlay.get
|
||||
.board-overlay
|
||||
if currentBoard.isTemplatesBoard
|
||||
|
||||
@@ -11,6 +11,9 @@ const prettyMilliseconds = require('pretty-ms');
|
||||
let cardId = null;
|
||||
let openAttachmentId = null;
|
||||
|
||||
// Used to store the start and end coordinates of a touch event for attachment swiping
|
||||
let touchStartCoords = null;
|
||||
let touchEndCoords = null;
|
||||
|
||||
// Stores link to the attachment for which attachment actions popup was opened
|
||||
attachmentActionsLink = null;
|
||||
@@ -151,7 +154,80 @@ function closeAttachmentViewer() {
|
||||
$("#audio-viewer").addClass("hidden");
|
||||
}
|
||||
|
||||
function openNextAttachment() {
|
||||
closeAttachmentViewer();
|
||||
|
||||
let i = 0;
|
||||
// Find an attachment that can be opened
|
||||
while (true) {
|
||||
const id = getNextAttachmentId(openAttachmentId, i);
|
||||
const attachment = ReactiveCache.getAttachment(id);
|
||||
if (attachmentCanBeOpened(attachment)) {
|
||||
openAttachmentId = id;
|
||||
openAttachmentViewer(id);
|
||||
break;
|
||||
}
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
function openPrevAttachment() {
|
||||
closeAttachmentViewer();
|
||||
|
||||
let i = 0;
|
||||
// Find an attachment that can be opened
|
||||
while (true) {
|
||||
const id = getPrevAttachmentId(openAttachmentId, i);
|
||||
const attachment = ReactiveCache.getAttachment(id);
|
||||
if (attachmentCanBeOpened(attachment)) {
|
||||
openAttachmentId = id;
|
||||
openAttachmentViewer(id);
|
||||
break;
|
||||
}
|
||||
i--;
|
||||
}
|
||||
}
|
||||
|
||||
function processTouch(){
|
||||
|
||||
xDist = touchEndCoords.x - touchStartCoords.x;
|
||||
yDist = touchEndCoords.y - touchStartCoords.y;
|
||||
|
||||
console.log("xDist: " + xDist);
|
||||
|
||||
// Left swipe
|
||||
if (Math.abs(xDist) > Math.abs(yDist) && xDist < 0) {
|
||||
openNextAttachment();
|
||||
}
|
||||
|
||||
// Right swipe
|
||||
if (Math.abs(xDist) > Math.abs(yDist) && xDist > 0) {
|
||||
openPrevAttachment();
|
||||
}
|
||||
|
||||
// Up swipe
|
||||
if (Math.abs(yDist) > Math.abs(xDist) && yDist < 0) {
|
||||
closeAttachmentViewer();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Template.attachmentViewer.events({
|
||||
'touchstart #viewer-container'(event) {
|
||||
console.log("touchstart")
|
||||
touchStartCoords = {
|
||||
x: event.changedTouches[0].screenX,
|
||||
y: event.changedTouches[0].screenY
|
||||
}
|
||||
},
|
||||
'touchend #viewer-container'(event) {
|
||||
console.log("touchend")
|
||||
touchEndCoords = {
|
||||
x: event.changedTouches[0].screenX,
|
||||
y: event.changedTouches[0].screenY
|
||||
}
|
||||
processTouch();
|
||||
},
|
||||
'click #viewer-container'(event) {
|
||||
|
||||
// Make sure the click was on #viewer-container and not on any of its children
|
||||
@@ -169,38 +245,12 @@ Template.attachmentViewer.events({
|
||||
'click #viewer-close'() {
|
||||
closeAttachmentViewer();
|
||||
},
|
||||
'click #next-attachment'(event) {
|
||||
closeAttachmentViewer();
|
||||
|
||||
let i = 0;
|
||||
// Find an attachment that can be opened
|
||||
while (true) {
|
||||
const id = getNextAttachmentId(openAttachmentId, i);
|
||||
const attachment = ReactiveCache.getAttachment(id);
|
||||
if (attachmentCanBeOpened(attachment)) {
|
||||
openAttachmentId = id;
|
||||
openAttachmentViewer(id);
|
||||
break;
|
||||
}
|
||||
i++;
|
||||
}
|
||||
'click #next-attachment'() {
|
||||
openNextAttachment();
|
||||
},
|
||||
'click #prev-attachment'() {
|
||||
openPrevAttachment();
|
||||
},
|
||||
'click #prev-attachment'(event) {
|
||||
closeAttachmentViewer();
|
||||
|
||||
let i = 0;
|
||||
// Find an attachment that can be opened
|
||||
while (true) {
|
||||
const id = getPrevAttachmentId(openAttachmentId, i);
|
||||
const attachment = ReactiveCache.getAttachment(id);
|
||||
if (attachmentCanBeOpened(attachment)) {
|
||||
openAttachmentId = id;
|
||||
openAttachmentViewer(id);
|
||||
break;
|
||||
}
|
||||
i--;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
Template.attachmentGallery.helpers({
|
||||
@@ -242,13 +292,23 @@ Template.cardAttachmentsPopup.events({
|
||||
let uploads = [];
|
||||
for (const file of files) {
|
||||
const fileId = new ObjectID().toString();
|
||||
// If filename is not same as sanitized filename, has XSS, then cancel upload
|
||||
if (file.name !== DOMPurify.sanitize(file.name)) {
|
||||
return false;
|
||||
let fileName = DOMPurify.sanitize(file.name);
|
||||
|
||||
// If sanitized filename is not same as original filename,
|
||||
// it could be XSS that is already fixed with sanitize,
|
||||
// or just normal mistake, so it is not a problem.
|
||||
// That is why here is no warning.
|
||||
if (fileName !== file.name) {
|
||||
// If filename is empty, only in that case add some filename
|
||||
if (fileName.length === 0) {
|
||||
fileName = 'Empty-filename-after-sanitize.txt';
|
||||
}
|
||||
}
|
||||
|
||||
const config = {
|
||||
file: file,
|
||||
fileId: fileId,
|
||||
fileName: fileName,
|
||||
meta: Utils.getCommonAttachmentMetaFrom(card),
|
||||
chunkSize: 'dynamic',
|
||||
};
|
||||
|
||||
@@ -245,10 +245,10 @@
|
||||
padding-top: 10px;
|
||||
}
|
||||
@media screen and (min-width: 801px) {
|
||||
.card-details {
|
||||
.card-details-maximized {
|
||||
top: 97px;
|
||||
left: 0;
|
||||
width: 600px;
|
||||
right:0;
|
||||
bottom: 0;
|
||||
position: fixed;
|
||||
resize: both;
|
||||
@@ -267,11 +267,6 @@
|
||||
box-shadow: 0 0 7px 0 #b3b3b3;
|
||||
transition: flex-basis 0.1s;
|
||||
box-sizing: border-box;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
height: calc(100% - 20px);
|
||||
width: calc(100% - 20px);
|
||||
float: left;
|
||||
}
|
||||
.card-details-maximized .card-details-left {
|
||||
|
||||
@@ -79,15 +79,19 @@ BlazeComponent.extendComponent({
|
||||
scrollParentContainer() {
|
||||
const cardPanelWidth = 600;
|
||||
const parentComponent = this.parentComponent();
|
||||
|
||||
/*
|
||||
// Incomplete fix about bug where opening card scrolls to wrong place
|
||||
// https://github.com/wekan/wekan/issues/4572#issuecomment-1184149395
|
||||
// TODO sometimes parentComponent is not available, maybe because it's not
|
||||
// yet created?!
|
||||
if (!parentComponent) return;
|
||||
const bodyBoardComponent = parentComponent.parentComponent();
|
||||
//
|
||||
// uncommented again by chrisi51
|
||||
// only with that, the autoscroll feature is working properly
|
||||
// after my fixes, all scrollings where correct
|
||||
*/
|
||||
if (!parentComponent) return;
|
||||
const bodyBoardComponent = parentComponent.parentComponent();
|
||||
|
||||
|
||||
//On Mobile View Parent is Board, Not Board Body. I cant see how this funciton should work then.
|
||||
if (bodyBoardComponent === null) return;
|
||||
@@ -217,6 +221,12 @@ BlazeComponent.extendComponent({
|
||||
//-------------
|
||||
}
|
||||
|
||||
if (!Utils.isMiniScreen()) {
|
||||
Meteor.setTimeout(() => {
|
||||
this.scrollParentContainer();
|
||||
}, 500);
|
||||
}
|
||||
|
||||
const $checklistsDom = this.$('.card-checklist-items');
|
||||
|
||||
$checklistsDom.sortable({
|
||||
@@ -442,11 +452,11 @@ BlazeComponent.extendComponent({
|
||||
'click .js-maximize-card-details'() {
|
||||
Meteor.call('toggleCardMaximized');
|
||||
autosize($('.card-details'));
|
||||
if (!Utils.isMiniScreen()) {
|
||||
Meteor.setTimeout(() => {
|
||||
this.scrollParentContainer();
|
||||
}, 500);
|
||||
}
|
||||
// if (!Utils.isMiniScreen()) {
|
||||
// Meteor.setTimeout(() => {
|
||||
// this.scrollParentContainer();
|
||||
// }, 500);
|
||||
// }
|
||||
},
|
||||
'click .js-minimize-card-details'() {
|
||||
Meteor.call('toggleCardMaximized');
|
||||
@@ -742,7 +752,7 @@ Template.cardMembersPopup.events({
|
||||
|
||||
Template.cardMembersPopup.helpers({
|
||||
members() {
|
||||
return Template.instance().members.get();
|
||||
return _.sortBy(Template.instance().members.get(),'fullname');
|
||||
},
|
||||
});
|
||||
|
||||
@@ -1604,7 +1614,7 @@ Template.cardAssigneesPopup.helpers({
|
||||
},
|
||||
|
||||
members() {
|
||||
return Template.instance().members.get();
|
||||
return _.sortBy(Template.instance().members.get(),'fullname');
|
||||
},
|
||||
|
||||
user() {
|
||||
|
||||
@@ -52,7 +52,8 @@ BlazeComponent.extendComponent({
|
||||
appendTo: '.edit-labels-pop-over',
|
||||
helper(element, currentItem) {
|
||||
let ret = currentItem.clone();
|
||||
if (currentItem.closest('.popup-container-depth-0').size() == 0) { // only set css transform at every sub-popup, not at the main popup
|
||||
if (currentItem.closest('.popup-container-depth-0').length == 0)
|
||||
{ // only set css transform at every sub-popup, not at the main popup
|
||||
const content = currentItem.closest('.content')[0]
|
||||
const offsetLeft = content.offsetLeft;
|
||||
const offsetTop = $('.pop-over > .header').height() * -1;
|
||||
|
||||
@@ -88,7 +88,7 @@
|
||||
height: 20px;
|
||||
}
|
||||
.pop-over .quiet {
|
||||
padding: 6px 6px 4px;
|
||||
/* padding: 6px 6px 4px;*/
|
||||
}
|
||||
.pop-over.search-over {
|
||||
background: #f0f0f0;
|
||||
@@ -152,6 +152,14 @@
|
||||
text-decoration: none;
|
||||
overflow: hidden;
|
||||
line-height: 33px;
|
||||
display:flex;
|
||||
/* flex-wrap:wrap;*/
|
||||
gap:5px;
|
||||
align-items: center;
|
||||
}
|
||||
.pop-over-list li > a > .member{
|
||||
align-self: flex-start;
|
||||
flex:0 0 auto;
|
||||
}
|
||||
.pop-over-list li > a .item-name {
|
||||
display: block;
|
||||
|
||||
@@ -24,7 +24,7 @@ template(name="swimlaneFixedHeader")
|
||||
unless currentUser.isCommentOnly
|
||||
if currentUser.isBoardAdmin
|
||||
a.fa.fa-plus.js-open-add-swimlane-menu.swimlane-header-plus-icon(title="{{_ 'add-swimlane'}}")
|
||||
a.fa.fa-navicon.js-open-swimlane-menu(title="{{_ 'swimlaneActionPopup-title'}}")
|
||||
a.fa.fa-navicon.js-open-swimlane-menu(title="{{_ 'swimlaneActionPopup-title'}}")
|
||||
unless isTouchScreen
|
||||
if isShowDesktopDragHandles
|
||||
a.swimlane-header-handle.handle.fa.fa-arrows.js-swimlane-header-handle
|
||||
@@ -41,27 +41,29 @@ template(name="editSwimlaneTitleForm")
|
||||
template(name="swimlaneActionPopup")
|
||||
unless currentUser.isCommentOnly
|
||||
ul.pop-over-list
|
||||
li: a.js-set-swimlane-color
|
||||
i.fa.fa-paint-brush
|
||||
| {{_ 'select-color'}}
|
||||
if currentUser.isBoardAdmin
|
||||
li: a.js-set-swimlane-color
|
||||
i.fa.fa-paint-brush
|
||||
| {{_ 'select-color'}}
|
||||
li: a.js-set-swimlane-height
|
||||
i.fa.fa-arrows-v
|
||||
| {{_ 'set-swimlane-height'}}
|
||||
unless this.isTemplateContainer
|
||||
hr
|
||||
ul.pop-over-list
|
||||
li: a.js-close-swimlane
|
||||
i.fa.fa-arrow-right
|
||||
i.fa.fa-archive
|
||||
| {{_ 'archive-swimlane'}}
|
||||
ul.pop-over-list
|
||||
li: a.js-copy-swimlane
|
||||
i.fa.fa-copy
|
||||
| {{_ 'copy-swimlane'}}
|
||||
ul.pop-over-list
|
||||
li: a.js-move-swimlane
|
||||
i.fa.fa-arrow-up
|
||||
| {{_ 'move-swimlane'}}
|
||||
if currentUser.isBoardAdmin
|
||||
unless this.isTemplateContainer
|
||||
hr
|
||||
ul.pop-over-list
|
||||
li: a.js-close-swimlane
|
||||
i.fa.fa-arrow-right
|
||||
i.fa.fa-archive
|
||||
| {{_ 'archive-swimlane'}}
|
||||
ul.pop-over-list
|
||||
li: a.js-copy-swimlane
|
||||
i.fa.fa-copy
|
||||
| {{_ 'copy-swimlane'}}
|
||||
ul.pop-over-list
|
||||
li: a.js-move-swimlane
|
||||
i.fa.fa-arrow-up
|
||||
| {{_ 'move-swimlane'}}
|
||||
|
||||
template(name="swimlaneAddPopup")
|
||||
unless currentUser.isCommentOnly
|
||||
@@ -87,7 +89,8 @@ template(name="setSwimlaneColorPopup")
|
||||
|
||||
template(name="setSwimlaneHeightPopup")
|
||||
#js-swimlane-height-edit
|
||||
label {{_ 'set-swimlane-height-value'}}
|
||||
label a) {{_ 'set-swimlane-height-value'}}
|
||||
label b) -1
|
||||
p
|
||||
input.swimlane-height-value(type="number" value="{{ swimlaneHeightValue }}" min="100")
|
||||
input.swimlane-height-apply(type="submit" value="{{_ 'apply'}}")
|
||||
|
||||
@@ -147,7 +147,8 @@ BlazeComponent.extendComponent({
|
||||
);
|
||||
|
||||
// FIXME(mark-i-m): where do we put constants?
|
||||
if (height < 100 || !height) {
|
||||
// also in imports/i18n/data/en.i18n.json
|
||||
if (height != -1 && (height < 100 || !height)) {
|
||||
Template.instance()
|
||||
.$('.swimlane-height-error')
|
||||
.click();
|
||||
|
||||
@@ -3,7 +3,7 @@ template(name="swimlane")
|
||||
+swimlaneHeader
|
||||
unless collapseSwimlane
|
||||
.swimlane.js-lists.js-swimlane(id="swimlane-{{_id}}"
|
||||
style="height:{{swimlaneHeight}}px;")
|
||||
style="height:{{swimlaneHeight}};")
|
||||
if isMiniScreen
|
||||
if currentListIsInThisSwimlane _id
|
||||
+list(currentList)
|
||||
|
||||
@@ -227,7 +227,8 @@ BlazeComponent.extendComponent({
|
||||
swimlaneHeight() {
|
||||
const user = Meteor.user();
|
||||
const swimlane = Template.currentData();
|
||||
return user.getSwimlaneHeight(swimlane.boardId, swimlane._id);
|
||||
const height = user.getSwimlaneHeight(swimlane.boardId, swimlane._id);
|
||||
return height == -1 ? "auto" : (height + "px");
|
||||
},
|
||||
}).register('swimlane');
|
||||
|
||||
|
||||
@@ -85,14 +85,14 @@
|
||||
"add-card": "Gehitu txartela",
|
||||
"add-card-to-top-of-list": "Gehitu txartela zerrendaren goiko aldean",
|
||||
"add-card-to-bottom-of-list": "Gehitu txartela zerrendaren beheko aldean",
|
||||
"setListWidthPopup-title": "Set List Width",
|
||||
"set-list-width": "Set List Width",
|
||||
"set-list-width-value": "List Width (pixels)",
|
||||
"list-width-error-message": "List width must be a positive integer",
|
||||
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
|
||||
"set-swimlane-height": "Set Swimlane Height",
|
||||
"set-swimlane-height-value": "Swimlane Height (pixels)",
|
||||
"swimlane-height-error-message": "Swimlane height must be a positive integer",
|
||||
"setListWidthPopup-title": "Ezarri zerrendaren zabalera",
|
||||
"set-list-width": "Ezarri zerrendaren zabalera",
|
||||
"set-list-width-value": "Zerrendaren zabalera (pixelak)",
|
||||
"list-width-error-message": "Zerrendaren zabalerak zenbaki oso positiboa izan behar du",
|
||||
"setSwimlaneHeightPopup-title": "Errailaren altuera ezarri",
|
||||
"set-swimlane-height": "Errailaren altuera ezarri",
|
||||
"set-swimlane-height-value": "Errailaren altuera (pixelak)",
|
||||
"swimlane-height-error-message": "Errailaren altuerak zenbaki oso positiboa izan behar du",
|
||||
"add-swimlane": "Gehitu erraila",
|
||||
"add-subtask": "Gehitu azpiataza",
|
||||
"add-checklist": "Gehitu kontrol-zerrenda",
|
||||
@@ -1229,5 +1229,5 @@
|
||||
"allowed-avatar-filetypes": "Baimendutako avatar fitxategi motak:",
|
||||
"invalid-file": "Fitxategi-izena baliogabea bada, karga edo izena aldaketa bertan behera geratuko da.",
|
||||
"preview-pdf-not-supported": "Zure gailuak ez du onartzen PDF aurrebistarik. Saiatu deskargatzen.",
|
||||
"drag-board": "Drag board"
|
||||
"drag-board": "Arrastatu taula"
|
||||
}
|
||||
@@ -85,14 +85,14 @@
|
||||
"add-card": "Ajouter une carte",
|
||||
"add-card-to-top-of-list": "Ajouter la carte en haut de la liste",
|
||||
"add-card-to-bottom-of-list": "Ajouter la carte en bas de la liste",
|
||||
"setListWidthPopup-title": "Set List Width",
|
||||
"set-list-width": "Set List Width",
|
||||
"set-list-width-value": "List Width (pixels)",
|
||||
"list-width-error-message": "List width must be a positive integer",
|
||||
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
|
||||
"set-swimlane-height": "Set Swimlane Height",
|
||||
"set-swimlane-height-value": "Swimlane Height (pixels)",
|
||||
"swimlane-height-error-message": "Swimlane height must be a positive integer",
|
||||
"setListWidthPopup-title": "Définir la largeur de la liste",
|
||||
"set-list-width": "Définir la largeur de la liste",
|
||||
"set-list-width-value": "Définir la largeur de la liste (pixels)",
|
||||
"list-width-error-message": "La largeur de la liste doit être un entier positif",
|
||||
"setSwimlaneHeightPopup-title": "Définir la hauteur du couloir",
|
||||
"set-swimlane-height": "Définir la hauteur du couloir",
|
||||
"set-swimlane-height-value": "Hauteur du couloir (pixels)",
|
||||
"swimlane-height-error-message": "La hauteur du couloir doit être un entier positif",
|
||||
"add-swimlane": "Ajouter un couloir",
|
||||
"add-subtask": "Ajouter une sous-tâche",
|
||||
"add-checklist": "Ajouter une checklist",
|
||||
@@ -1229,5 +1229,5 @@
|
||||
"allowed-avatar-filetypes": "Types de fichier autorisés pour l'avatar :",
|
||||
"invalid-file": "Si le nom de fichier est invalide, le téléchargement ou le renommage sera annulé.",
|
||||
"preview-pdf-not-supported": "Votre périphérique ne supporte pas la prévisualisation de PDF. Essayer plutôt le téléchargement.",
|
||||
"drag-board": "Drag board"
|
||||
"drag-board": "Glisser le tableau"
|
||||
}
|
||||
@@ -1229,5 +1229,5 @@
|
||||
"allowed-avatar-filetypes": "סוגי תמונות משתמשים מותרים:",
|
||||
"invalid-file": "אם שם הקובץ שגוי, העלאה או שינוי שם מושבתים.",
|
||||
"preview-pdf-not-supported": "המכשיר שלך לא תומך בהצגה מקדימה של PDF. כדאי לנסות להוריד במקום.",
|
||||
"drag-board": "Drag board"
|
||||
"drag-board": "גרירת לוח"
|
||||
}
|
||||
@@ -1229,5 +1229,5 @@
|
||||
"allowed-avatar-filetypes": "Tillåtna filtyper för avatar:",
|
||||
"invalid-file": "Om filnamnet är ogiltigt avbryts uppladdningen eller omdöps filen.",
|
||||
"preview-pdf-not-supported": "Din enhet stöder inte förhandsgranskning av PDF. Försök istället att ladda ner.",
|
||||
"drag-board": "Drag board"
|
||||
"drag-board": "Dra tavla"
|
||||
}
|
||||
+1
-1
@@ -798,7 +798,7 @@ Users.helpers({
|
||||
if (swimlaneHeights[boardId] && swimlaneHeights[boardId][listId]) {
|
||||
return swimlaneHeights[boardId][listId];
|
||||
} else {
|
||||
return 270; //TODO(mark-i-m): default?
|
||||
return -1;
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
Generated
+32
-40
@@ -1,15 +1,15 @@
|
||||
{
|
||||
"name": "wekan",
|
||||
"version": "v7.04.0",
|
||||
"version": "v7.07.0",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
"@babel/runtime": {
|
||||
"version": "7.22.6",
|
||||
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.6.tgz",
|
||||
"integrity": "sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ==",
|
||||
"version": "7.22.10",
|
||||
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.10.tgz",
|
||||
"integrity": "sha512-21t/fkKLMZI4pqP2wlmsQAWnYW1PDyKyyUV4vCi+B25ydmdaYTKXPwCj0BzSUnZf4seIiYvSA3jcZ3gdsMFkLQ==",
|
||||
"requires": {
|
||||
"regenerator-runtime": "^0.13.11"
|
||||
"regenerator-runtime": "^0.14.0"
|
||||
}
|
||||
},
|
||||
"@fast-csv/format": {
|
||||
@@ -166,9 +166,9 @@
|
||||
"integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A=="
|
||||
},
|
||||
"@types/node": {
|
||||
"version": "14.18.53",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.53.tgz",
|
||||
"integrity": "sha512-soGmOpVBUq+gaBMwom1M+krC/NNbWlosh4AtGA03SyWNDiqSKtwp7OulO1M6+mg8YkHMvJ/y0AkCeO8d1hNb7A=="
|
||||
"version": "14.18.54",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.54.tgz",
|
||||
"integrity": "sha512-uq7O52wvo2Lggsx1x21tKZgqkJpvwCseBBPtX/nKQfpVlEsLOb11zZ1CRsWUKvJF0+lzuA9jwvA7Pr2Wt7i3xw=="
|
||||
},
|
||||
"@wekanteam/meteor-globals": {
|
||||
"version": "1.1.4",
|
||||
@@ -211,12 +211,10 @@
|
||||
}
|
||||
},
|
||||
"agentkeepalive": {
|
||||
"version": "4.3.0",
|
||||
"resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.3.0.tgz",
|
||||
"integrity": "sha512-7Epl1Blf4Sy37j4v9f9FjICCh4+KAQOyXgHEwlyBiAQLbhKdq/i2QQU3amQalS/wPhdPzDXPL5DMR5bkn+YeWg==",
|
||||
"version": "4.5.0",
|
||||
"resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz",
|
||||
"integrity": "sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==",
|
||||
"requires": {
|
||||
"debug": "^4.1.0",
|
||||
"depd": "^2.0.0",
|
||||
"humanize-ms": "^1.2.1"
|
||||
}
|
||||
},
|
||||
@@ -685,9 +683,9 @@
|
||||
"integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ=="
|
||||
},
|
||||
"core-js": {
|
||||
"version": "3.31.1",
|
||||
"resolved": "https://registry.npmjs.org/core-js/-/core-js-3.31.1.tgz",
|
||||
"integrity": "sha512-2sKLtfq1eFST7l7v62zaqXacPc7uG8ZAya8ogijLhTtaKNcpzpB4TMoTw2Si+8GYKRwFPMMtUT0263QFWFfqyQ=="
|
||||
"version": "3.32.0",
|
||||
"resolved": "https://registry.npmjs.org/core-js/-/core-js-3.32.0.tgz",
|
||||
"integrity": "sha512-rd4rYZNlF3WuoYuRIDEmbR/ga9CeuWX9U05umAvgrrZoHY4Z++cp/xwPQMvUpBB4Ag6J8KfD80G0zwCyaSxDww=="
|
||||
},
|
||||
"core-util-is": {
|
||||
"version": "1.0.3",
|
||||
@@ -767,11 +765,6 @@
|
||||
"resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
|
||||
"integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ=="
|
||||
},
|
||||
"depd": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
|
||||
"integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="
|
||||
},
|
||||
"detect-libc": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz",
|
||||
@@ -930,14 +923,13 @@
|
||||
"integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA=="
|
||||
},
|
||||
"exceljs": {
|
||||
"version": "4.3.0",
|
||||
"resolved": "https://registry.npmjs.org/exceljs/-/exceljs-4.3.0.tgz",
|
||||
"integrity": "sha512-hTAeo5b5TPvf8Z02I2sKIT4kSfCnOO2bCxYX8ABqODCdAjppI3gI9VYiGCQQYVcBaBSKlFDMKlAQRqC+kV9O8w==",
|
||||
"version": "git+https://github.com/exceljs/exceljs.git#ec92cb3b898bdf7f806ff9d7b8370c955ee8ba20",
|
||||
"from": "git+https://github.com/exceljs/exceljs.git",
|
||||
"requires": {
|
||||
"archiver": "^5.0.0",
|
||||
"dayjs": "^1.8.34",
|
||||
"fast-csv": "^4.3.1",
|
||||
"jszip": "^3.5.0",
|
||||
"jszip": "^3.10.1",
|
||||
"readable-stream": "^3.6.0",
|
||||
"saxes": "^5.0.1",
|
||||
"tmp": "^0.2.0",
|
||||
@@ -975,9 +967,9 @@
|
||||
"integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
|
||||
},
|
||||
"fast-xml-parser": {
|
||||
"version": "4.2.6",
|
||||
"resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.2.6.tgz",
|
||||
"integrity": "sha512-Xo1qV++h/Y3Ng8dphjahnYe+rGHaaNdsYOBWL9Y9GCPKpNKilJtilvWkLcI9f9X2DoKTLsZsGYAls5+JL5jfLA==",
|
||||
"version": "4.2.7",
|
||||
"resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.2.7.tgz",
|
||||
"integrity": "sha512-J8r6BriSLO1uj2miOk1NW0YVm8AGOOu3Si2HQp/cSmo6EA4m3fcwu2WKjJ4RK9wMLBtg69y1kS8baDiQBR41Ig==",
|
||||
"requires": {
|
||||
"strnum": "^1.0.5"
|
||||
}
|
||||
@@ -1041,9 +1033,9 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"signal-exit": {
|
||||
"version": "4.0.2",
|
||||
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz",
|
||||
"integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q=="
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
|
||||
"integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw=="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -1365,9 +1357,9 @@
|
||||
"integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
|
||||
},
|
||||
"jackspeak": {
|
||||
"version": "2.2.1",
|
||||
"resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.2.1.tgz",
|
||||
"integrity": "sha512-MXbxovZ/Pm42f6cDIDkl3xpwv1AGwObKwfmjs2nQePiy85tP3fatofl3FC1aBsOtP/6fq5SbtgHwWcMsLP+bDw==",
|
||||
"version": "2.2.2",
|
||||
"resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.2.2.tgz",
|
||||
"integrity": "sha512-mgNtVv4vUuaKA97yxUHoA3+FkuhtxkjdXEWOyB/N76fjy0FjezEt34oy3epBtvCvS+7DyKwqCFWx/oJLV5+kCg==",
|
||||
"requires": {
|
||||
"@isaacs/cliui": "^8.0.2",
|
||||
"@pkgjs/parseargs": "^0.11.0"
|
||||
@@ -3163,9 +3155,9 @@
|
||||
}
|
||||
},
|
||||
"regenerator-runtime": {
|
||||
"version": "0.13.11",
|
||||
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
|
||||
"integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
|
||||
"version": "0.14.0",
|
||||
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz",
|
||||
"integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA=="
|
||||
},
|
||||
"retry": {
|
||||
"version": "0.12.0",
|
||||
@@ -3491,9 +3483,9 @@
|
||||
"integrity": "sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ=="
|
||||
},
|
||||
"tslib": {
|
||||
"version": "2.6.0",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz",
|
||||
"integrity": "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA=="
|
||||
"version": "2.6.1",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz",
|
||||
"integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig=="
|
||||
},
|
||||
"type-detect": {
|
||||
"version": "4.0.8",
|
||||
|
||||
+3
-3
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "wekan",
|
||||
"version": "v7.04.0",
|
||||
"version": "v7.07.0",
|
||||
"description": "Open-Source kanban",
|
||||
"private": true,
|
||||
"repository": {
|
||||
@@ -29,11 +29,11 @@
|
||||
"bcryptjs": "^2.4.3",
|
||||
"bson": "^4.5.2",
|
||||
"bunyan": "^1.8.15",
|
||||
"core-js": "^3.18.2",
|
||||
"core-js": "^3.32.0",
|
||||
"dompurify": "^2.4.1",
|
||||
"es6-promise": "^4.2.4",
|
||||
"escape-string-regexp": "^5.0.0",
|
||||
"exceljs": "^4.2.1",
|
||||
"exceljs": "git+https://github.com/exceljs/exceljs.git",
|
||||
"fibers": "^5.0.3",
|
||||
"file-type": "^16.5.4",
|
||||
"filesize": "^8.0.7",
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<meta charset="utf-8">
|
||||
<meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<title>Wekan REST API v7.04</title>
|
||||
<title>Wekan REST API v7.07</title>
|
||||
|
||||
<style>
|
||||
</style>
|
||||
@@ -1548,7 +1548,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
|
||||
<ul class="toc-list-h1">
|
||||
|
||||
<li>
|
||||
<a href="#wekan-rest-api" class="toc-h1 toc-link" data-title="Wekan REST API v7.04">Wekan REST API v7.04</a>
|
||||
<a href="#wekan-rest-api" class="toc-h1 toc-link" data-title="Wekan REST API v7.07">Wekan REST API v7.07</a>
|
||||
|
||||
</li>
|
||||
|
||||
@@ -2057,7 +2057,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
|
||||
<div class="page-wrapper">
|
||||
<div class="dark-box"></div>
|
||||
<div class="content">
|
||||
<h1 id="wekan-rest-api">Wekan REST API v7.04</h1>
|
||||
<h1 id="wekan-rest-api">Wekan REST API v7.07</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,7 +1,7 @@
|
||||
swagger: '2.0'
|
||||
info:
|
||||
title: Wekan REST API
|
||||
version: v7.04
|
||||
version: v7.07
|
||||
description: |
|
||||
The REST API allows you to control and extend Wekan with ease.
|
||||
|
||||
|
||||
@@ -13,6 +13,9 @@ ECHO 3) Unarchiving new WeKan
|
||||
CALL 7z x wekan-%1-amd64.zip
|
||||
|
||||
ECHO 4) Reinstalling bcrypt
|
||||
cmd /c "npm -g install @mapbox/node-pre-gyp node-gyp fibers"
|
||||
cmd /c "npm -g install node-gyp"
|
||||
cmd /c "npm -g install fibers"
|
||||
cmd /c "CD bundle\programs\server\npm\node_modules\meteor\accounts-password && npm remove bcrypt && npm install bcrypt"
|
||||
REM # Sometimes may require building from source https://github.com/meteor/meteor/issues/11682
|
||||
REM # cmd /c "bundle\programs\server\npm\node_modules\meteor\accounts-password && npm rebuild --build-from-source && npm --build-from-source install bcrypt"
|
||||
@@ -26,7 +29,9 @@ ECHO 6) Copying WeKan.zip to sync directory
|
||||
CALL COPY wekan-%1-amd64-windows.zip Z:\
|
||||
|
||||
ECHO 7) Done. Starting WeKan.
|
||||
CALL start-wekan.bat
|
||||
CD bundle
|
||||
CALL ..\start-wekan.bat
|
||||
CD ..
|
||||
|
||||
GOTO :eof
|
||||
|
||||
|
||||
+1
-1
@@ -19,7 +19,7 @@ sudo apt-get -y install parallel
|
||||
|
||||
{
|
||||
~/repos/wekan/releases/up-a.sh $1
|
||||
~/repos/wekan/releases/up-s.sh $1
|
||||
#~/repos/wekan/releases/up-s.sh $1
|
||||
#~/repos/wekan/releases/up-o.sh $1
|
||||
~/repos/wekan/releases/up-w.sh $1
|
||||
} | parallel -k
|
||||
@@ -22,10 +22,10 @@ const pkgdef :Spk.PackageDefinition = (
|
||||
appTitle = (defaultText = "Wekan"),
|
||||
# The name of the app as it is displayed to the user.
|
||||
|
||||
appVersion = 704,
|
||||
appVersion = 707,
|
||||
# Increment this for every release.
|
||||
|
||||
appMarketingVersion = (defaultText = "7.04.0~2023-08-03"),
|
||||
appMarketingVersion = (defaultText = "7.07.0~2023-08-16"),
|
||||
# Human-readable presentation of the app version.
|
||||
|
||||
minUpgradableAppVersion = 0,
|
||||
|
||||
+4
-4
@@ -1,5 +1,5 @@
|
||||
name: wekan
|
||||
version: '7.04'
|
||||
version: '7.07'
|
||||
base: core20
|
||||
summary: Open Source kanban
|
||||
description: |
|
||||
@@ -170,9 +170,9 @@ parts:
|
||||
# Cleanup
|
||||
mkdir .build
|
||||
cd .build
|
||||
wget https://github.com/wekan/wekan/releases/download/v7.04/wekan-7.04-amd64.zip
|
||||
unzip wekan-7.04-amd64.zip
|
||||
rm wekan-7.04-amd64.zip
|
||||
wget https://github.com/wekan/wekan/releases/download/v7.07/wekan-7.07-amd64.zip
|
||||
unzip wekan-7.07-amd64.zip
|
||||
rm wekan-7.07-amd64.zip
|
||||
cd ..
|
||||
##cd .build/bundle
|
||||
##find . -type d -name '*-garbage*' | xargs rm -rf
|
||||
|
||||
Reference in new issue
Block a user