summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLauri Ojansivu <x@xet7.org>2017-11-19 01:45:58 +0200
committerLauri Ojansivu <x@xet7.org>2017-11-19 01:45:58 +0200
commit0ea96fca3f9c4ca876b1f11969958b6fb0417420 (patch)
treea58f4dcd84018b907ead1246ef8eccd805bba231
parent13d8e75c05cf8ed90c4b5d8ee5aadad0f9444b8f (diff)
parent75c5eeb0460889fb79ba2b963e18ea240d7253ca (diff)
downloadwekan-0ea96fca3f9c4ca876b1f11969958b6fb0417420.tar.gz
wekan-0ea96fca3f9c4ca876b1f11969958b6fb0417420.tar.bz2
wekan-0ea96fca3f9c4ca876b1f11969958b6fb0417420.zip
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
-rw-r--r--.gitignore1
-rw-r--r--CHANGELOG.md3
-rw-r--r--client/components/settings/peopleBody.jade89
-rw-r--r--client/components/settings/peopleBody.js156
-rw-r--r--client/components/settings/peopleBody.styl15
-rw-r--r--client/components/settings/settingHeader.jade9
-rw-r--r--client/components/users/userHeader.js10
-rw-r--r--config/router.js20
-rw-r--r--i18n/ar.i18n.json5
-rw-r--r--i18n/br.i18n.json5
-rw-r--r--i18n/ca.i18n.json5
-rw-r--r--i18n/cs.i18n.json5
-rw-r--r--i18n/de.i18n.json21
-rw-r--r--i18n/en-GB.i18n.json5
-rw-r--r--i18n/en.i18n.json5
-rw-r--r--i18n/eo.i18n.json5
-rw-r--r--i18n/es-AR.i18n.json5
-rw-r--r--i18n/es.i18n.json5
-rw-r--r--i18n/eu.i18n.json5
-rw-r--r--i18n/fa.i18n.json5
-rw-r--r--i18n/fi.i18n.json5
-rw-r--r--i18n/fr.i18n.json7
-rw-r--r--i18n/gl.i18n.json5
-rw-r--r--i18n/he.i18n.json7
-rw-r--r--i18n/hu.i18n.json583
-rw-r--r--i18n/id.i18n.json5
-rw-r--r--i18n/it.i18n.json7
-rw-r--r--i18n/ja.i18n.json5
-rw-r--r--i18n/ko.i18n.json5
-rw-r--r--i18n/nb.i18n.json5
-rw-r--r--i18n/nl.i18n.json5
-rw-r--r--i18n/pl.i18n.json5
-rw-r--r--i18n/pt-BR.i18n.json5
-rw-r--r--i18n/ro.i18n.json5
-rw-r--r--i18n/ru.i18n.json5
-rw-r--r--i18n/sr.i18n.json5
-rw-r--r--i18n/sv.i18n.json31
-rw-r--r--i18n/ta.i18n.json5
-rw-r--r--i18n/th.i18n.json5
-rw-r--r--i18n/tr.i18n.json23
-rw-r--r--i18n/uk.i18n.json5
-rw-r--r--i18n/vi.i18n.json5
-rw-r--r--i18n/zh-CN.i18n.json5
-rw-r--r--i18n/zh-TW.i18n.json5
-rw-r--r--models/users.js116
-rw-r--r--server/publications/people.js7
46 files changed, 831 insertions, 419 deletions
diff --git a/.gitignore b/.gitignore
index 7642f23d..89dc3fd5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,6 +5,7 @@
tmp/
node_modules/
.vscode/
+.idea/
.build/*
packages/kadira-flow-router/
packages/meteor-useraccounts-core/
diff --git a/CHANGELOG.md b/CHANGELOG.md
index d92d4c95..43171dd0 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -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
diff --git a/client/components/settings/peopleBody.jade b/client/components/settings/peopleBody.jade
new file mode 100644
index 00000000..d6568720
--- /dev/null
+++ b/client/components/settings/peopleBody.jade
@@ -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'}}")
diff --git a/client/components/settings/peopleBody.js b/client/components/settings/peopleBody.js
new file mode 100644
index 00000000..d0da60d0
--- /dev/null
+++ b/client/components/settings/peopleBody.js
@@ -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();
+ },
+});
diff --git a/client/components/settings/peopleBody.styl b/client/components/settings/peopleBody.styl
new file mode 100644
index 00000000..2e89ea3b
--- /dev/null
+++ b/client/components/settings/peopleBody.styl
@@ -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;
diff --git a/client/components/settings/settingHeader.jade b/client/components/settings/settingHeader.jade
index c22cf5c6..c2d4db3a 100644
--- a/client/components/settings/settingHeader.jade
+++ b/client/components/settings/settingHeader.jade
@@ -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(
diff --git a/client/components/users/userHeader.js b/client/components/users/userHeader.js
index 90205ee1..481b13c3 100644
--- a/client/components/users/userHeader.js
+++ b/client/components/users/userHeader.js
@@ -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 {
diff --git a/config/router.js b/config/router.js
index 7f657820..c86a92ac 100644
--- a/config/router.js
+++ b/config/router.js
@@ -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' });
diff --git a/i18n/ar.i18n.json b/i18n/ar.i18n.json
index b7ac9751..daaf977c 100644
--- a/i18n/ar.i18n.json
+++ b/i18n/ar.i18n.json
@@ -404,5 +404,8 @@
"yes": "نعم",
"no": "لا",
"accounts": "الحسابات",
- "accounts-allowEmailChange": "السماح بتغيير البريد الإلكتروني"
+ "accounts-allowEmailChange": "السماح بتغيير البريد الإلكتروني",
+ "createdAt": "Created at",
+ "verified": "Verified",
+ "active": "Active"
} \ No newline at end of file
diff --git a/i18n/br.i18n.json b/i18n/br.i18n.json
index 15eff623..9cd5603b 100644
--- a/i18n/br.i18n.json
+++ b/i18n/br.i18n.json
@@ -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"
} \ No newline at end of file
diff --git a/i18n/ca.i18n.json b/i18n/ca.i18n.json
index 49a12778..057dd08a 100644
--- a/i18n/ca.i18n.json
+++ b/i18n/ca.i18n.json
@@ -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"
} \ No newline at end of file
diff --git a/i18n/cs.i18n.json b/i18n/cs.i18n.json
index 2c00b5fc..f4556a99 100644
--- a/i18n/cs.i18n.json
+++ b/i18n/cs.i18n.json
@@ -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"
} \ No newline at end of file
diff --git a/i18n/de.i18n.json b/i18n/de.i18n.json
index e9530c3c..766b1d5b 100644
--- a/i18n/de.i18n.json
+++ b/i18n/de.i18n.json
@@ -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"
} \ No newline at end of file
diff --git a/i18n/en-GB.i18n.json b/i18n/en-GB.i18n.json
index 215d55bf..c3d783c1 100644
--- a/i18n/en-GB.i18n.json
+++ b/i18n/en-GB.i18n.json
@@ -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"
} \ No newline at end of file
diff --git a/i18n/en.i18n.json b/i18n/en.i18n.json
index fcaf9a8d..5ec6a5f0 100644
--- a/i18n/en.i18n.json
+++ b/i18n/en.i18n.json
@@ -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"
}
diff --git a/i18n/eo.i18n.json b/i18n/eo.i18n.json
index f7df9c5f..6abb07d6 100644
--- a/i18n/eo.i18n.json
+++ b/i18n/eo.i18n.json
@@ -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"
} \ No newline at end of file
diff --git a/i18n/es-AR.i18n.json b/i18n/es-AR.i18n.json
index c579f17f..85508e14 100644
--- a/i18n/es-AR.i18n.json
+++ b/i18n/es-AR.i18n.json
@@ -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"
} \ No newline at end of file
diff --git a/i18n/es.i18n.json b/i18n/es.i18n.json
index 83bcf5e3..24d78b96 100644
--- a/i18n/es.i18n.json
+++ b/i18n/es.i18n.json
@@ -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"
} \ No newline at end of file
diff --git a/i18n/eu.i18n.json b/i18n/eu.i18n.json
index 320f8307..98f64479 100644
--- a/i18n/eu.i18n.json
+++ b/i18n/eu.i18n.json
@@ -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"
} \ No newline at end of file
diff --git a/i18n/fa.i18n.json b/i18n/fa.i18n.json
index b3bedf25..c90ae0e8 100644
--- a/i18n/fa.i18n.json
+++ b/i18n/fa.i18n.json
@@ -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"
} \ No newline at end of file
diff --git a/i18n/fi.i18n.json b/i18n/fi.i18n.json
index 9c2327b4..0231d173 100644
--- a/i18n/fi.i18n.json
+++ b/i18n/fi.i18n.json
@@ -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"
} \ No newline at end of file
diff --git a/i18n/fr.i18n.json b/i18n/fr.i18n.json
index 923c0ba2..4778a24c 100644
--- a/i18n/fr.i18n.json
+++ b/i18n/fr.i18n.json
@@ -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"
} \ No newline at end of file
diff --git a/i18n/gl.i18n.json b/i18n/gl.i18n.json
index de7fb70f..463caae8 100644
--- a/i18n/gl.i18n.json
+++ b/i18n/gl.i18n.json
@@ -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"
} \ No newline at end of file
diff --git a/i18n/he.i18n.json b/i18n/he.i18n.json
index d8bc6880..7f80bcbd 100644
--- a/i18n/he.i18n.json
+++ b/i18n/he.i18n.json
@@ -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"
} \ No newline at end of file
diff --git a/i18n/hu.i18n.json b/i18n/hu.i18n.json
index 19e1e5f4..1b5a25cc 100644
--- a/i18n/hu.i18n.json
+++ b/i18n/hu.i18n.json
@@ -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 can’t 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 you’re 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"
} \ No newline at end of file
diff --git a/i18n/id.i18n.json b/i18n/id.i18n.json
index 8c51b497..4922ed4a 100644
--- a/i18n/id.i18n.json
+++ b/i18n/id.i18n.json
@@ -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"
} \ No newline at end of file
diff --git a/i18n/it.i18n.json b/i18n/it.i18n.json
index bed902a6..7bec9026 100644
--- a/i18n/it.i18n.json
+++ b/i18n/it.i18n.json
@@ -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"
} \ No newline at end of file
diff --git a/i18n/ja.i18n.json b/i18n/ja.i18n.json
index 3cccaff3..42a34514 100644
--- a/i18n/ja.i18n.json
+++ b/i18n/ja.i18n.json
@@ -404,5 +404,8 @@
"yes": "はい",
"no": "いいえ",
"accounts": "アカウント",
- "accounts-allowEmailChange": "メールアドレスの変更を許可"
+ "accounts-allowEmailChange": "メールアドレスの変更を許可",
+ "createdAt": "Created at",
+ "verified": "Verified",
+ "active": "Active"
} \ No newline at end of file
diff --git a/i18n/ko.i18n.json b/i18n/ko.i18n.json
index 3c1577fd..9e8c0c45 100644
--- a/i18n/ko.i18n.json
+++ b/i18n/ko.i18n.json
@@ -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"
} \ No newline at end of file
diff --git a/i18n/nb.i18n.json b/i18n/nb.i18n.json
index 923bba0c..43315230 100644
--- a/i18n/nb.i18n.json
+++ b/i18n/nb.i18n.json
@@ -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"
} \ No newline at end of file
diff --git a/i18n/nl.i18n.json b/i18n/nl.i18n.json
index 3c57cb4f..29ee257d 100644
--- a/i18n/nl.i18n.json
+++ b/i18n/nl.i18n.json
@@ -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"
} \ No newline at end of file
diff --git a/i18n/pl.i18n.json b/i18n/pl.i18n.json
index 4c12ae69..92861e39 100644
--- a/i18n/pl.i18n.json
+++ b/i18n/pl.i18n.json
@@ -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"
} \ No newline at end of file
diff --git a/i18n/pt-BR.i18n.json b/i18n/pt-BR.i18n.json
index 8fb07cb6..1c3762d8 100644
--- a/i18n/pt-BR.i18n.json
+++ b/i18n/pt-BR.i18n.json
@@ -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"
} \ No newline at end of file
diff --git a/i18n/ro.i18n.json b/i18n/ro.i18n.json
index 6bb69d0c..653e0cdd 100644
--- a/i18n/ro.i18n.json
+++ b/i18n/ro.i18n.json
@@ -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"
} \ No newline at end of file
diff --git a/i18n/ru.i18n.json b/i18n/ru.i18n.json
index 2fc3f041..96b88ea7 100644
--- a/i18n/ru.i18n.json
+++ b/i18n/ru.i18n.json
@@ -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"
} \ No newline at end of file
diff --git a/i18n/sr.i18n.json b/i18n/sr.i18n.json
index de2a19de..dc5a8f07 100644
--- a/i18n/sr.i18n.json
+++ b/i18n/sr.i18n.json
@@ -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"
} \ No newline at end of file
diff --git a/i18n/sv.i18n.json b/i18n/sv.i18n.json
index 4c7c99a7..b41e512d 100644
--- a/i18n/sv.i18n.json
+++ b/i18n/sv.i18n.json
@@ -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"
} \ No newline at end of file
diff --git a/i18n/ta.i18n.json b/i18n/ta.i18n.json
index c85105de..3c126132 100644
--- a/i18n/ta.i18n.json
+++ b/i18n/ta.i18n.json
@@ -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"
} \ No newline at end of file
diff --git a/i18n/th.i18n.json b/i18n/th.i18n.json
index a991e8f4..f6ba4770 100644
--- a/i18n/th.i18n.json
+++ b/i18n/th.i18n.json
@@ -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"
} \ No newline at end of file
diff --git a/i18n/tr.i18n.json b/i18n/tr.i18n.json
index c4915907..9c253dd6 100644
--- a/i18n/tr.i18n.json
+++ b/i18n/tr.i18n.json
@@ -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"
} \ No newline at end of file
diff --git a/i18n/uk.i18n.json b/i18n/uk.i18n.json
index 49f55b01..05790abc 100644
--- a/i18n/uk.i18n.json
+++ b/i18n/uk.i18n.json
@@ -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"
} \ No newline at end of file
diff --git a/i18n/vi.i18n.json b/i18n/vi.i18n.json
index 7996c530..0e1f7a04 100644
--- a/i18n/vi.i18n.json
+++ b/i18n/vi.i18n.json
@@ -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"
} \ No newline at end of file
diff --git a/i18n/zh-CN.i18n.json b/i18n/zh-CN.i18n.json
index 73b58f4a..a9a30032 100644
--- a/i18n/zh-CN.i18n.json
+++ b/i18n/zh-CN.i18n.json
@@ -404,5 +404,8 @@
"yes": "是",
"no": "否",
"accounts": "账号",
- "accounts-allowEmailChange": "允许邮箱变更"
+ "accounts-allowEmailChange": "允许邮箱变更",
+ "createdAt": "Created at",
+ "verified": "Verified",
+ "active": "Active"
} \ No newline at end of file
diff --git a/i18n/zh-TW.i18n.json b/i18n/zh-TW.i18n.json
index eaf03db5..08953728 100644
--- a/i18n/zh-TW.i18n.json
+++ b/i18n/zh-TW.i18n.json
@@ -404,5 +404,8 @@
"yes": "是",
"no": "否",
"accounts": "帳號",
- "accounts-allowEmailChange": "准許變更電子信箱"
+ "accounts-allowEmailChange": "准許變更電子信箱",
+ "createdAt": "Created at",
+ "verified": "Verified",
+ "active": "Active"
} \ No newline at end of file
diff --git a/models/users.js b/models/users.js
index abc0f82d..9a0a61a4 100644
--- a/models/users.js
+++ b/models/users.js
@@ -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: {
diff --git a/server/publications/people.js b/server/publications/people.js
new file mode 100644
index 00000000..f3c2bdfe
--- /dev/null
+++ b/server/publications/people.js
@@ -0,0 +1,7 @@
+Meteor.publish('people', (limit) => {
+ check(limit, Number);
+ return Users.find({}, {
+ limit,
+ sort: {createdAt: -1},
+ });
+});