Compare commits

...
57 Commits
Author SHA1 Message Date
Lauri Ojansivu 998f3fe8a7 v7.06 2023-08-15 14:46:59 +03:00
Lauri Ojansivu 81ece7cec2 Merge pull request #5080 from VidVidex/5074-swiping
Add attachment swiping
2023-08-14 16:46:42 +03:00
Vid Smole 30073ce1d6 Add attachment swiping 2023-08-14 15:38:13 +02:00
Lauri Ojansivu fc9fb9132c Updated translations. 2023-08-13 02:48:42 +03:00
Lauri Ojansivu 2f8c01eccf Updated ChangeLog. 2023-08-13 02:45:54 +03:00
Lauri Ojansivu 6d1705af34 Update building Windows bundle.
Thanks to xet7 !
2023-08-13 02:44:17 +03:00
Lauri Ojansivu fa6db6118d Updated translations. 2023-08-12 16:27:48 +03:00
Lauri Ojansivu f555acee6f Updated ChangeLog. 2023-08-09 22:24:08 +03:00
Lauri Ojansivu 4bc5799b4f Merge pull request #5075 from mfilser/label_drag_drop_and_reorder
label drag/drop (reorder labels) works now again
2023-08-09 21:26:49 +03:00
Martin Filser b2b8a99899 label drag/drop (reorder labels) works now again 2023-08-09 20:11:16 +02:00
Lauri Ojansivu 9641ac7ee8 Updated ChangeLog. 2023-08-09 16:56:35 +03:00
Lauri Ojansivu f9823f67bd Updated exceljs and jszip.
Thanks to developers of dependencies !
2023-08-09 16:54:27 +03:00
Lauri Ojansivu af14ff6e89 Updated translations. 2023-08-09 16:54:10 +03:00
Lauri Ojansivu 323f1b1d87 Updated ChangeLog. 2023-08-09 02:49:27 +03:00
Lauri Ojansivu 3e23a5ddce Merge pull request #5071 from chrisi51/alphabetic-order
Alphabetic ordered member lists on assigne and member lists
2023-08-09 02:40:45 +03:00
Christian 037bba83d6 Alphabetic ordered member lists on assigne and member lists 2023-08-08 23:24:35 +00:00
Lauri Ojansivu a60acac51a Updated ChangeLog. 2023-08-08 15:45:32 +03:00
Lauri Ojansivu eea0b1afc4 v7.05 2023-08-08 12:08:01 +03:00
Lauri Ojansivu 9a6d0c4aad Updated ChangeLog. 2023-08-08 11:58:39 +03:00
Lauri Ojansivu 1c530632ac Merge branch 'master' of https://github.com/chrisi51/wekan 2023-08-08 11:49:55 +03:00
Christian 18c49695b1 Optimize member list popups 2023-08-08 08:31:23 +00:00
Christian c8a743bb8e Fixing positioning of opened cards 2023-08-08 00:05:19 +00:00
Lauri Ojansivu 7e92068955 Updated dependencies. 2023-08-07 22:42:13 +03:00
Lauri Ojansivu 8c84254392 Updated ChangeLog. 2023-08-07 17:43:01 +03:00
Lauri Ojansivu 6b1403984f Fixed Normal (non-admin) board users cannot adjust swimlane height.
Thanks to mgdbbrt and xet7 !

Fixes #5063
2023-08-07 17:41:33 +03:00
Lauri Ojansivu c965cc9b76 Updated ChangeLog. 2023-08-07 17:15:28 +03:00
Lauri Ojansivu ab40737211 Show option b) -1 for disabling swimlane height at swimlane height popup.
Thanks to xet7 !
2023-08-07 17:12:49 +03:00
Lauri Ojansivu 950b477d9d Updated ChangeLog. 2023-08-07 17:02:13 +03:00
Lauri Ojansivu 529a43fa0e Updated dependencies. 2023-08-07 16:59:17 +03:00
Lauri Ojansivu eb16cd19bb Merge branch 'swimlane-default' of https://github.com/mark-i-m/wekan 2023-08-07 16:30:59 +03:00
Lauri Ojansivu fbd64a6a9e Updated translations. 2023-08-07 16:23:02 +03:00
mark 7536c7b532 allow -1 as 'auto' 2023-08-03 22:03:30 -05:00
mark 406766a82b make default swimlane auto-height 2023-08-03 22:03:30 -05:00
Lauri Ojansivu 5bb794e3bb v7.04 2023-08-03 22:21:18 +03:00
Lauri Ojansivu ee73e04004 Updated ChangeLog. 2023-08-03 22:18:37 +03:00
Lauri Ojansivu 672be413f7 Updated translations. 2023-08-03 22:17:03 +03:00
Lauri Ojansivu b0ba57a165 Updated ChangeLog. 2023-08-03 22:15:50 +03:00
Lauri Ojansivu 79c2301ad5 Updated dependencies. 2023-08-03 22:15:25 +03:00
Lauri Ojansivu b2c7be244e Updated translations. 2023-08-03 21:37:09 +03:00
Lauri Ojansivu 8f8c045930 Merge pull request #5058 from VidVidex/master
Do not open preview for attachments that cannot be previewed
2023-08-03 20:12:05 +03:00
Vid Smole 21ffff3977 Do not open preview for attachments that cannot be previewed 2023-08-03 18:57:12 +02:00
Lauri Ojansivu 7d1bca3702 Merge pull request #5056 from cloudron-io/login-layout-fixes-2
Login layout fixes 2
2023-08-03 18:38:29 +03:00
Johannes Zellner d93a58d892 Do not show OAuth2 in auth method dropdown as it has its own button 2023-08-03 17:17:08 +02:00
Johannes Zellner 99d9291a28 Never show the login form OR separator
So many states for with password enabled/disabled treated async
separately. Might be easier to bring back once password login is treated
like saml/ldap/... while still using the very same form elements
regardless
2023-08-03 17:00:34 +02:00
Johannes Zellner bda166ba50 Ensure we subscribe to currentSettings in login view 2023-08-03 16:53:23 +02:00
Johannes Zellner f190a102f9 formAuthenticationMethods is an array
part of #5051
2023-08-03 16:41:27 +02:00
Lauri Ojansivu d0ba89d913 Updated translations. 2023-08-03 12:53:38 +02:00
Lauri Ojansivu cb4f3c8895 Updated ChangeLog. 2023-08-03 12:50:44 +02:00
Lauri Ojansivu fd003f4402 Merge pull request #5055 from Pandetthe/master
Fix edit_swimlane
2023-08-03 13:46:27 +03:00
Jakub Jurczyk 3a22d4efdc Fix edit_swimlane 2023-08-03 12:44:22 +02:00
Lauri Ojansivu 48c763dbe3 v7.03 2023-08-02 20:27:39 +03:00
Lauri Ojansivu 10a9aef974 Updated translations. 2023-08-02 20:24:03 +03:00
Lauri Ojansivu eecb143977 Updated ChangeLog. 2023-08-02 20:22:33 +03:00
Lauri Ojansivu 767bbc5195 Merge pull request #5049 from cloudron-io/displayAuthenticationMethod-only-refers-to-select
Move authentication UI handling in correct place
2023-08-02 20:13:39 +03:00
Johannes Zellner b107fb0017 Move authentication UI handling in correct place
The connectionMethod component only deals with the authentication method
select input.

