Merge branch 'thuanpq-devel' into devel

User Admin to Admin Panel: List users.
Change: is user admin, name, fullname, email address, is user active.
Not changing password yet. Thanks to thuanpq and xet7 ! Related #802
This commit is contained in:
Lauri Ojansivu 2017-11-19 01:45:58 +02:00
commit 0ea96fca3f
46 changed files with 831 additions and 419 deletions

1
.gitignore vendored
View file

@ -5,6 +5,7 @@
tmp/
node_modules/
.vscode/
.idea/
.build/*
packages/kadira-flow-router/
packages/meteor-useraccounts-core/

View file

@ -3,6 +3,7 @@
This release adds the following new features:
* [Markdown in card/minicard/checlist titles and checklist items. Next line: Shift+Enter. Submit: Enter.](https://github.com/wekan/wekan/pull/1334);
* [User Admin to Admin Panel: List users. Change: is user admin, name, fullname, email address, is user active. Not changing password yet.](https://github.com/wekan/wekan/pull/1325).
and fixes the following bugs:
@ -10,7 +11,7 @@ and fixes the following bugs:
* [Fix: Codeblocks should not be scanned for emoji](https://github.com/wekan/wekan/issues/643);
* [Fix: Whitespace trimming breaks Markdown code block indentation](https://github.com/wekan/wekan/issues/1288).
Thanks to Github user brooksbecton for contributions.
Thanks to Github users brooksbecton, thuanpq and xet7 for their contributions.
# v0.54 2017-11-02 Wekan release

View file

@ -0,0 +1,89 @@
template(name="people")
.setting-content
unless currentUser.isAdmin
| {{_ 'error-notAuthorized'}}
else
.content-title
span {{_ 'people'}}
.content-body
.side-menu
ul
li.active
a.js-setting-menu(data-id="people-setting") {{_ 'people'}}
.main-body
if loading.get
+spinner
else if people.get
+peopleGeneral
template(name="peopleGeneral")
table
tbody
tr
th {{_ 'username'}}
th {{_ 'fullname'}}
th {{_ 'admin'}}
th {{_ 'email'}}
th {{_ 'verified'}}
th {{_ 'createdAt'}}
th {{_ 'active'}}
th
each user in peopleList
+peopleRow(userId=user._id)
template(name="peopleRow")
tr
td.username {{ userData.username }}
td {{ userData.profile.fullname }}
td
if userData.isAdmin
| {{_ 'yes'}}
else
| {{_ 'no'}}
td {{ userData.emails.[0].address }}
td
if userData.emails.[0].verified
| {{_ 'yes'}}
else
| {{_ 'no'}}
td {{ moment userData.createdAt 'LLL' }}
td
if userData.loginDisabled
| {{_ 'no'}}
else
| {{_ 'yes'}}
td
a.edit-user
| {{_ 'edit'}}
template(name="editUserPopup")
form
label.hide.userId(type="text" value=user._id)
label
| {{_ 'fullname'}}
input.js-profile-fullname(type="text" value=user.profile.fullname autofocus)
label
| {{_ 'username'}}
span.error.hide.username-taken
| {{_ 'error-username-taken'}}
input.js-profile-username(type="text" value=user.username)
label
| {{_ 'initials'}}
input.js-profile-initials(type="text" value=user.profile.initials)
label
| {{_ 'email'}}
span.error.hide.email-taken
| {{_ 'error-email-taken'}}
input.js-profile-email(type="email" value="{{user.emails.[0].address}}")
label
| {{_ 'admin'}}
select.select-role.js-profile-isadmin
option(value="false") {{_ 'no'}}
option(value="true" selected="{{user.isAdmin}}") {{_ 'yes'}}
label
| {{_ 'active'}}
select.select-active.js-profile-isactive
option(value="false") {{_ 'yes'}}
option(value="true" selected="{{user.loginDisabled}}") {{_ 'no'}}
input.primary.wide(type="submit" value="{{_ 'save'}}")

View file

@ -0,0 +1,156 @@
const usersPerPage = 25;
BlazeComponent.extendComponent({
mixins() {
return [Mixins.InfiniteScrolling];
},
onCreated() {
this.error = new ReactiveVar('');
this.loading = new ReactiveVar(false);
this.people = new ReactiveVar(true);
this.page = new ReactiveVar(1);
this.loadNextPageLocked = false;
this.callFirstWith(null, 'resetNextPeak');
this.autorun(() => {
const limit = this.page.get() * usersPerPage;
this.subscribe('people', limit, () => {
this.loadNextPageLocked = false;
const nextPeakBefore = this.callFirstWith(null, 'getNextPeak');
this.calculateNextPeak();
const nextPeakAfter = this.callFirstWith(null, 'getNextPeak');
if (nextPeakBefore === nextPeakAfter) {
this.callFirstWith(null, 'resetNextPeak');
}
});
});
},
loadNextPage() {
if (this.loadNextPageLocked === false) {
this.page.set(this.page.get() + 1);
this.loadNextPageLocked = true;
}
},
calculateNextPeak() {
const element = this.find('.main-body');
if (element) {
const altitude = element.scrollHeight;
this.callFirstWith(this, 'setNextPeak', altitude);
}
},
reachNextPeak() {
this.loadNextPage();
},
setError(error) {
this.error.set(error);
},
setLoading(w) {
this.loading.set(w);
},
peopleList() {
return Users.find({}, {
fields: {_id: true},
});
},
}).register('people');
Template.peopleRow.helpers({
userData() {
const userCollection = this.esSearch ? ESSearchResults : Users;
return userCollection.findOne(this.userId);
},
});
Template.editUserPopup.helpers({
user() {
return Users.findOne(this.userId);
},
});
BlazeComponent.extendComponent({
onCreated() {
},
user() {
return Users.findOne(this.userId);
},
events() {
return [{
'click a.edit-user': Popup.open('editUser'),
}];
},
}).register('peopleRow');
Template.editUserPopup.events({
submit(evt, tpl) {
evt.preventDefault();
const user = Users.findOne(this.userId);
const fullname = tpl.find('.js-profile-fullname').value.trim();
const username = tpl.find('.js-profile-username').value.trim();
const initials = tpl.find('.js-profile-initials').value.trim();
const isAdmin = tpl.find('.js-profile-isadmin').value.trim();
const isActive = tpl.find('.js-profile-isactive').value.trim();
const email = tpl.find('.js-profile-email').value.trim();
let isChangeUserName = false;
let isChangeEmail = false;
Users.update(this.userId, {
$set: {
'profile.fullname': fullname,
'profile.initials': initials,
'isAdmin': isAdmin === 'true',
'loginDisabled': isActive === 'true',
},
});
isChangeUserName = username !== user.username;
isChangeEmail = email.toLowerCase() !== user.emails[0].address.toLowerCase();
if (isChangeUserName && isChangeEmail) {
Meteor.call('setUsernameAndEmail', username, email.toLowerCase(), this.userId, function (error) {
const usernameMessageElement = tpl.$('.username-taken');
const emailMessageElement = tpl.$('.email-taken');
if (error) {
const errorElement = error.error;
if (errorElement === 'username-already-taken') {
usernameMessageElement.show();
emailMessageElement.hide();
} else if (errorElement === 'email-already-taken') {
usernameMessageElement.hide();
emailMessageElement.show();
}
} else {
usernameMessageElement.hide();
emailMessageElement.hide();
Popup.close();
}
});
} else if (isChangeUserName) {
Meteor.call('setUsername', username, this.userId, function (error) {
const usernameMessageElement = tpl.$('.username-taken');
if (error) {
const errorElement = error.error;
if (errorElement === 'username-already-taken') {
usernameMessageElement.show();
}
} else {
usernameMessageElement.hide();
Popup.close();
}
});
} else if (isChangeEmail) {
Meteor.call('setEmail', email.toLowerCase(), this.userId, function (error) {
const emailMessageElement = tpl.$('.email-taken');
if (error) {
const errorElement = error.error;
if (errorElement === 'email-already-taken') {
emailMessageElement.show();
}
} else {
emailMessageElement.hide();
Popup.close();
}
});
} else Popup.close();
},
});

View file

@ -0,0 +1,15 @@
.main-body
overflow: scroll;
table
font-family: arial, sans-serif;
border-collapse: collapse;
width: 100%;
td, th
border: 1px solid #d2d0d0;
text-align: left;
padding: 8px;
tr:nth-child(even)
background-color: #dddddd;

View file

@ -9,13 +9,14 @@ template(name="settingHeaderBar")
a.setting-header-btn.settings(href="{{pathFor 'setting'}}")
i.fa(class="fa-cog")
span {{_ 'settings'}}
a.setting-header-btn.people(href="{{pathFor 'people'}}")
i.fa(class="fa-users")
span {{_ 'people'}}
a.setting-header-btn.informations(href="{{pathFor 'information'}}")
i.fa(class="fa-info-circle")
span {{_ 'info'}}
//TODO
// a.setting-header-btn.people
// i.fa(class="fa-users")
// span {{_ 'people'}}
else
a.setting-header-btn.js-log-in(

View file

@ -42,7 +42,7 @@ Template.editProfilePopup.events({
isChangeUserName = username !== Meteor.user().username;
isChangeEmail = email.toLowerCase() !== Meteor.user().emails[0].address.toLowerCase();
if (isChangeUserName && isChangeEmail) {
Meteor.call('setUsernameAndEmail', username, email.toLowerCase(), function(error) {
Meteor.call('setUsernameAndEmail', username, email.toLowerCase(), Meteor.userId(), function (error) {
const usernameMessageElement = tpl.$('.username-taken');
const emailMessageElement = tpl.$('.email-taken');
if (error) {
@ -61,7 +61,7 @@ Template.editProfilePopup.events({
}
});
} else if (isChangeUserName) {
Meteor.call('setUsername', username, function(error) {
Meteor.call('setUsername', username, Meteor.userId(), function (error) {
const messageElement = tpl.$('.username-taken');
if (error) {
messageElement.show();
@ -71,7 +71,7 @@ Template.editProfilePopup.events({
}
});
} else if (isChangeEmail) {
Meteor.call('setEmail', email.toLowerCase(), function(error) {
Meteor.call('setEmail', email.toLowerCase(), Meteor.userId(), function (error) {
const messageElement = tpl.$('.email-taken');
if (error) {
messageElement.show();
@ -105,7 +105,7 @@ Template.editNotificationPopup.events({
// XXX For some reason the useraccounts autofocus isnt working in this case.
// See https://github.com/meteor-useraccounts/core/issues/384
Template.changePasswordPopup.onRendered(function() {
Template.changePasswordPopup.onRendered(function () {
this.find('#at-field-current_password').focus();
});
@ -116,7 +116,7 @@ Template.changeLanguagePopup.helpers({
tag: code,
name: lang.name === 'br' ? 'Brezhoneg' : lang.name,
};
}).sort(function(a, b) {
}).sort(function (a, b) {
if (a.name === b.name) {
return 0;
} else {

View file

@ -140,6 +140,26 @@ FlowRouter.route('/information', {
},
});
FlowRouter.route('/people', {
name: 'people',
triggersEnter: [
AccountsTemplates.ensureSignedIn,
() => {
Session.set('currentBoard', null);
Session.set('currentCard', null);
Filter.reset();
EscapeActions.executeAll();
},
],
action() {
BlazeLayout.render('defaultLayout', {
headerBar: 'settingHeaderBar',
content: 'people',
});
},
});
FlowRouter.notFound = {
action() {
BlazeLayout.render('defaultLayout', { content: 'notFound' });

View file

@ -404,5 +404,8 @@
"yes": "نعم",
"no": "لا",
"accounts": "الحسابات",
"accounts-allowEmailChange": "السماح بتغيير البريد الإلكتروني"
"accounts-allowEmailChange": "السماح بتغيير البريد الإلكتروني",
"createdAt": "Created at",
"verified": "Verified",
"active": "Active"
}

View file

@ -404,5 +404,8 @@
"yes": "Yes",
"no": "No",
"accounts": "Accounts",
"accounts-allowEmailChange": "Allow Email Change"
"accounts-allowEmailChange": "Allow Email Change",
"createdAt": "Created at",
"verified": "Verified",
"active": "Active"
}

View file

@ -404,5 +404,8 @@
"yes": "Si",
"no": "No",
"accounts": "Comptes",
"accounts-allowEmailChange": "Permet modificar correu electrònic"
"accounts-allowEmailChange": "Permet modificar correu electrònic",
"createdAt": "Created at",
"verified": "Verified",
"active": "Active"
}

View file

@ -404,5 +404,8 @@
"yes": "Ano",
"no": "Ne",
"accounts": "Účty",
"accounts-allowEmailChange": "Povolit změnu Emailu"
"accounts-allowEmailChange": "Povolit změnu Emailu",
"createdAt": "Created at",
"verified": "Verified",
"active": "Active"
}

View file

@ -72,7 +72,7 @@
"archived-items": "Archivierte Einträge",
"archived-boards": "Achivierte Boards",
"restore-board": "Board wiederherstellen",
"no-archived-boards": "keine archivierten Boards",
"no-archived-boards": "Keine archivierten Boards",
"archives": "Archive",
"assign-member": "Mitglied zuweisen",
"attached": "angehängt",
@ -88,7 +88,7 @@
"board-not-found": "Board nicht gefunden",
"board-private-info": "Dieses Board wird <strong>privat</strong> sein.",
"board-public-info": "Dieses Board wird <strong>öffentlich</strong> sein.",
"boardChangeColorPopup-title": "Boardfarbe ändern",
"boardChangeColorPopup-title": "Farbe des Boards ändern",
"boardChangeTitlePopup-title": "Board umbenennen",
"boardChangeVisibilityPopup-title": "Sichtbarkeit ändern",
"boardChangeWatchPopup-title": "Beobachtung ändern",
@ -97,7 +97,7 @@
"bucket-example": "z.B. \"Löffelliste\"",
"cancel": "Abbrechen",
"card-archived": "Diese Karte wurde archiviert.",
"card-comments-title": "Diese Karte hat %s Kommentare.",
"card-comments-title": "Diese Karte hat %s Kommentar(e).",
"card-delete-notice": "Löschen ist unwiderruflich. Alle Aktionen die dieser Karte zugeordnet sind werden ebenfalls gelöscht.",
"card-delete-pop": "Alle Aktionen werden vom Aktivitätsfeed entfernt und die Karte kann nicht mehr geöffnet werden. Das Löschen kann nicht widerrufen werden!",
"card-delete-suggest-archive": "Sie können eine Karte archivieren, um sie von dem Board zu entfernen und die Aktivitäten zu behalten.",
@ -172,7 +172,7 @@
"edit-avatar": "Profilbild ändern",
"edit-profile": "Profil ändern",
"edit-wip-limit": "WIP-Limit bearbeiten",
"soft-wip-limit": "Soft WIP Limit",
"soft-wip-limit": "Soft WIP-Limit",
"editCardStartDatePopup-title": "Startdatum ändern",
"editCardDueDatePopup-title": "Enddatum ändern",
"editLabelPopup-title": "Label ändern",
@ -229,7 +229,7 @@
"import-board-instruction-wekan": "Gehen Sie in Ihrem Wekan board auf 'Menü', und dann auf 'Board exportieren'. Kopieren Sie anschließend den Text aus der heruntergeladenen Datei.",
"import-json-placeholder": "Fügen Sie die korrekten JSON-Daten hier ein",
"import-map-members": "Mitglieder zuordnen",
"import-members-map": "Das importierte Board hat einige Mitglieder. Bitte ordnen Sie die Mitglieder, die importiert werden sollen, Wekan-Nutzern zu",
"import-members-map": "Das importierte Board hat Mitglieder. Bitte ordnen Sie jene, die importiert werden sollen, vorhandenen Wekan-Nutzern zu",
"import-show-user-mapping": "Mitgliederzuordnung überprüfen",
"import-user-select": "Wählen Sie den Wekan-Nutzer aus, der dieses Mitglied sein soll",
"importMapMembersAddPopup-title": "Wekan-Nutzer auswählen",
@ -268,13 +268,13 @@
"menu": "Menü",
"move-selection": "Auswahl verschieben",
"moveCardPopup-title": "Karte verschieben",
"moveCardToBottom-title": "Zum Ende verschieben",
"moveCardToBottom-title": "Ans Ende verschieben",
"moveCardToTop-title": "Zum Anfang verschieben",
"moveSelectionPopup-title": "Auswahl verschieben",
"multi-selection": "Mehrfachauswahl",
"multi-selection-on": "Mehrfachauswahl ist aktiv",
"muted": "Stumm",
"muted-info": "Sie werden über keine Änderung in diesem Board benachrichtigt",
"muted-info": "Sie werden nicht über Änderungen auf diesem Board benachrichtigt",
"my-boards": "Meine Boards",
"name": "Name",
"no-archived-cards": "Keine archivierten Karten.",
@ -283,7 +283,7 @@
"normal": "Normal",
"normal-desc": "Kann Karten anschauen und bearbeiten, aber keine Einstellungen ändern.",
"not-accepted-yet": "Die Einladung wurde noch nicht angenommen",
"notify-participate": "Benachrichtigungen über alle Karten erhalten, bei denen Sie als Ersteller oder Mitglied teilnehmen",
"notify-participate": "Benachrichtigungen zu allen Karten erhalten, an denen Sie teilnehmen",
"notify-watch": "Benachrichtigungen über alle Boards, Listen oder Karten erhalten, die Sie beobachten",
"optional": "optional",
"or": "oder",
@ -404,5 +404,8 @@
"yes": "Ja",
"no": "Nein",
"accounts": "Konten",
"accounts-allowEmailChange": "Zulassen E-Mail ändern"
"accounts-allowEmailChange": "E-Mail ändern zulassen",
"createdAt": "Created at",
"verified": "Verified",
"active": "Active"
}

View file

@ -404,5 +404,8 @@
"yes": "Yes",
"no": "No",
"accounts": "Accounts",
"accounts-allowEmailChange": "Allow Email Change"
"accounts-allowEmailChange": "Allow Email Change",
"createdAt": "Created at",
"verified": "Verified",
"active": "Active"
}

View file

@ -404,5 +404,8 @@
"yes": "Yes",
"no": "No",
"accounts": "Accounts",
"accounts-allowEmailChange": "Allow Email Change"
"accounts-allowEmailChange": "Allow Email Change",
"createdAt": "Created at",
"verified": "Verified",
"active": "Active"
}

View file

@ -404,5 +404,8 @@
"yes": "Yes",
"no": "No",
"accounts": "Accounts",
"accounts-allowEmailChange": "Allow Email Change"
"accounts-allowEmailChange": "Allow Email Change",
"createdAt": "Created at",
"verified": "Verified",
"active": "Active"
}

View file

@ -404,5 +404,8 @@
"yes": "Si",
"no": "No",
"accounts": "Cuentas",
"accounts-allowEmailChange": "Permitir Cambio de Email"
"accounts-allowEmailChange": "Permitir Cambio de Email",
"createdAt": "Created at",
"verified": "Verified",
"active": "Active"
}

View file

@ -404,5 +404,8 @@
"yes": "Sí",
"no": "No",
"accounts": "Cuentas",
"accounts-allowEmailChange": "Permitir cambiar el correo electrónico"
"accounts-allowEmailChange": "Permitir cambiar el correo electrónico",
"createdAt": "Created at",
"verified": "Verified",
"active": "Active"
}

View file

@ -404,5 +404,8 @@
"yes": "Bai",
"no": "Ez",
"accounts": "Kontuak",
"accounts-allowEmailChange": "Baimendu e-mail aldaketa"
"accounts-allowEmailChange": "Baimendu e-mail aldaketa",
"createdAt": "Created at",
"verified": "Verified",
"active": "Active"
}

View file

@ -404,5 +404,8 @@
"yes": "Yes",
"no": "No",
"accounts": "Accounts",
"accounts-allowEmailChange": "Allow Email Change"
"accounts-allowEmailChange": "Allow Email Change",
"createdAt": "Created at",
"verified": "Verified",
"active": "Active"
}

View file

@ -404,5 +404,8 @@
"yes": "Kyllä",
"no": "Ei",
"accounts": "Tilit",
"accounts-allowEmailChange": "Salli sähköpostiosoitteen muuttaminen"
"accounts-allowEmailChange": "Salli sähköpostiosoitteen muuttaminen",
"createdAt": "Luotu",
"verified": "Varmistettu",
"active": "Aktiivinen"
}

View file

@ -172,7 +172,7 @@
"edit-avatar": "Modifier l'avatar",
"edit-profile": "Modifier le profil",
"edit-wip-limit": "Éditer la limite WIP",
"soft-wip-limit": "Soft WIP Limit",
"soft-wip-limit": "Limite Soft WIP",
"editCardStartDatePopup-title": "Modifier la date de début",
"editCardDueDatePopup-title": "Modifier la date d'échéance",
"editLabelPopup-title": "Modifier l'étiquette",
@ -404,5 +404,8 @@
"yes": "Oui",
"no": "Non",
"accounts": "Comptes",
"accounts-allowEmailChange": "Autoriser le changement d'adresse mail"
"accounts-allowEmailChange": "Autoriser le changement d'adresse mail",
"createdAt": "Created at",
"verified": "Verified",
"active": "Active"
}

View file

@ -404,5 +404,8 @@
"yes": "Yes",
"no": "No",
"accounts": "Accounts",
"accounts-allowEmailChange": "Allow Email Change"
"accounts-allowEmailChange": "Allow Email Change",
"createdAt": "Created at",
"verified": "Verified",
"active": "Active"
}

View file

@ -172,7 +172,7 @@
"edit-avatar": "החלפת תמונת משתמש",
"edit-profile": "עריכת פרופיל",
"edit-wip-limit": "עריכת מגבלת „בעבודה”",
"soft-wip-limit": "Soft WIP Limit",
"soft-wip-limit": "מגבלת „בעבודה” רכה",
"editCardStartDatePopup-title": "שינוי מועד התחלה",
"editCardDueDatePopup-title": "שינוי מועד סיום",
"editLabelPopup-title": "שינוי תווית",
@ -404,5 +404,8 @@
"yes": "כן",
"no": "לא",
"accounts": "חשבונות",
"accounts-allowEmailChange": "אפשר שינוי דוא\"ל"
"accounts-allowEmailChange": "אפשר שינוי דוא\"ל",
"createdAt": "Created at",
"verified": "Verified",
"active": "Active"
}

View file

@ -1,264 +1,264 @@
{
"accept": "Elfogad",
"accept": "Elfogadás",
"act-activity-notify": "[Wekan] Tevékenység értesítés",
"act-addAttachment": "attached __attachment__ to __card__",
"act-addChecklist": "added checklist __checklist__ to __card__",
"act-addChecklistItem": "added __checklistItem__ to checklist __checklist__ on __card__",
"act-addComment": "commented on __card__: __comment__",
"act-createBoard": "created __board__",
"act-createCard": "added __card__ to __list__",
"act-createList": "added __list__ to __board__",
"act-addBoardMember": "added __member__ to __board__",
"act-archivedBoard": "archived __board__",
"act-archivedCard": "archived __card__",
"act-archivedList": "archived __list__",
"act-importBoard": "imported __board__",
"act-importCard": "imported __card__",
"act-importList": "imported __list__",
"act-joinMember": "added __member__ to __card__",
"act-moveCard": "moved __card__ from __oldList__ to __list__",
"act-removeBoardMember": "removed __member__ from __board__",
"act-restoredCard": "restored __card__ to __board__",
"act-unjoinMember": "removed __member__ from __card__",
"act-addAttachment": "__attachment__ mellékletet csatolt a kártyához: __card__",
"act-addChecklist": "__checklist__ ellenőrzőlistát adott hozzá a kártyához: __card__",
"act-addChecklistItem": "__checklistItem__ elemet adott hozzá a(z) __checklist__ ellenőrzőlistához ezen a kártyán: __card__",
"act-addComment": "hozzászólt a(z) __card__ kártyán: __comment__",
"act-createBoard": "létrehozta a táblát: __board__",
"act-createCard": "__card__ kártyát adott hozzá a listához: __list__",
"act-createList": "__list__ listát adott hozzá a táblához: __board__",
"act-addBoardMember": "__member__ tagot hozzáadta a táblához: __board__",
"act-archivedBoard": "archiválta a táblát: __board__",
"act-archivedCard": "archiválta a kártyát: __card__",
"act-archivedList": "archiválta a listát: __list__",
"act-importBoard": "importálta a táblát: __board__",
"act-importCard": "importálta a kártyát: __card__",
"act-importList": "importálta a listát: __list__",
"act-joinMember": "__member__ tagot hozzáadta a kártyához: __card__",
"act-moveCard": "áthelyezte a(z) __card__ kártyát: __oldList__ → __list__",
"act-removeBoardMember": "eltávolította __member__ tagot a tábláról: __board__",
"act-restoredCard": "visszaállította a(z) __card__ kártyát ide: __board__",
"act-unjoinMember": "eltávolította __member__ tagot a kártyáról: __card__",
"act-withBoardTitle": "[Wekan] __board__",
"act-withCardTitle": "[__board__] __card__",
"actions": "Műveletek",
"activities": "Tevékenységek",
"activity": "Tevékenység",
"activity-added": "added %s to %s",
"activity-archived": "archiválva %s",
"activity-attached": "attached %s to %s",
"activity-created": "létrehozva %s",
"activity-excluded": "excluded %s from %s",
"activity-imported": "imported %s into %s from %s",
"activity-imported-board": "imported %s from %s",
"activity-added": "%s hozzáadva ehhez: %s",
"activity-archived": "%s archiválva",
"activity-attached": "%s mellékletet csatolt a kártyához: %s",
"activity-created": "%s létrehozva",
"activity-excluded": "%s kizárva innen: %s",
"activity-imported": "%s importálva ebbe: %s, innen: %s",
"activity-imported-board": "%s importálva innen: %s",
"activity-joined": "%s csatlakozott",
"activity-moved": "moved %s from %s to %s",
"activity-on": "on %s",
"activity-removed": "removed %s from %s",
"activity-sent": "sent %s to %s",
"activity-moved": "%s áthelyezve: %s → %s",
"activity-on": "ekkor: %s",
"activity-removed": "%s eltávolítva innen: %s",
"activity-sent": "%s elküldve ide: %s",
"activity-unjoined": "%s kilépett a csoportból",
"activity-checklist-added": "added checklist to %s",
"activity-checklist-item-added": "added checklist item to '%s' in %s",
"add": "Hozzáad",
"add-attachment": "Add Attachment",
"add-board": "Add Board",
"add-card": "Add Card",
"add-checklist": "Add Checklist",
"add-checklist-item": "Elem hozzáadása a feladatlistához",
"add-cover": "Új borító",
"add-label": "Add Label",
"add-list": "Add List",
"activity-checklist-added": "ellenőrzőlista hozzáadva ehhez: %s",
"activity-checklist-item-added": "ellenőrzőlista elem hozzáadva ehhez: „%s”, ebben: %s",
"add": "Hozzáadás",
"add-attachment": "Melléklet hozzáadása",
"add-board": "Tábla hozzáadása",
"add-card": "Kártya hozzáadása",
"add-checklist": "Ellenőrzőlista hozzáadása",
"add-checklist-item": "Elem hozzáadása az ellenőrzőlistához",
"add-cover": "Borító hozzáadása",
"add-label": "Címke hozzáadása",
"add-list": "Lista hozzáadása",
"add-members": "Tagok hozzáadása",
"added": "Hozzáadva",
"addMemberPopup-title": "Tagok",
"admin": "Adminisztrátor",
"admin-desc": "Lehet szerkeszteni a lapot, tagokat távolíthat el, és és a fórumon-beállításainak módosítása.",
"admin-announcement": "Announcement",
"admin-announcement-active": "Active System-Wide Announcement",
"admin-announcement-title": "Announcement from Administrator",
"admin-desc": "Megtekintheti és szerkesztheti a kártyákat, eltávolíthat tagokat, valamint megváltoztathatja a tábla beállításait.",
"admin-announcement": "Bejelentés",
"admin-announcement-active": "Bekapcsolt rendszerszintű bejelentés",
"admin-announcement-title": "Bejelentés az adminisztrátortól",
"all-boards": "Összes tábla",
"and-n-other-card": "And __count__ other card",
"and-n-other-card_plural": "And __count__ other cards",
"and-n-other-card": "És __count__ egyéb kártya",
"and-n-other-card_plural": "És __count__ egyéb kártya",
"apply": "Alkalmaz",
"app-is-offline": "Wekan is loading, please wait. Refreshing the page will cause data loss. If Wekan does not load, please check that Wekan server has not stopped.",
"archive": "Archív",
"archive-all": "Összes archivált",
"archive-board": "Archívált tábla",
"archive-card": "Archívált kártya",
"archive-list": "Archive List",
"archive-selection": "Archiváld a megjelölteket",
"archiveBoardPopup-title": "Archiváljuk a táblát?",
"app-is-offline": "A Wekan betöltés alatt van, kérem várjon. Az oldal újratöltése adatvesztést okoz. Ha a Wekan nem töltődik be, akkor ellenőrizze, hogy a Wekan kiszolgáló nem állt-e le.",
"archive": "Archiválás",
"archive-all": "Összes archiválása",
"archive-board": "Tábla archiválása",
"archive-card": "Kártya archiválása",
"archive-list": "Lista archiválása",
"archive-selection": "Kijelölés archiválása",
"archiveBoardPopup-title": "Archiválja a táblát?",
"archived-items": "Archivált elemek",
"archived-boards": "Archived Boards",
"restore-board": "Restore Board",
"no-archived-boards": "No Archived Boards.",
"archived-boards": "Archivált táblák",
"restore-board": "Tábla visszaállítása",
"no-archived-boards": "Nincsenek archivált táblák.",
"archives": "Archívumok",
"assign-member": "Tag hozzárendelése",
"attached": "csatolva",
"attachment": "Csatolmány",
"attachment-delete-pop": "A csatolmány törlése végeleges. Nincs visszaállítás.",
"attachmentDeletePopup-title": "Törli a csatolmányt?",
"attachments": "Csatolmányok",
"auto-watch": "Automatically watch boards when they are created",
"avatar-too-big": "The avatar is too large (70KB max)",
"attachment": "Melléklet",
"attachment-delete-pop": "A melléklet törlése végeleges. Nincs visszaállítás.",
"attachmentDeletePopup-title": "Törli a mellékletet?",
"attachments": "Mellékletek",
"auto-watch": "Táblák automatikus megtekintése, amikor létrejönnek",
"avatar-too-big": "Az avatár túl nagy (legfeljebb 70 KB)",
"back": "Vissza",
"board-change-color": "Szín módosítása",
"board-nb-stars": "%s stars",
"board-change-color": "Szín megváltoztatása",
"board-nb-stars": "%s csillag",
"board-not-found": "A tábla nem található",
"board-private-info": "Eza tábla legyen <strong>privát</strong>.",
"board-public-info": "Ez a tábla legyen <strong>publikus</strong>.",
"boardChangeColorPopup-title": "A tábla háttérszínének módosítása",
"board-private-info": "Ez a tábla legyen <strong>személyes</strong>.",
"board-public-info": "Ez a tábla legyen <strong>nyilvános</strong>.",
"boardChangeColorPopup-title": "Tábla hátterének megváltoztatása",
"boardChangeTitlePopup-title": "Tábla átnevezése",
"boardChangeVisibilityPopup-title": "Láthatóság módosítása",
"boardChangeWatchPopup-title": "Óra módosítása",
"boardChangeVisibilityPopup-title": "Láthatóság megváltoztatása",
"boardChangeWatchPopup-title": "Megfigyelés megváltoztatása",
"boardMenuPopup-title": "Tábla menü",
"boards": "Táblák",
"bucket-example": "Like “Bucket List” for example",
"cancel": "Mégsem",
"card-archived": "Ez a kártya archivált.",
"bucket-example": "Mint például „Bakancslista”",
"cancel": "Mégse",
"card-archived": "Ez a kártya archiválva van.",
"card-comments-title": "Ez a kártya %s hozzászólást tartalmaz.",
"card-delete-notice": "A törlés végleges. Az összes eseményt elveszíti ami ehhez a kártyához tartozik.",
"card-delete-pop": "Minden esemény eltávolításra kerül a tevékenység listájából és többé nem lehet újra nyitni ezt a kártyát. Nincs visszaállítási lehetőség.",
"card-delete-suggest-archive": "Archiválhatod a kártyákat hogy eltávolítsd a tábláról és és megőrizheted az eseményt.",
"card-due": "Eddig",
"card-due-on": "Ebben az időpontban",
"card-edit-attachments": "Csatolmányok szerkesztése",
"card-edit-labels": "Cimkék szerkesztése",
"card-delete-notice": "A törlés végleges. Az összes műveletet elveszíti, amely ehhez a kártyához tartozik.",
"card-delete-pop": "Az összes művelet el lesz távolítva a tevékenységlistából, és nem lesz képes többé újra megnyitni a kártyát. Nincs visszaállítási lehetőség.",
"card-delete-suggest-archive": "Archiválhat egy kártyát, hogy eltávolítsa a tábláról, és megőrizze a tevékenységet.",
"card-due": "Esedékes",
"card-due-on": "Esedékes ekkor",
"card-edit-attachments": "Mellékletek szerkesztése",
"card-edit-labels": "Címkék szerkesztése",
"card-edit-members": "Tagok szerkesztése",
"card-labels-title": "A kártya cimkéjének módosítása",
"card-members-title": "Adj hozzá vagy távolítsd el a tagokat a táblákról és a kártyáról",
"card-start": "Start",
"card-start-on": "Kezdődik",
"card-labels-title": "A kártya címkéinek megváltoztatása.",
"card-members-title": "A tábla tagjainak hozzáadása vagy eltávolítása a kártyáról.",
"card-start": "Kezdés",
"card-start-on": "Kezdés ekkor",
"cardAttachmentsPopup-title": "Innen csatolva",
"cardDeletePopup-title": "Kártya törlése?",
"cardDetailsActionsPopup-title": "Kártya események",
"cardLabelsPopup-title": "Cimkék",
"cardDeletePopup-title": "Törli a kártyát?",
"cardDetailsActionsPopup-title": "Kártyaműveletek",
"cardLabelsPopup-title": "Címkék",
"cardMembersPopup-title": "Tagok",
"cardMorePopup-title": "Több",
"cards": "Kártyák",
"change": "Módosít",
"change-avatar": "Avatar módosítása",
"change-password": "Jelszó módosítása",
"change-permissions": "Hozzáférések módosítása",
"change-settings": "Beállítások módosítása",
"changeAvatarPopup-title": "Avatar módosítása",
"changeLanguagePopup-title": "Nyelv módosítása",
"changePasswordPopup-title": "Change Password",
"changePermissionsPopup-title": "Hozzáférések módosítása",
"changeSettingsPopup-title": "Beállítások módosítása",
"checklists": "Ellenőrzőlista ",
"click-to-star": "Kattints a csillagra és add a kiemeltekhez ezt a táblát.",
"click-to-unstar": "Kattints a csillagra hogy eltávolítsd a kiemeltek közül.",
"clipboard": "Vágólap vagy húzd és dobd",
"close": "Bezár",
"change": "Változtatás",
"change-avatar": "Avatár megváltoztatása",
"change-password": "Jelszó megváltoztatása",
"change-permissions": "Jogosultságok megváltoztatása",
"change-settings": "Beállítások megváltoztatása",
"changeAvatarPopup-title": "Avatár megváltoztatása",
"changeLanguagePopup-title": "Nyelv megváltoztatása",
"changePasswordPopup-title": "Jelszó megváltoztatása",
"changePermissionsPopup-title": "Jogosultságok megváltoztatása",
"changeSettingsPopup-title": "Beállítások megváltoztatása",
"checklists": "Ellenőrzőlisták",
"click-to-star": "Kattintson a tábla csillagozásához.",
"click-to-unstar": "Kattintson a tábla csillagának eltávolításához.",
"clipboard": "Vágólap vagy fogd és vidd",
"close": "Bezárás",
"close-board": "Tábla bezárása",
"close-board-pop": "You will be able to restore the board by clicking the “Archives” button from the home header.",
"close-board-pop": "Lehetősége lesz visszaállítani a táblát a kezdőlap fejlécében lévő „Archívumok” gombra kattintva.",
"color-black": "fekete",
"color-blue": "kék",
"color-green": "zöld",
"color-lime": "lime",
"color-lime": "citrus",
"color-orange": "narancssárga",
"color-pink": "rózsaszín",
"color-purple": "lila",
"color-red": "piros",
"color-sky": "világos kék",
"color-sky": "égszínkék",
"color-yellow": "sárga",
"comment": "Megjegyzés",
"comment-placeholder": "Write Comment",
"comment-only": "Comment only",
"comment-only-desc": "Can comment on cards only.",
"comment-placeholder": "Megjegyzés írása",
"comment-only": "Csak megjegyzés",
"comment-only-desc": "Csak megjegyzést írhat a kártyákhoz.",
"computer": "Számítógép",
"confirm-checklist-delete-dialog": "Are you sure you want to delete checklist",
"copy-card-link-to-clipboard": "Copy card link to clipboard",
"copyCardPopup-title": "Copy Card",
"create": "Létrehoz",
"createBoardPopup-title": "Új tábla",
"chooseBoardSourcePopup-title": "Import board",
"createLabelPopup-title": "Új cimke",
"current": "aktuális",
"confirm-checklist-delete-dialog": "Biztosan törölni szeretné az ellenőrzőlistát?",
"copy-card-link-to-clipboard": "Kártya hivatkozásának másolása a vágólapra",
"copyCardPopup-title": "Kártya másolása",
"create": "Létrehozás",
"createBoardPopup-title": "Tábla létrehozása",
"chooseBoardSourcePopup-title": "Tábla importálása",
"createLabelPopup-title": "Címke létrehozása",
"current": "jelenlegi",
"date": "Dátum",
"decline": "Elutasít",
"default-avatar": "Alapértelmezett avatar",
"delete": "Töröl",
"deleteLabelPopup-title": "Cimke törlése?",
"decline": "Elutasítás",
"default-avatar": "Alapértelmezett avatár",
"delete": "Törlés",
"deleteLabelPopup-title": "Törli a címkét?",
"description": "Leírás",
"disambiguateMultiLabelPopup-title": "Cimke értelmező esemény",
"disambiguateMultiMemberPopup-title": "Tag értelmező esemény",
"discard": "Elutasít",
"disambiguateMultiLabelPopup-title": "Címkeművelet egyértelműsítése",
"disambiguateMultiMemberPopup-title": "Tagművelet egyértelműsítése",
"discard": "Eldobás",
"done": "Kész",
"download": "Letöltés",
"edit": "Szerkeszt",
"edit-avatar": "Avatar módosítása",
"edit": "Szerkesztés",
"edit-avatar": "Avatár megváltoztatása",
"edit-profile": "Profil szerkesztése",
"edit-wip-limit": "Edit WIP Limit",
"soft-wip-limit": "Soft WIP Limit",
"editCardStartDatePopup-title": "Kezdő dátum módosítása",
"editCardDueDatePopup-title": "Lejárati dátum módosítása",
"editLabelPopup-title": "Cimke módosítása",
"edit-wip-limit": "WIP korlát szerkesztése",
"soft-wip-limit": "Gyenge WIP korlát",
"editCardStartDatePopup-title": "Kezdődátum megváltoztatása",
"editCardDueDatePopup-title": "Esedékesség dátumának megváltoztatása",
"editLabelPopup-title": "Címke megváltoztatása",
"editNotificationPopup-title": "Értesítés szerkesztése",
"editProfilePopup-title": "Edit Profile",
"email": "Email",
"email-enrollAccount-subject": "A fiókodat létrehozták a __siteName__ oldalon",
"email-enrollAccount-text": "Üdvözöljük __user__,\n\nA rendszer használatának megkezdéséhez Egyszerűen kattintson az alábbi linkre.\n\n__url__\n\nKöszönjük.",
"email-fail": "Email küldése sikertelen",
"email-invalid": "Nem megfelelő email cím",
"email-invite": "Meghívás Emailben",
"email-invite-subject": "__inviter__ küldött neked egy meghívót",
"email-invite-text": "Üdvözöljük __user__,\n\n__inviter__ meghívott téged közreműködésre az alábbi táblába \"__board__\".\n\nKérjük kattints az alábbi linkre:\n\n__url__\n\nKöszönjük.",
"email-resetPassword-subject": "Jelszó visszaállítása a __siteName__ oldalon",
"email-resetPassword-text": "Hello __user__,\n\nTo reset your password, simply click the link below.\n\n__url__\n\nThanks.",
"email-sent": "Email elküldve",
"email-verifyEmail-subject": "Igazold vissza az email címedet a __siteName__ oldalon",
"email-verifyEmail-text": "Üdvözöljük __user__,\n\nAz Email címe ellenőrzéséhez kérjük kattintson az alábbi linkre.\n\n__url__\n\nKöszönjük.",
"enable-wip-limit": "Enable WIP Limit",
"editProfilePopup-title": "Profil szerkesztése",
"email": "E-mail",
"email-enrollAccount-subject": "Létrejött a profilja a következő oldalon: __siteName__",
"email-enrollAccount-text": "Kedves __user__!\n\nA szolgáltatás használatának megkezdéséhez egyszerűen kattintson a lenti hivatkozásra.\n\n__url__\n\nKöszönjük.",
"email-fail": "Az e-mail küldése nem sikerült",
"email-invalid": "Érvénytelen e-mail",
"email-invite": "Meghívás e-mailben",
"email-invite-subject": "__inviter__ egy meghívást küldött Önnek",
"email-invite-text": "Kedves __user__!\n\n__inviter__ meghívta Önt, hogy csatlakozzon a(z) „__board__” táblán történő együttműködéshez.\n\nKattintson az alábbi hivatkozásra:\n\n__url__\n\nKöszönjük.",
"email-resetPassword-subject": "Jelszó visszaállítása ezen az oldalon: __siteName__",
"email-resetPassword-text": "Kedves __user__!\n\nA jelszava visszaállításához egyszerűen kattintson a lenti hivatkozásra.\n\n__url__\n\nKöszönjük.",
"email-sent": "E-mail elküldve",
"email-verifyEmail-subject": "Igazolja vissza az e-mail címét a következő oldalon: __siteName__",
"email-verifyEmail-text": "Kedves __user__!\n\nAz e-mail fiókjának visszaigazolásához egyszerűen kattintson a lenti hivatkozásra.\n\n__url__\n\nKöszönjük.",
"enable-wip-limit": "WIP korlát engedélyezése",
"error-board-doesNotExist": "Ez a tábla nem létezik",
"error-board-notAdmin": "Adminisztrátor joggal kell rendelkezned hogy megtehesd ezen a táblán",
"error-board-notAMember": "Az tábla tagjának kell lenned, hogy megtehesd",
"error-json-malformed": "Your text is not valid JSON",
"error-json-schema": "Your JSON data does not include the proper information in the correct format",
"error-board-notAdmin": "A tábla adminisztrátorának kell lennie, hogy ezt megtehesse",
"error-board-notAMember": "A tábla tagjának kell lennie, hogy ezt megtehesse",
"error-json-malformed": "A szöveg nem érvényes JSON",
"error-json-schema": "A JSON adatok nem a helyes formátumban tartalmazzák a megfelelő információkat",
"error-list-doesNotExist": "Ez a lista nem létezik",
"error-user-doesNotExist": "Ez a felhasználó nem létezik",
"error-user-notAllowSelf": "You can not invite yourself",
"error-user-notCreated": "Ez a felhasználó nem jött létre",
"error-user-notAllowSelf": "Nem hívhatja meg saját magát",
"error-user-notCreated": "Ez a felhasználó nincs létrehozva",
"error-username-taken": "Ez a felhasználónév már foglalt",
"error-email-taken": "Email has already been taken",
"error-email-taken": "Az e-mail már foglalt",
"export-board": "Tábla exportálása",
"filter": "Szűrő",
"filter-cards": "Kártyák szűrése",
"filter-clear": "Szürő törlése",
"filter-no-label": "Nincs cimke",
"filter-no-member": "Nincsenek tagok",
"filter-clear": "Szűrő törlése",
"filter-no-label": "Nincs címke",
"filter-no-member": "Nincs tag",
"filter-on": "Szűrő bekapcsolva",
"filter-on-desc": "Éppen kártyákat szűrsz ezen a táblán. Kattints ide a szűrő szerkesztéséhez.",
"filter-to-selection": "Szűrő beállítása a kijelölés szerint",
"filter-on-desc": "A kártyaszűrés be van kapcsolva ezen a táblán. Kattintson ide a szűrő szerkesztéséhez.",
"filter-to-selection": "Szűrés a kijelöléshez",
"fullname": "Teljes név",
"header-logo-title": "Vissza a táblák oldaladra.",
"header-logo-title": "Vissza a táblák oldalára.",
"hide-system-messages": "Rendszerüzenetek elrejtése",
"headerBarCreateBoardPopup-title": "Új tábla",
"headerBarCreateBoardPopup-title": "Tábla létrehozása",
"home": "Kezdőlap",
"import": "Importálás",
"import-board": "import board",
"import-board-c": "Import board",
"import-board-title-trello": "Tábla importálása a Trello-ról",
"import-board-title-wekan": "Import board from Wekan",
"import-sandstorm-warning": "Imported board will delete all existing data on board and replace it with imported board.",
"from-trello": "From Trello",
"from-wekan": "From Wekan",
"import-board-instruction-trello": "In your Trello board, go to 'Menu', then 'More', 'Print and Export', 'Export JSON', and copy the resulting text.",
"import-board-instruction-wekan": "In your Wekan board, go to 'Menu', then 'Export board', and copy the text in the downloaded file.",
"import-json-placeholder": "Paste your valid JSON data here",
"import-map-members": "Tagok megjelenítése",
"import-members-map": "Your imported board has some members. Please map the members you want to import to Wekan users",
"import-show-user-mapping": "Review members mapping",
"import-user-select": "Pick the Wekan user you want to use as this member",
"importMapMembersAddPopup-title": "Select Wekan member",
"info": "Version",
"import-board": "tábla importálása",
"import-board-c": "Tábla importálása",
"import-board-title-trello": "Tábla importálása a Trello oldalról",
"import-board-title-wekan": "Tábla importálása a Wekan oldalról",
"import-sandstorm-warning": "Az importált tábla törölni fogja a táblán lévő összes meglévő adatot, és kicseréli az importált táblával.",
"from-trello": "A Trello oldalról",
"from-wekan": "A Wekan oldalról",
"import-board-instruction-trello": "A Trello tábláján menjen a „Menü”, majd a „Több”, „Nyomtatás és exportálás”, „JSON exportálása” menüpontokra, és másolja ki az eredményül kapott szöveget.",
"import-board-instruction-wekan": "A Wekan tábláján menjen a „Menü”, majd a „Tábla exportálás” menüpontra, és másolja ki a letöltött fájlban lévő szöveget.",
"import-json-placeholder": "Illessze be ide az érvényes JSON adatokat",
"import-map-members": "Tagok leképezése",
"import-members-map": "Az importált táblának van néhány tagja. Képezze le a tagokat, akiket importálni szeretne a Wekan felhasználókba.",
"import-show-user-mapping": "Tagok leképezésének vizsgálata",
"import-user-select": "Válassza ki a Wekan felhasználót, akit ezen tagként használni szeretne",
"importMapMembersAddPopup-title": "Wekan tag kiválasztása",
"info": "Verzió",
"initials": "Kezdőbetűk",
"invalid-date": "Hibás dátum",
"joined": "becsatlakozott",
"just-invited": "Éppen most hívtak meg erre a táblára",
"invalid-date": "Érvénytelen dátum",
"joined": "csatlakozott",
"just-invited": "Éppen most hívták meg erre a táblára",
"keyboard-shortcuts": "Gyorsbillentyűk",
"label-create": "Új cimke",
"label-default": "%s cimke (alapértelmezett)",
"label-delete-pop": "Nincsen visszaállítás. Ez el fogja távolítani ezt a cimkét az összes kártyáról és törli az előzményeket.",
"labels": "Cimkék",
"label-create": "Címke létrehozása",
"label-default": "%s címke (alapértelmezett)",
"label-delete-pop": "Nincs visszavonás. Ez el fogja távolítani ezt a címkét az összes kártyáról, és törli az előzményeit.",
"labels": "Címkék",
"language": "Nyelv",
"last-admin-desc": "You cant change roles because there must be at least one admin.",
"last-admin-desc": "Nem változtathatja meg a szerepeket, mert legalább egy adminisztrátora szükség van.",
"leave-board": "Tábla elhagyása",
"leave-board-pop": "Are you sure you want to leave __boardTitle__? You will be removed from all cards on this board.",
"leaveBoardPopup-title": "Leave Board ?",
"link-card": "Kapcsolja ehhez a kártyához",
"list-archive-cards": "Archiváld az összes kártyát ezen a listán.",
"list-archive-cards-pop": "This will remove all the cards in this list from the board. To view archived cards and bring them back to the board, click “Menu” > “Archived Items”.",
"list-move-cards": "Move all cards in this list",
"list-select-cards": "Válaszd ki az összes kártyát ezen a listán",
"listActionPopup-title": "Események megjelenítése",
"leave-board-pop": "Biztosan el szeretné hagyni ezt a táblát: __boardTitle__? El lesz távolítva a táblán lévő összes kártyáról.",
"leaveBoardPopup-title": "Elhagyja a táblát?",
"link-card": "Összekapcsolás ezzel a kártyával",
"list-archive-cards": "Az összes kártya archiválása ezen a listán",
"list-archive-cards-pop": "Ez el fogja távolítani a listán lévő összes kártyát a tábláról. Az archivált kártyák megtekintéséhez, és azok visszahozásához a táblára, kattintson a „Menü” → „Archivált elemek” menüpontra.",
"list-move-cards": "A listán lévő összes kártya áthelyezése",
"list-select-cards": "A listán lévő összes kártya kiválasztása",
"listActionPopup-title": "Műveletek felsorolása",
"listImportCardPopup-title": "Trello kártya importálása",
"listMorePopup-title": "Több",
"link-list": "Link to this list",
"list-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the list. There is no undo.",
"list-delete-suggest-archive": "You can archive a list to remove it from the board and preserve the activity.",
"link-list": "Összekapcsolás ezzel a listával",
"list-delete-pop": "Az összes művelet el lesz távolítva a tevékenységlistából, és nem lesz lehetősége visszaállítani a listát. Nincs visszavonás.",
"list-delete-suggest-archive": "Archiválhat egy listát, hogy eltávolítsa a tábláról, és megőrizze a tevékenységet.",
"lists": "Listák",
"log-out": "Kijelentkezés",
"log-in": "Bejelentkezés",
@ -266,73 +266,73 @@
"memberMenuPopup-title": "Tagok beállításai",
"members": "Tagok",
"menu": "Menü",
"move-selection": "Kijelöltek mozgatása",
"moveCardPopup-title": "Kártya mozgatása",
"moveCardToBottom-title": "Mozgatás az aljára",
"moveCardToTop-title": "Mozgatás a tetejére",
"moveSelectionPopup-title": "Kijelöltek mozgatása",
"multi-selection": "Kijelöltek mozgatása",
"move-selection": "Kijelölés áthelyezése",
"moveCardPopup-title": "Kártya áthelyezése",
"moveCardToBottom-title": "Áthelyezés az aljára",
"moveCardToTop-title": "Áthelyezés a tetejére",
"moveSelectionPopup-title": "Kijelölés áthelyezése",
"multi-selection": "Többszörös kijelölés",
"multi-selection-on": "Többszörös kijelölés bekapcsolva",
"muted": "Elnémítva",
"muted-info": "Soha nem leszel értesítve ennek a táblának a módosításairól.",
"muted": "Némítva",
"muted-info": "Soha sem lesz értesítve a táblán lévő semmilyen változásról.",
"my-boards": "Saját tábláim",
"name": "Név",
"no-archived-cards": "Nincsenek archivált kártyák.",
"no-archived-lists": "Nincsenek archivált listák.",
"no-results": "Nincs eredmény",
"no-results": "Nincs találat",
"normal": "Normál",
"normal-desc": "Megtekinthet és szerkeszthet kártyákat. Nem módosíthatja a beállításokat.",
"not-accepted-yet": "A meghívást még nem fogadták el",
"notify-participate": "Receive updates to any cards you participate as creater or member",
"notify-watch": "Receive updates to any boards, lists, or cards youre watching",
"normal-desc": "Megtekintheti és szerkesztheti a kártyákat. Nem változtathatja meg a beállításokat.",
"not-accepted-yet": "A meghívás még nincs elfogadva",
"notify-participate": "Frissítések fogadása bármely kártyánál, amelynél létrehozóként vagy tagként vesz részt",
"notify-watch": "Frissítések fogadása bármely táblánál, listánál vagy kártyánál, amelyet megtekint",
"optional": "opcionális",
"or": "vagy",
"page-maybe-private": "Ez az oldal privát. A megtekintéshez jelentkezz be itt: <a href='%s'>bejelentkezés</a>.",
"page-maybe-private": "Ez az oldal személyes lehet. Esetleg megtekintheti, ha <a href='%s'>bejelentkezik</a>.",
"page-not-found": "Az oldal nem található.",
"password": "Jelszó",
"paste-or-dragdrop": "illeszd be, vagy húzd ide a kép fájlt (csak képeket)",
"participating": "Résztvevő",
"paste-or-dragdrop": "illessze be, vagy fogd és vidd módon húzza ide a képfájlt (csak képeket)",
"participating": "Részvétel",
"preview": "Előnézet",
"previewAttachedImagePopup-title": "Előnézet",
"previewClipboardImagePopup-title": "Előnézet",
"private": "Privát",
"private-desc": "Ez a tábla privát. Csak a táblához hozzáadott emberek tekinthetik meg és szerkeszthetik.",
"private": "Személyes",
"private-desc": "Ez a tábla személyes. Csak a táblához hozzáadott emberek tekinthetik meg és szerkeszthetik.",
"profile": "Profil",
"public": "Publikus",
"public-desc": "Ez a tábla publikus. A link birtokában bárki megtekintheti és látszik a keresőkben mint a Google. Csak azok az emberek szerkeszthetik akiket hozzáadtak.",
"quick-access-description": "Emeled ki a táblát hogy létrehozz egy parancsikont ezen a sávon.",
"public": "Nyilvános",
"public-desc": "Ez a tábla nyilvános. A hivatkozás birtokában bárki számára látható, és megjelenik az olyan keresőmotorokban, mint például a Google. Csak a táblához hozzáadott emberek szerkeszthetik.",
"quick-access-description": "Csillagozzon meg egy táblát egy gyors hivatkozás hozzáadásához ebbe a sávba.",
"remove-cover": "Borító eltávolítása",
"remove-from-board": "Eltávolítás a tábláról",
"remove-label": "Remove Label",
"listDeletePopup-title": "Delete List ?",
"remove-label": "Címke eltávolítása",
"listDeletePopup-title": "Törli a listát?",
"remove-member": "Tag eltávolítása",
"remove-member-from-card": "Eltávolítás a kártyáról",
"remove-member-pop": "Remove __name__ (__username__) from __boardTitle__? The member will be removed from all cards on this board. They will receive a notification.",
"remove-member-pop": "Eltávolítja __name__ (__username__) felhasználót a tábláról: __boardTitle__? A tag el lesz távolítva a táblán lévő összes kártyáról. Értesítést fog kapni erről.",
"removeMemberPopup-title": "Eltávolítja a tagot?",
"rename": "Átnevez",
"rename": "Átnevezés",
"rename-board": "Tábla átnevezése",
"restore": "Visszaállít",
"restore": "Visszaállítás",
"save": "Mentés",
"search": "Keresés",
"select-color": "Select Color",
"set-wip-limit-value": "Set a limit for the maximum number of tasks in this list",
"setWipLimitPopup-title": "Set WIP Limit",
"shortcut-assign-self": "Add hozzá magad az aktuális kártyához",
"shortcut-autocomplete-emoji": "Automatikus emoji kiegészítés",
"shortcut-autocomplete-members": "Automatikus tag név kiegészítés",
"select-color": "Szín kiválasztása",
"set-wip-limit-value": "Korlát beállítása a listán lévő feladatok legnagyobb számához",
"setWipLimitPopup-title": "WIP korlát beállítása",
"shortcut-assign-self": "Önmaga hozzárendelése a jelenlegi kártyához",
"shortcut-autocomplete-emoji": "Emodzsi automatikus kiegészítése",
"shortcut-autocomplete-members": "Tagok automatikus kiegészítése",
"shortcut-clear-filters": "Összes szűrő törlése",
"shortcut-close-dialog": "Beszélgetés bezárása",
"shortcut-close-dialog": "Párbeszédablak bezárása",
"shortcut-filter-my-cards": "Kártyáim szűrése",
"shortcut-show-shortcuts": "Hozd létre ezt a hivatkozási listát",
"shortcut-toggle-filterbar": "Szűrő oldalsáv kényszerítése",
"shortcut-toggle-sidebar": "Tábla oldalsáv kényszerítése",
"show-cards-minimum-count": "Mutasd a kártyák számát ha a lista többet tartalmaz mint",
"sidebar-open": "Oldalsáv megjelenítése",
"sidebar-close": "Oldalsáv elrejtése",
"shortcut-show-shortcuts": "A hivatkozási lista előre hozása",
"shortcut-toggle-filterbar": "Szűrő oldalsáv ki- és bekapcsolása",
"shortcut-toggle-sidebar": "Tábla oldalsáv ki- és bekapcsolása",
"show-cards-minimum-count": "Kártyaszámok megjelenítése, ha a lista többet tartalmaz mint",
"sidebar-open": "Oldalsáv megnyitása",
"sidebar-close": "Oldalsáv bezárása",
"signupPopup-title": "Fiók létrehozása",
"star-board-title": "Kattints a tábla kiemeléséhez. Megjelenik a táblák lista tetején.",
"starred-boards": "Kiemelt táblák",
"starred-boards-description": "A kiemelt táblák megjelennek a táblák lista tetején.",
"star-board-title": "Kattintson a tábla csillagozásához. Meg fog jelenni a táblalistája tetején.",
"starred-boards": "Csillagozott táblák",
"starred-boards-description": "A csillagozott táblák megjelennek a táblalistája tetején.",
"subscribe": "Feliratkozás",
"team": "Csapat",
"this-board": "ez a tábla",
@ -340,69 +340,72 @@
"time": "Idő",
"title": "Cím",
"tracking": "Követés",
"tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.",
"unassign-member": "Tag eltávolítása",
"unsaved-description": "Van egy elmentetlen leírásod.",
"unwatch": "Figyelés leállítása",
"upload": "Feltölt",
"upload-avatar": "Tölts fel egy avatart",
"uploaded-avatar": "Feltöltött egy avatart",
"tracking-info": "Értesítve lesz az összes olyan kártya változásáról, amelyen létrehozóként vagy tagként vesz részt.",
"unassign-member": "Tag hozzárendelésének megszüntetése",
"unsaved-description": "Van egy mentetlen leírása.",
"unwatch": "Megfigyelés megszüntetése",
"upload": "Feltöltés",
"upload-avatar": "Egy avatár feltöltése",
"uploaded-avatar": "Egy avatár feltöltve",
"username": "Felhasználónév",
"view-it": "Megtekintés",
"warn-list-archived": "figyelem: ez a kártya szerepel az egyik archiv listán",
"watch": "Figyel",
"watching": "Megfigyelt",
"watching-info": "Értesítve leszel minden módosításról ebben a táblában.",
"warn-list-archived": "figyelmeztetés: ez a kártya egy archivált listán van",
"watch": "Megfigyelés",
"watching": "Megfigyelés",
"watching-info": "Értesítve lesz a táblán lévő összes változásról",
"welcome-board": "Üdvözlő tábla",
"welcome-list1": "Alapok",
"welcome-list2": "Speciális",
"what-to-do": "Mit akarsz csinálni?",
"wipLimitErrorPopup-title": "Invalid WIP Limit",
"wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.",
"wipLimitErrorPopup-dialog-pt2": "Please move some tasks out of this list, or set a higher WIP limit.",
"admin-panel": "Adminisztrációs felület",
"what-to-do": "Mit szeretne tenni?",
"wipLimitErrorPopup-title": "Érvénytelen WIP korlát",
"wipLimitErrorPopup-dialog-pt1": "A listán lévő feladatok száma magasabb a meghatározott WIP korlátnál.",
"wipLimitErrorPopup-dialog-pt2": "Helyezzen át néhány feladatot a listáról, vagy állítson be magasabb WIP korlátot.",
"admin-panel": "Adminisztrációs panel",
"settings": "Beállítások",
"people": "Ember",
"people": "Emberek",
"registration": "Regisztráció",
"disable-self-registration": "Egyéni regisztráció kikapcsolva",
"disable-self-registration": "Önregisztráció letiltása",
"invite": "Meghívás",
"invite-people": "Emberek meghívása",
"to-boards": "Táblá(k)hoz",
"email-addresses": "Email címek",
"smtp-host-description": "A levelezésed SMTP szerverének IP címe.",
"smtp-port-description": "Az SMTP szervered portja a kimenő levelekhez.",
"smtp-tls-description": "Enable TLS support for SMTP server",
"to-boards": "Táblákhoz",
"email-addresses": "E-mail címek",
"smtp-host-description": "Az SMTP kiszolgáló címe, amely az e-maileket kezeli.",
"smtp-port-description": "Az SMTP kiszolgáló által használt port a kimenő e-mailekhez.",
"smtp-tls-description": "TLS támogatás engedélyezése az SMTP kiszolgálónál",
"smtp-host": "SMTP kiszolgáló",
"smtp-port": "SMTP port",
"smtp-username": "Felhasználónév",
"smtp-password": "Jelszó",
"smtp-tls": "TLS support",
"send-from": "Tól",
"invitation-code": "Meghívó kód",
"email-invite-register-subject": "__inviter__ küldött neked egy meghívót",
"email-invite-register-text": "Kedves __user__,\n\n__inviter__ meghívott közreműködésre a Wekanba.\n\nKérlek kövesd az alábbi linket:\n__url__\n\nA meghívókódod: __icode__\n\nKöszönjük.",
"error-invitation-code-not-exist": "A meghívó kódja nem érvényes",
"error-notAuthorized": "You are not authorized to view this page.",
"outgoing-webhooks": "Outgoing Webhooks",
"outgoingWebhooksPopup-title": "Outgoing Webhooks",
"new-outgoing-webhook": "New Outgoing Webhook",
"no-name": "(Unknown)",
"Wekan_version": "Wekan version",
"Node_version": "Node version",
"OS_Arch": "OS Arch",
"OS_Cpus": "OS CPU Count",
"OS_Freemem": "OS Free Memory",
"OS_Loadavg": "OS Load Average",
"OS_Platform": "OS Platform",
"OS_Release": "OS Release",
"OS_Totalmem": "OS Total Memory",
"OS_Type": "OS Type",
"OS_Uptime": "OS Uptime",
"hours": "hours",
"minutes": "minutes",
"seconds": "seconds",
"yes": "Yes",
"no": "No",
"accounts": "Accounts",
"accounts-allowEmailChange": "Allow Email Change"
"smtp-tls": "TLS támogatás",
"send-from": "Feladó",
"invitation-code": "Meghívási kód",
"email-invite-register-subject": "__inviter__ egy meghívás küldött Önnek",
"email-invite-register-text": "Kedves __user__!\n\n__inviter__ meghívta Önt közreműködésre a Wekan oldalra.\n\nKövesse a lenti hivatkozást:\n__url__\n\nÉs a meghívási kódja: __icode__\n\nKöszönjük.",
"error-invitation-code-not-exist": "A meghívási kód nem létezik",
"error-notAuthorized": "Nincs jogosultsága az oldal megtekintéséhez.",
"outgoing-webhooks": "Kimenő webhurkok",
"outgoingWebhooksPopup-title": "Kimenő webhurkok",
"new-outgoing-webhook": "Új kimenő webhurok",
"no-name": "(Ismeretlen)",
"Wekan_version": "Wekan verzió",
"Node_version": "Node verzió",
"OS_Arch": "Operációs rendszer architektúrája",
"OS_Cpus": "Operációs rendszer CPU száma",
"OS_Freemem": "Operációs rendszer szabad memóriája",
"OS_Loadavg": "Operációs rendszer átlagos terhelése",
"OS_Platform": "Operációs rendszer platformja",
"OS_Release": "Operációs rendszer kiadása",
"OS_Totalmem": "Operációs rendszer összes memóriája",
"OS_Type": "Operációs rendszer típusa",
"OS_Uptime": "Operációs rendszer üzemideje",
"hours": "óra",
"minutes": "perc",
"seconds": "másodperc",
"yes": "Igen",
"no": "Nem",
"accounts": "Fiókok",
"accounts-allowEmailChange": "E-mail megváltoztatásának engedélyezése",
"createdAt": "Created at",
"verified": "Verified",
"active": "Active"
}

View file

@ -404,5 +404,8 @@
"yes": "Yes",
"no": "No",
"accounts": "Accounts",
"accounts-allowEmailChange": "Allow Email Change"
"accounts-allowEmailChange": "Allow Email Change",
"createdAt": "Created at",
"verified": "Verified",
"active": "Active"
}

View file

@ -172,7 +172,7 @@
"edit-avatar": "Cambia avatar",
"edit-profile": "Modifica profilo",
"edit-wip-limit": "Modifica limite di work in progress",
"soft-wip-limit": "Soft WIP Limit",
"soft-wip-limit": "Limite Work in progress soft",
"editCardStartDatePopup-title": "Cambia data di inizio",
"editCardDueDatePopup-title": "Cambia data di scadenza",
"editLabelPopup-title": "Cambia etichetta",
@ -404,5 +404,8 @@
"yes": "Sì",
"no": "No",
"accounts": "Profili",
"accounts-allowEmailChange": "Permetti modifica dell'email"
"accounts-allowEmailChange": "Permetti modifica dell'email",
"createdAt": "Created at",
"verified": "Verified",
"active": "Active"
}

View file

@ -404,5 +404,8 @@
"yes": "はい",
"no": "いいえ",
"accounts": "アカウント",
"accounts-allowEmailChange": "メールアドレスの変更を許可"
"accounts-allowEmailChange": "メールアドレスの変更を許可",
"createdAt": "Created at",
"verified": "Verified",
"active": "Active"
}

View file

@ -404,5 +404,8 @@
"yes": "Yes",
"no": "No",
"accounts": "Accounts",
"accounts-allowEmailChange": "Allow Email Change"
"accounts-allowEmailChange": "Allow Email Change",
"createdAt": "Created at",
"verified": "Verified",
"active": "Active"
}

View file

@ -404,5 +404,8 @@
"yes": "Yes",
"no": "No",
"accounts": "Accounts",
"accounts-allowEmailChange": "Allow Email Change"
"accounts-allowEmailChange": "Allow Email Change",
"createdAt": "Created at",
"verified": "Verified",
"active": "Active"
}

View file

@ -404,5 +404,8 @@
"yes": "Ja",
"no": "Nee",
"accounts": "Accounts",
"accounts-allowEmailChange": "Sta E-mailadres wijzigingen toe"
"accounts-allowEmailChange": "Sta E-mailadres wijzigingen toe",
"createdAt": "Created at",
"verified": "Verified",
"active": "Active"
}

View file

@ -404,5 +404,8 @@
"yes": "Tak",
"no": "Nie",
"accounts": "Konto",
"accounts-allowEmailChange": "Zezwól na zmianę adresu email"
"accounts-allowEmailChange": "Zezwól na zmianę adresu email",
"createdAt": "Created at",
"verified": "Verified",
"active": "Active"
}

View file

@ -404,5 +404,8 @@
"yes": "Sim",
"no": "Não",
"accounts": "Contas",
"accounts-allowEmailChange": "Permitir Mudança de Email"
"accounts-allowEmailChange": "Permitir Mudança de Email",
"createdAt": "Created at",
"verified": "Verified",
"active": "Active"
}

View file

@ -404,5 +404,8 @@
"yes": "Yes",
"no": "No",
"accounts": "Accounts",
"accounts-allowEmailChange": "Allow Email Change"
"accounts-allowEmailChange": "Allow Email Change",
"createdAt": "Created at",
"verified": "Verified",
"active": "Active"
}

View file

@ -404,5 +404,8 @@
"yes": "Yes",
"no": "No",
"accounts": "Accounts",
"accounts-allowEmailChange": "Allow Email Change"
"accounts-allowEmailChange": "Allow Email Change",
"createdAt": "Created at",
"verified": "Verified",
"active": "Active"
}

View file

@ -404,5 +404,8 @@
"yes": "Yes",
"no": "No",
"accounts": "Accounts",
"accounts-allowEmailChange": "Allow Email Change"
"accounts-allowEmailChange": "Allow Email Change",
"createdAt": "Created at",
"verified": "Verified",
"active": "Active"
}

View file

@ -54,9 +54,9 @@
"addMemberPopup-title": "Medlemmar",
"admin": "Adminstratör",
"admin-desc": "Kan visa och redigera kort, ta bort medlemmar och ändra inställningarna för anslagstavlan.",
"admin-announcement": "Announcement",
"admin-announcement-active": "Active System-Wide Announcement",
"admin-announcement-title": "Announcement from Administrator",
"admin-announcement": "Meddelande",
"admin-announcement-active": "Aktivt system-brett meddelande",
"admin-announcement-title": "Meddelande från administratör",
"all-boards": "Alla anslagstavlor",
"and-n-other-card": "Och __count__ annat kort",
"and-n-other-card_plural": "Och __count__ andra kort",
@ -171,8 +171,8 @@
"edit": "Redigera",
"edit-avatar": "Ändra avatar",
"edit-profile": "Redigera profil",
"edit-wip-limit": "Edit WIP Limit",
"soft-wip-limit": "Soft WIP Limit",
"edit-wip-limit": "Redigera WIP-gränsen",
"soft-wip-limit": "Mjuk WIP-gräns",
"editCardStartDatePopup-title": "Ändra startdatum",
"editCardDueDatePopup-title": "Ändra förfallodatum",
"editLabelPopup-title": "Ändra etikett",
@ -191,7 +191,7 @@
"email-sent": "E-post skickad",
"email-verifyEmail-subject": "Verifiera din e-post adress på __siteName__",
"email-verifyEmail-text": "Hej __user__,\n\nFör att verifiera din konto e-post, klicka på länken nedan.\n\n__url__\n\nTack.",
"enable-wip-limit": "Enable WIP Limit",
"enable-wip-limit": "Aktivera WIP-gräns",
"error-board-doesNotExist": "Denna anslagstavla finns inte",
"error-board-notAdmin": "Du måste vara administratör för denna anslagstavla för att göra det",
"error-board-notAMember": "Du måste vara medlem i denna anslagstavla för att göra det",
@ -246,8 +246,8 @@
"language": "Språk",
"last-admin-desc": "Du kan inte ändra roller för det måste finnas minst en administratör.",
"leave-board": "Lämna anslagstavla",
"leave-board-pop": "Are you sure you want to leave __boardTitle__? You will be removed from all cards on this board.",
"leaveBoardPopup-title": "Leave Board ?",
"leave-board-pop": "Är du säker på att du vill lämna __boardTitle__? Du kommer att tas bort från alla kort på den här anslagstavlan.",
"leaveBoardPopup-title": "Lämna anslagstavla ?",
"link-card": "Länka till detta kort",
"list-archive-cards": "Arkivera alla kort i denna lista",
"list-archive-cards-pop": "Detta tar bort alla kort i denna lista från anslagstavlan. Om du se arkiverade kort och få dem tillbaka till anslagstavlan, klicka på ”Meny” > ”Arkiverade objekt”.",
@ -315,8 +315,8 @@
"save": "Spara",
"search": "Sök",
"select-color": "Välj färg",
"set-wip-limit-value": "Set a limit for the maximum number of tasks in this list",
"setWipLimitPopup-title": "Set WIP Limit",
"set-wip-limit-value": "Ange en gräns för det maximala antalet uppgifter i den här listan",
"setWipLimitPopup-title": "Ställ in WIP-gräns",
"shortcut-assign-self": "Tilldela dig nuvarande kort",
"shortcut-autocomplete-emoji": "Komplettera automatiskt emoji",
"shortcut-autocomplete-members": "Komplettera automatiskt medlemmar",
@ -357,9 +357,9 @@
"welcome-list1": "Grunderna",
"welcome-list2": "Avancerad",
"what-to-do": "Vad vill du göra?",
"wipLimitErrorPopup-title": "Invalid WIP Limit",
"wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.",
"wipLimitErrorPopup-dialog-pt2": "Please move some tasks out of this list, or set a higher WIP limit.",
"wipLimitErrorPopup-title": "Ogiltig WIP-gräns",
"wipLimitErrorPopup-dialog-pt1": "Antalet uppgifter i den här listan är högre än WIP-gränsen du har definierat.",
"wipLimitErrorPopup-dialog-pt2": "Flytta några uppgifter ur listan, eller ställ in en högre WIP-gräns.",
"admin-panel": "Administratörspanel ",
"settings": "Inställningar",
"people": "Personer",
@ -404,5 +404,8 @@
"yes": "Ja",
"no": "Nej",
"accounts": "Konton",
"accounts-allowEmailChange": "Tillåt e-poständring"
"accounts-allowEmailChange": "Tillåt e-poständring",
"createdAt": "Created at",
"verified": "Verified",
"active": "Active"
}

View file

@ -404,5 +404,8 @@
"yes": "Yes",
"no": "No",
"accounts": "Accounts",
"accounts-allowEmailChange": "Allow Email Change"
"accounts-allowEmailChange": "Allow Email Change",
"createdAt": "Created at",
"verified": "Verified",
"active": "Active"
}

View file

@ -404,5 +404,8 @@
"yes": "Yes",
"no": "No",
"accounts": "Accounts",
"accounts-allowEmailChange": "Allow Email Change"
"accounts-allowEmailChange": "Allow Email Change",
"createdAt": "Created at",
"verified": "Verified",
"active": "Active"
}

View file

@ -6,7 +6,7 @@
"act-addChecklistItem": "__checklistItem__ öğesini __card__ kartındaki __checklist__ yapılacak listesine ekledi",
"act-addComment": "__card__ kartına bir yorum bıraktı: __comment__",
"act-createBoard": "__board__ panosunu oluşturdu",
"act-createCard": "__card__ kartını ___list__ listesine ekledi.",
"act-createCard": "__card__ kartını ___list__ listesine ekledi",
"act-createList": "__list__ listesini __board__ panosuna ekledi",
"act-addBoardMember": "__member__ kullanıcısını __board__ panosuna ekledi",
"act-archivedBoard": "__board__ panosunu arşivledi",
@ -172,7 +172,7 @@
"edit-avatar": "Avatar Değiştir",
"edit-profile": "Profili Düzenle",
"edit-wip-limit": "Devam Eden İş Sınırını Düzenle",
"soft-wip-limit": "Soft WIP Limit",
"soft-wip-limit": "Zayıf Devam Eden İş Sınırı",
"editCardStartDatePopup-title": "Başlangıç tarihini değiştir",
"editCardDueDatePopup-title": "Bitiş tarihini değiştir",
"editLabelPopup-title": "Etiket Değiştir",
@ -390,19 +390,22 @@
"Wekan_version": "Wekan sürümü",
"Node_version": "Node sürümü",
"OS_Arch": "İşletim Sistemi Mimarisi",
"OS_Cpus": S İşlemci Sayısı",
"OS_Freemem": Ş Kullanılmayan Bellek",
"OS_Loadavg": Ş Ortalama Yük",
"OS_Platform": Ş Platformu",
"OS_Cpus": şletim Sistemi İşlemci Sayısı",
"OS_Freemem": şletim Sistemi Kullanılmayan Bellek",
"OS_Loadavg": şletim Sistemi Ortalama Yük",
"OS_Platform": şletim Sistemi Platformu",
"OS_Release": "İşletim Sistemi Sürümü",
"OS_Totalmem": Ş Toplam Belleği",
"OS_Type": Ş Tipi",
"OS_Uptime": Ş Toplam Açık Kalınan Süre",
"OS_Totalmem": şletim Sistemi Toplam Belleği",
"OS_Type": şletim Sistemi Tipi",
"OS_Uptime": şletim Sistemi Toplam Açık Kalınan Süre",
"hours": "saat",
"minutes": "dakika",
"seconds": "saniye",
"yes": "Evet",
"no": "Hayır",
"accounts": "Hesaplar",
"accounts-allowEmailChange": "E-posta Değiştirmeye İzin Ver"
"accounts-allowEmailChange": "E-posta Değiştirmeye İzin Ver",
"createdAt": "Created at",
"verified": "Verified",
"active": "Active"
}

View file

@ -404,5 +404,8 @@
"yes": "Yes",
"no": "No",
"accounts": "Accounts",
"accounts-allowEmailChange": "Allow Email Change"
"accounts-allowEmailChange": "Allow Email Change",
"createdAt": "Created at",
"verified": "Verified",
"active": "Active"
}

View file

@ -404,5 +404,8 @@
"yes": "Yes",
"no": "No",
"accounts": "Accounts",
"accounts-allowEmailChange": "Allow Email Change"
"accounts-allowEmailChange": "Allow Email Change",
"createdAt": "Created at",
"verified": "Verified",
"active": "Active"
}

View file

@ -404,5 +404,8 @@
"yes": "是",
"no": "否",
"accounts": "账号",
"accounts-allowEmailChange": "允许邮箱变更"
"accounts-allowEmailChange": "允许邮箱变更",
"createdAt": "Created at",
"verified": "Verified",
"active": "Active"
}

View file

@ -404,5 +404,8 @@
"yes": "是",
"no": "否",
"accounts": "帳號",
"accounts-allowEmailChange": "准許變更電子信箱"
"accounts-allowEmailChange": "准許變更電子信箱",
"createdAt": "Created at",
"verified": "Verified",
"active": "Active"
}

View file

@ -118,6 +118,13 @@ Users.attachSchema(new SimpleSchema({
},
}));
Users.allow({
update(userId) {
const user = Users.findOne(userId);
return user && Meteor.user().isAdmin;
},
});
// Search a user in the complete server database by its name or username. This
// is used for instance to add a new user to a board.
const searchInFields = ['username', 'profile.fullname'];
@ -152,36 +159,36 @@ if (Meteor.isClient) {
Users.helpers({
boards() {
return Boards.find({ userId: this._id });
return Boards.find({userId: this._id});
},
starredBoards() {
const { starredBoards = [] } = this.profile;
return Boards.find({ archived: false, _id: { $in: starredBoards } });
const {starredBoards = []} = this.profile;
return Boards.find({archived: false, _id: {$in: starredBoards}});
},
hasStarred(boardId) {
const { starredBoards = [] } = this.profile;
const {starredBoards = []} = this.profile;
return _.contains(starredBoards, boardId);
},
invitedBoards() {
const { invitedBoards = [] } = this.profile;
return Boards.find({ archived: false, _id: { $in: invitedBoards } });
const {invitedBoards = []} = this.profile;
return Boards.find({archived: false, _id: {$in: invitedBoards}});
},
isInvitedTo(boardId) {
const { invitedBoards = [] } = this.profile;
const {invitedBoards = []} = this.profile;
return _.contains(invitedBoards, boardId);
},
hasTag(tag) {
const { tags = [] } = this.profile;
const {tags = []} = this.profile;
return _.contains(tags, tag);
},
hasNotification(activityId) {
const { notifications = [] } = this.profile;
const {notifications = []} = this.profile;
return _.contains(notifications, activityId);
},
@ -191,7 +198,7 @@ Users.helpers({
},
getEmailBuffer() {
const { emailBuffer = [] } = this.profile;
const {emailBuffer = []} = this.profile;
return emailBuffer;
},
@ -316,22 +323,22 @@ Users.mutations({
},
setAvatarUrl(avatarUrl) {
return { $set: { 'profile.avatarUrl': avatarUrl } };
return {$set: {'profile.avatarUrl': avatarUrl}};
},
setShowCardsCountAt(limit) {
return { $set: { 'profile.showCardsCountAt': limit } };
return {$set: {'profile.showCardsCountAt': limit}};
},
});
Meteor.methods({
setUsername(username) {
setUsername(username, userId) {
check(username, String);
const nUsersWithUsername = Users.find({ username }).count();
const nUsersWithUsername = Users.find({username}).count();
if (nUsersWithUsername > 0) {
throw new Meteor.Error('username-already-taken');
} else {
Users.update(this.userId, { $set: { username } });
Users.update(userId, {$set: {username}});
}
},
toggleSystemMessages() {
@ -342,13 +349,13 @@ Meteor.methods({
check(limit, Number);
Meteor.user().setShowCardsCountAt(limit);
},
setEmail(email) {
setEmail(email, userId) {
check(email, String);
const existingUser = Users.findOne({ 'emails.address': email }, { fields: { _id: 1 } });
const existingUser = Users.findOne({'emails.address': email}, {fields: {_id: 1}});
if (existingUser) {
throw new Meteor.Error('email-already-taken');
} else {
Users.update(this.userId, {
Users.update(userId, {
$set: {
emails: [{
address: email,
@ -358,11 +365,12 @@ Meteor.methods({
});
}
},
setUsernameAndEmail(username, email) {
setUsernameAndEmail(username, email, userId) {
check(username, String);
check(email, String);
Meteor.call('setUsername', username);
Meteor.call('setEmail', email);
check(userId, String);
Meteor.call('setUsername', username, userId);
Meteor.call('setEmail', email, userId);
},
});
@ -379,8 +387,8 @@ if (Meteor.isServer) {
board &&
board.members &&
_.contains(_.pluck(board.members, 'userId'), inviter._id) &&
_.where(board.members, { userId: inviter._id })[0].isActive &&
_.where(board.members, { userId: inviter._id })[0].isAdmin;
_.where(board.members, {userId: inviter._id})[0].isActive &&
_.where(board.members, {userId: inviter._id})[0].isAdmin;
if (!allowInvite) throw new Meteor.Error('error-board-notAMember');
this.unblock();
@ -388,9 +396,9 @@ if (Meteor.isServer) {
const posAt = username.indexOf('@');
let user = null;
if (posAt >= 0) {
user = Users.findOne({ emails: { $elemMatch: { address: username } } });
user = Users.findOne({emails: {$elemMatch: {address: username}}});
} else {
user = Users.findOne(username) || Users.findOne({ username });
user = Users.findOne(username) || Users.findOne({username});
}
if (user) {
if (user._id === inviter._id) throw new Meteor.Error('error-user-notAllowSelf');
@ -400,7 +408,7 @@ if (Meteor.isServer) {
// Set in lowercase email before creating account
const email = username.toLowerCase();
username = email.substring(0, posAt);
const newUserId = Accounts.createUser({ username, email });
const newUserId = Accounts.createUser({username, email});
if (!newUserId) throw new Meteor.Error('error-user-notCreated');
// assume new user speak same language with inviter
if (inviter.profile && inviter.profile.language) {
@ -434,7 +442,7 @@ if (Meteor.isServer) {
} catch (e) {
throw new Meteor.Error('email-fail', e.message);
}
return { username: user.username, email: user.emails[0].address };
return {username: user.username, email: user.emails[0].address};
},
});
Accounts.onCreateUser((options, user) => {
@ -457,11 +465,15 @@ if (Meteor.isServer) {
if (!options || !options.profile) {
throw new Meteor.Error('error-invitation-code-blank', 'The invitation code is required');
}
const invitationCode = InvitationCodes.findOne({ code: options.profile.invitationcode, email: options.email, valid: true });
const invitationCode = InvitationCodes.findOne({
code: options.profile.invitationcode,
email: options.email,
valid: true,
});
if (!invitationCode) {
throw new Meteor.Error('error-invitation-code-not-exist', 'The invitation code doesn\'t exist');
} else {
user.profile = { icode: options.profile.invitationcode };
user.profile = {icode: options.profile.invitationcode};
}
return user;
@ -473,7 +485,7 @@ if (Meteor.isServer) {
Meteor.startup(() => {
Users._collection._ensureIndex({
username: 1,
}, { unique: true });
}, {unique: true});
});
// Each board document contains the de-normalized number of users that have
@ -492,6 +504,7 @@ if (Meteor.isServer) {
function getStarredBoardsIds(doc) {
return doc.profile && doc.profile.starredBoards;
}
const oldIds = getStarredBoardsIds(this.previous);
const newIds = getStarredBoardsIds(user);
@ -500,9 +513,10 @@ if (Meteor.isServer) {
// direction and then in the other.
function incrementBoards(boardsIds, inc) {
boardsIds.forEach((boardId) => {
Boards.update(boardId, { $inc: { stars: inc } });
Boards.update(boardId, {$inc: {stars: inc}});
});
}
incrementBoards(_.difference(oldIds, newIds), -1);
incrementBoards(_.difference(newIds, oldIds), +1);
});
@ -529,7 +543,7 @@ if (Meteor.isServer) {
}, fakeUser, (err, boardId) => {
['welcome-list1', 'welcome-list2'].forEach((title) => {
Lists.insert({ title: TAPi18n.__(title), boardId }, fakeUser);
Lists.insert({title: TAPi18n.__(title), boardId}, fakeUser);
});
});
});
@ -545,14 +559,14 @@ if (Meteor.isServer) {
// the disableRegistration check.
// Issue : https://github.com/wekan/wekan/issues/1232
// PR : https://github.com/wekan/wekan/pull/1251
Users.update(doc._id, { $set: { createdThroughApi: '' } });
Users.update(doc._id, {$set: {createdThroughApi: ''}});
return;
}
//invite user to corresponding boards
const disableRegistration = Settings.findOne().disableRegistration;
if (disableRegistration) {
const invitationCode = InvitationCodes.findOne({ code: doc.profile.icode, valid: true });
const invitationCode = InvitationCodes.findOne({code: doc.profile.icode, valid: true});
if (!invitationCode) {
throw new Meteor.Error('error-invitation-code-not-exist');
} else {
@ -564,8 +578,8 @@ if (Meteor.isServer) {
doc.profile = {};
}
doc.profile.invitedBoards = invitationCode.boardsToBeInvited;
Users.update(doc._id, { $set: { profile: doc.profile } });
InvitationCodes.update(invitationCode._id, { $set: { valid: false } });
Users.update(doc._id, {$set: {profile: doc.profile}});
InvitationCodes.update(invitationCode._id, {$set: {valid: false}});
}
}
});
@ -574,9 +588,9 @@ if (Meteor.isServer) {
// USERS REST API
if (Meteor.isServer) {
JsonRoutes.add('GET', '/api/user', function(req, res, next) {
JsonRoutes.add('GET', '/api/user', function (req, res, next) {
Authentication.checkLoggedIn(req.userId);
const data = Meteor.users.findOne({ _id: req.userId});
const data = Meteor.users.findOne({_id: req.userId});
delete data.services;
JsonRoutes.sendResult(res, {
code: 200,
@ -585,33 +599,33 @@ if (Meteor.isServer) {
});
JsonRoutes.add('GET', '/api/users', function (req, res, next) {
Authentication.checkUserId( req.userId);
Authentication.checkUserId(req.userId);
JsonRoutes.sendResult(res, {
code: 200,
data: Meteor.users.find({}).map(function (doc) {
return { _id: doc._id, username: doc.username };
return {_id: doc._id, username: doc.username};
}),
});
});
JsonRoutes.add('GET', '/api/users/:id', function (req, res, next) {
Authentication.checkUserId( req.userId);
Authentication.checkUserId(req.userId);
const id = req.params.id;
JsonRoutes.sendResult(res, {
code: 200,
data: Meteor.users.findOne({ _id: id }),
data: Meteor.users.findOne({_id: id}),
});
});
JsonRoutes.add('PUT', '/api/users/:id', function (req, res, next) {
Authentication.checkUserId( req.userId);
Authentication.checkUserId(req.userId);
const id = req.params.id;
const action = req.body.action;
let data = Meteor.users.findOne({ _id: id });
let data = Meteor.users.findOne({_id: id});
if (data !== undefined) {
if (action === 'takeOwnership') {
data = Boards.find({
'members.userId': id,
'members.isAdmin': true,
}).map(function(board) {
}).map(function (board) {
if (board.hasMember(req.userId)) {
board.removeMember(req.userId);
}
@ -623,11 +637,11 @@ if (Meteor.isServer) {
});
} else {
if ((action === 'disableLogin') && (id !== req.userId)) {
Users.update({ _id: id }, { $set: { loginDisabled: true, 'services.resume.loginTokens': '' } });
Users.update({_id: id}, {$set: {loginDisabled: true, 'services.resume.loginTokens': ''}});
} else if (action === 'enableLogin') {
Users.update({ _id: id }, { $set: { loginDisabled: '' } });
Users.update({_id: id}, {$set: {loginDisabled: ''}});
}
data = Meteor.users.findOne({ _id: id });
data = Meteor.users.findOne({_id: id});
}
}
JsonRoutes.sendResult(res, {
@ -636,7 +650,7 @@ if (Meteor.isServer) {
});
});
JsonRoutes.add('POST', '/api/users/', function (req, res, next) {
Authentication.checkUserId( req.userId);
Authentication.checkUserId(req.userId);
const id = Accounts.createUser({
username: req.body.username,
email: req.body.email,
@ -653,9 +667,9 @@ if (Meteor.isServer) {
});
JsonRoutes.add('DELETE', '/api/users/:id', function (req, res, next) {
Authentication.checkUserId( req.userId);
Authentication.checkUserId(req.userId);
const id = req.params.id;
Meteor.users.remove({ _id: id });
Meteor.users.remove({_id: id});
JsonRoutes.sendResult(res, {
code: 200,
data: {

View file

@ -0,0 +1,7 @@
Meteor.publish('people', (limit) => {
check(limit, Number);
return Users.find({}, {
limit,
sort: {createdAt: -1},
});
});