diff options
author | Lauri Ojansivu <x@xet7.org> | 2017-11-19 01:45:58 +0200 |
---|---|---|
committer | Lauri Ojansivu <x@xet7.org> | 2017-11-19 01:45:58 +0200 |
commit | 0ea96fca3f9c4ca876b1f11969958b6fb0417420 (patch) | |
tree | a58f4dcd84018b907ead1246ef8eccd805bba231 | |
parent | 13d8e75c05cf8ed90c4b5d8ee5aadad0f9444b8f (diff) | |
parent | 75c5eeb0460889fb79ba2b963e18ea240d7253ca (diff) | |
download | wekan-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
46 files changed, 831 insertions, 419 deletions
@@ -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}, + }); +}); |