Fixes #5048
2023-08-02 18:36:15 +02:00
Lauri Ojansivu a94cc5351f Merge pull request #5047 from Pandetthe/master
Fix return value of edit_custom_field_dropdown_item
2023-08-02 15:26:45 +03:00
Jakub Jurczyk 7865368153 Fix return value of edit_custom_field_dropdown_item 2023-08-02 14:11:47 +02:00
32 changed files with 525 additions and 397 deletions

No files matched your search

+66
View File
@@ -20,6 +20,72 @@ Note:
[How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585)
# 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.
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:
- [Fix edit_swimlane](https://github.com/wekan/wekan/pull/5055).
Thanks to Pandetthe.
. [Login layout fixes 2](https://github.com/wekan/wekan/pull/5056).
Thanks to nebulade.
- [Do not open preview for attachments that cannot be previewed](https://github.com/wekan/wekan/pull/5058).
Thanks to VidVidex.
Thanks to above GitHub users for their contributions and translators for their translations.
# v7.03 2023-08-02 WeKan ® release
This release fixes the following bugs:
- [Fix return value of edit_custom_field_dropdown_item](https://github.com/wekan/wekan/pull/5047).
Thanks to Pandetthe.
- [Move authentication UI handling in correct place](https://github.com/wekan/wekan/pull/5049).
Thanks to nebulade.
Thanks to above GitHub users for their contributions and translators for their translations.
# v7.02 2023-08-02 WeKan ® release
This release adds the following new features:
+1 -1
View File
@@ -1,5 +1,5 @@
appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928
appVersion: "v7.02.0"
appVersion: "v7.06.0"
files:
userUploads:
- README.md
+1
View File
@@ -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;
+2 -1
View File
@@ -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
+147 -59
View File
@@ -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;
@@ -35,24 +38,24 @@ Template.attachmentGallery.events({
},
'click .js-rename': Popup.open('attachmentRename'),
'click .js-confirm-delete': Popup.afterConfirm('attachmentDelete', function() {
Attachments.remove(this._id);
Popup.back(2);
Attachments.remove(this._id);
Popup.back(2);
}),
});
function getNextAttachmentId(currentAttachmentId) {
function getNextAttachmentId(currentAttachmentId, offset = 0) {
const attachments = ReactiveCache.getAttachments({'meta.cardId': cardId});
let i = 0;
for (; i < attachments.length; i++) {
if (attachments[i]._id === currentAttachmentId) {
break;
}
let i = 0;
for (; i < attachments.length; i++) {
if (attachments[i]._id === currentAttachmentId) {
break;
}
return attachments[(i + 1 + attachments.length) % attachments.length]._id;
}
return attachments[(i + offset + 1 + attachments.length) % attachments.length]._id;
}
function getPrevAttachmentId(currentAttachmentId) {
function getPrevAttachmentId(currentAttachmentId, offset = 0) {
const attachments = ReactiveCache.getAttachments({'meta.cardId': cardId});
let i = 0;
@@ -61,52 +64,70 @@ function getPrevAttachmentId(currentAttachmentId) {
break;
}
}
return attachments[(i - 1 + attachments.length) % attachments.length]._id;
return attachments[(i + offset - 1 + attachments.length) % attachments.length]._id;
}
function openAttachmentViewer(attachmentId){
function attachmentCanBeOpened(attachment) {
return (
attachment.isImage ||
attachment.isPDF ||
attachment.isText ||
attachment.isJSON ||
attachment.isVideo ||
attachment.isAudio
);
}
const attachment = ReactiveCache.getAttachment(attachmentId);
function openAttachmentViewer(attachmentId) {
const attachment = ReactiveCache.getAttachment(attachmentId);
$("#attachment-name").text(attachment.name);
// Check if we can open the attachment (if we have a viewer for it) and exit if not
if (!attachmentCanBeOpened(attachment)) {
return;
}
// IMPORTANT: if you ever add a new viewer, make sure you also implement
// cleanup in the closeAttachmentViewer() function
switch(true){
case (attachment.isImage):
$("#image-viewer").attr("src", attachment.link());
$("#image-viewer").removeClass("hidden");
break;
case (attachment.isPDF):
$("#pdf-viewer").attr("data", attachment.link());
$("#pdf-viewer").removeClass("hidden");
break;
case (attachment.isVideo):
// We have to create a new <source> DOM element and append it to the video
// element, otherwise the video won't load
let videoSource = document.createElement('source');
videoSource.setAttribute('src', attachment.link());
$("#video-viewer").append(videoSource);
/*
Instructions for adding a new viewer:
- add a new case to the switch statement below
- implement cleanup in the closeAttachmentViewer() function, if necessary
- mark attachment type as openable by adding a new condition to the attachmentCanBeOpened function
*/
switch(true){
case (attachment.isImage):
$("#image-viewer").attr("src", attachment.link());
$("#image-viewer").removeClass("hidden");
break;
case (attachment.isPDF):
$("#pdf-viewer").attr("data", attachment.link());
$("#pdf-viewer").removeClass("hidden");
break;
case (attachment.isVideo):
// We have to create a new <source> DOM element and append it to the video
// element, otherwise the video won't load
let videoSource = document.createElement('source');
videoSource.setAttribute('src', attachment.link());
$("#video-viewer").append(videoSource);
$("#video-viewer").removeClass("hidden");
break;
case (attachment.isAudio):
// We have to create a new <source> DOM element and append it to the audio
// element, otherwise the audio won't load
let audioSource = document.createElement('source');
audioSource.setAttribute('src', attachment.link());
$("#audio-viewer").append(audioSource);
$("#video-viewer").removeClass("hidden");
break;
case (attachment.isAudio):
// We have to create a new <source> DOM element and append it to the audio
// element, otherwise the audio won't load
let audioSource = document.createElement('source');
audioSource.setAttribute('src', attachment.link());
$("#audio-viewer").append(audioSource);
$("#audio-viewer").removeClass("hidden");
break;
case (attachment.isText):
case (attachment.isJSON):
$("#txt-viewer").attr("data", attachment.link());
$("#txt-viewer").removeClass("hidden");
break;
}
$("#audio-viewer").removeClass("hidden");
break;
case (attachment.isText):
case (attachment.isJSON):
$("#txt-viewer").attr("data", attachment.link());
$("#txt-viewer").removeClass("hidden");
break;
}
$("#viewer-overlay").removeClass("hidden");
$('#attachment-name').text(attachment.name);
$('#viewer-overlay').removeClass('hidden');
}
function closeAttachmentViewer() {
@@ -133,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
@@ -151,18 +245,12 @@ Template.attachmentViewer.events({
'click #viewer-close'() {
closeAttachmentViewer();
},
'click #next-attachment'(event) {
closeAttachmentViewer()
const id = getNextAttachmentId(openAttachmentId);
openAttachmentId = id;
openAttachmentViewer(id);
'click #next-attachment'() {
openNextAttachment();
},
'click #prev-attachment'() {
openPrevAttachment();
},
'click #prev-attachment'(event) {
closeAttachmentViewer()
const id = getPrevAttachmentId(openAttachmentId);
openAttachmentId = id;
openAttachmentViewer(id);
}
});
Template.attachmentGallery.helpers({
+2 -7
View File
@@ -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 {
+20 -10
View File
@@ -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() {
+2 -1
View File
@@ -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;
+57 -26
View File
@@ -26,36 +26,67 @@ Template.userFormsLayout.onCreated(function () {
templateInstance.isLoading = new ReactiveVar(false);
if (!ReactiveCache.getCurrentUser()?.profile) {
Meteor.call('isOidcRedirectionEnabled', (_, result) => {
if (result) {
AccountsTemplates.options.socialLoginStyle = 'redirect';
options = {
loginStyle: AccountsTemplates.options.socialLoginStyle,
};
Meteor.loginWithOidc(options);
}
});
Meteor.call('isOidcRedirectionEnabled', (_, result) => {
if (result) {
AccountsTemplates.options.socialLoginStyle = 'redirect';
options = {
loginStyle: AccountsTemplates.options.socialLoginStyle,
};
Meteor.loginWithOidc(options);
}
});
Meteor.subscribe('setting', {
onReady() {
templateInstance.currentSetting.set(ReactiveCache.getCurrentSetting());
return this.stop();
},
});
}
Meteor.call('isDisableRegistration', (_, result) => {
if (result) {
$('.at-signup-link').hide();
}
});
Meteor.call('isDisableForgotPassword', (_, result) => {
if (result) {
$('.at-pwd-link').hide();
}
});
});
Template.userFormsLayout.onRendered(() => {
AccountsTemplates.state.form.keys = new Proxy(
AccountsTemplates.state.form.keys,
validator,
);
EscapeActions.executeAll();
Meteor.call('getAuthenticationsEnabled', (_, result) => {
let enabledAuthenticationMethods = [ 'password' ]; // we show/hide this based on isPasswordLoginEnabled
if (result) {
Object.keys(result).forEach((m) => {
if (result[m]) enabledAuthenticationMethods.push(m);
});
}
Meteor.call('isPasswordLoginEnabled', (_, result) => {
if (result) {
$('.at-pwd-form').show();
}
});
Meteor.call('isDisableRegistration', (_, result) => {
if (result) {
$('.at-signup-link').hide();
}
});
Meteor.call('isDisableForgotPassword', (_, result) => {
if (result) {
$('.at-pwd-link').hide();
}
});
if (enabledAuthenticationMethods.indexOf('oauth2') !== -1) {
// TODO find better way to run this code once the oauth2 UI is injected in the DOM
(function waitForElementAndShow() {
if (!$('.at-oauth')[0]) return setTimeout(waitForElementAndShow, 100);
$('.at-oauth').show();
})();
}
AccountsTemplates.state.form.keys = new Proxy(
AccountsTemplates.state.form.keys,
validator,
);
EscapeActions.executeAll();
});
});
Template.userFormsLayout.helpers({
+9 -1
View File
@@ -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;
+6 -24
View File
@@ -3,40 +3,22 @@ Template.connectionMethod.onCreated(function() {
Meteor.call('getAuthenticationsEnabled', (_, result) => {
if (result) {
// Only enabled auth methods without OAuth2/OpenID which is a separate button
const tmp = Object.keys(result).filter((k) => result[k]).filter((k) => k !== 'oauth2');
// TODO : add a management of different languages
// (ex {value: ldap, text: TAPi18n.__('ldap', {}, T9n.getLanguage() || 'en')})
this.authenticationMethods.set([
{ value: 'password' },
// Gets only the authentication methods availables
...Object.entries(result)
.filter(e => e[1])
.map(e => ({ value: e[0] })),
]);
this.authenticationMethods.set([{ value: 'password' }].concat(tmp.map((k) => { return { value: k }; })));
}
// If only the default authentication available, hides the select boxe
const content = $('.at-form-authentication');
// OAuth method is a separate button, so ignore it in the count
const formAuthenticationMethods = this.authenticationMethods.get().filter((method) => method.value !== 'oauth2');
if (formAuthenticationMethods > 1) {
if (this.authenticationMethods.get().length > 1) {
content.show();
} else {
content.hide();
}
if (this.authenticationMethods.get().some((method) => method.value === 'oauth2')) {
$('.at-oauth').show();
}
Meteor.call('isPasswordLoginEnabled', (_, result) => {
if (result) {
$('.at-pwd-form').show();
}
if (result && this.authenticationMethods.get().length > 1) {
$('.at-sep').show();
}
});
});
});
+23 -20
View File
@@ -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();
+1 -1
View File
@@ -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)
+2 -1
View File
@@ -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');
+9 -9
View File
@@ -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"
}
+9 -9
View File
@@ -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"
}
+1 -1
View File
@@ -1229,5 +1229,5 @@
"allowed-avatar-filetypes": "סוגי תמונות משתמשים מותרים:",
"invalid-file": "אם שם הקובץ שגוי, העלאה או שינוי שם מושבתים.",
"preview-pdf-not-supported": "המכשיר שלך לא תומך בהצגה מקדימה של PDF. כדאי לנסות להוריד במקום.",
"drag-board": "Drag board"
"drag-board": "גרירת לוח"
}
+65 -65
View File
@@ -81,10 +81,10 @@
"activity-endDate": "終了日を %s に変更しました / %s",
"add-attachment": "添付ファイルを追加",
"add-board": "ボードを追加",
"add-template": "テンプレートを追加",
"add-template": "Add Template",
"add-card": "カードを追加",
"add-card-to-top-of-list": "カードをリストの先頭に追加",
"add-card-to-bottom-of-list": "カードをリストの末尾に追加",
"add-card-to-bottom-of-list": "Add Card to Bottom of List",
"setListWidthPopup-title": "リストの幅を設定",
"set-list-width": "リストの幅を設定",
"set-list-width-value": "リストの幅(ピクセル)",
@@ -97,13 +97,13 @@
"add-subtask": "サブタスクを追加",
"add-checklist": "チェックリストを追加",
"add-checklist-item": "チェックリストに項目を追加",
"close-add-checklist-item": "Close add an item to checklist form",
"close-edit-checklist-item": "Close edit an item to checklist form",
"close-add-checklist-item": "チェックリストフォームの項目の追加を終了する",
"close-edit-checklist-item": "チェックリストフォームの項目の編集を終了する",
"convertChecklistItemToCardPopup-title": "Convert to Card",
"add-cover": "Add cover image to minicard",
"add-cover": "ミニカードに表紙画像を追加する",
"add-label": "ラベルを追加",
"add-list": "リストを追加",
"add-after-list": "Add After List",
"add-after-list": "リストの最後に追加",
"add-members": "メンバーの追加",
"added": "追加しました",
"addMemberPopup-title": "メンバー",
@@ -143,13 +143,13 @@
"attachmentDeletePopup-title": "添付ファイルを削除しますか?",
"attachments": "添付ファイル",
"auto-watch": "作成されたボードを自動的にウォッチする",
"avatar-too-big": "The avatar is too large (__size__ max)",
"avatar-too-big": "アバターが大きすぎます(最大520KB)",
"back": "戻る",
"board-change-color": "色の変更",
"board-change-background-image": "Change Background Image",
"board-background-image-url": "Background Image URL",
"add-background-image": "Add Background Image",
"remove-background-image": "Remove Background Image",
"board-change-background-image": "背景画像を変更",
"board-background-image-url": "背景画像のURL",
"add-background-image": "背景画像を追加",
"remove-background-image": "背景画像を削除",
"show-at-all-boards-page" : "Show at All Boards page",
"board-info-on-my-boards" : "All Boards Settings",
"boardInfoOnMyBoardsPopup-title" : "All Boards Settings",
@@ -162,9 +162,9 @@
"board-public-info": "ボードは公開されます。",
"board-drag-drop-reorder-or-click-open": "Drag and drop to reorder board icons. Click board icon to open board.",
"boardChangeColorPopup-title": "ボードの背景を変更",
"boardChangeBackgroundImagePopup-title": "Change Background Image",
"boardChangeBackgroundImagePopup-title": "背景画像を変更",
"allBoardsChangeColorPopup-title": "色の変更",
"allBoardsChangeBackgroundImagePopup-title": "Change Background Image",
"allBoardsChangeBackgroundImagePopup-title": "背景画像を変更",
"boardChangeTitlePopup-title": "ボード名の変更",
"boardChangeVisibilityPopup-title": "公開範囲の変更",
"boardChangeWatchPopup-title": "ウォッチの変更",
@@ -314,7 +314,7 @@
"linkCardPopup-title": "カードをリンク",
"searchElementPopup-title": "検索",
"copyCardPopup-title": "カードをコピー",
"copyManyCardsPopup-title": "Copy Template to Many Cards",
"copyManyCardsPopup-title": "テンプレートから複数カードにコピー",
"copyManyCardsPopup-instructions": "作成されるカードのタイトルと説明をJSON形式で指定",
"copyManyCardsPopup-format": "[ {\"title\": \"1つ目のカードタイトル\", \"description\":\"1つ目のカードの説明\"}, {\"title\":\"2つ目のカードタイトル\",\"description\":\"2つ目のカードの説明\"},{\"title\":\"最後のカードタイトル\",\"description\":\"最後のカードの説明\"} ]",
"create": "作成",
@@ -382,7 +382,7 @@
"error-board-notAMember": "操作にはボードメンバーである必要があります",
"error-json-malformed": "このテキストは、有効なJSON形式ではありません",
"error-json-schema": "JSONデータが不正な値を含んでいます",
"error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format ",
"error-csv-schema": "CSV(カンマ区切り)/TSV(タブ区切り)の書式が不正です",
"error-list-doesNotExist": "このリストは存在しません",
"error-user-doesNotExist": "ユーザーが存在しません",
"error-user-notAllowSelf": "自分を招待することはできません。",
@@ -396,7 +396,7 @@
"export-board-csv": "ボードをCSVにエクスポート",
"export-board-tsv": "ボードをTSVにエクスポート",
"export-board-excel": "ボードをExcelにエクスポート",
"user-can-not-export-excel": "ユーザーはExcelにエクスポートできません ",
"user-can-not-export-excel": "ユーザーはExcelにエクスポートできません",
"export-board-html": "ボードをHTMLにエクスポート",
"export-card": "Export card",
"export-card-pdf": "Export card to PDF",
@@ -421,7 +421,7 @@
"filter-overdue": "期限切れ",
"filter-due-today": "本日期限",
"filter-due-this-week": "今週期限",
"filter-due-next-week": "Due next week",
"filter-due-next-week": "来週期限",
"filter-due-tomorrow": "明日期限",
"list-filter-label": "タイトルでリストをフィルタ",
"filter-clear": "フィルターの解除",
@@ -440,7 +440,7 @@
"filter-to-selection": "フィルターした項目を全選択",
"other-filters-label": "その他のフィルタ",
"advanced-filter-label": "高度なフィルター",
"advanced-filter-description": "高度なフィルタでは次のような演算子を使用できます:== != <= >= && || ( )\n半角スペースは演算子の区切り文字として使用します。\n\nフィールド名や値を使用したフィルタが可能です。\n例:Field1 == Value1\n\n注意:フィールド名や値にスペースが含まれる場合、それらをシングルクォーテーションで囲む必要があります。\n例:'Field 1' == 'Value 1'\n\n単体の制御文字 (' /) は無視されますので、\\\\を使用することができます。\n例:Field1 == I\\\\'m\n\n複数の条件を組み合わせることもできます。\n例:F1 == V1 || F1 == V2\n\n基本的にすべての演算子は左から右に評価されます。\n丸カッコを使用することで順序を変更できます。\n例:F1 == V1 && ( F2 == V2 || F2 == V3 )\n\nテキストフィールドでは正規表現を使用した検索もできます。\n例:F1 == /Tes.*/i",
"advanced-filter-description": "高度なフィルタでは次のような演算子を使用できます:== != <= >= && || ( )\n半角スペースは演算子の区切り文字として使用します。\n\nフィールド名や値を使用したフィルタが可能です。\n例:Field1 == Value1\n\n注意:フィールド名や値にスペースが含まれる場合、それらをシングルクォーテーションで囲む必要があります。\n例:'Field 1' == 'Value 1'\n\n単体の制御文字 (' \\\\/) は無視されますので、\\\\を使用することができます。\n例:Field1 == I\\\\'m\n\n複数の条件を組み合わせることもできます。\n例:F1 == V1 || F1 == V2\n\n基本的にすべての演算子は左から右に評価されます。\n丸カッコを使用することで順序を変更できます。\n例:F1 == V1 && ( F2 == V2 || F2 == V3 )\n\nテキストフィールドでは正規表現を使用した検索もできます。\n例:F1 == /Tes.*/i",
"fullname": "フルネーム",
"header-logo-title": "自分のボードページに戻る。",
"hide-system-messages": "システムメッセージを隠す",
@@ -532,7 +532,7 @@
"normal": "通常",
"normal-desc": "カードの閲覧と編集が可能。設定変更不可。",
"not-accepted-yet": "招待はアクセプトされていません",
"notify-participate": "Receive updates to any cards you participate as creator or member",
"notify-participate": "作成した、またはメンバーとなったカードの更新情報を受け取る",
"notify-watch": "ウォッチしているすべてのボード、リスト、カードの更新情報を受け取る",
"optional": "任意",
"or": "or",
@@ -550,7 +550,7 @@
"public": "公開",
"public-desc": "このボードはパブリックです。リンクを知っていれば誰でもアクセス可能でGoogleのような検索エンジンの結果に表示されます。このボードに追加されている人だけがカード追加が可能です。",
"quick-access-description": "ボードにスターをつけると、ここににショートカットができます。",
"remove-cover": "Remove cover image from minicard",
"remove-cover": "ミニカードから表紙画像を削除する",
"remove-from-board": "ボードから外す",
"remove-label": "ラベルの削除",
"listDeletePopup-title": "リストを削除しますか?",
@@ -561,8 +561,8 @@
"rename": "名前変更",
"rename-board": "ボード名の変更",
"restore": "リストア",
"rescue-card-description": "Show rescue dialogue before closing for unsaved card descriptions",
"rescue-card-description-dialogue": "Overwrite current card description with your changes?",
"rescue-card-description": "未保存のカードの説明を閉じる前に確認ダイアログを表示する",
"rescue-card-description-dialogue": "カードの説明を変更内容で上書きしますか?",
"save": "保存",
"search": "検索",
"rules": "ルール",
@@ -616,7 +616,7 @@
"custom-top-left-corner-logo-height": "カスタムの左上ロゴイメージの高さ。デフォルト:27",
"custom-login-logo-image-url": "カスタムのログインロゴイメージのURL",
"custom-login-logo-link-url": "カスタムのログインロゴイメージのリンクURL",
"custom-help-link-url": "Custom Help Link URL",
"custom-help-link-url": "ヘルプのリンクURLを変更する",
"text-below-custom-login-logo": "カスタムログインロゴイメージの下のテキスト",
"automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line",
"username": "ユーザー名",
@@ -664,15 +664,15 @@
"email-smtp-test-text": "メールを送信しました",
"error-invitation-code-not-exist": "招待コードが存在しません",
"error-notAuthorized": "このページを参照する権限がありません。",
"webhook-title": "Webhook Name",
"webhook-title": "Webフック名",
"webhook-token": "トークン(認証用オプション)",
"outgoing-webhooks": "Outgoing Webhooks",
"outgoing-webhooks": "発信Webフック",
"bidirectional-webhooks": "双方向Webフック",
"outgoingWebhooksPopup-title": "Outgoing Webhooks",
"outgoingWebhooksPopup-title": "発信Webフック",
"boardCardTitlePopup-title": "カード名フィルタ",
"disable-webhook": "このWebフックを無効化",
"global-webhook": "グローバルWebフック",
"new-outgoing-webhook": "New Outgoing Webhook",
"new-outgoing-webhook": "発信Webフックの作成",
"no-name": "(名前なし)",
"Node_version": "Nodeバージョン",
"Meteor_version": "Meteor バージョン",
@@ -730,17 +730,17 @@
"queue": "キュー",
"subtask-settings": "サブタスク設定",
"card-settings": "カード設定",
"minicard-settings": "Minicard Settings",
"minicard-settings": "ミニカード設定",
"boardSubtaskSettingsPopup-title": "ボードのサブタスク設定",
"boardCardSettingsPopup-title": "カード設定",
"boardMinicardSettingsPopup-title": "Minicard Settings",
"boardMinicardSettingsPopup-title": "ミニカード設定",
"deposit-subtasks-board": "サブタスクの作成先ボード:",
"deposit-subtasks-list": "サブタスクの作成先リスト:",
"show-parent-in-minicard": "ミニカード上の親表示",
"description-on-minicard": "Description on minicard",
"cover-attachment-on-minicard": "Cover image on minicard",
"badge-attachment-on-minicard": "Count of attachments on minicard",
"card-sorting-by-number-on-minicard": "Card sorting by number on minicard",
"description-on-minicard": "ミニカードの説明",
"cover-attachment-on-minicard": "ミニカードの表紙画像",
"badge-attachment-on-minicard": "ミニカードの添付ファイル数",
"card-sorting-by-number-on-minicard": "ミニカードの番号順でソートする",
"prefix-with-full-path": "タイトルの前に親をフル表示",
"prefix-with-parent": "タイトルの前に親を表示",
"subtext-with-full-path": "タイトルの後ろに親をフル表示",
@@ -853,7 +853,7 @@
"r-items-list": "アイテム1、アイテム2、アイテム3",
"r-add-swimlane": "スイムレーンを追加",
"r-swimlane-name": "スイムレーン名",
"r-board-note": "Note: leave a field empty to match every possible value. ",
"r-board-note": "注意:フィールドを空にするとすべての値に一致します",
"r-checklist-note": "注意:チェックリスト項目はカンマ区切りで記述する必要があります。",
"r-when-a-card-is-moved": "カードが別のリストに移動したとき",
"r-set": "設定する",
@@ -865,7 +865,7 @@
"r-df-received-at": "受付",
"r-to-current-datetime": "現在日時に",
"r-remove-value-from": "次の値を削除:",
"r-link-card": "Link card to",
"r-link-card": "カードをリンクする",
"ldap": "LDAP",
"oauth2": "OAuth2",
"cas": "CAS",
@@ -874,8 +874,8 @@
"custom-product-name": "カスタム製品名",
"layout": "レイアウト",
"hide-logo": "ロゴを隠す",
"hide-card-counter-list": "Hide card counter list on All Boards",
"hide-board-member-list": "Hide board member list on All Boards",
"hide-card-counter-list": "すべてのボードからカードカウンタリストを非表示にする。",
"hide-board-member-list": "すべてのボードからボードメンバリストを非表示にする。",
"add-custom-html-after-body-start": "<body> の開始直後にカスタムHTMLを追加する",
"add-custom-html-before-body-end": "</body> の終了直前にカスタムHTMLを追加する",
"error-undefined": "何らかの問題が発生しています",
@@ -884,9 +884,9 @@
"oidc-button-text": "Customize the OIDC button text",
"default-authentication-method": "デフォルトの認証方式",
"duplicate-board": "ボードの複製",
"org-number": "The number of organizations is: ",
"team-number": "The number of teams is: ",
"people-number": "The number of people is: ",
"org-number": "組織数:",
"team-number": "チーム数: ",
"people-number": "人数:",
"swimlaneDeletePopup-title": "スイムレーンを削除しますか?",
"swimlane-delete-pop": "すべての内容がアクティビティから削除されます。この削除は元に戻すことができません。",
"restore-all": "全てをリストアする",
@@ -904,7 +904,7 @@
"almostdue": "期限 %s が近づいています",
"pastdue": "期限 %s が過ぎています",
"duenow": "期限 %s は本日です",
"act-newDue": "__list__/__card__ has 1st due reminder [__board__]",
"act-newDue": "__list __ / __ card__に1回目の有効期限アラートがあります [__board__]",
"act-withDue": "__list __ / __ card__ の有効期限のアラート [__board__]",
"act-almostdue": "__card__ の期限日時 (__timeValue__) が近づいています",
"act-pastdue": "__card__ の期限日時 (__timeValue__) が過ぎています",
@@ -929,7 +929,7 @@
"editUserPopup-title": "ユーザーを編集",
"newUserPopup-title": "新規ユーザー",
"notifications": "通知",
"help": "Help",
"help": "ヘルプ",
"view-all": "全てを表示",
"filter-by-unread": "未読でフィルタ",
"mark-all-as-read": "全て既読にする",
@@ -1055,7 +1055,7 @@
"operator-debug-invalid": "%s is not a valid debug predicate",
"next-page": "次のページ",
"previous-page": "前のページ",
"heading-notes": "注意\n ",
"heading-notes": "注意",
"globalSearch-instructions-heading": "検索手順",
"globalSearch-instructions-description": "検索は演算子を含めた絞り込みが可能です。演算子は、演算子の名前と値を半角コロンで区切った記述で指定します。例えば、`リスト:対応不可`と指定すると、*対応不可*という名前のリストに含まれるカードという制約で検索します。値にスペースや特殊文字が含まれる場合は引用符で囲む必要があります(例:`__operator_list__:\"レビュー 本日中\"`)。",
"globalSearch-instructions-operators": "有効な演算子:",
@@ -1083,13 +1083,13 @@
"globalSearch-instructions-status-private": "`__predicate_private__` - 非公開のボードにあるカード",
"globalSearch-instructions-operator-has": "`__operator_has__:<field>` - *<field>* は`__predicate_attachment__`、`__predicate_checklist__`、`__predicate_description__`、`__predicate_start__`、`__predicate_due__`、`__predicate_end__`、`__predicate_assignee__`、`__predicate_member__` のいずれかを指定します。*<field>* の前に「`-`」を記述すると、そのフィールドに値がないものを検索します(例:「`所有:-期限日`」は期限日がないカードを検索します)。",
"globalSearch-instructions-operator-sort": "`__operator_sort__:<sort-name>` - *<sort-name>* は `__predicate_due__`、`__predicate_created__`、`__predicate_modified__` のいずれかを指定します。降順にする場合は、並べ替え名の前に「`-`」を記述します。",
"globalSearch-instructions-operator-limit": "`__operator_limit__:<n>` - 「*<n>*」には、ページごとに表示されるカードの数を表す正の整数を指定します。 ",
"globalSearch-instructions-operator-limit": "`__operator_limit__:<n>` - 「*<n>*」には、ページごとに表示されるカードの数を表す正の整数を指定します。",
"globalSearch-instructions-notes-1": "複数の演算子を指定できます。",
"globalSearch-instructions-notes-2": "同じ演算子はOR条件になります。複数の条件のいずれかに一致したカードが検索されます。`__operator_list__:有効 __operator_list__:対応不要` の場合、リスト名が *有効* または *対応不要* のカードが検索されます。",
"globalSearch-instructions-notes-3": "異なる演算子はAND条件になります。異なる演算子すべてに一致したカードのみが検索されます。`__operator_list__:有効 __operator_label__:赤` は、*有効* のリストの中の *赤* のラベルのカードのみが検索されます。",
"globalSearch-instructions-notes-3-2": "日付には正負の整数や、現在からの期間として `__predicate_week__`、`__predicate_month__`、`__predicate_quarter__`、`__predicate_year__` を指定できます。",
"globalSearch-instructions-notes-4": "テキスト検索では大文字と小文字は区別されません。",
"globalSearch-instructions-notes-5": "デフォルトではアーカイブされたカードは検索されません。 ",
"globalSearch-instructions-notes-5": "デフォルトではアーカイブされたカードは検索されません。",
"link-to-search": "この検索へのリンク",
"excel-font": "Arial",
"number": "数値",
@@ -1097,7 +1097,7 @@
"label-names": "ラベル名",
"archived-at": "アーカイブされた:",
"sort-cards": "カードの並び替え",
"sort-is-on": "Sort is on",
"sort-is-on": "ソートが有効",
"cardsSortPopup-title": "カードの並び替え",
"due-date": "期限日",
"server-error": "サーバーエラー",
@@ -1197,14 +1197,14 @@
"attachmentActionsPopup-title": "Attachment Actions",
"attachment-move-storage-fs": "Move attachment to filesystem",
"attachment-move-storage-gridfs": "Move attachment to GridFS",
"attachment-move-storage-s3": "Move attachment to S3",
"attachment-move-storage-s3": "添付ファイルを S3 に移動する",
"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-to-s3": "Move all attachments to S3",
"move-all-attachments-to-s3": "複数の添付ファイルを S3 に移動する",
"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",
"move-all-attachments-of-board-to-s3": "Move all attachments of board to S3",
"move-all-attachments-of-board-to-s3": "ボードのすべての添付ファイルを S3 に移動する",
"path": "Path",
"version-name": "Version-Name",
"size": "Size",
@@ -1212,22 +1212,22 @@
"action": "操作",
"board-title": "Board Title",
"attachmentRenamePopup-title": "名前変更",
"uploading": "Uploading",
"remaining_time": "Remaining time",
"speed": "Speed",
"progress": "Progress",
"password-again": "Password (again)",
"if-you-already-have-an-account": "If you already have an account",
"register": "Register",
"forgot-password": "Forgot password",
"uploading": "アップグレード中",
"remaining_time": "残り時間",
"speed": "速度",
"progress": "進捗",
"password-again": "パスワード(再入力)",
"if-you-already-have-an-account": "すでにアカウントを持っている場合",
"register": "登録",
"forgot-password": "パスワードを忘れた",
"minicardDetailsActionsPopup-title": "Card Details",
"Mongo_sessions_count": "Mongo sessions count",
"Mongo_sessions_count": "Mongo セッション数",
"change-visibility": "公開範囲の変更",
"max-upload-filesize": "Max upload filesize in bytes:",
"allowed-upload-filetypes": "Allowed upload filetypes:",
"max-avatar-filesize": "Max avatar filesize in bytes:",
"allowed-avatar-filetypes": "Allowed avatar filetypes:",
"invalid-file": "If filename is invalid, upload or rename is cancelled.",
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.",
"drag-board": "Drag board"
"max-upload-filesize": "バイト単位の最大アップロードサイズ: ",
"allowed-upload-filetypes": "アップロードできるファイルタイプ",
"max-avatar-filesize": "バイト単位の最大アバターファイルサイズ:",
"allowed-avatar-filetypes": "アバターに使用できるファイルタイプ",
"invalid-file": "無効なファイル名の場合アップロードまたは名前の変更は取り消されます。",
"preview-pdf-not-supported": "この端末はPDFのプレビューに対応していません。他の端末でダウンロードしてください。",
"drag-board": "ドラッグボード"
}
+1 -1
View File
@@ -1229,5 +1229,5 @@
"allowed-avatar-filetypes": "Toegestane avatar bestandstypen:",
"invalid-file": "Als de bestandsnaam ongeldig is wordt de upload of het hernoemen geannuleerd.",
"preview-pdf-not-supported": "Dit apparaat ondersteund geen voorbeeld PDF. Probeer het daarom te downloaden. ",
"drag-board": "Drag board"
"drag-board": "Sleep bord"
}
+1 -1
View File
@@ -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"
}
+9 -9
View File
@@ -85,14 +85,14 @@
"add-card": "添加卡片",
"add-card-to-top-of-list": "添加卡片到列表顶部",
"add-card-to-bottom-of-list": "添加卡片到列表底部",
"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": "设置列表宽度",
"set-list-width": "设置列表宽度",
"set-list-width-value": "列表宽度(px)",
"list-width-error-message": "列表宽度需要设置数字类型",
"setSwimlaneHeightPopup-title": "设置泳道高度",
"set-swimlane-height": "设置泳道高度",
"set-swimlane-height-value": "泳道高度(px)",
"swimlane-height-error-message": "泳道高度需要设置数字类型",
"add-swimlane": "添加泳道图",
"add-subtask": "添加子任务",
"add-checklist": "添加清单",
@@ -1229,5 +1229,5 @@
"allowed-avatar-filetypes": "头像文件允许类型:",
"invalid-file": "如果文件名无效,则取消上传或重命名。\n ",
"preview-pdf-not-supported": "您的设备不支持pdf预览,请尝试下载",
"drag-board": "Drag board"
"drag-board": "拖拽看板"
}
+1 -1
View File
@@ -549,7 +549,7 @@ if (Meteor.isServer) {
JsonRoutes.sendResult(res, {
code: 200,
data: { _id: customFieldId },
data: { _id: paramDropdownItemId },
});
},
);
+1 -1
View File
@@ -510,7 +510,7 @@ if (Meteor.isServer) {
if (!swimlane) {
throw new Meteor.Error('not-found', 'Swimlane not found');
}
Swimlanes.update(
Swimlanes.direct.update(
{ _id: paramSwimlaneId },
{ $set: { title: req.body.title } }
);
+1 -1
View File
@@ -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;
}
},
+70 -133
View File
@@ -1,15 +1,15 @@
{
"name": "wekan",
"version": "v7.02.0",
"version": "v7.06.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": {
@@ -57,14 +57,6 @@
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
"integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA=="
},
"ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"requires": {
"color-convert": "^2.0.1"
}
},
"emoji-regex": {
"version": "9.2.2",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
@@ -80,36 +72,6 @@
"strip-ansi": "^7.0.1"
}
},
"string-width-cjs": {
"version": "npm:string-width@4.2.3",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
"requires": {
"emoji-regex": "^8.0.0",
"is-fullwidth-code-point": "^3.0.0",
"strip-ansi": "^6.0.1"
},
"dependencies": {
"ansi-regex": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
},
"emoji-regex": {
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
},
"strip-ansi": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
"requires": {
"ansi-regex": "^5.0.1"
}
}
}
},
"strip-ansi": {
"version": "7.1.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
@@ -117,61 +79,6 @@
"requires": {
"ansi-regex": "^6.0.1"
}
},
"strip-ansi-cjs": {
"version": "npm:strip-ansi@6.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
"requires": {
"ansi-regex": "^5.0.1"
},
"dependencies": {
"ansi-regex": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
}
}
},
"wrap-ansi-cjs": {
"version": "npm:wrap-ansi@7.0.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
"integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
"requires": {
"ansi-styles": "^4.0.0",
"string-width": "^4.1.0",
"strip-ansi": "^6.0.0"
},
"dependencies": {
"ansi-regex": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
},
"emoji-regex": {
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
},
"string-width": {
"version": "4.2.3",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
"requires": {
"emoji-regex": "^8.0.0",
"is-fullwidth-code-point": "^3.0.0",
"strip-ansi": "^6.0.1"
}
},
"strip-ansi": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
"requires": {
"ansi-regex": "^5.0.1"
}
}
}
}
}
},
@@ -259,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",
@@ -304,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"
}
},
@@ -778,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",
@@ -860,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",
@@ -1023,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",
@@ -1068,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"
}
@@ -1134,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=="
}
}
},
@@ -1458,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"
@@ -3256,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",
@@ -3466,6 +3365,16 @@
"strip-ansi": "^6.0.1"
}
},
"string-width-cjs": {
"version": "npm:string-width@4.2.3",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
"requires": {
"emoji-regex": "^8.0.0",
"is-fullwidth-code-point": "^3.0.0",
"strip-ansi": "^6.0.1"
}
},
"string_decoder": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
@@ -3482,6 +3391,14 @@
"ansi-regex": "^5.0.1"
}
},
"strip-ansi-cjs": {
"version": "npm:strip-ansi@6.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
"requires": {
"ansi-regex": "^5.0.1"
}
},
"strnum": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz",
@@ -3566,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",
@@ -3850,6 +3767,26 @@
}
}
},
"wrap-ansi-cjs": {
"version": "npm:wrap-ansi@7.0.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
"integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
"requires": {
"ansi-styles": "^4.0.0",
"string-width": "^4.1.0",
"strip-ansi": "^6.0.0"
},
"dependencies": {
"ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"requires": {
"color-convert": "^2.0.1"
}
}
}
},
"wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+3 -3
View File
@@ -1,6 +1,6 @@
{
"name": "wekan",
"version": "v7.02.0",
"version": "v7.06.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",
+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 v7.02</title>
<title>Wekan REST API v7.06</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.02">Wekan REST API v7.02</a>
<a href="#wekan-rest-api" class="toc-h1 toc-link" data-title="Wekan REST API v7.06">Wekan REST API v7.06</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.02</h1>
<h1 id="wekan-rest-api">Wekan REST API v7.06</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: v7.02
version: v7.06
description: |
The REST API allows you to control and extend Wekan with ease.
+3
View File
@@ -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"
+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 = 702,
appVersion = 706,
# Increment this for every release.
appMarketingVersion = (defaultText = "7.02.0~2023-08-02"),
appMarketingVersion = (defaultText = "7.06.0~2023-08-15"),
# Human-readable presentation of the app version.
minUpgradableAppVersion = 0,
+4 -4
View File
@@ -1,5 +1,5 @@
name: wekan
version: '7.02'
version: '7.06'
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.02/wekan-7.02-amd64.zip
unzip wekan-7.02-amd64.zip
rm wekan-7.02-amd64.zip
wget https://github.com/wekan/wekan/releases/download/v7.06/wekan-7.06-amd64.zip
unzip wekan-7.06-amd64.zip
rm wekan-7.06-amd64.zip
cd ..
##cd .build/bundle
##find . -type d -name '*-garbage*' | xargs rm -rf