Compare commits

...
46 Commits
Author SHA1 Message Date
Lauri Ojansivu 209a76c5ce v1.89 2018-12-15 20:52:11 +02:00
Lauri Ojansivu 4bd74b5817 - Admin Panel / Layout / Custom Product Name [now changes webpage title](https://github.com/wekan/wekan/commit/dbb1a86ca377e551063cc04c5189fad4aa9148c0).
Related #1196

Thanks to xet7 !
2018-12-15 20:46:47 +02:00
Lauri Ojansivu dbb1a86ca3 - Admin Panel / Layout / Custom Product Name now changes webpage title.
Thanks to xet7 !

Related #1196
2018-12-15 20:39:01 +02:00
Lauri Ojansivu c066883dbd v1.88 2018-12-14 23:31:17 +02:00
Lauri Ojansivu 0b6b6dc7fd - Fix: [Scrollbar used](https://github.com/wekan/wekan/issues/2056) [remote file from CDN](https://github.com/MaazAli/Meteor-Malihu-Custom-Scrollbar/blob/master/jquery.mCustomScrollbar.js#L50),
so forked package to https://github.com/wekan/wekan-scrollbar and included
  non-minified file locally to Wekan, so that using scrollbar works without direct connection
  to Internet. Wekan should not load any external files by default, as was case before
  new scrollbar, and is again now [after this fix](https://github.com/wekan/wekan/commit/c546464d9f56117a8bf580512cd62fc1102559c3).

Thanks to xet7 !

Closes #2056
2018-12-14 23:27:22 +02:00
Lauri Ojansivu c546464d9f - Because scrollbar uses [remote file from CDN](https://github.com/MaazAli/Meteor-Malihu-Custom-Scrollbar/blob/master/jquery.mCustomScrollbar.js#L50),
fork package to https://github.com/wekan/wekan-scrollbar and include
  non-minified file locally to Wekan, so that using scrollbar works without direct connection
  to Internet. Wekan should not load any external files by default, as was case before
  new scrollbar, and is again now after this fix.

Closes #2056
2018-12-14 23:13:15 +02:00
Lauri Ojansivu 67a5fdaf96 v1.87 2018-12-13 20:13:50 +02:00
Lauri Ojansivu af9156b18a Update translations (es). 2018-12-13 20:12:03 +02:00
Lauri Ojansivu 7af20fd2d9 - Fix Reference error.
Thanks to Akuket !
2018-12-13 20:10:00 +02:00
Lauri Ojansivu 2a5a428bc0 - Fix Reference error.
Thanks to Akuket !
2018-12-13 20:07:55 +02:00
Lauri Ojansivu 4b7d47465a v1.86 2018-12-13 14:40:16 +02:00
Lauri Ojansivu 5f4e2d8e06 - Fix [Cannot login with new LDAP account when auto-registration disabled (request invitation code)](https://github.com/wekan/wekan-ldap/issues/29);
- Fix [Unable to create new account from LDAP](https://github.com/wekan/wekan-ldap/issues/32).

Thanks to Akuket !
2018-12-13 14:34:11 +02:00
Lauri Ojansivu f8ef8507b5 - Fix [Cannot login with new LDAP account when auto-registration disabled (request invitation code)](https://github.com/wekan/wekan-ldap/issues/29);
- Fix [Unable to create new account from LDAP](https://github.com/wekan/wekan-ldap/issues/32).

Thanks to Akuket !

Closes wekan/wekan-ldap#29,
closes wekan/wekan-ldap#32
2018-12-13 14:27:34 +02:00
Lauri Ojansivu 2ae143e6da Update translations. 2018-12-13 14:10:55 +02:00
Lauri Ojansivu 38e8f52293 Add missing text about bugs fixes. 2018-12-09 01:44:08 +02:00
Lauri Ojansivu b143fc9297 v1.85 2018-12-09 00:49:07 +02:00
Lauri Ojansivu dd10f78401 Merge branch 'hupptechnologies-scrollbar-closes-card-chrome' into devel 2018-12-09 00:44:47 +02:00
Lauri Ojansivu 90208b774a - Fix [Clicking the scrollbar closes the card on Chrome](https://github.com/wekan/wekan/issues/1404)
by changing [mquandalle:perfect-scrollbar to malihu-jquery-custom-scrollbar](https://github.com/wekan/wekan/pull/2050).
  that works also when clicking scrollbar in Chrome. Also added back required packages that were removed in PR.

Thanks to hupptechnologies and xet7 !
2018-12-09 00:43:21 +02:00
Lauri Ojansivu bc35d9fe1a - Fix [Clicking the scrollbar closes the card on Chrome](https://github.com/wekan/wekan/issues/1404)
by changing [mquandalle:perfect-scrollbar to malihu-jquery-custom-scrollbar](https://github.com/wekan/wekan/pull/2050).
  that works also when clicking scrollbar in Chrome. Also added back required packages that were removed in PR.

Thanks to hupptechnologies and xet7 !

Closes #1404
2018-12-09 00:33:36 +02:00
Lauri Ojansivu 472d637c9f Merge branch 'scrollbar-closes-card-chrome' of https://github.com/hupptechnologies/wekan into hupptechnologies-scrollbar-closes-card-chrome 2018-12-09 00:21:35 +02:00
Lauri Ojansivu 20c86613a7 Update translations (ru). 2018-12-09 00:16:48 +02:00
hupptechnologies 5ac69ed7de Fix lineter issue 2018-12-08 18:05:59 +05:30
hupptechnologies 0620fe5e11 Issue : Clicking the scrollbar closes the card on Chrome #1404
Resolved #1404
2018-12-08 17:53:26 +05:30
hupptechnologies 44a819226f Merge branch 'devel' into edge 2018-12-08 17:20:56 +05:30
Lauri Ojansivu cf2cf7898a - Fix lint warning.
Thanks to xet7 !
2018-12-07 06:18:46 +02:00
Lauri Ojansivu ee212b69a9 v1.84 2018-12-07 05:20:06 +02:00
Lauri Ojansivu 87d91560f8 Update translations (ru). 2018-12-07 05:11:08 +02:00
Lauri Ojansivu bccca00aaf - Fix 2/8: IFTTT Rule action/trigger ["Remove all members from the card"](https://github.com/wekan/wekan/issues/1972).
Thanks to BurakTuran9 !
2018-12-07 05:07:22 +02:00
Lauri Ojansivu d6e36ed50a - Fix: IFTTT Rule "Remove all members from the card" doesn't work.
Thanks to BurakTuran9 !

Related #1972
2018-12-07 04:57:51 +02:00
Lauri Ojansivu 83f7fa768d v1.83 2018-12-06 01:59:37 +02:00
Lauri Ojansivu 2d49006aee - Fix IFTTT Rule action/trigger part 1 of 7: [When a checklist is completed](https://github.com/wekan/wekan/issues/1972).
And partial incomplete fix to when all of checklist is set as uncompleted. Help in fixing welcome.

Thanks to BurakTuran9 and xet7 !

Related #1972
2018-12-06 01:55:02 +02:00
Lauri Ojansivu c2e58dcb62 - Partial fix to unchecked rule, and tips for fixing.
Related #1972
2018-12-06 01:49:57 +02:00
Lauri Ojansivu f154c5e521 Update translations. 2018-12-05 15:45:42 +02:00
Lauri Ojansivu eadbebb4fa - Fix IFTTT Rule action/trigger: When a checklist is completed/made incomplete.
Thanks to BurakTuran9 !

Related #1972
2018-12-05 15:45:10 +02:00
Lauri Ojansivu 40cf1c7549 - Fix IFTTT Rule action/trigger: When a checklist is completed/made incomplete.
Thanks to BurakTuran9 !

Related #1972
2018-12-05 15:21:24 +02:00
Lauri Ojansivu 9c4e305a84 v1.82 2018-12-05 08:53:40 +02:00
Lauri Ojansivu 167197fcda - Partially #2045 revert, continue.
Thanks to xet7 !
2018-12-05 08:47:48 +02:00
Lauri Ojansivu e3a40aca6f This release fixes the following bugs:
- Partially #2045 revert [Improve authentication](https://github.com/wekan/wekan/issues/2016),
  adding back password/LDAP dropdown, because login did now work.
  NOTE: This was added in v1.71, reverted at v1.73 because login did not work, added back at v1.79,
  and then reverted partially at v1.82 because login did not work.
  Related LDAP logout timer does not work yet.

Thanks to xet7 !
2018-12-05 08:20:59 +02:00
Lauri Ojansivu 0611e0c4bd Add text about fixing bugs. 2018-12-04 22:32:30 +02:00
Lauri Ojansivu d6857693bb v1.81 2018-12-04 22:30:54 +02:00
Lauri Ojansivu b5ccf7a58f - Remove extra commas , and add missing backslash \.
Maybe after that login, logout and CORS works.

Thanks to xet7 !

Related #2045,
related wekan/wekan-snap#69
2018-12-04 22:23:49 +02:00
Lauri Ojansivu bfca1822a0 - Remove extra commas , and add missing backslash \.
Maybe after that login, logout and CORS works.

Thanks to xet7 !

Related #2045,
related wekan/wekan-snap#69
2018-12-04 22:20:24 +02:00
Lauri Ojansivu 30151de269 v1.80 2018-12-03 18:22:41 +02:00
Lauri Ojansivu fe7c4528d7 - Upgrade Node from v8.12 to v8.14
- Revert non-working architectures that were added at v1.79, so now Wekan is just amd64 as before.

Thanks to xet7 !
2018-12-03 18:19:25 +02:00
hupptechnologies 1bad630641 autoamted local change 2018-11-27 12:57:03 +05:30
hupptechnologies 8a9a82fc80 Pull code 2018-11-24 16:30:12 +05:30
31 changed files with 583 additions and 451 deletions

No files matched your search

+1 -2
View File
@@ -63,7 +63,6 @@ mousetrap:mousetrap
mquandalle:jquery-textcomplete
mquandalle:jquery-ui-drag-drop-sort
mquandalle:mousetrap-bindglobal
mquandalle:perfect-scrollbar
peerlibrary:blaze-components@=0.15.1
perak:markdown
templates:tabs
@@ -89,4 +88,4 @@ mquandalle:moment
msavin:usercache
wekan:wekan-ldap
wekan:accounts-cas
msavin:sjobs
wekan-scrollbar
+1 -2
View File
@@ -116,8 +116,6 @@ mquandalle:jquery-textcomplete@0.8.0_1
mquandalle:jquery-ui-drag-drop-sort@0.2.0
mquandalle:moment@1.0.1
mquandalle:mousetrap-bindglobal@0.0.1
mquandalle:perfect-scrollbar@0.6.5_2
msavin:sjobs@3.0.6
msavin:usercache@1.0.0
npm-bcrypt@0.9.3
npm-mongo@2.2.33
@@ -180,6 +178,7 @@ useraccounts:unstyled@1.14.2
verron:autosize@3.0.8
webapp@1.4.0
webapp-hashing@1.0.9
wekan-scrollbar@3.1.3
wekan:accounts-cas@0.1.0
wekan:wekan-ldap@0.0.2
yasaricli:slugify@0.0.7
+101
View File
@@ -1,3 +1,104 @@
# v1.89 2018-12-15 Wekan release
This release adds the following new features:
- Admin Panel / Layout / Custom Product Name [now changes webpage title](https://github.com/wekan/wekan/commit/dbb1a86ca377e551063cc04c5189fad4aa9148c0).
Related #1196
Thanks to GitHub user xet7 for contributions.
# v1.88 2018-12-14 Wekan release
This release fixes the following bugs:
- Fix: [Scrollbar used](https://github.com/wekan/wekan/issues/2056) [remote file from CDN](https://github.com/MaazAli/Meteor-Malihu-Custom-Scrollbar/blob/master/jquery.mCustomScrollbar.js#L50),
so forked package to https://github.com/wekan/wekan-scrollbar and included
non-minified file locally to Wekan, so that using scrollbar works without direct connection
to Internet. Wekan should not load any external files by default, as was case before
new scrollbar, and is again now [after this fix](https://github.com/wekan/wekan/commit/c546464d9f56117a8bf580512cd62fc1102559c3).
Thanks to GitHub user xet7 for contributions.
# v1.87 2018-12-13 Wekan release
This release fixes the following bugs:
- Fix Reference error.
Thanks to GitHub user Akuket for contributions.
# v1.86 2018-12-13 Wekan release
This release fixes the following bugs:
- Fix [Cannot login with new LDAP account when auto-registration disabled (request invitation code)](https://github.com/wekan/wekan-ldap/issues/29);
- Fix [Unable to create new account from LDAP](https://github.com/wekan/wekan-ldap/issues/32).
Thanks to GitHub user Akuket for contributions.
# v1.85 2018-12-09 Wekan release
This release fixes the following bugs:
- Fix [Clicking the scrollbar closes the card on Chrome](https://github.com/wekan/wekan/issues/1404)
by changing [mquandalle:perfect-scrollbar to malihu-jquery-custom-scrollbar](https://github.com/wekan/wekan/pull/2050).
that works also when clicking scrollbar in Chrome. Also added back required packages that were removed in PR.
Thanks to GitHub users hupptechnologies and xet7 for their contributions.
# v1.84 2018-12-07 Wekan release
This release fixes the following bugs:
- Fix 2/8: IFTTT Rule action/trigger ["Remove all members from the card"](https://github.com/wekan/wekan/issues/1972).
Thanks to GitHub user BurakTuran9 for contributions.
# v1.83 2018-12-06 Wekan release
This release fixes the following bugs:
- Fix 1/8: IFTTT Rule action/trigger [When a checklist is completed](https://github.com/wekan/wekan/issues/1972).
And partial incomplete fix to when all of checklist is set as uncompleted. Help in fixing welcome.
Thanks to GitHub users BurakTuran9 and xet7 for their contributions.
# v1.82 2018-12-05 Wekan release
This release fixes the following bugs:
- Partially #2045 revert [Improve authentication](https://github.com/wekan/wekan/issues/2016),
adding back password/LDAP dropdown, because login did now work.
NOTE: This was added in v1.71, reverted at v1.73 because login did not work, added back at v1.79,
and then reverted partially at v1.82 because login did not work.
Related LDAP logout timer does not work yet.
Thanks to GitHub user xet7 for contributions.
# v1.81 2018-12-04 Wekan release
This release fixes the following bugs:
- Remove extra commas `,` and add missing backslash `\`.
Maybe after that login, logout and CORS works.
Thanks to GitHub user xet7 for contributions.
Related #2045,
related wekan/wekan-snap#69
# v1.80 2018-12-03 Wekan release
This release adds the following new features:
- Upgrade Node from v8.12 to v8.14
and fixes the following bugs:
- Revert non-working architectures that were added at v1.79, so now Wekan is just amd64 as before.
Thanks to GitHub user xet7 for contributions.
# v1.79 2018-12-03 Wekan release
This release adds the following new features:
+4 -3
View File
@@ -75,7 +75,7 @@ ARG CORS
# DOES NOT WORK: paxctl fix for alpine linux: https://github.com/wekan/wekan/issues/1303
# ENV BUILD_DEPS="paxctl"
ENV BUILD_DEPS="apt-utils bsdtar gnupg gosu wget curl bzip2 build-essential python git ca-certificates gcc-7" \
NODE_VERSION=v8.12.0 \
NODE_VERSION=v8.14.0 \
METEOR_RELEASE=1.6.0.1 \
USE_EDGE=false \
METEOR_EDGE=1.5-beta.17 \
@@ -137,8 +137,8 @@ ENV BUILD_DEPS="apt-utils bsdtar gnupg gosu wget curl bzip2 build-essential pyth
LDAP_SYNC_USER_DATA=false \
LDAP_SYNC_USER_DATA_FIELDMAP="" \
LDAP_SYNC_GROUP_ROLES="" \
LDAP_DEFAULT_DOMAIN=""
LOGOUT_WITH_TIMER="false" \
LDAP_DEFAULT_DOMAIN="" \
LOGOUT_WITH_TIMER=false \
LOGOUT_IN="" \
LOGOUT_ON_HOURS="" \
LOGOUT_ON_MINUTES="" \
@@ -244,6 +244,7 @@ RUN \
gosu wekan:wekan git clone --depth 1 -b master git://github.com/meteor-useraccounts/core.git meteor-useraccounts-core && \
gosu wekan:wekan git clone --depth 1 -b master git://github.com/wekan/meteor-accounts-cas.git && \
gosu wekan:wekan git clone --depth 1 -b master git://github.com/wekan/wekan-ldap.git && \
gosu wekan:wekan git clone --depth 1 -b master git://github.com/wekan/wekan-scrollbar.git && \
sed -i 's/api\.versionsFrom/\/\/api.versionsFrom/' /home/wekan/app/packages/meteor-useraccounts-core/package.js && \
cd /home/wekan/.meteor && \
gosu wekan:wekan /home/wekan/.meteor/meteor -- help; \
+1
View File
@@ -112,6 +112,7 @@ BlazeComponent.extendComponent({
onRendered() {
if (!Utils.isMiniScreen()) {
Meteor.setTimeout(() => {
$('.card-details').mCustomScrollbar({theme:'minimal-dark', setWidth: false, setLeft: 0, scrollbarPosition: 'outside', mouseWheel: true });
this.scrollParentContainer();
}, 500);
}
+10 -2
View File
@@ -1,9 +1,9 @@
@import 'nib'
.card-details
padding: 0 20px
padding: 0
flex-shrink: 0
flex-basis: 470px
flex-basis: 510px
will-change: flex-basis
overflow-y: scroll
overflow-x: hidden
@@ -14,8 +14,16 @@
box-shadow: 0 0 7px 0 darken(white, 30%)
transition: flex-basis 0.1s
.mCustomScrollBox
padding-left: 0
.ps-scrollbar-y-rail
pointer-event: all
position: absolute;
.card-details-canvas
width: 470px
padding-left: 20px;
.card-details-header
margin: 0 -20px 5px
-1
View File
@@ -51,7 +51,6 @@ textarea.js-add-checklist-item, textarea.js-edit-checklist-item
padding-right: 3%
z-index: 17
border-radius: 3px
top: 50%
p
position: relative
+1
View File
@@ -23,6 +23,7 @@ template(name="userFormsLayout")
br
section.auth-dialog
+Template.dynamic(template=content)
+connectionMethod
if isCas
.at-form
button#cas(class='at-btn submit' type='submit') {{casSignInLabel}}
+47 -49
View File
@@ -6,14 +6,29 @@ const i18nTagToT9n = (i18nTag) => {
return i18nTag;
};
Template.userFormsLayout.onCreated(function() {
Meteor.call('getDefaultAuthenticationMethod', (error, result) => {
this.data.defaultAuthenticationMethod = new ReactiveVar(error ? undefined : result);
});
const validator = {
set(obj, prop, value) {
if (prop === 'state' && value !== 'signIn') {
$('.at-form-authentication').hide();
} else if (prop === 'state' && value === 'signIn') {
$('.at-form-authentication').show();
}
// The default behavior to store the value
obj[prop] = value;
// Indicate success
return true;
},
};
Template.userFormsLayout.onCreated(() => {
Meteor.subscribe('setting');
});
Template.userFormsLayout.onRendered(() => {
AccountsTemplates.state.form.keys = new Proxy(AccountsTemplates.state.form.keys, validator);
const i18nTag = navigator.language;
if (i18nTag) {
T9n.setLanguage(i18nTagToT9n(i18nTag));
@@ -22,6 +37,7 @@ Template.userFormsLayout.onRendered(() => {
});
Template.userFormsLayout.helpers({
currentSetting() {
return Settings.findOne();
},
@@ -76,14 +92,13 @@ Template.userFormsLayout.events({
}
});
},
'click #at-btn'(event, instance) {
'click #at-btn'(event) {
/* All authentication method can be managed/called here.
!! DON'T FORGET to correctly fill the fields of the user during its creation if necessary authenticationMethod : String !!
*/
const email = $('#at-field-username_and_email').val();
const password = $('#at-field-password').val();
if (FlowRouter.getRouteName() !== 'atSignIn' || password === '' || email === '') {
const authenticationMethodSelected = $('.select-authentication').val();
// Local account
if (authenticationMethodSelected === 'password') {
return;
}
@@ -91,11 +106,29 @@ Template.userFormsLayout.events({
event.preventDefault();
event.stopImmediatePropagation();
Meteor.subscribe('user-authenticationMethod', email, {
onReady() {
return authentication.call(this, instance, email, password);
},
});
const email = $('#at-field-username_and_email').val();
const password = $('#at-field-password').val();
// Ldap account
if (authenticationMethodSelected === 'ldap') {
// Check if the user can use the ldap connection
Meteor.subscribe('user-authenticationMethod', email, {
onReady() {
const user = Users.findOne();
if (user === undefined || user.authenticationMethod === 'ldap') {
// Use the ldap connection package
Meteor.loginWithLDAP(email, password, function(error) {
if (!error) {
// Connection
return FlowRouter.go('/');
}
return error;
});
}
return this.stop();
},
});
}
},
});
@@ -104,38 +137,3 @@ Template.defaultLayout.events({
Modal.close();
},
});
function authentication(instance, email, password) {
let user = Users.findOne();
// Authentication with password
if (user && user.authenticationMethod === 'password') {
$('#at-pwd-form').submit();
// Meteor.call('logoutWithTimer', user._id, () => {});
return this.stop();
}
// If user doesn't exist, uses the default authentication method if it defined
if (user === undefined) {
user = {
'authenticationMethod': instance.data.defaultAuthenticationMethod.get(),
};
}
// Authentication with LDAP
if (user.authenticationMethod === 'ldap') {
// Use the ldap connection package
Meteor.loginWithLDAP(email, password, function(error) {
if (!error) {
// Meteor.call('logoutWithTimer', Users.findOne()._id, () => {});
return FlowRouter.go('/');
}
return error;
});
}
/* else {
process.env.DEFAULT_AUTHENTICATION_METHOD is not defined
} */
return this.stop();
}
@@ -155,6 +155,8 @@ BlazeComponent.extendComponent({
this.setLoading(false);
}
DocHead.setTitle(productName);
saveMailServerInfo();
},
+20
View File
@@ -145,6 +145,26 @@ Utils = {
});
},
manageCustomUI(){
Meteor.call('getCustomUI', (err, data) => {
if (err && err.error[0] === 'var-not-exist'){
Session.set('customUI', false); // siteId || address server not defined
}
if (!err){
Utils.setCustomUI(data);
}
});
},
setCustomUI(data){
const currentBoard = Boards.findOne(Session.get('currentBoard'));
if (currentBoard) {
DocHead.setTitle(`${currentBoard.title } - ${ data.productName}`);
} else {
DocHead.setTitle(`${data.productName}`);
}
},
setMatomo(data){
window._paq = window._paq || [];
window._paq.push(['setDoNotTrack', data.doNotTrack]);
+16 -11
View File
@@ -14,6 +14,7 @@ FlowRouter.route('/', {
Filter.reset();
EscapeActions.executeAll();
Utils.manageCustomUI();
Utils.manageMatomo();
BlazeLayout.render('defaultLayout', {
@@ -40,6 +41,7 @@ FlowRouter.route('/b/:id/:slug', {
EscapeActions.executeUpTo('popup-close');
}
Utils.manageCustomUI();
Utils.manageMatomo();
BlazeLayout.render('defaultLayout', {
@@ -57,6 +59,7 @@ FlowRouter.route('/b/:boardId/:slug/:cardId', {
Session.set('currentBoard', params.boardId);
Session.set('currentCard', params.cardId);
Utils.manageCustomUI();
Utils.manageMatomo();
BlazeLayout.render('defaultLayout', {
@@ -122,6 +125,7 @@ FlowRouter.route('/setting', {
},
],
action() {
Utils.manageCustomUI();
BlazeLayout.render('defaultLayout', {
headerBar: 'settingHeaderBar',
content: 'setting',
@@ -199,20 +203,21 @@ _.each(redirections, (newPath, oldPath) => {
// using the `kadira:dochead` package. Currently we only use it to display the
// board title if we are in a board page (see #364) but we may want to support
// some <meta> tags in the future.
const appTitle = 'Wekan';
//const appTitle = Utils.manageCustomUI();
// XXX The `Meteor.startup` should not be necessary -- we don't need to wait for
// the complete DOM to be ready to call `DocHead.setTitle`. But the problem is
// that the global variable `Boards` is undefined when this file loads so we
// wait a bit until hopefully all files are loaded. This will be fixed in a
// clean way once Meteor will support ES6 modules -- hopefully in Meteor 1.3.
Meteor.isClient && Meteor.startup(() => {
Tracker.autorun(() => {
const currentBoard = Boards.findOne(Session.get('currentBoard'));
const titleStack = [appTitle];
if (currentBoard) {
titleStack.push(currentBoard.title);
}
DocHead.setTitle(titleStack.reverse().join(' - '));
});
});
//Meteor.isClient && Meteor.startup(() => {
// Tracker.autorun(() => {
// const currentBoard = Boards.findOne(Session.get('currentBoard'));
// const titleStack = [appTitle];
// if (currentBoard) {
// titleStack.push(currentBoard.title);
// }
// DocHead.setTitle(titleStack.reverse().join(' - '));
// });
//});
+133 -133
View File
@@ -11,10 +11,10 @@
"act-createCustomField": "creado el campo personalizado __customField__",
"act-createList": "ha añadido __list__ a __board__",
"act-addBoardMember": "ha añadido a __member__ a __board__",
"act-archivedBoard": "__board__ moved to Archive",
"act-archivedCard": "__card__ moved to Archive",
"act-archivedList": "__list__ moved to Archive",
"act-archivedSwimlane": "__swimlane__ moved to Archive",
"act-archivedBoard": "__board__ movido al Archivo",
"act-archivedCard": "__card__ movida al Archivo",
"act-archivedList": "__list__ movida a Archivo",
"act-archivedSwimlane": "__swimlane__ movido a Archivo",
"act-importBoard": "ha importado __board__",
"act-importCard": "ha importado __card__",
"act-importList": "ha importado __list__",
@@ -29,7 +29,7 @@
"activities": "Actividades",
"activity": "Actividad",
"activity-added": "ha añadido %s a %s",
"activity-archived": "%s moved to Archive",
"activity-archived": "%s movido a Archivo",
"activity-attached": "ha adjuntado %s a %s",
"activity-created": "ha creado %s",
"activity-customfield-created": "creado el campo personalizado %s",
@@ -43,19 +43,19 @@
"activity-sent": "ha enviado %s a %s",
"activity-unjoined": "se ha desvinculado de %s",
"activity-subtask-added": "ha añadido la subtarea a %s",
"activity-checked-item": "checked %s in checklist %s of %s",
"activity-unchecked-item": "unchecked %s in checklist %s of %s",
"activity-checked-item": "marcado %s en la lista de verificación %s de %s",
"activity-unchecked-item": "desmarcado %s en lista %s de %s",
"activity-checklist-added": "ha añadido una lista de verificación a %s",
"activity-checklist-removed": "removed a checklist from %s",
"activity-checklist-completed": "completed the checklist %s of %s",
"activity-checklist-uncompleted": "uncompleted the checklist %s of %s",
"activity-checklist-removed": "eliminada una lista de verificación desde %s ",
"activity-checklist-completed": "completada la lista %s de %s",
"activity-checklist-uncompleted": "no completado la lista %s de %s",
"activity-checklist-item-added": "ha añadido el elemento de la lista de verificación a '%s' en %s",
"activity-checklist-item-removed": "removed a checklist item from '%s' in %s",
"activity-checklist-item-removed": "eliminado un elemento de la lista de verificación desde '%s' en %s",
"add": "Añadir",
"activity-checked-item-card": "checked %s in checklist %s",
"activity-unchecked-item-card": "unchecked %s in checklist %s",
"activity-checklist-completed-card": "completed the checklist %s",
"activity-checklist-uncompleted-card": "uncompleted the checklist %s",
"activity-checked-item-card": "marcado %s en la lista de verificación %s",
"activity-unchecked-item-card": "desmarcado %s en la lista de verificación %s",
"activity-checklist-completed-card": "completó la lista de verificación %s",
"activity-checklist-uncompleted-card": "no completó la lista de verificación %s",
"add-attachment": "Añadir adjunto",
"add-board": "Añadir tablero",
"add-card": "Añadir una tarjeta",
@@ -79,18 +79,18 @@
"and-n-other-card_plural": "y otras __count__ tarjetas",
"apply": "Aplicar",
"app-is-offline": "Wekan se está cargando, por favor espere. Actualizar la página provocará la pérdida de datos. Si Wekan no se carga, por favor verifique que el servidor de Wekan no está detenido.",
"archive": "Move to Archive",
"archive-all": "Move All to Archive",
"archive-board": "Move Board to Archive",
"archive-card": "Move Card to Archive",
"archive-list": "Move List to Archive",
"archive-swimlane": "Move Swimlane to Archive",
"archive-selection": "Move selection to Archive",
"archiveBoardPopup-title": "Move Board to Archive?",
"archive": "Mover al Archivo",
"archive-all": "Mover todo al Archivo",
"archive-board": "Mover Tablero al Archivo",
"archive-card": "Mover tarjeta al Archivo",
"archive-list": "Mover Lista al Archivo",
"archive-swimlane": "Mover carril al Archivo",
"archive-selection": "Mover selección al Archivo",
"archiveBoardPopup-title": "¿Mover Tablero al Archivo?",
"archived-items": "Archivar",
"archived-boards": "Boards in Archive",
"archived-boards": "Tableros en Archivo",
"restore-board": "Restaurar el tablero",
"no-archived-boards": "No Boards in Archive.",
"no-archived-boards": "No hay Tableros en el Archivo",
"archives": "Archivar",
"assign-member": "Asignar miembros",
"attached": "adjuntado",
@@ -118,12 +118,12 @@
"board-view-lists": "Listas",
"bucket-example": "Como “Cosas por hacer” por ejemplo",
"cancel": "Cancelar",
"card-archived": "This card is moved to Archive.",
"board-archived": "This board is moved to Archive.",
"card-archived": "Esta tarjeta se movió al Archivo",
"board-archived": "Este tablero se movió al Archivo",
"card-comments-title": "Esta tarjeta tiene %s comentarios.",
"card-delete-notice": "la eliminación es permanente. Perderás todas las acciones asociadas a esta tarjeta.",
"card-delete-pop": "Se eliminarán todas las acciones del historial de actividades y no se podrá volver a abrir la tarjeta. Esta acción no puede deshacerse.",
"card-delete-suggest-archive": "You can move a card to Archive to remove it from the board and preserve the activity.",
"card-delete-suggest-archive": "Puedes mover una tarjeta al Archivo para quitarla del tablero y preservar la actividad.",
"card-due": "Vence",
"card-due-on": "Vence el",
"card-spent": "Tiempo consumido",
@@ -166,7 +166,7 @@
"clipboard": "el portapapeles o con arrastrar y soltar",
"close": "Cerrar",
"close-board": "Cerrar el tablero",
"close-board-pop": "You will be able to restore the board by clicking the “Archive” button from the home header.",
"close-board-pop": "Podrás restaurar el tablero haciendo clic en el botón \"Archivo\" del encabezado de la pantalla inicial.",
"color-black": "negra",
"color-blue": "azul",
"color-green": "verde",
@@ -284,13 +284,13 @@
"import-board-c": "Importar un tablero",
"import-board-title-trello": "Importar un tablero desde Trello",
"import-board-title-wekan": "Importar un tablero desde Wekan",
"import-sandstorm-backup-warning": "Do not delete data you import from original Wekan or Trello before checking does this grain close and open again, or do you get Board not found error, that means data loss.",
"import-sandstorm-backup-warning": "No elimine los datos que está importando del Wekan o Trello original antes de verificar que la semilla pueda cerrarse y abrirse nuevamente, o que ocurra un error de \"Tablero no encontrado\", de lo contrario perderá sus datos.",
"import-sandstorm-warning": "El tablero importado eliminará todos los datos existentes en este tablero y los reemplazará con los datos del tablero importado.",
"from-trello": "Desde Trello",
"from-wekan": "Desde Wekan",
"import-board-instruction-trello": "En tu tablero de Trello, ve a 'Menú', luego 'Más' > 'Imprimir y exportar' > 'Exportar JSON', y copia el texto resultante.",
"import-board-instruction-wekan": "En tu tablero de Wekan, ve a 'Menú del tablero', luego 'Exportar el tablero', y copia aquí el texto del fichero descargado.",
"import-board-instruction-about-errors": "If you get errors when importing board, sometimes importing still works, and board is at All Boards page.",
"import-board-instruction-about-errors": "Si obtiene errores cuando importe el tablero, a veces la importación funciona igualmente, y el tablero se encuentra en la página de Todos los Tableros.",
"import-json-placeholder": "Pega tus datos JSON válidos aquí",
"import-map-members": "Mapa de miembros",
"import-members-map": "El tablero importado tiene algunos miembros. Por favor mapea los miembros que deseas importar a los usuarios de Wekan",
@@ -315,8 +315,8 @@
"leave-board-pop": "¿Seguro que quieres abandonar __boardTitle__? Serás desvinculado de todas las tarjetas en este tablero.",
"leaveBoardPopup-title": "¿Abandonar el tablero?",
"link-card": "Enlazar a esta tarjeta",
"list-archive-cards": "Move all cards in this list to Archive",
"list-archive-cards-pop": "This will remove all the cards in this list from the board. To view cards in Archive and bring them back to the board, click “Menu” > “Archive”.",
"list-archive-cards": "Mover todas las tarjetas de la lista al Archivo",
"list-archive-cards-pop": "Esto eliminará del tablero todas las tarjetas en esta lista. Para ver las tarjetas en el Archivo y recuperarlas al tablero haga click en \"Menu\" > \"Archivo\"",
"list-move-cards": "Mover todas las tarjetas de esta lista",
"list-select-cards": "Seleccionar todas las tarjetas de esta lista",
"listActionPopup-title": "Acciones de la lista",
@@ -325,7 +325,7 @@
"listMorePopup-title": "Más",
"link-list": "Enlazar a esta lista",
"list-delete-pop": "Todas las acciones serán eliminadas del historial de actividades y no se podrá recuperar la lista. Esta acción no puede deshacerse.",
"list-delete-suggest-archive": "You can move a list to Archive to remove it from the board and preserve the activity.",
"list-delete-suggest-archive": "Puedes mover una lista al Archivo para quitarla del tablero y preservar la actividad.",
"lists": "Listas",
"swimlanes": "Carriles",
"log-out": "Finalizar la sesión",
@@ -345,9 +345,9 @@
"muted-info": "No serás notificado de ningún cambio en este tablero",
"my-boards": "Mis tableros",
"name": "Nombre",
"no-archived-cards": "No cards in Archive.",
"no-archived-lists": "No lists in Archive.",
"no-archived-swimlanes": "No swimlanes in Archive.",
"no-archived-cards": "No hay tarjetas en el Archivo",
"no-archived-lists": "No hay listas en el Archivo",
"no-archived-swimlanes": "No hay carriles en el Archivo",
"no-results": "Sin resultados",
"normal": "Normal",
"normal-desc": "Puedes ver y editar tarjetas. No puedes cambiar la configuración.",
@@ -383,7 +383,7 @@
"restore": "Restaurar",
"save": "Añadir",
"search": "Buscar",
"rules": "Rules",
"rules": "Reglas",
"search-cards": "Buscar entre los títulos y las descripciones de las tarjetas en este tablero.",
"search-example": "¿Texto a buscar?",
"select-color": "Selecciona un color",
@@ -427,7 +427,7 @@
"uploaded-avatar": "Avatar cargado",
"username": "Nombre de usuario",
"view-it": "Verla",
"warn-list-archived": "warning: this card is in an list at Archive",
"warn-list-archived": "advertencia: esta tarjeta está en una lista en el Archivo",
"watch": "Vigilar",
"watching": "Vigilando",
"watching-info": "Serás notificado de cualquier cambio en este tablero",
@@ -484,8 +484,8 @@
"minutes": "minutos",
"seconds": "segundos",
"show-field-on-card": "Mostrar este campo en la tarjeta",
"automatically-field-on-card": "Auto create field to all cards",
"showLabel-field-on-card": "Show field label on minicard",
"automatically-field-on-card": "Crear campos automáticamente para todas las tarjetas.",
"showLabel-field-on-card": "Mostrar etiquetas de campos en la minitarjeta.",
"yes": "Sí",
"no": "No",
"accounts": "Cuentas",
@@ -523,100 +523,100 @@
"parent-card": "Tarjeta padre",
"source-board": "Tablero de origen",
"no-parent": "No mostrar la tarjeta padre",
"activity-added-label": "added label '%s' to %s",
"activity-removed-label": "removed label '%s' from %s",
"activity-delete-attach": "deleted an attachment from %s",
"activity-added-label-card": "added label '%s'",
"activity-removed-label-card": "removed label '%s'",
"activity-delete-attach-card": "deleted an attachment",
"r-rule": "Rule",
"r-add-trigger": "Add trigger",
"r-add-action": "Add action",
"r-board-rules": "Board rules",
"r-add-rule": "Add rule",
"r-view-rule": "View rule",
"r-delete-rule": "Delete rule",
"r-new-rule-name": "New rule title",
"r-no-rules": "No rules",
"r-when-a-card-is": "When a card is",
"r-added-to": "Added to",
"r-removed-from": "Removed from",
"r-the-board": "the board",
"r-list": "list",
"r-moved-to": "Moved to",
"r-moved-from": "Moved from",
"r-archived": "Moved to Archive",
"r-unarchived": "Restored from Archive",
"r-a-card": "a card",
"r-when-a-label-is": "When a label is",
"r-when-the-label-is": "When the label is",
"r-list-name": "List name",
"r-when-a-member": "When a member is",
"r-when-the-member": "When the member",
"r-name": "name",
"r-is": "is",
"r-when-a-attach": "When an attachment",
"r-when-a-checklist": "When a checklist is",
"r-when-the-checklist": "When the checklist",
"r-completed": "Completed",
"r-made-incomplete": "Made incomplete",
"r-when-a-item": "When a checklist item is",
"r-when-the-item": "When the checklist item",
"r-checked": "Checked",
"r-unchecked": "Unchecked",
"r-move-card-to": "Move card to",
"r-top-of": "Top of",
"r-bottom-of": "Bottom of",
"r-its-list": "its list",
"r-archive": "Move to Archive",
"r-unarchive": "Restore from Archive",
"r-card": "card",
"activity-added-label": "añadida etiqueta %s a %s",
"activity-removed-label": "eliminada etiqueta '%s' desde %s",
"activity-delete-attach": "borrado un adjunto desde %s",
"activity-added-label-card": "añadida etiqueta '%s'",
"activity-removed-label-card": "eliminada etiqueta '%s'",
"activity-delete-attach-card": "borrado un adjunto",
"r-rule": "Regla",
"r-add-trigger": "Añadir disparador",
"r-add-action": "Añadir acción",
"r-board-rules": "Reglas del tablero",
"r-add-rule": "Añadir regla",
"r-view-rule": "Ver regla",
"r-delete-rule": "Eliminar regla",
"r-new-rule-name": "Nueva título de regla",
"r-no-rules": "No hay reglas",
"r-when-a-card-is": "Cuando una tarjeta es",
"r-added-to": "Añadido a",
"r-removed-from": "Eliminado de",
"r-the-board": "el tablero",
"r-list": "lista",
"r-moved-to": "Movido a",
"r-moved-from": "Movido desde",
"r-archived": "Movido a Archivo",
"r-unarchived": "Restaurado del archivo",
"r-a-card": "una tarjeta",
"r-when-a-label-is": "Cuando una etiqueta es",
"r-when-the-label-is": "Cuando la etiqueta es",
"r-list-name": "Nombre de lista",
"r-when-a-member": "Cuando un miembro es",
"r-when-the-member": "Cuando el miembro",
"r-name": "nombre",
"r-is": "es",
"r-when-a-attach": "Cuando un adjunto",
"r-when-a-checklist": "Cuando una lista de verificación es",
"r-when-the-checklist": "Cuando la lista de verificación",
"r-completed": "Completada",
"r-made-incomplete": "Hecha incompleta",
"r-when-a-item": "Cuando un elemento de la lista de verificación es",
"r-when-the-item": "Cuando el elemento de la lista de verificación es",
"r-checked": "Marcado",
"r-unchecked": "Desmarcado",
"r-move-card-to": "Mover tarjeta a",
"r-top-of": "Arriba de",
"r-bottom-of": "Abajo de",
"r-its-list": "su lista",
"r-archive": "Mover al Archivo",
"r-unarchive": "Restaurar del Archivo",
"r-card": "tarjeta",
"r-add": "Añadir",
"r-remove": "Remove",
"r-label": "label",
"r-member": "member",
"r-remove-all": "Remove all members from the card",
"r-checklist": "checklist",
"r-check-all": "Check all",
"r-uncheck-all": "Uncheck all",
"r-items-check": "items of checklist",
"r-check": "Check",
"r-uncheck": "Uncheck",
"r-item": "item",
"r-of-checklist": "of checklist",
"r-send-email": "Send an email",
"r-to": "to",
"r-subject": "subject",
"r-rule-details": "Rule details",
"r-d-move-to-top-gen": "Move card to top of its list",
"r-d-move-to-top-spec": "Move card to top of list",
"r-d-move-to-bottom-gen": "Move card to bottom of its list",
"r-d-move-to-bottom-spec": "Move card to bottom of list",
"r-d-send-email": "Send email",
"r-d-send-email-to": "to",
"r-d-send-email-subject": "subject",
"r-d-send-email-message": "message",
"r-d-archive": "Move card to Archive",
"r-d-unarchive": "Restore card from Archive",
"r-d-add-label": "Add label",
"r-d-remove-label": "Remove label",
"r-d-add-member": "Add member",
"r-d-remove-member": "Remove member",
"r-d-remove-all-member": "Remove all member",
"r-d-check-all": "Check all items of a list",
"r-d-uncheck-all": "Uncheck all items of a list",
"r-d-check-one": "Check item",
"r-d-uncheck-one": "Uncheck item",
"r-d-check-of-list": "of checklist",
"r-d-add-checklist": "Add checklist",
"r-d-remove-checklist": "Remove checklist",
"r-when-a-card-is-moved": "When a card is moved to another list",
"r-remove": "Eliminar",
"r-label": "etiqueta",
"r-member": "miembro",
"r-remove-all": "Eliminar todos los miembros de la tarjeta",
"r-checklist": "lista de verificación",
"r-check-all": "Marcar todo",
"r-uncheck-all": "Desmarcar todo",
"r-items-check": "elementos de la lista de verificación",
"r-check": "Marcar",
"r-uncheck": "Desmarcar",
"r-item": "elemento",
"r-of-checklist": "de la lista de verificación",
"r-send-email": "Enviar un email",
"r-to": "a",
"r-subject": "asunto",
"r-rule-details": "Detalle de la regla",
"r-d-move-to-top-gen": "Mover tarjeta arriba de su lista",
"r-d-move-to-top-spec": "Mover tarjeta arriba de la lista",
"r-d-move-to-bottom-gen": "Mover tarjeta abajo de su lista",
"r-d-move-to-bottom-spec": "Mover tarjeta al fondo de la lista",
"r-d-send-email": "Enviar email",
"r-d-send-email-to": "a",
"r-d-send-email-subject": "asunto",
"r-d-send-email-message": "mensaje",
"r-d-archive": "Mover tarjeta al Archivo",
"r-d-unarchive": "Restaurar tarjeta del Archivo",
"r-d-add-label": "Añadir etiqueta",
"r-d-remove-label": "Eliminar etiqueta",
"r-d-add-member": "Añadir miembro",
"r-d-remove-member": "Eliminar miembro",
"r-d-remove-all-member": "Eliminar todos los miembros",
"r-d-check-all": "Marcar todos los elementos de una lista",
"r-d-uncheck-all": "Desmarcar todos los elementos de una lista",
"r-d-check-one": "Marcar elemento",
"r-d-uncheck-one": "Desmarcar elemento",
"r-d-check-of-list": "de la lista de verificación",
"r-d-add-checklist": "Añadir una lista de verificación",
"r-d-remove-checklist": "Eliminar lista de verificación",
"r-when-a-card-is-moved": "Cuando una tarjeta es movida a otra lista",
"ldap": "LDAP",
"oauth2": "OAuth2",
"cas": "CAS",
"authentication-method": "Authentication method",
"authentication-type": "Authentication type",
"custom-product-name": "Custom Product Name",
"layout": "Layout",
"hide-logo": "Hide Logo"
"authentication-method": "Método de autenticación",
"authentication-type": "Tipo de autenticación",
"custom-product-name": "Nombre de producto personalizado",
"layout": "Disñeo",
"hide-logo": "Ocultar logo"
}
+2 -2
View File
@@ -565,8 +565,8 @@
"r-checked": "Ruksattu",
"r-unchecked": "Poistettu ruksi",
"r-move-card-to": "Siirrä kortti kohteeseen",
"r-top-of": "Päällä kohteen",
"r-bottom-of": "Pohjalla kohteen",
"r-top-of": "Ylimmäiseksi",
"r-bottom-of": "Alimmaiseksi",
"r-its-list": "sen lista",
"r-archive": "Siirrä Arkistoon",
"r-unarchive": "Palauta Arkistosta",
+1 -1
View File
@@ -618,5 +618,5 @@
"authentication-type": "Typ autoryzacji",
"custom-product-name": "Niestandardowa nazwa produktu",
"layout": "Układ strony",
"hide-logo": "Hide Logo"
"hide-logo": "Ukryj logo"
}
+174 -174
View File
@@ -1,8 +1,8 @@
{
"accept": "Принять",
"act-activity-notify": "[Wekan] Уведомление о действиях участников",
"act-addAttachment": "вложено __attachment__ в __card__",
"act-addSubtask": "added subtask __checklist__ to __card__",
"act-addAttachment": "прикрепил __attachment__ в __card__",
"act-addSubtask": "добавил подзадачу __checklist__ в __card__",
"act-addChecklist": "добавил контрольный список __checklist__ в __card__",
"act-addChecklistItem": "добавил __checklistItem__ в контрольный список __checklist__ в __card__",
"act-addComment": "прокомментировал __card__: __comment__",
@@ -11,10 +11,10 @@
"act-createCustomField": "создано настраиваемое поле __customField__",
"act-createList": "добавил __list__ на __board__",
"act-addBoardMember": "добавил __member__ на __board__",
"act-archivedBoard": "__board__ moved to Archive",
"act-archivedCard": "__card__ moved to Archive",
"act-archivedList": "__list__ moved to Archive",
"act-archivedSwimlane": "__swimlane__ moved to Archive",
"act-archivedBoard": "Доска __board__ перемещена в архив",
"act-archivedCard": "Карточка __card__ перемещена в Архив",
"act-archivedList": "Список __list__ перемещён в архив",
"act-archivedSwimlane": "Дорожка __swimlane__ перемещена в архив",
"act-importBoard": "__board__ импортирована",
"act-importCard": "__card__ импортирована",
"act-importList": "__list__ импортирован",
@@ -29,10 +29,10 @@
"activities": "История действий",
"activity": "Действия участников",
"activity-added": "добавил %s на %s",
"activity-archived": "%s moved to Archive",
"activity-archived": "%s теперь в Архиве",
"activity-attached": "прикрепил %s к %s",
"activity-created": "создал %s",
"activity-customfield-created": "создать настраиваемое поле",
"activity-customfield-created": "создал настраиваемое поле %s",
"activity-excluded": "исключил %s из %s",
"activity-imported": "импортировал %s в %s из %s",
"activity-imported-board": "импортировал %s из %s",
@@ -43,22 +43,22 @@
"activity-sent": "отправил %s в %s",
"activity-unjoined": "вышел из %s",
"activity-subtask-added": "добавил подзадачу в %s",
"activity-checked-item": "checked %s in checklist %s of %s",
"activity-unchecked-item": "unchecked %s in checklist %s of %s",
"activity-checked-item": "отметил %s в контрольном списке %s в %s",
"activity-unchecked-item": "снял %s в контрольном списке %s в %s",
"activity-checklist-added": "добавил контрольный список в %s",
"activity-checklist-removed": "удалил контрольный список из %s",
"activity-checklist-completed": "completed the checklist %s of %s",
"activity-checklist-uncompleted": "uncompleted the checklist %s of %s",
"activity-checklist-item-added": "добавил пункт контрольного списка в '%s' в карточке %s",
"activity-checklist-item-removed": "removed a checklist item from '%s' in %s",
"activity-checklist-completed": "завершил контрольный список %s в %s",
"activity-checklist-uncompleted": "вновь открыл контрольный список %s в %s",
"activity-checklist-item-added": "добавил пункт в контрольный список '%s' в карточке %s",
"activity-checklist-item-removed": "удалил пункт из контрольного списка '%s' в карточке %s",
"add": "Создать",
"activity-checked-item-card": "checked %s in checklist %s",
"activity-unchecked-item-card": "unchecked %s in checklist %s",
"activity-checklist-completed-card": "completed the checklist %s",
"activity-checklist-uncompleted-card": "uncompleted the checklist %s",
"activity-checked-item-card": "отметил %s в контрольном списке %s",
"activity-unchecked-item-card": "снял %s в контрольном списке %s",
"activity-checklist-completed-card": "завершил контрольный список %s",
"activity-checklist-uncompleted-card": "вновь открыл контрольный список %s",
"add-attachment": "Добавить вложение",
"add-board": "Добавить доску",
"add-card": "Добавить карту",
"add-card": "Добавить карточку",
"add-swimlane": "Добавить дорожку",
"add-subtask": "Добавить подзадачу",
"add-checklist": "Добавить контрольный список",
@@ -79,19 +79,19 @@
"and-n-other-card_plural": "И __count__ другие карточки",
"apply": "Применить",
"app-is-offline": "Wekan загружается, пожалуйста подождите. Обновление страницы может привести к потере данных. Если Wekan не загрузился, пожалуйста проверьте что связь с сервером доступна.",
"archive": "Move to Archive",
"archive-all": "Move All to Archive",
"archive-board": "Move Board to Archive",
"archive-card": "Move Card to Archive",
"archive-list": "Move List to Archive",
"archive-swimlane": "Move Swimlane to Archive",
"archive-selection": "Move selection to Archive",
"archiveBoardPopup-title": "Move Board to Archive?",
"archived-items": "Архивировать",
"archived-boards": "Boards in Archive",
"archive": "Переместить в архив",
"archive-all": "Переместить всё в архив",
"archive-board": "Переместить доску в архив",
"archive-card": "Переместить карточку в архив",
"archive-list": "Переместить список в архив",
"archive-swimlane": "Переместить дорожку в архив",
"archive-selection": "Переместить выбранное в архив",
"archiveBoardPopup-title": "Переместить доску в архив?",
"archived-items": "Архив",
"archived-boards": "Доски в архиве",
"restore-board": "Востановить доску",
"no-archived-boards": "No Boards in Archive.",
"archives": "Архивировать",
"no-archived-boards": "Нет досок в архиве.",
"archives": "Архив",
"assign-member": "Назначить участника",
"attached": "прикреплено",
"attachment": "Вложение",
@@ -118,12 +118,12 @@
"board-view-lists": "Списки",
"bucket-example": "Например “Список дел”",
"cancel": "Отмена",
"card-archived": "This card is moved to Archive.",
"board-archived": "This board is moved to Archive.",
"card-archived": "Эта карточка перемещена в архив",
"board-archived": "Эта доска перемещена в архив.",
"card-comments-title": "Комментарии (%s)",
"card-delete-notice": "Это действие невозможно будет отменить. Все изменения, которые вы вносили в карточку будут потеряны.",
"card-delete-pop": "Все действия будут удалены из ленты активности участников и вы не сможете заново открыть карточку. Действие необратимо",
"card-delete-suggest-archive": "You can move a card to Archive to remove it from the board and preserve the activity.",
"card-delete-suggest-archive": "Вы можете переместить карточку в архив, чтобы убрать ее с доски, сохранив всю историю действий участников.",
"card-due": "Выполнить к",
"card-due-on": "Выполнить до",
"card-spent": "Затраченное время",
@@ -145,10 +145,10 @@
"cardMorePopup-title": "Поделиться",
"cards": "Карточки",
"cards-count": "Карточки",
"casSignIn": "Sign In with CAS",
"cardType-card": "Card",
"cardType-linkedCard": "Linked Card",
"cardType-linkedBoard": "Linked Board",
"casSignIn": "Войти через CAS",
"cardType-card": "Карточка",
"cardType-linkedCard": "Связанная карточка",
"cardType-linkedBoard": "Связанная доска",
"change": "Изменить",
"change-avatar": "Изменить аватар",
"change-password": "Изменить пароль",
@@ -166,7 +166,7 @@
"clipboard": "Буфер обмена или drag & drop",
"close": "Закрыть",
"close-board": "Закрыть доску",
"close-board-pop": "You will be able to restore the board by clicking the “Archive” button from the home header.",
"close-board-pop": "Вы сможете восстановить доску, нажав \"Архив\" в заголовке домашней страницы.",
"color-black": "черный",
"color-blue": "синий",
"color-green": "зеленый",
@@ -181,18 +181,18 @@
"comment-placeholder": "Написать комментарий",
"comment-only": "Только комментирование",
"comment-only-desc": "Может комментировать только карточки.",
"no-comments": "No comments",
"no-comments-desc": "Can not see comments and activities.",
"no-comments": "Без комментариев",
"no-comments-desc": "Не видит комментарии и историю действий.",
"computer": "Загрузить с компьютера",
"confirm-subtask-delete-dialog": "Вы уверены, что хотите удалить подзадачу?",
"confirm-checklist-delete-dialog": "Вы уверены, что хотите удалить чеклист?",
"confirm-checklist-delete-dialog": "Вы уверены, что хотите удалить контрольный список?",
"copy-card-link-to-clipboard": "Копировать ссылку на карточку в буфер обмена",
"linkCardPopup-title": "Link Card",
"searchCardPopup-title": "Search Card",
"linkCardPopup-title": "Карточка-ссылка",
"searchCardPopup-title": "Найти карточку",
"copyCardPopup-title": "Копировать карточку",
"copyChecklistToManyCardsPopup-title": "Копировать шаблон контрольного списка в несколько карточек",
"copyChecklistToManyCardsPopup-instructions": "Названия и описания целевых карт в формате JSON",
"copyChecklistToManyCardsPopup-format": "[ {\"title\": \"First card title\", \"description\":\"First card description\"}, {\"title\":\"Second card title\",\"description\":\"Second card description\"},{\"title\":\"Last card title\",\"description\":\"Last card description\"} ]",
"copyChecklistToManyCardsPopup-format": "[ {\"title\": \"Заголовок первой карточки\", \"description\":\"Описание первой карточки\"}, {\"title\":\"Заголовок второй карточки\",\"description\":\"Описание второй карточки\"},{\"title\":\"Заголовок последней карточки\",\"description\":\"Описание последней карточки\"} ]",
"create": "Создать",
"createBoardPopup-title": "Создать доску",
"chooseBoardSourcePopup-title": "Импортировать доску",
@@ -227,7 +227,7 @@
"edit-avatar": "Изменить аватар",
"edit-profile": "Изменить профиль",
"edit-wip-limit": " Изменить лимит на кол-во задач",
"soft-wip-limit": "Мягкий лимит на кол-во задач",
"soft-wip-limit": "Мягкий лимит",
"editCardStartDatePopup-title": "Изменить дату начала",
"editCardDueDatePopup-title": "Изменить дату выполнения",
"editCustomFieldPopup-title": "Редактировать поле",
@@ -240,7 +240,7 @@
"email-enrollAccount-text": "Привет __user__,\n\nДля того, чтобы начать использовать сервис, просто нажми на ссылку ниже.\n\n__url__\n\nСпасибо.",
"email-fail": "Отправка письма на EMail не удалась",
"email-fail-text": "Ошибка при попытке отправить письмо",
"email-invalid": "Неверный адрес электронной почти",
"email-invalid": "Неверный адрес электронной почты",
"email-invite": "Пригласить по электронной почте",
"email-invite-subject": "__inviter__ прислал вам приглашение",
"email-invite-text": "Дорогой __user__,\n\n__inviter__ пригласил вас присоединиться к доске \"__board__\" для сотрудничества.\n\nПожалуйста проследуйте по ссылке ниже:\n\n__url__\n\nСпасибо.",
@@ -279,18 +279,18 @@
"headerBarCreateBoardPopup-title": "Создать доску",
"home": "Главная",
"import": "Импорт",
"link": "Link",
"link": "Ссылка",
"import-board": "импортировать доску",
"import-board-c": "Импортировать доску",
"import-board-title-trello": "Импортировать доску из Trello",
"import-board-title-wekan": "Импортировать доску из Wekan",
"import-sandstorm-backup-warning": "Do not delete data you import from original Wekan or Trello before checking does this grain close and open again, or do you get Board not found error, that means data loss.",
"import-sandstorm-backup-warning": "Не удаляйте импортируемые данные из источника (Wekan или Trello), пока не убедитесь, что импорт завершился успешно – удается закрыть и снова открыть доску, и не появляется ошибка «Доска не найдена»",
"import-sandstorm-warning": "Импортированная доска удалит все существующие данные на текущей доске и заменит её импортированной доской.",
"from-trello": "Из Trello",
"from-wekan": "Из Wekan",
"import-board-instruction-trello": "На вашей Trello доске нажмите “Menu” - “More” - “Print and export - “Export JSON” и скопируйте полученный текст",
"import-board-instruction-wekan": "На вашей Wekan доске, перейдите в “Меню”, далее “Экспортировать доску” и скопируйте текст из скачаного файла",
"import-board-instruction-about-errors": "If you get errors when importing board, sometimes importing still works, and board is at All Boards page.",
"import-board-instruction-about-errors": "Даже если при импорте возникли ошибки, иногда импортирование проходит успешно – тогда доска появится на странице «Все доски».",
"import-json-placeholder": "Вставьте JSON сюда",
"import-map-members": "Составить карту участников",
"import-members-map": "Вы импортировали доску с участниками. Пожалуйста, составьте карту участников, которых вы хотите импортировать в качестве пользователей Wekan",
@@ -306,7 +306,7 @@
"just-invited": "Вас только что пригласили на эту доску",
"keyboard-shortcuts": "Сочетания клавиш",
"label-create": "Создать метку",
"label-default": "%sметка (по умолчанию)",
"label-default": "%s (по умолчанию)",
"label-delete-pop": "Это действие невозможно будет отменить. Эта метка будут удалена во всех карточках. Также будет удалена вся история этой метки.",
"labels": "Метки",
"language": "Язык",
@@ -315,8 +315,8 @@
"leave-board-pop": "Вы уверенны, что хотите покинуть __boardTitle__? Вы будете удалены из всех карточек на этой доске.",
"leaveBoardPopup-title": "Покинуть доску?",
"link-card": "Доступна по ссылке",
"list-archive-cards": "Move all cards in this list to Archive",
"list-archive-cards-pop": "This will remove all the cards in this list from the board. To view cards in Archive and bring them back to the board, click “Menu” > “Archive”.",
"list-archive-cards": "Переместить все карточки в этом списке в Архив",
"list-archive-cards-pop": "Это действие удалит все карточки из этого списка с доски. Чтобы просмотреть карточки в Архиве и вернуть их на доску, нажмите “Меню” > “Архив”.",
"list-move-cards": "Переместить все карточки в этом списке",
"list-select-cards": "Выбрать все карточки в этом списке",
"listActionPopup-title": "Список действий",
@@ -325,7 +325,7 @@
"listMorePopup-title": "Поделиться",
"link-list": "Ссылка на список",
"list-delete-pop": "Все действия будут удалены из ленты активности участников и вы не сможете восстановить список. Данное действие необратимо.",
"list-delete-suggest-archive": "You can move a list to Archive to remove it from the board and preserve the activity.",
"list-delete-suggest-archive": "Вы можете отправить список в Архив, чтобы убрать его с доски и при этом сохранить результаты.",
"lists": "Списки",
"swimlanes": "Дорожки",
"log-out": "Выйти",
@@ -345,9 +345,9 @@
"muted-info": "Вы НИКОГДА не будете уведомлены ни о каких изменениях в этой доске.",
"my-boards": "Мои доски",
"name": "Имя",
"no-archived-cards": "No cards in Archive.",
"no-archived-lists": "No lists in Archive.",
"no-archived-swimlanes": "No swimlanes in Archive.",
"no-archived-cards": "Нет карточек в Архиве",
"no-archived-lists": "Нет списков в Архиве",
"no-archived-swimlanes": "Нет дорожек в Архиве",
"no-results": "Ничего не найдено",
"normal": "Обычный",
"normal-desc": "Может редактировать карточки. Не может управлять настройками.",
@@ -383,7 +383,7 @@
"restore": "Восстановить",
"save": "Сохранить",
"search": "Поиск",
"rules": "Rules",
"rules": "Правила",
"search-cards": "Искать в названиях и описаниях карточек на этой доске",
"search-example": "Искать текст?",
"select-color": "Выбрать цвет",
@@ -427,7 +427,7 @@
"uploaded-avatar": "Загруженный аватар",
"username": "Имя пользователя",
"view-it": "Просмотреть",
"warn-list-archived": "warning: this card is in an list at Archive",
"warn-list-archived": "внимание: эта карточка из списка, который находится в Архиве",
"watch": "Следить",
"watching": "Отслеживается",
"watching-info": "Вы будете уведомлены об любых изменениях в этой доске.",
@@ -483,16 +483,16 @@
"hours": "часы",
"minutes": "минуты",
"seconds": "секунды",
"show-field-on-card": "Показать это поле на карте",
"automatically-field-on-card": "Auto create field to all cards",
"showLabel-field-on-card": "Show field label on minicard",
"show-field-on-card": "Показать это поле на карточке",
"automatically-field-on-card": "Cоздавать поле во всех новых карточках",
"showLabel-field-on-card": "Показать имя поля на карточке",
"yes": "Да",
"no": "Нет",
"accounts": "Учетные записи",
"accounts-allowEmailChange": "Разрешить изменение электронной почты",
"accounts-allowUserNameChange": "Разрешить изменение имени пользователя",
"createdAt": "Создано на",
"verified": "Проверено",
"createdAt": "Создан",
"verified": "Подтвержден",
"active": "Действующий",
"card-received": "Получено",
"card-received-on": "Получено с",
@@ -500,123 +500,123 @@
"card-end-on": "Завершится до",
"editCardReceivedDatePopup-title": "Изменить дату получения",
"editCardEndDatePopup-title": "Изменить дату завершения",
"assigned-by": "Назначено",
"requested-by": "Запрошен",
"assigned-by": "Поручил",
"requested-by": "Запросил",
"board-delete-notice": "Удаление является постоянным. Вы потеряете все списки, карты и действия, связанные с этой доской.",
"delete-board-confirm-popup": "Все списки, карточки, ярлыки и действия будут удалены, и вы не сможете восстановить содержимое доски. Отменить нельзя.",
"delete-board-confirm-popup": "Все списки, карточки, метки и действия будут удалены, и вы не сможете восстановить содержимое доски. Отменить нельзя.",
"boardDeletePopup-title": "Удалить доску?",
"delete-board": "Удалить доску",
"default-subtasks-board": "Подзадача для доски __board__ ",
"default": "Default",
"queue": "Queue",
"default": "По умолчанию",
"queue": "Очередь",
"subtask-settings": "Настройки подзадач",
"boardSubtaskSettingsPopup-title": "Board Subtasks Settings",
"show-subtasks-field": "Cards can have subtasks",
"deposit-subtasks-board": "Deposit subtasks to this board:",
"deposit-subtasks-list": "Landing list for subtasks deposited here:",
"show-parent-in-minicard": "Show parent in minicard:",
"prefix-with-full-path": "Prefix with full path",
"prefix-with-parent": "Prefix with parent",
"subtext-with-full-path": "Subtext with full path",
"subtext-with-parent": "Subtext with parent",
"change-card-parent": "Change card's parent",
"parent-card": "Parent card",
"source-board": "Source board",
"no-parent": "Don't show parent",
"activity-added-label": "added label '%s' to %s",
"activity-removed-label": "removed label '%s' from %s",
"activity-delete-attach": "deleted an attachment from %s",
"activity-added-label-card": "added label '%s'",
"activity-removed-label-card": "removed label '%s'",
"activity-delete-attach-card": "deleted an attachment",
"r-rule": "Rule",
"r-add-trigger": "Add trigger",
"r-add-action": "Add action",
"r-board-rules": "Board rules",
"r-add-rule": "Add rule",
"r-view-rule": "View rule",
"r-delete-rule": "Delete rule",
"r-new-rule-name": "New rule title",
"r-no-rules": "No rules",
"r-when-a-card-is": "When a card is",
"r-added-to": "Added to",
"r-removed-from": "Removed from",
"r-the-board": "the board",
"r-list": "list",
"r-moved-to": "Moved to",
"r-moved-from": "Moved from",
"r-archived": "Moved to Archive",
"r-unarchived": "Restored from Archive",
"r-a-card": "a card",
"r-when-a-label-is": "When a label is",
"r-when-the-label-is": "When the label is",
"r-list-name": "List name",
"r-when-a-member": "When a member is",
"r-when-the-member": "When the member",
"r-name": "name",
"r-is": "is",
"r-when-a-attach": "When an attachment",
"r-when-a-checklist": "When a checklist is",
"r-when-the-checklist": "When the checklist",
"r-completed": "Completed",
"r-made-incomplete": "Made incomplete",
"r-when-a-item": "When a checklist item is",
"r-when-the-item": "When the checklist item",
"r-checked": "Checked",
"r-unchecked": "Unchecked",
"r-move-card-to": "Move card to",
"r-top-of": "Top of",
"r-bottom-of": "Bottom of",
"r-its-list": "its list",
"r-archive": "Move to Archive",
"r-unarchive": "Restore from Archive",
"r-card": "card",
"boardSubtaskSettingsPopup-title": "Настройки подзадач для доски",
"show-subtasks-field": "Разрешить подзадачи",
"deposit-subtasks-board": "Отправлять подзадачи на доску:",
"deposit-subtasks-list": "Размещать подзадачи, отправленные на эту доску, в списке:",
"show-parent-in-minicard": "Указывать исходную карточку:",
"prefix-with-full-path": "Cверху, полный путь",
"prefix-with-parent": "Сверху, только имя",
"subtext-with-full-path": "Cнизу, полный путь",
"subtext-with-parent": "Снизу, только имя",
"change-card-parent": "Сменить исходную карточку",
"parent-card": "Исходная карточка",
"source-board": "Исходная доска",
"no-parent": "Не указывать",
"activity-added-label": "добавил метку '%s' на %s",
"activity-removed-label": "удалил метку '%s' с %s",
"activity-delete-attach": "удалил вложение из %s",
"activity-added-label-card": "добавил метку '%s'",
"activity-removed-label-card": "удалил метку '%s'",
"activity-delete-attach-card": "удалил вложение",
"r-rule": "Правило",
"r-add-trigger": "Задать условие",
"r-add-action": "Задать действие",
"r-board-rules": "Правила доски",
"r-add-rule": "Добавить правило",
"r-view-rule": "Показать правило",
"r-delete-rule": "Удалить правило",
"r-new-rule-name": "Имя нового правила",
"r-no-rules": "Нет правил",
"r-when-a-card-is": "Когда карточка",
"r-added-to": "Добавлен(а) в/на",
"r-removed-from": "Покидает",
"r-the-board": "доску",
"r-list": "список",
"r-moved-to": "Перемещается в",
"r-moved-from": "Покидает",
"r-archived": "Перемещена в архив",
"r-unarchived": "Восстановлена из архива",
"r-a-card": "карточку",
"r-when-a-label-is": "Когда метка",
"r-when-the-label-is": "Когда метка",
"r-list-name": "Имя списка",
"r-when-a-member": "Когда участник",
"r-when-the-member": "Когда участник",
"r-name": "имя",
"r-is": " ",
"r-when-a-attach": "Когда вложение",
"r-when-a-checklist": "Когда контрольный список",
"r-when-the-checklist": "Когда контрольный список",
"r-completed": "Завершен",
"r-made-incomplete": "Вновь открыт",
"r-when-a-item": "Когда пункт контрольного списка",
"r-when-the-item": "Когда пункт контрольного списка",
"r-checked": "Отмечен",
"r-unchecked": "Снят",
"r-move-card-to": "Переместить карточку в",
"r-top-of": "Начало",
"r-bottom-of": "Конец",
"r-its-list": "текущего списка",
"r-archive": "Переместить в архив",
"r-unarchive": "Восстановить из Архива",
"r-card": "карточку",
"r-add": "Создать",
"r-remove": "Remove",
"r-label": "label",
"r-member": "member",
"r-remove-all": "Remove all members from the card",
"r-checklist": "checklist",
"r-check-all": "Check all",
"r-uncheck-all": "Uncheck all",
"r-items-check": "items of checklist",
"r-check": "Check",
"r-uncheck": "Uncheck",
"r-item": "item",
"r-of-checklist": "of checklist",
"r-send-email": "Send an email",
"r-to": "to",
"r-subject": "subject",
"r-rule-details": "Rule details",
"r-d-move-to-top-gen": "Move card to top of its list",
"r-d-move-to-top-spec": "Move card to top of list",
"r-d-move-to-bottom-gen": "Move card to bottom of its list",
"r-d-move-to-bottom-spec": "Move card to bottom of list",
"r-d-send-email": "Send email",
"r-d-send-email-to": "to",
"r-d-send-email-subject": "subject",
"r-d-send-email-message": "message",
"r-d-archive": "Move card to Archive",
"r-d-unarchive": "Restore card from Archive",
"r-d-add-label": "Add label",
"r-d-remove-label": "Remove label",
"r-d-add-member": "Add member",
"r-d-remove-member": "Remove member",
"r-d-remove-all-member": "Remove all member",
"r-d-check-all": "Check all items of a list",
"r-d-uncheck-all": "Uncheck all items of a list",
"r-d-check-one": "Check item",
"r-d-uncheck-one": "Uncheck item",
"r-d-check-of-list": "of checklist",
"r-d-add-checklist": "Add checklist",
"r-d-remove-checklist": "Remove checklist",
"r-when-a-card-is-moved": "When a card is moved to another list",
"r-remove": "Удалить",
"r-label": "метку",
"r-member": "участника",
"r-remove-all": "Удалить всех участников из карточки",
"r-checklist": "контрольный список",
"r-check-all": "Отметить все",
"r-uncheck-all": "Снять все",
"r-items-check": "пункты контрольного списка",
"r-check": "Отметить",
"r-uncheck": "Снять",
"r-item": "пункт",
"r-of-checklist": "контрольного списка",
"r-send-email": "Отправить письмо",
"r-to": "кому",
"r-subject": "тема",
"r-rule-details": "Содержание правила",
"r-d-move-to-top-gen": "Переместить карточку в начало текущего списка",
"r-d-move-to-top-spec": "Переместить карточку в начало списка",
"r-d-move-to-bottom-gen": "Переместить карточку в конец текущего списка",
"r-d-move-to-bottom-spec": "Переместить карточку в конец списка",
"r-d-send-email": "Отправить письмо",
"r-d-send-email-to": "кому",
"r-d-send-email-subject": "тема",
"r-d-send-email-message": "сообщение",
"r-d-archive": "Переместить карточку в Архив",
"r-d-unarchive": "Восстановить карточку из Архива",
"r-d-add-label": "Добавить метку",
"r-d-remove-label": "Удалить метку",
"r-d-add-member": "Добавить участника",
"r-d-remove-member": "Удалить участника",
"r-d-remove-all-member": "Удалить всех участников",
"r-d-check-all": "Отметить все пункты в списке",
"r-d-uncheck-all": "Снять все пункты в списке",
"r-d-check-one": "Отметить пункт",
"r-d-uncheck-one": "Снять пункт",
"r-d-check-of-list": "контрольного списка",
"r-d-add-checklist": "Добавить контрольный список",
"r-d-remove-checklist": "Удалить контрольный список",
"r-when-a-card-is-moved": "Когда карточка перемещена в другой список",
"ldap": "LDAP",
"oauth2": "OAuth2",
"cas": "CAS",
"authentication-method": "Authentication method",
"authentication-type": "Authentication type",
"custom-product-name": "Custom Product Name",
"layout": "Layout",
"hide-logo": "Hide Logo"
"authentication-method": "Способ авторизации",
"authentication-type": "Тип авторизации",
"custom-product-name": "Собственное наименование",
"layout": "Внешний вид",
"hide-logo": "Скрыть логотип"
}
+15 -2
View File
@@ -126,7 +126,7 @@ function publishChekListCompleted(userId, doc){
if(checkList.isFinished()){
const act = {
userId,
activityType: 'checklistCompleted',
activityType: 'completeChecklist',
cardId: doc.cardId,
boardId,
checklistId: doc.checklistId,
@@ -141,10 +141,23 @@ function publishChekListUncompleted(userId, doc){
const boardId = card.boardId;
const checklistId = doc.checklistId;
const checkList = Checklists.findOne({_id:checklistId});
// BUGS in IFTTT Rules: https://github.com/wekan/wekan/issues/1972
// Currently in checklist all are set as uncompleted/not checked,
// IFTTT Rule does not move card to other list.
// If following line is negated/changed to:
// if(!checkList.isFinished()){
// then unchecking of any checkbox will move card to other list,
// even when all checkboxes are not yet unchecked.
// What is correct code for only moving when all in list is unchecked?
// TIPS: Finding files, ignoring some directories with grep -v:
// cd wekan
// find . | xargs grep 'count' -sl | grep -v .meteor | grep -v node_modules | grep -v .build
// Maybe something related here?
// wekan/client/components/rules/triggers/checklistTriggers.js
if(checkList.isFinished()){
const act = {
userId,
activityType: 'checklistUncompleted',
activityType: 'uncompleteChecklist',
cardId: doc.cardId,
boardId,
checklistId: doc.checklistId,
+14 -31
View File
@@ -74,7 +74,7 @@ if (Meteor.isServer) {
if(!setting){
const now = new Date();
const domain = process.env.ROOT_URL.match(/\/\/(?:www\.)?(.*)?(?:\/)?/)[1];
const from = `Wekan <wekan@${domain}>`;
const from = `Boards Support <support@${domain}>`;
const defaultSetting = {disableRegistration: false, mailServer: {
username: '', password: '', host: '', port: '', enableTLS: false, from,
}, createdAt: now, modifiedAt: now};
@@ -210,6 +210,19 @@ if (Meteor.isServer) {
};
},
getCustomUI(){
const setting = Settings.findOne({});
if (!setting.productName) {
return {
productName: 'Wekan',
};
} else {
return {
productName: `${setting.productName}`,
};
}
},
getMatomoConf(){
return {
address: getEnvVar('MATOMO_ADDRESS'),
@@ -239,35 +252,5 @@ if (Meteor.isServer) {
cas: isCasEnabled(),
};
},
getDefaultAuthenticationMethod() {
return process.env.DEFAULT_AUTHENTICATION_METHOD;
},
// TODO: patch error : did not check all arguments during call
logoutWithTimer(userId) {
if (process.env.LOGOUT_WITH_TIMER) {
Jobs.run('logOut', userId, {
in: {
days: process.env.LOGOUT_IN,
},
on: {
hour: process.env.LOGOUT_ON_HOURS,
minute: process.env.LOGOUT_ON_MINUTES,
},
priority: 1,
});
}
},
});
Jobs.register({
logOut(userId) {
Meteor.users.update(
{_id: userId},
{$set: {'services.resume.loginTokens': []}}
);
this.success();
},
});
}
+2 -2
View File
@@ -268,7 +268,7 @@ export class TrelloCreator {
}
// insert card
const cardId = Cards.direct.insert(cardToCreate);
// keep track of Trello id => WeKan id
// keep track of Trello id => Wekan id
this.cards[card.id] = cardId;
// log activity
// Activities.direct.insert({
@@ -431,7 +431,7 @@ export class TrelloCreator {
sort: checklist.pos,
};
const checklistId = Checklists.direct.insert(checklistToCreate);
// keep track of Trello id => WeKan id
// keep track of Trello id => Wekan id
this.checklists[checklist.id] = checklistId;
// Now add the items to the checklistItems
let counter = 0;
+7 -3
View File
@@ -520,10 +520,14 @@ if (Meteor.isServer) {
}
const disableRegistration = Settings.findOne().disableRegistration;
// If this is the first Authentication by the ldap and self registration disabled
if (disableRegistration && options && options.ldap) {
user.authenticationMethod = 'ldap';
return user;
}
// If self registration enabled
if (!disableRegistration) {
if (options.ldap) {
user.authenticationMethod = 'ldap';
}
return user;
}
+3 -2
View File
@@ -300,7 +300,7 @@ export class WekanCreator {
}
// insert card
const cardId = Cards.direct.insert(cardToCreate);
// keep track of Wekan id => WeKan id
// keep track of Wekan id => Wekan id
this.cards[card._id] = cardId;
// // log activity
// Activities.direct.insert({
@@ -749,7 +749,8 @@ export class WekanCreator {
});
}
check(board) {
//check(board) {
check() {
//try {
// check(data, {
// membersMapping: Match.Optional(Object),
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "wekan",
"version": "v1.79.0",
"version": "v1.89.0",
"description": "Open-Source kanban",
"private": true,
"scripts": {
+1
View File
@@ -33,6 +33,7 @@ git clone --depth 1 -b master https://github.com/wekan/flow-router.git kadira-fl
git clone --depth 1 -b master https://github.com/meteor-useraccounts/core.git meteor-useraccounts-core
git clone --depth 1 -b master https://github.com/wekan/meteor-accounts-cas.git
git clone --depth 1 -b master https://github.com/wekan/wekan-ldap.git
git clone --depth 1 -b master https://github.com/wekan/wekan-scrollbar.git
REM sed -i 's/api\.versionsFrom/\/\/api.versionsFrom/' ~/repos/wekan/packages/meteor-useraccounts-core/package.js
cd ..
REM del /S /F /Q node_modules
+3 -2
View File
@@ -4,7 +4,7 @@ echo "Note: If you use other locale than en_US.UTF-8 , you need to additionally
echo " with 'sudo dpkg-reconfigure locales' , so that MongoDB works correctly."
echo " You can still use any other locale as your main locale."
X64NODE="https://nodejs.org/dist/v8.12.0/node-v8.12.0-linux-x64.tar.gz"
X64NODE="https://nodejs.org/dist/v8.14.0/node-v8.14.0-linux-x64.tar.gz"
function pause(){
read -p "$*"
@@ -74,7 +74,7 @@ do
sudo apt install -y build-essential git curl wget
# sudo apt -y install nodejs npm
# npm_call -g install n
# sudo n 8.12.0
# sudo n 8.14.0
fi
# if [ "$(grep -Ei 'debian' /etc/*release)" ]; then
@@ -142,6 +142,7 @@ do
git clone --depth 1 -b master https://github.com/meteor-useraccounts/core.git meteor-useraccounts-core
git clone --depth 1 -b master https://github.com/wekan/meteor-accounts-cas.git
git clone --depth 1 -b master https://github.com/wekan/wekan-ldap.git
git clone --depth 1 -b master https://github.com/wekan/wekan-scrollbar.git
if [[ "$OSTYPE" == "darwin"* ]]; then
echo "sed at macOS";
sed -i '' 's/api\.versionsFrom/\/\/api.versionsFrom/' ~/repos/wekan/packages/meteor-useraccounts-core/package.js
+5 -4
View File
@@ -5,10 +5,11 @@
rm -rf packages
mkdir -p ~/repos/wekan/packages
cd ~/repos/wekan/packages
git clone --depth 1 -b master https://github.com/wekan/flow-router.git kadira-flow-router
git clone --depth 1 -b master https://github.com/meteor-useraccounts/core.git meteor-useraccounts-core
git clone --depth 1 -b master https://github.com/wekan/meteor-accounts-cas.git
git clone --depth 1 -b master https://github.com/wekan/wekan-ldap.git
git clone --depth 1 -b master https://github.com/wekan/flow-router.git kadira-flow-router
git clone --depth 1 -b master https://github.com/meteor-useraccounts/core.git meteor-useraccounts-core
git clone --depth 1 -b master https://github.com/wekan/meteor-accounts-cas.git
git clone --depth 1 -b master https://github.com/wekan/wekan-ldap.git
git clone --depth 1 -b master https://github.com/wekan/wekan-scrollbar.git
if [[ "$OSTYPE" == "darwin"* ]]; then
echo "sed at macOS";
+7 -4
View File
@@ -4,7 +4,7 @@ echo "Note: If you use other locale than en_US.UTF-8 , you need to additionally
echo " with 'sudo dpkg-reconfigure locales' , so that MongoDB works correctly."
echo " You can still use any other locale as your main locale."
X64NODE="https://releases.wekan.team/node-v8.11.3-linux-x64.tar.gz"
X64NODE="https://releases.wekan.team/node-v8.14.0-linux-x64.tar.gz"
function pause(){
read -p "$*"
@@ -25,7 +25,7 @@ do
sudo apt install -y build-essential git curl wget
sudo apt -y install nodejs npm
sudo npm -g install n
sudo n 8.11.3
sudo n 8.14.0
fi
if [ "$(grep -Ei 'debian' /etc/*release)" ]; then
@@ -88,8 +88,11 @@ do
cd ~/repos/wekan
mkdir -p ~/repos/wekan/packages
cd ~/repos/wekan/packages
git clone https://github.com/wekan/flow-router.git kadira-flow-router
git clone https://github.com/meteor-useraccounts/core.git meteor-useraccounts-core
git clone --depth 1 -b master https://github.com/wekan/flow-router.git kadira-flow-router
git clone --depth 1 -b master https://github.com/meteor-useraccounts/core.git meteor-useraccounts-core
git clone --depth 1 -b master https://github.com/wekan/meteor-accounts-cas.git
git clone --depth 1 -b master https://github.com/wekan/wekan-ldap.git
git clone --depth 1 -b master https://github.com/wekan/wekan-scrollbar.git
if [[ "$OSTYPE" == "darwin"* ]]; then
echo "sed at macOS";
+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 = 181,
appVersion = 191,
# Increment this for every release.
appMarketingVersion = (defaultText = "1.79.0~2018-12-03"),
appMarketingVersion = (defaultText = "1.89.0~2018-12-15"),
# Human-readable presentation of the app version.
minUpgradableAppVersion = 0,
-1
View File
@@ -22,7 +22,6 @@ Meteor.publish('user-authenticationMethod', function(match) {
check(match, String);
return Users.find({$or: [{_id: match}, {email: match}, {username: match}]}, {
fields: {
'_id': 1,
'authenticationMethod': 1,
},
});
+1 -1
View File
@@ -98,7 +98,7 @@ RulesHelper = {
card.assignMember(memberId);
}
if(action.actionType === 'removeMember'){
if(action.memberName === '*'){
if(action.username === '*'){
const members = card.members;
for(let i = 0; i< members.length; i++){
card.unassignMember(members[i]);
+1 -1
View File
@@ -3,7 +3,7 @@
# All supported keys are defined here together with descriptions and default values
# list of supported keys
keys="MONGODB_BIND_UNIX_SOCKET MONGODB_BIND_IP MONGODB_PORT MAIL_URL MAIL_FROM ROOT_URL PORT DISABLE_MONGODB CADDY_ENABLED CADDY_BIND_PORT WITH_API CORS MATOMO_ADDRESS MATOMO_SITE_ID MATOMO_DO_NOT_TRACK MATOMO_WITH_USERNAME BROWSER_POLICY_ENABLED TRUSTED_URL WEBHOOKS_ATTRIBUTES OAUTH2_ENABLED OAUTH2_CLIENT_ID OAUTH2_SECRET OAUTH2_SERVER_URL OAUTH2_AUTH_ENDPOINT OAUTH2_USERINFO_ENDPOINT OAUTH2_TOKEN_ENDPOINT LDAP_ENABLE LDAP_PORT LDAP_HOST LDAP_BASEDN LDAP_LOGIN_FALLBACK LDAP_RECONNECT LDAP_TIMEOUT LDAP_IDLE_TIMEOUT LDAP_CONNECT_TIMEOUT LDAP_AUTHENTIFICATION LDAP_AUTHENTIFICATION_USERDN LDAP_AUTHENTIFICATION_PASSWORD LDAP_LOG_ENABLED LDAP_BACKGROUND_SYNC LDAP_BACKGROUND_SYNC_INTERVAL LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED LDAP_BACKGROUND_SYNC_IMPORT_NEW_USERS LDAP_ENCRYPTION LDAP_CA_CERT LDAP_REJECT_UNAUTHORIZED LDAP_USER_SEARCH_FILTER LDAP_USER_SEARCH_SCOPE LDAP_USER_SEARCH_FIELD LDAP_SEARCH_PAGE_SIZE LDAP_SEARCH_SIZE_LIMIT LDAP_GROUP_FILTER_ENABLE LDAP_GROUP_FILTER_OBJECTCLASS LDAP_GROUP_FILTER_GROUP_ID_ATTRIBUTE LDAP_GROUP_FILTER_GROUP_MEMBER_ATTRIBUTE LDAP_GROUP_FILTER_GROUP_MEMBER_FORMAT LDAP_GROUP_FILTER_GROUP_NAME LDAP_UNIQUE_IDENTIFIER_FIELD LDAP_UTF8_NAMES_SLUGIFY LDAP_USERNAME_FIELD LDAP_FULLNAME_FIELD LDAP_MERGE_EXISTING_USERS LDAP_SYNC_USER_DATA LDAP_SYNC_USER_DATA_FIELDMAP LDAP_SYNC_GROUP_ROLES LDAP_DEFAULT_DOMAIN LOGOUT_WITH_TIMER, LOGOUT_IN, LOGOUT_ON_HOURS, LOGOUT_ON_MINUTES"
keys="MONGODB_BIND_UNIX_SOCKET MONGODB_BIND_IP MONGODB_PORT MAIL_URL MAIL_FROM ROOT_URL PORT DISABLE_MONGODB CADDY_ENABLED CADDY_BIND_PORT WITH_API CORS MATOMO_ADDRESS MATOMO_SITE_ID MATOMO_DO_NOT_TRACK MATOMO_WITH_USERNAME BROWSER_POLICY_ENABLED TRUSTED_URL WEBHOOKS_ATTRIBUTES OAUTH2_ENABLED OAUTH2_CLIENT_ID OAUTH2_SECRET OAUTH2_SERVER_URL OAUTH2_AUTH_ENDPOINT OAUTH2_USERINFO_ENDPOINT OAUTH2_TOKEN_ENDPOINT LDAP_ENABLE LDAP_PORT LDAP_HOST LDAP_BASEDN LDAP_LOGIN_FALLBACK LDAP_RECONNECT LDAP_TIMEOUT LDAP_IDLE_TIMEOUT LDAP_CONNECT_TIMEOUT LDAP_AUTHENTIFICATION LDAP_AUTHENTIFICATION_USERDN LDAP_AUTHENTIFICATION_PASSWORD LDAP_LOG_ENABLED LDAP_BACKGROUND_SYNC LDAP_BACKGROUND_SYNC_INTERVAL LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED LDAP_BACKGROUND_SYNC_IMPORT_NEW_USERS LDAP_ENCRYPTION LDAP_CA_CERT LDAP_REJECT_UNAUTHORIZED LDAP_USER_SEARCH_FILTER LDAP_USER_SEARCH_SCOPE LDAP_USER_SEARCH_FIELD LDAP_SEARCH_PAGE_SIZE LDAP_SEARCH_SIZE_LIMIT LDAP_GROUP_FILTER_ENABLE LDAP_GROUP_FILTER_OBJECTCLASS LDAP_GROUP_FILTER_GROUP_ID_ATTRIBUTE LDAP_GROUP_FILTER_GROUP_MEMBER_ATTRIBUTE LDAP_GROUP_FILTER_GROUP_MEMBER_FORMAT LDAP_GROUP_FILTER_GROUP_NAME LDAP_UNIQUE_IDENTIFIER_FIELD LDAP_UTF8_NAMES_SLUGIFY LDAP_USERNAME_FIELD LDAP_FULLNAME_FIELD LDAP_MERGE_EXISTING_USERS LDAP_SYNC_USER_DATA LDAP_SYNC_USER_DATA_FIELDMAP LDAP_SYNC_GROUP_ROLES LDAP_DEFAULT_DOMAIN LOGOUT_WITH_TIMER LOGOUT_IN LOGOUT_ON_HOURS LOGOUT_ON_MINUTES"
# default values
DESCRIPTION_MONGODB_BIND_UNIX_SOCKET="mongodb binding unix socket:\n"\
+7 -15
View File
@@ -14,20 +14,7 @@ confinement: strict
grade: stable
architectures:
- build-on: amd64
run-on: amd64
- build-on: i386
run-on: i386
build-error: ignore
- build-on: armhf
run-on: armhf
build-error: ignore
- build-on: arm64
run-on: arm64
build-error: ignore
- amd64
plugs:
mongodb-plug:
@@ -94,7 +81,7 @@ parts:
wekan:
source: .
plugin: nodejs
node-engine: 8.12.0
node-engine: 8.14.0
node-packages:
- node-gyp
- node-pre-gyp
@@ -165,6 +152,11 @@ parts:
git clone --depth 1 -b master https://github.com/wekan/wekan-ldap.git
cd ..
fi
if [ ! -d "packages/wekan-scrollbar" ]; then
cd packages
git clone --depth 1 -b master https://github.com/wekan/wekan-scrollbar.git
cd ..
fi
rm -rf package-lock.json .build
meteor add standard-minifier-js --allow-superuser
meteor npm install --allow-superuser