mirror of
https://github.com/wekan/wekan.git
synced 2026-11-05 21:44:59 -05:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ee212b69a9 | ||
|
|
87d91560f8 | ||
|
|
bccca00aaf | ||
|
|
d6e36ed50a | ||
|
|
83f7fa768d | ||
|
|
2d49006aee | ||
|
|
c2e58dcb62 | ||
|
|
f154c5e521 | ||
|
|
eadbebb4fa | ||
|
|
40cf1c7549 | ||
|
|
9c4e305a84 | ||
|
|
167197fcda | ||
|
|
e3a40aca6f | ||
|
|
0611e0c4bd | ||
|
|
d6857693bb | ||
|
|
b5ccf7a58f | ||
|
|
bfca1822a0 |
No files matched your search
@@ -89,4 +89,3 @@ mquandalle:moment
|
||||
msavin:usercache
|
||||
wekan:wekan-ldap
|
||||
wekan:accounts-cas
|
||||
msavin:sjobs
|
||||
@@ -117,7 +117,6 @@ 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
|
||||
|
||||
@@ -1,3 +1,44 @@
|
||||
# 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:
|
||||
|
||||
+2
-2
@@ -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="" \
|
||||
|
||||
@@ -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}}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
+2
-2
@@ -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",
|
||||
|
||||
+57
-57
@@ -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__ импортирован",
|
||||
@@ -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": "Затраченное время",
|
||||
@@ -146,7 +146,7 @@
|
||||
"cards": "Карточки",
|
||||
"cards-count": "Карточки",
|
||||
"casSignIn": "Sign In with CAS",
|
||||
"cardType-card": "Card",
|
||||
"cardType-card": "Карточка",
|
||||
"cardType-linkedCard": "Linked Card",
|
||||
"cardType-linkedBoard": "Linked Board",
|
||||
"change": "Изменить",
|
||||
@@ -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": "зеленый",
|
||||
@@ -279,7 +279,7 @@
|
||||
"headerBarCreateBoardPopup-title": "Создать доску",
|
||||
"home": "Главная",
|
||||
"import": "Импорт",
|
||||
"link": "Link",
|
||||
"link": "Ссылка",
|
||||
"import-board": "импортировать доску",
|
||||
"import-board-c": "Импортировать доску",
|
||||
"import-board-title-trello": "Импортировать доску из Trello",
|
||||
@@ -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": "Список действий",
|
||||
@@ -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": "Выбрать цвет",
|
||||
@@ -500,8 +500,8 @@
|
||||
"card-end-on": "Завершится до",
|
||||
"editCardReceivedDatePopup-title": "Изменить дату получения",
|
||||
"editCardEndDatePopup-title": "Изменить дату завершения",
|
||||
"assigned-by": "Назначено",
|
||||
"requested-by": "Запрошен",
|
||||
"assigned-by": "Поручил",
|
||||
"requested-by": "Запросил",
|
||||
"board-delete-notice": "Удаление является постоянным. Вы потеряете все списки, карты и действия, связанные с этой доской.",
|
||||
"delete-board-confirm-popup": "Все списки, карточки, ярлыки и действия будут удалены, и вы не сможете восстановить содержимое доски. Отменить нельзя.",
|
||||
"boardDeletePopup-title": "Удалить доску?",
|
||||
@@ -510,34 +510,34 @@
|
||||
"default": "Default",
|
||||
"queue": "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",
|
||||
"boardSubtaskSettingsPopup-title": "Настройки подзадач для доски",
|
||||
"show-subtasks-field": "Разрешить подзадачи",
|
||||
"deposit-subtasks-board": "Отправлять подзадачи на эту доску:",
|
||||
"deposit-subtasks-list": "Размещать подзадачи, отправленные на эту доску, в списке:",
|
||||
"show-parent-in-minicard": "Указывать исходную карточку:",
|
||||
"prefix-with-full-path": "Полный путь – сверху",
|
||||
"prefix-with-parent": "Имя – сверху",
|
||||
"subtext-with-full-path": "Полный путь – снизу",
|
||||
"subtext-with-parent": "Имя – снизу",
|
||||
"change-card-parent": "Change card's parent",
|
||||
"parent-card": "Parent card",
|
||||
"source-board": "Source board",
|
||||
"no-parent": "Don't show parent",
|
||||
"no-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-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-board-rules": "Правила доски",
|
||||
"r-add-rule": "Добавить правило",
|
||||
"r-view-rule": "Показать правило",
|
||||
"r-delete-rule": "Удалить правило",
|
||||
"r-new-rule-name": "Имя нового правила",
|
||||
"r-no-rules": "Нет правил",
|
||||
"r-when-a-card-is": "When a card is",
|
||||
"r-added-to": "Added to",
|
||||
"r-removed-from": "Removed from",
|
||||
@@ -545,8 +545,8 @@
|
||||
"r-list": "list",
|
||||
"r-moved-to": "Moved to",
|
||||
"r-moved-from": "Moved from",
|
||||
"r-archived": "Moved to Archive",
|
||||
"r-unarchived": "Restored from Archive",
|
||||
"r-archived": "Перемещено в архив",
|
||||
"r-unarchived": "Восстановлено из архива",
|
||||
"r-a-card": "a card",
|
||||
"r-when-a-label-is": "When a label is",
|
||||
"r-when-the-label-is": "When the label is",
|
||||
@@ -568,8 +568,8 @@
|
||||
"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-archive": "Переместить в архив",
|
||||
"r-unarchive": "Восстановить из Архива",
|
||||
"r-card": "card",
|
||||
"r-add": "Создать",
|
||||
"r-remove": "Remove",
|
||||
@@ -587,7 +587,7 @@
|
||||
"r-send-email": "Send an email",
|
||||
"r-to": "to",
|
||||
"r-subject": "subject",
|
||||
"r-rule-details": "Rule details",
|
||||
"r-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",
|
||||
@@ -616,7 +616,7 @@
|
||||
"cas": "CAS",
|
||||
"authentication-method": "Authentication method",
|
||||
"authentication-type": "Authentication type",
|
||||
"custom-product-name": "Custom Product Name",
|
||||
"layout": "Layout",
|
||||
"hide-logo": "Hide Logo"
|
||||
"custom-product-name": "Собственное наименование",
|
||||
"layout": "Внешний вид",
|
||||
"hide-logo": "Скрыть логотип"
|
||||
}
|
||||
@@ -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,
|
||||
|
||||
@@ -239,35 +239,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();
|
||||
},
|
||||
});
|
||||
}
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "wekan",
|
||||
"version": "v1.80.0",
|
||||
"version": "v1.84.0",
|
||||
"description": "Open-Source kanban",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
|
||||
@@ -22,10 +22,10 @@ const pkgdef :Spk.PackageDefinition = (
|
||||
appTitle = (defaultText = "Wekan"),
|
||||
# The name of the app as it is displayed to the user.
|
||||
|
||||
appVersion = 182,
|
||||
appVersion = 186,
|
||||
# Increment this for every release.
|
||||
|
||||
appMarketingVersion = (defaultText = "1.80.0~2018-12-03"),
|
||||
appMarketingVersion = (defaultText = "1.84.0~2018-12-07"),
|
||||
# Human-readable presentation of the app version.
|
||||
|
||||
minUpgradableAppVersion = 0,
|
||||
|
||||
@@ -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,
|
||||
},
|
||||
});
|
||||
|
||||
@@ -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
@@ -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"\
|
||||
|
||||
Reference in new issue
Block a user