mirror of
https://github.com/wekan/wekan.git
synced 2025-04-23 21:47:10 -04:00
Merge branch 'nztqa-improve-account' into devel
Change Email address. Thanks to nztqa ! Closes #848
This commit is contained in:
commit
719c5404f3
44 changed files with 442 additions and 122 deletions
|
@ -129,6 +129,7 @@
|
|||
"JsonRoutes": true,
|
||||
"Authentication": true,
|
||||
"Integrations": true,
|
||||
"HTTP": true
|
||||
"HTTP": true,
|
||||
"AccountSettings": true
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,7 +4,8 @@ This release adds the following new features:
|
|||
|
||||
* [Add Bounties and Commercial Support to wiki](https://github.com/wekan/wekan/wiki);
|
||||
* [Add display Wekan version number and runtime
|
||||
environment to Admin Panel](https://github.com/wekan/wekan/pull/1156).
|
||||
environment to Admin Panel](https://github.com/wekan/wekan/pull/1156);
|
||||
* [Change Email address](https://github.com/wekan/wekan/pull/1161).
|
||||
|
||||
Thanks to GitHub users nztqa and xet7 for their contributions.
|
||||
|
||||
|
|
|
@ -12,6 +12,8 @@ template(name="setting")
|
|||
a.js-setting-menu(data-id="registration-setting") {{_ 'registration'}}
|
||||
li
|
||||
a.js-setting-menu(data-id="email-setting") {{_ 'email'}}
|
||||
li
|
||||
a.js-setting-menu(data-id="account-setting") {{_ 'accounts'}}
|
||||
.main-body
|
||||
if loading.get
|
||||
+spinner
|
||||
|
@ -19,6 +21,8 @@ template(name="setting")
|
|||
+general
|
||||
else if emailSetting.get
|
||||
+email
|
||||
else if accountSetting.get
|
||||
+accountSettings
|
||||
|
||||
template(name="general")
|
||||
ul#registration-setting.setting-detail
|
||||
|
@ -80,3 +84,15 @@ template(name='email')
|
|||
|
||||
li
|
||||
button.js-save.primary {{_ 'save'}}
|
||||
|
||||
template(name='accountSettings')
|
||||
ul#account-setting.setting-detail
|
||||
li.smtp-form
|
||||
.title {{_ 'accounts-allowEmailChange'}}
|
||||
.form-group.flex
|
||||
input.form-control#accounts-allowEmailChange(type="radio" name="allowEmailChange" value="true" checked="{{#if allowEmailChange}}checked{{/if}}")
|
||||
span {{_ 'yes'}}
|
||||
input.form-control#accounts-allowEmailChange(type="radio" name="allowEmailChange" value="false" checked="{{#unless allowEmailChange}}checked{{/unless}}")
|
||||
span {{_ 'no'}}
|
||||
li
|
||||
button.js-accounts-save.primary {{_ 'save'}}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
Meteor.subscribe('setting');
|
||||
Meteor.subscribe('mailServer');
|
||||
Meteor.subscribe('accountSettings');
|
||||
|
||||
BlazeComponent.extendComponent({
|
||||
onCreated() {
|
||||
|
@ -7,6 +8,7 @@ BlazeComponent.extendComponent({
|
|||
this.loading = new ReactiveVar(false);
|
||||
this.generalSetting = new ReactiveVar(true);
|
||||
this.emailSetting = new ReactiveVar(false);
|
||||
this.accountSetting = new ReactiveVar(false);
|
||||
},
|
||||
|
||||
setError(error) {
|
||||
|
@ -62,6 +64,7 @@ BlazeComponent.extendComponent({
|
|||
const targetID = target.data('id');
|
||||
this.generalSetting.set('registration-setting' === targetID);
|
||||
this.emailSetting.set('email-setting' === targetID);
|
||||
this.accountSetting.set('account-setting' === targetID);
|
||||
}
|
||||
},
|
||||
|
||||
|
@ -130,3 +133,22 @@ BlazeComponent.extendComponent({
|
|||
}];
|
||||
},
|
||||
}).register('setting');
|
||||
|
||||
BlazeComponent.extendComponent({
|
||||
saveAllowEmailChange() {
|
||||
const allowEmailChange = ($('input[name=allowEmailChange]:checked').val() === 'true');
|
||||
AccountSettings.update('accounts-allowEmailChange', {
|
||||
$set: { 'booleanValue': allowEmailChange },
|
||||
});
|
||||
},
|
||||
|
||||
allowEmailChange() {
|
||||
return AccountSettings.findOne('accounts-allowEmailChange').booleanValue;
|
||||
},
|
||||
|
||||
events() {
|
||||
return [{
|
||||
'click button.js-accounts-save': this.saveAllowEmailChange,
|
||||
}];
|
||||
},
|
||||
}).register('accountSettings');
|
||||
|
|
|
@ -36,6 +36,14 @@ template(name="editProfilePopup")
|
|||
label
|
||||
| {{_ 'initials'}}
|
||||
input.js-profile-initials(type="text" value=profile.initials)
|
||||
label
|
||||
| {{_ 'email'}}
|
||||
span.error.hide.email-taken
|
||||
| {{_ 'error-email-taken'}}
|
||||
if allowEmailChange
|
||||
input.js-profile-email(type="email" value="{{emails.[0].address}}")
|
||||
else
|
||||
input.js-profile-email(type="email" value="{{emails.[0].address}}" readonly)
|
||||
input.primary.wide(type="submit" value="{{_ 'save'}}")
|
||||
|
||||
template(name="editNotificationPopup")
|
||||
|
|
|
@ -20,18 +20,47 @@ Template.memberMenuPopup.events({
|
|||
},
|
||||
});
|
||||
|
||||
Template.editProfilePopup.helpers({
|
||||
allowEmailChange() {
|
||||
return AccountSettings.findOne('accounts-allowEmailChange').booleanValue;
|
||||
},
|
||||
});
|
||||
|
||||
Template.editProfilePopup.events({
|
||||
submit(evt, tpl) {
|
||||
evt.preventDefault();
|
||||
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 email = tpl.find('.js-profile-email').value.trim();
|
||||
let isChangeUserName = false;
|
||||
let isChangeEmail = false;
|
||||
Users.update(Meteor.userId(), {$set: {
|
||||
'profile.fullname': fullname,
|
||||
'profile.initials': initials,
|
||||
}});
|
||||
|
||||
if (username !== Meteor.user().username) {
|
||||
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) {
|
||||
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.back();
|
||||
}
|
||||
});
|
||||
} else if (isChangeUserName) {
|
||||
Meteor.call('setUsername', username, function(error) {
|
||||
const messageElement = tpl.$('.username-taken');
|
||||
if (error) {
|
||||
|
@ -41,6 +70,16 @@ Template.editProfilePopup.events({
|
|||
Popup.back();
|
||||
}
|
||||
});
|
||||
} else if (isChangeEmail) {
|
||||
Meteor.call('setEmail', email.toLowerCase(), function(error) {
|
||||
const messageElement = tpl.$('.email-taken');
|
||||
if (error) {
|
||||
messageElement.show();
|
||||
} else {
|
||||
messageElement.hide();
|
||||
Popup.back();
|
||||
}
|
||||
});
|
||||
} else Popup.back();
|
||||
},
|
||||
});
|
||||
|
|
|
@ -191,6 +191,7 @@
|
|||
"error-user-notAllowSelf": "لا يمكنك دعوة نفسك",
|
||||
"error-user-notCreated": "This user is not created",
|
||||
"error-username-taken": "إسم المستخدم مأخوذ مسبقا",
|
||||
"error-email-taken": "Email has already been taken",
|
||||
"export-board": "Export board",
|
||||
"filter": "تصفية",
|
||||
"filter-cards": "تصفية البطاقات",
|
||||
|
@ -379,5 +380,9 @@
|
|||
"OS_Uptime": "OS Uptime",
|
||||
"hours": "hours",
|
||||
"minutes": "minutes",
|
||||
"seconds": "seconds"
|
||||
"seconds": "seconds",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"accounts": "Accounts",
|
||||
"accounts-allowEmailChange": "Allow Email Change"
|
||||
}
|
|
@ -191,6 +191,7 @@
|
|||
"error-user-notAllowSelf": "You can not invite yourself",
|
||||
"error-user-notCreated": "This user is not created",
|
||||
"error-username-taken": "This username is already taken",
|
||||
"error-email-taken": "Email has already been taken",
|
||||
"export-board": "Export board",
|
||||
"filter": "Filter",
|
||||
"filter-cards": "Filter Cards",
|
||||
|
@ -379,5 +380,9 @@
|
|||
"OS_Uptime": "OS Uptime",
|
||||
"hours": "hours",
|
||||
"minutes": "minutes",
|
||||
"seconds": "seconds"
|
||||
"seconds": "seconds",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"accounts": "Accounts",
|
||||
"accounts-allowEmailChange": "Allow Email Change"
|
||||
}
|
|
@ -191,6 +191,7 @@
|
|||
"error-user-notAllowSelf": "No et pots convidar a tu mateix",
|
||||
"error-user-notCreated": "L'usuari no s'ha creat",
|
||||
"error-username-taken": "Aquest usuari ja existeix",
|
||||
"error-email-taken": "Email has already been taken",
|
||||
"export-board": "Exporta tauler",
|
||||
"filter": "Filtre",
|
||||
"filter-cards": "Fitxes de filtre",
|
||||
|
@ -379,5 +380,9 @@
|
|||
"OS_Uptime": "OS Uptime",
|
||||
"hours": "hours",
|
||||
"minutes": "minutes",
|
||||
"seconds": "seconds"
|
||||
"seconds": "seconds",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"accounts": "Accounts",
|
||||
"accounts-allowEmailChange": "Allow Email Change"
|
||||
}
|
|
@ -191,6 +191,7 @@
|
|||
"error-user-notAllowSelf": "You can not invite yourself",
|
||||
"error-user-notCreated": "Tento uživatel není vytvořen",
|
||||
"error-username-taken": "This username is already taken",
|
||||
"error-email-taken": "Email has already been taken",
|
||||
"export-board": "Exportovat tablo",
|
||||
"filter": "Filtr",
|
||||
"filter-cards": "Filtrovat karty",
|
||||
|
@ -379,5 +380,9 @@
|
|||
"OS_Uptime": "OS Uptime",
|
||||
"hours": "hours",
|
||||
"minutes": "minutes",
|
||||
"seconds": "seconds"
|
||||
"seconds": "seconds",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"accounts": "Accounts",
|
||||
"accounts-allowEmailChange": "Allow Email Change"
|
||||
}
|
|
@ -56,7 +56,7 @@
|
|||
"and-n-other-card": "und eine andere Karte",
|
||||
"and-n-other-card_plural": "und __count__ andere Karten",
|
||||
"apply": "Übernehmen",
|
||||
"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.",
|
||||
"app-is-offline": "Wekan lädt gerade, bitte warten Sie. Wenn Sie die Seite neu laden, gehen nicht übertragene Änderungen verloren. Sollte Wekan nicht geladen werden, überprüfen Sie bitte, ob der Server noch läuft.",
|
||||
"archive": "Archiv",
|
||||
"archive-all": "Alles archivieren",
|
||||
"archive-board": "Board archivieren",
|
||||
|
@ -141,12 +141,12 @@
|
|||
"color-yellow": "gelb",
|
||||
"comment": "Kommentar",
|
||||
"comment-placeholder": "Kommentar schreiben",
|
||||
"comment-only": "Comment only",
|
||||
"comment-only": "Nur kommentierbar",
|
||||
"comment-only-desc": "Kann Karten nur Kommentieren",
|
||||
"computer": "Computer",
|
||||
"create": "Erstellen",
|
||||
"createBoardPopup-title": "Board erstellen",
|
||||
"chooseBoardSourcePopup-title": "Import board",
|
||||
"chooseBoardSourcePopup-title": "Board importieren",
|
||||
"createLabelPopup-title": "Label erstellen",
|
||||
"current": "aktuell",
|
||||
"date": "Datum",
|
||||
|
@ -191,6 +191,7 @@
|
|||
"error-user-notAllowSelf": "Sie können sich nicht selbst einladen.",
|
||||
"error-user-notCreated": "Dieser Nutzer ist nicht angelegt",
|
||||
"error-username-taken": "Dieser Benutzername ist bereits vergeben",
|
||||
"error-email-taken": "Email has already been taken",
|
||||
"export-board": "Board exportieren",
|
||||
"filter": "Filter",
|
||||
"filter-cards": "Karten filtern",
|
||||
|
@ -206,15 +207,15 @@
|
|||
"headerBarCreateBoardPopup-title": "Board erstellen",
|
||||
"home": "Home",
|
||||
"import": "Importieren",
|
||||
"import-board": "import board",
|
||||
"import-board-c": "Import board",
|
||||
"import-board": "Board importieren",
|
||||
"import-board-c": "Board importieren",
|
||||
"import-board-title-trello": "Board von Trello importieren",
|
||||
"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-title-wekan": "Board von Wekan importieren",
|
||||
"import-sandstorm-warning": "Das importierte Board wird alle bereits existierenden Daten löschen und mit den importierten Daten überschreiben.",
|
||||
"from-trello": "Von Trello",
|
||||
"from-wekan": "Von Wekan",
|
||||
"import-board-instruction-trello": "Gehen Sie in ihrem Trello-Board auf 'Menü', dann 'Mehr', 'Drucken und Exportieren', 'JSON-Export' und kopieren Sie den dort angezeigten Text",
|
||||
"import-board-instruction-wekan": "In your Wekan board, go to 'Menu', then 'Export board', and copy the text in the downloaded file.",
|
||||
"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",
|
||||
|
@ -364,20 +365,24 @@
|
|||
"email-invite-register-text": "Hallo __user__,\n\n__inviter__ hat Sie für Ihre Zusammenarbeit zu Wekan eingeladen.\n\nBitte klicken Sie auf folgenden Link:\n__url__\n\nIhr Einladungscode lautet: __icode__\n\nDanke.",
|
||||
"error-invitation-code-not-exist": "Ungültiger Einladungscode",
|
||||
"error-notAuthorized": "Sie sind nicht berechtigt diese Seite zu sehen.",
|
||||
"outgoing-webhooks": "Outgoing Webhooks",
|
||||
"outgoingWebhooksPopup-title": "Outgoing Webhooks",
|
||||
"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"
|
||||
"outgoing-webhooks": "Ausgehende Webhooks",
|
||||
"outgoingWebhooksPopup-title": "Ausgehende Webhooks",
|
||||
"Wekan_version": "Wekan-Version",
|
||||
"Node_version": "Node-Version",
|
||||
"OS_Arch": "Betriebssystem-Architektur",
|
||||
"OS_Cpus": "Anzahl Prozessoren",
|
||||
"OS_Freemem": "Freier Arbeitsspeicher",
|
||||
"OS_Loadavg": "Mittlere Systembelastung",
|
||||
"OS_Platform": "Plattform",
|
||||
"OS_Release": "Version des Betriebssystem",
|
||||
"OS_Totalmem": "Gesamter Arbeitsspeicher",
|
||||
"OS_Type": "Typ des Betriebssystems",
|
||||
"OS_Uptime": "Laufzeit des Systems",
|
||||
"hours": "Stunden",
|
||||
"minutes": "Minuten",
|
||||
"seconds": "Sekunden",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"accounts": "Accounts",
|
||||
"accounts-allowEmailChange": "Allow Email Change"
|
||||
}
|
|
@ -191,6 +191,7 @@
|
|||
"error-user-notAllowSelf": "You can not invite yourself",
|
||||
"error-user-notCreated": "This user is not created",
|
||||
"error-username-taken": "This username is already taken",
|
||||
"error-email-taken": "Email has already been taken",
|
||||
"export-board": "Export board",
|
||||
"filter": "Filter",
|
||||
"filter-cards": "Filter Cards",
|
||||
|
@ -379,5 +380,9 @@
|
|||
"OS_Uptime": "OS Uptime",
|
||||
"hours": "hours",
|
||||
"minutes": "minutes",
|
||||
"seconds": "seconds"
|
||||
"seconds": "seconds",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"accounts": "Accounts",
|
||||
"accounts-allowEmailChange": "Allow Email Change"
|
||||
}
|
|
@ -191,6 +191,7 @@
|
|||
"error-user-notAllowSelf": "You can not invite yourself",
|
||||
"error-user-notCreated": "This user is not created",
|
||||
"error-username-taken": "This username is already taken",
|
||||
"error-email-taken": "Email has already been taken",
|
||||
"export-board": "Export board",
|
||||
"filter": "Filter",
|
||||
"filter-cards": "Filter Cards",
|
||||
|
@ -379,5 +380,9 @@
|
|||
"OS_Uptime": "OS Uptime",
|
||||
"hours": "hours",
|
||||
"minutes": "minutes",
|
||||
"seconds": "seconds"
|
||||
"seconds": "seconds",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"accounts": "Accounts",
|
||||
"accounts-allowEmailChange": "Allow Email Change"
|
||||
}
|
||||
|
|
|
@ -191,6 +191,7 @@
|
|||
"error-user-notAllowSelf": "You can not invite yourself",
|
||||
"error-user-notCreated": "Uzanto ne kreita",
|
||||
"error-username-taken": "Uzantnomo jam prenita",
|
||||
"error-email-taken": "Email has already been taken",
|
||||
"export-board": "Export board",
|
||||
"filter": "Filter",
|
||||
"filter-cards": "Filter Cards",
|
||||
|
@ -379,5 +380,9 @@
|
|||
"OS_Uptime": "OS Uptime",
|
||||
"hours": "hours",
|
||||
"minutes": "minutes",
|
||||
"seconds": "seconds"
|
||||
"seconds": "seconds",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"accounts": "Accounts",
|
||||
"accounts-allowEmailChange": "Allow Email Change"
|
||||
}
|
|
@ -191,6 +191,7 @@
|
|||
"error-user-notAllowSelf": "No puedes invitarte a ti mismo",
|
||||
"error-user-notCreated": "This user is not created",
|
||||
"error-username-taken": "Este nombre de usuario ya está en uso",
|
||||
"error-email-taken": "Email has already been taken",
|
||||
"export-board": "Export board",
|
||||
"filter": "Filter",
|
||||
"filter-cards": "Fichas de filtro",
|
||||
|
@ -379,5 +380,9 @@
|
|||
"OS_Uptime": "OS Uptime",
|
||||
"hours": "hours",
|
||||
"minutes": "minutes",
|
||||
"seconds": "seconds"
|
||||
"seconds": "seconds",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"accounts": "Accounts",
|
||||
"accounts-allowEmailChange": "Allow Email Change"
|
||||
}
|
|
@ -191,6 +191,7 @@
|
|||
"error-user-notAllowSelf": "Ezin duzu zure burua gonbidatu",
|
||||
"error-user-notCreated": "Erabiltzaile hau sortu gabe dago",
|
||||
"error-username-taken": "Erabiltzaile-izen hori hartuta dago",
|
||||
"error-email-taken": "Email has already been taken",
|
||||
"export-board": "Esportatu arbela",
|
||||
"filter": "Iragazi",
|
||||
"filter-cards": "Iragazi txartelak",
|
||||
|
@ -379,5 +380,9 @@
|
|||
"OS_Uptime": "OS Uptime",
|
||||
"hours": "hours",
|
||||
"minutes": "minutes",
|
||||
"seconds": "seconds"
|
||||
"seconds": "seconds",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"accounts": "Accounts",
|
||||
"accounts-allowEmailChange": "Allow Email Change"
|
||||
}
|
|
@ -39,14 +39,14 @@
|
|||
"activity-checklist-added": "سیاهه به %s اضافه شد",
|
||||
"activity-checklist-item-added": "added checklist item to '%s' in %s",
|
||||
"add": "افزودن",
|
||||
"add-attachment": "Add Attachment",
|
||||
"add-board": "Add Board",
|
||||
"add-card": "Add Card",
|
||||
"add-checklist": "Add Checklist",
|
||||
"add-attachment": "افزودن ضمیمه",
|
||||
"add-board": "افزودن برد",
|
||||
"add-card": "افزودن کارت",
|
||||
"add-checklist": "افزودن چک لیست",
|
||||
"add-checklist-item": "افزودن مورد به سیاهه",
|
||||
"add-cover": "جلد کردن",
|
||||
"add-label": "Add Label",
|
||||
"add-list": "Add List",
|
||||
"add-label": "افزودن لیبل",
|
||||
"add-list": "افزودن لیست",
|
||||
"add-members": "افزودن اعضا",
|
||||
"added": "اضافه گردید",
|
||||
"addMemberPopup-title": "اعضا",
|
||||
|
@ -61,7 +61,7 @@
|
|||
"archive-all": "تمامی بایگانی ها",
|
||||
"archive-board": "بایگانی برد",
|
||||
"archive-card": "بایگانی کارت",
|
||||
"archive-list": "Archive List",
|
||||
"archive-list": "آرشیو لیست",
|
||||
"archive-selection": "بایگانی موارد انتخاب شده ها",
|
||||
"archiveBoardPopup-title": "آیا می خواهید بایگانی شود؟",
|
||||
"archived-items": "آیتم های بایگانی شده",
|
||||
|
@ -191,6 +191,7 @@
|
|||
"error-user-notAllowSelf": "عدم امکان دعوت خود",
|
||||
"error-user-notCreated": "این کاربر ایجاد نشده است",
|
||||
"error-username-taken": "این نام کاربری استفاده شده است",
|
||||
"error-email-taken": "Email has already been taken",
|
||||
"export-board": "انتقال به بیرون تخته",
|
||||
"filter": "صافی ـFilterـ",
|
||||
"filter-cards": "صافی ـFilterـ کارتها",
|
||||
|
@ -379,5 +380,9 @@
|
|||
"OS_Uptime": "OS Uptime",
|
||||
"hours": "hours",
|
||||
"minutes": "minutes",
|
||||
"seconds": "seconds"
|
||||
"seconds": "seconds",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"accounts": "Accounts",
|
||||
"accounts-allowEmailChange": "Allow Email Change"
|
||||
}
|
|
@ -191,6 +191,7 @@
|
|||
"error-user-notAllowSelf": "Et voi kutsua itseäsi",
|
||||
"error-user-notCreated": "Tätä käyttäjää ei ole luotu",
|
||||
"error-username-taken": "Tämä käyttäjätunnus on jo käytössä",
|
||||
"error-email-taken": "Sähköpostiosoite on jo käytössä",
|
||||
"export-board": "Vie taulu",
|
||||
"filter": "Suodata",
|
||||
"filter-cards": "Suodata kortit",
|
||||
|
@ -379,5 +380,9 @@
|
|||
"OS_Uptime": "Käyttöjärjestelmä ollut käynnissä",
|
||||
"hours": "tuntia",
|
||||
"minutes": "minuuttia",
|
||||
"seconds": "sekuntia"
|
||||
"seconds": "sekuntia",
|
||||
"yes": "Kyllä",
|
||||
"no": "Ei",
|
||||
"accounts": "Tilit",
|
||||
"accounts-allowEmailChange": "Salli sähköpostiosoitteen muuttaminen"
|
||||
}
|
|
@ -191,6 +191,7 @@
|
|||
"error-user-notAllowSelf": "Vous ne pouvez pas vous inviter vous-même",
|
||||
"error-user-notCreated": "Cet utilisateur n'a pas encore été créé",
|
||||
"error-username-taken": "Ce nom d'utilisateur est déjà utilisé",
|
||||
"error-email-taken": "Email has already been taken",
|
||||
"export-board": "Exporter le tableau",
|
||||
"filter": "Filtrer",
|
||||
"filter-cards": "Filtrer les cartes",
|
||||
|
@ -379,5 +380,9 @@
|
|||
"OS_Uptime": "OS Uptime",
|
||||
"hours": "hours",
|
||||
"minutes": "minutes",
|
||||
"seconds": "seconds"
|
||||
"seconds": "seconds",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"accounts": "Accounts",
|
||||
"accounts-allowEmailChange": "Allow Email Change"
|
||||
}
|
|
@ -191,6 +191,7 @@
|
|||
"error-user-notAllowSelf": "Non é posíbel convidarse a un mesmo",
|
||||
"error-user-notCreated": "Este usuario non está creado",
|
||||
"error-username-taken": "Este nome de usuario xa está collido",
|
||||
"error-email-taken": "Email has already been taken",
|
||||
"export-board": "Exportar taboleiro",
|
||||
"filter": "Filtro",
|
||||
"filter-cards": "Filtrar tarxetas",
|
||||
|
@ -379,5 +380,9 @@
|
|||
"OS_Uptime": "OS Uptime",
|
||||
"hours": "hours",
|
||||
"minutes": "minutes",
|
||||
"seconds": "seconds"
|
||||
"seconds": "seconds",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"accounts": "Accounts",
|
||||
"accounts-allowEmailChange": "Allow Email Change"
|
||||
}
|
|
@ -139,7 +139,7 @@
|
|||
"color-red": "אדום",
|
||||
"color-sky": "תכלת",
|
||||
"color-yellow": "צהוב",
|
||||
"comment": "להגיב",
|
||||
"comment": "לפרסם",
|
||||
"comment-placeholder": "כתיבת הערה",
|
||||
"comment-only": "הערה בלבד",
|
||||
"comment-only-desc": "ניתן להעיר על כרטיסים בלבד.",
|
||||
|
@ -191,6 +191,7 @@
|
|||
"error-user-notAllowSelf": "אינך יכול להזמין את עצמך",
|
||||
"error-user-notCreated": "משתמש זה לא נוצר",
|
||||
"error-username-taken": "המשתמש כבר קיים במערכת",
|
||||
"error-email-taken": "Email has already been taken",
|
||||
"export-board": "ייצוא לוח",
|
||||
"filter": "מסנן",
|
||||
"filter-cards": "סינון כרטיסים",
|
||||
|
@ -221,7 +222,7 @@
|
|||
"import-show-user-mapping": "סקירת מיפוי חברים",
|
||||
"import-user-select": "נא לבחור את המשתמש ב־Wekan בו ברצונך להשתמש עבור חבר זה",
|
||||
"importMapMembersAddPopup-title": "בחירת משתמש Wekan",
|
||||
"info": "Version",
|
||||
"info": "גרסא",
|
||||
"initials": "ראשי תיבות",
|
||||
"invalid-date": "תאריך שגוי",
|
||||
"joined": "הצטרף",
|
||||
|
@ -366,18 +367,22 @@
|
|||
"error-notAuthorized": "אין לך הרשאה לצפות בעמוד זה.",
|
||||
"outgoing-webhooks": "Outgoing Webhooks",
|
||||
"outgoingWebhooksPopup-title": "Outgoing Webhooks",
|
||||
"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",
|
||||
"Wekan_version": "גרסת wekan",
|
||||
"Node_version": "גרסת Node",
|
||||
"OS_Arch": "ארכיטקטורת מערכת הפעלה",
|
||||
"OS_Cpus": "מספר מעבדים",
|
||||
"OS_Freemem": "זיכרון (RAM) פנוי",
|
||||
"OS_Loadavg": "עומס ממוצע ",
|
||||
"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"
|
||||
"OS_Totalmem": "סך הכל זיכרון (RAM)",
|
||||
"OS_Type": "סוג מערכת ההפעלה",
|
||||
"OS_Uptime": "זמן שעבר מאז האתחול האחרון",
|
||||
"hours": "שעות",
|
||||
"minutes": "דקות",
|
||||
"seconds": "שניות",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"accounts": "Accounts",
|
||||
"accounts-allowEmailChange": "Allow Email Change"
|
||||
}
|
|
@ -191,6 +191,7 @@
|
|||
"error-user-notAllowSelf": "You can not invite yourself",
|
||||
"error-user-notCreated": "Ez a felhasználó nem jött létre",
|
||||
"error-username-taken": "Ez a felhasználónév már foglalt",
|
||||
"error-email-taken": "Email has already been taken",
|
||||
"export-board": "Tábla exportálása",
|
||||
"filter": "Szűrő",
|
||||
"filter-cards": "Kártyák szűrése",
|
||||
|
@ -379,5 +380,9 @@
|
|||
"OS_Uptime": "OS Uptime",
|
||||
"hours": "hours",
|
||||
"minutes": "minutes",
|
||||
"seconds": "seconds"
|
||||
"seconds": "seconds",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"accounts": "Accounts",
|
||||
"accounts-allowEmailChange": "Allow Email Change"
|
||||
}
|
|
@ -191,6 +191,7 @@
|
|||
"error-user-notAllowSelf": "Anda tidak bisa mengundang diri sendiri",
|
||||
"error-user-notCreated": "Nama pengguna ini tidak dibuat",
|
||||
"error-username-taken": "Nama pengguna ini sudah dipakai",
|
||||
"error-email-taken": "Email has already been taken",
|
||||
"export-board": "Exspor Panel",
|
||||
"filter": "Penyaringan",
|
||||
"filter-cards": "Filter Kartu",
|
||||
|
@ -379,5 +380,9 @@
|
|||
"OS_Uptime": "OS Uptime",
|
||||
"hours": "hours",
|
||||
"minutes": "minutes",
|
||||
"seconds": "seconds"
|
||||
"seconds": "seconds",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"accounts": "Accounts",
|
||||
"accounts-allowEmailChange": "Allow Email Change"
|
||||
}
|
|
@ -191,6 +191,7 @@
|
|||
"error-user-notAllowSelf": "Non puoi invitare te stesso",
|
||||
"error-user-notCreated": "L'utente non è stato creato",
|
||||
"error-username-taken": "Questo username è già utilizzato",
|
||||
"error-email-taken": "Email has already been taken",
|
||||
"export-board": "Esporta bacheca",
|
||||
"filter": "Filtra",
|
||||
"filter-cards": "Filtra schede",
|
||||
|
@ -379,5 +380,9 @@
|
|||
"OS_Uptime": "OS Uptime",
|
||||
"hours": "hours",
|
||||
"minutes": "minutes",
|
||||
"seconds": "seconds"
|
||||
"seconds": "seconds",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"accounts": "Accounts",
|
||||
"accounts-allowEmailChange": "Allow Email Change"
|
||||
}
|
|
@ -191,6 +191,7 @@
|
|||
"error-user-notAllowSelf": "自分を招待することはできません。",
|
||||
"error-user-notCreated": "ユーザーが作成されていません",
|
||||
"error-username-taken": "このユーザ名は既に使用されています",
|
||||
"error-email-taken": "Email has already been taken",
|
||||
"export-board": "ボードのエクスポート",
|
||||
"filter": "フィルター",
|
||||
"filter-cards": "カードをフィルターする",
|
||||
|
@ -379,5 +380,9 @@
|
|||
"OS_Uptime": "OS Uptime",
|
||||
"hours": "hours",
|
||||
"minutes": "minutes",
|
||||
"seconds": "seconds"
|
||||
"seconds": "seconds",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"accounts": "Accounts",
|
||||
"accounts-allowEmailChange": "Allow Email Change"
|
||||
}
|
|
@ -191,6 +191,7 @@
|
|||
"error-user-notAllowSelf": "자기 자신을 초대할 수 없습니다.",
|
||||
"error-user-notCreated": "유저가 생성되지 않았습니다.",
|
||||
"error-username-taken": "중복된 아이디 입니다.",
|
||||
"error-email-taken": "Email has already been taken",
|
||||
"export-board": "보드 내보내기",
|
||||
"filter": "필터",
|
||||
"filter-cards": "카드 필터",
|
||||
|
@ -379,5 +380,9 @@
|
|||
"OS_Uptime": "OS Uptime",
|
||||
"hours": "hours",
|
||||
"minutes": "minutes",
|
||||
"seconds": "seconds"
|
||||
"seconds": "seconds",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"accounts": "Accounts",
|
||||
"accounts-allowEmailChange": "Allow Email Change"
|
||||
}
|
|
@ -191,6 +191,7 @@
|
|||
"error-user-notAllowSelf": "You can not invite yourself",
|
||||
"error-user-notCreated": "This user is not created",
|
||||
"error-username-taken": "This username is already taken",
|
||||
"error-email-taken": "Email has already been taken",
|
||||
"export-board": "Export board",
|
||||
"filter": "Filter",
|
||||
"filter-cards": "Filter Cards",
|
||||
|
@ -379,5 +380,9 @@
|
|||
"OS_Uptime": "OS Uptime",
|
||||
"hours": "hours",
|
||||
"minutes": "minutes",
|
||||
"seconds": "seconds"
|
||||
"seconds": "seconds",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"accounts": "Accounts",
|
||||
"accounts-allowEmailChange": "Allow Email Change"
|
||||
}
|
|
@ -191,6 +191,7 @@
|
|||
"error-user-notAllowSelf": "You can not invite yourself",
|
||||
"error-user-notCreated": "This user is not created",
|
||||
"error-username-taken": "This username is already taken",
|
||||
"error-email-taken": "Email has already been taken",
|
||||
"export-board": "Export board",
|
||||
"filter": "Filter",
|
||||
"filter-cards": "Filter Cards",
|
||||
|
@ -379,5 +380,9 @@
|
|||
"OS_Uptime": "OS Uptime",
|
||||
"hours": "hours",
|
||||
"minutes": "minutes",
|
||||
"seconds": "seconds"
|
||||
"seconds": "seconds",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"accounts": "Accounts",
|
||||
"accounts-allowEmailChange": "Allow Email Change"
|
||||
}
|
|
@ -191,6 +191,7 @@
|
|||
"error-user-notAllowSelf": "You can not invite yourself",
|
||||
"error-user-notCreated": "Ten użytkownik nie został stworzony",
|
||||
"error-username-taken": "This username is already taken",
|
||||
"error-email-taken": "Email has already been taken",
|
||||
"export-board": "Eksportuj tablicę",
|
||||
"filter": "Filtr",
|
||||
"filter-cards": "Odfiltruj karty",
|
||||
|
@ -379,5 +380,9 @@
|
|||
"OS_Uptime": "OS Uptime",
|
||||
"hours": "hours",
|
||||
"minutes": "minutes",
|
||||
"seconds": "seconds"
|
||||
"seconds": "seconds",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"accounts": "Accounts",
|
||||
"accounts-allowEmailChange": "Allow Email Change"
|
||||
}
|
|
@ -191,6 +191,7 @@
|
|||
"error-user-notAllowSelf": "Você não pode convidar a si mesmo",
|
||||
"error-user-notCreated": "Este usuário não foi criado",
|
||||
"error-username-taken": "Esse username já existe",
|
||||
"error-email-taken": "Email has already been taken",
|
||||
"export-board": "Exportar quadro",
|
||||
"filter": "Filtrar",
|
||||
"filter-cards": "Filtrar Cartões",
|
||||
|
@ -379,5 +380,9 @@
|
|||
"OS_Uptime": "OS Uptime",
|
||||
"hours": "hours",
|
||||
"minutes": "minutes",
|
||||
"seconds": "seconds"
|
||||
"seconds": "seconds",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"accounts": "Accounts",
|
||||
"accounts-allowEmailChange": "Allow Email Change"
|
||||
}
|
|
@ -191,6 +191,7 @@
|
|||
"error-user-notAllowSelf": "You can not invite yourself",
|
||||
"error-user-notCreated": "This user is not created",
|
||||
"error-username-taken": "This username is already taken",
|
||||
"error-email-taken": "Email has already been taken",
|
||||
"export-board": "Export board",
|
||||
"filter": "Filter",
|
||||
"filter-cards": "Filter Cards",
|
||||
|
@ -379,5 +380,9 @@
|
|||
"OS_Uptime": "OS Uptime",
|
||||
"hours": "hours",
|
||||
"minutes": "minutes",
|
||||
"seconds": "seconds"
|
||||
"seconds": "seconds",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"accounts": "Accounts",
|
||||
"accounts-allowEmailChange": "Allow Email Change"
|
||||
}
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"accept": "Принять",
|
||||
"act-activity-notify": "[Wekan] Уведомления о активности",
|
||||
"act-addAttachment": "вложенно __attachment__ в __card__",
|
||||
"act-addAttachment": "вложено __attachment__ в __card__",
|
||||
"act-addComment": "прокомментировал __card__: __comment__",
|
||||
"act-createBoard": "создана __board__",
|
||||
"act-createCard": "добавлена __card__ в __list__",
|
||||
|
@ -37,7 +37,7 @@
|
|||
"activity-sent": "отправлено %s в %s",
|
||||
"activity-unjoined": "вышел из %s",
|
||||
"activity-checklist-added": "добавлен список в %s",
|
||||
"activity-checklist-item-added": "added checklist item to '%s' in %s",
|
||||
"activity-checklist-item-added": "добавлен пункт списка в '%s' в %s",
|
||||
"add": "Создать",
|
||||
"add-attachment": "Добавить вложение",
|
||||
"add-board": "Добавить доску",
|
||||
|
@ -139,7 +139,7 @@
|
|||
"color-red": "красный",
|
||||
"color-sky": "голубой",
|
||||
"color-yellow": "желтый",
|
||||
"comment": "Отправить",
|
||||
"comment": "Добавить коментарий",
|
||||
"comment-placeholder": "Написать комментарий",
|
||||
"comment-only": "Только комментирование",
|
||||
"comment-only-desc": "Может комментировать только карточки.",
|
||||
|
@ -148,56 +148,57 @@
|
|||
"createBoardPopup-title": "Создать доску",
|
||||
"chooseBoardSourcePopup-title": "Импортировать доску",
|
||||
"createLabelPopup-title": "Создать метку",
|
||||
"current": "Текущий",
|
||||
"current": "текущий",
|
||||
"date": "Дата",
|
||||
"decline": "Понизить",
|
||||
"default-avatar": "Стандартный аватар",
|
||||
"decline": "Отклонить",
|
||||
"default-avatar": "Аватар по умолчанию",
|
||||
"delete": "Удалить",
|
||||
"deleteLabelPopup-title": "Удалить метку?",
|
||||
"description": "Описание",
|
||||
"disambiguateMultiLabelPopup-title": "Разрешить конфликт меток",
|
||||
"disambiguateMultiMemberPopup-title": "Разрешить конфликт пользователей",
|
||||
"discard": "Отказать",
|
||||
"done": "ГОтово",
|
||||
"done": "Готово",
|
||||
"download": "Скачать",
|
||||
"edit": "Редактировать",
|
||||
"edit-avatar": "Изменить аватар",
|
||||
"edit-profile": "Изменить профиль",
|
||||
"edit-profile": "Изменить Профиль",
|
||||
"editCardStartDatePopup-title": "Сменить дату начала",
|
||||
"editCardDueDatePopup-title": "Изменить дату До",
|
||||
"editCardDueDatePopup-title": "Изменить дату до",
|
||||
"editLabelPopup-title": "Редактирование метки",
|
||||
"editNotificationPopup-title": "Редактировать уведомления",
|
||||
"editProfilePopup-title": "Изменить профиль",
|
||||
"email": "Эл.почта",
|
||||
"email-enrollAccount-subject": "Аккаунт создан для вас здесь __url__",
|
||||
"email-enrollAccount-text": "Привет __user__,\n\nДля того, чтобы начать использовать сервис, просто нажми на ссылку.\n\n__url__\n\nСпасибо.",
|
||||
"email-fail": "Email не отправлен",
|
||||
"email-enrollAccount-text": "Привет __user__,\n\nДля того, чтобы начать использовать сервис, просто нажми на ссылку ниже.\n\n__url__\n\nСпасибо.",
|
||||
"email-fail": "Отправка письма на EMail не удалась",
|
||||
"email-invalid": "Неверный адрес электронной почти",
|
||||
"email-invite": "Пригласить через Email",
|
||||
"email-invite": "Пригласить по электронной почте",
|
||||
"email-invite-subject": "__inviter__ прислал вам приглашение",
|
||||
"email-invite-text": "Дорогой __user__,\n\n__inviter__ пригласил вас на доску \"__board__\" для сотрудничества.\n\nПожайлуйста проследуйте по ссылке:\n\n__url__\n\nСпасибо.",
|
||||
"email-invite-text": "Дорогой __user__,\n\n__inviter__ пригласил вас присоединиться к доске \"__board__\" для сотрудничества.\n\nПожайлуйста проследуйте по ссылке ниже:\n\n__url__\n\nСпасибо.",
|
||||
"email-resetPassword-subject": "Перейдите по ссылке, чтобы сбросить пароль __url__",
|
||||
"email-resetPassword-text": "Привет __user__,\n\nДля сброса пароля перейдите по ссылке.\n\n__url__\n\nThanks.",
|
||||
"email-sent": "Email отправлен",
|
||||
"email-verifyEmail-subject": "Подтвердите Email перейдя по ссылке __url__",
|
||||
"email-verifyEmail-text": "Привет __user__,\n\nДля подтверждения Email перейдите по ссылке.\n\n__url__\n\nСпасибо.",
|
||||
"email-resetPassword-text": "Привет __user__,\n\nДля сброса пароля перейдите по ссылке ниже.\n\n__url__\n\nThanks.",
|
||||
"email-sent": "Письмо отправлено",
|
||||
"email-verifyEmail-subject": "Подтвердите вашу эл.почту перейдя по ссылке __url__",
|
||||
"email-verifyEmail-text": "Привет __user__,\n\nДля подтверждения вашей электронной почты перейдите по ссылке ниже.\n\n__url__\n\nСпасибо.",
|
||||
"error-board-doesNotExist": "Доска не найдена",
|
||||
"error-board-notAdmin": "Вы должны обладать правами админстратора, чтобы сделать это",
|
||||
"error-board-notAdmin": "Вы должны обладать правами администратора этой доски, чтобы сделать это",
|
||||
"error-board-notAMember": "Вы должны быть пользователем доски, чтобы сделать это",
|
||||
"error-json-malformed": "Ваше текст не является JSON",
|
||||
"error-json-malformed": "Ваше текст не является правильным JSON",
|
||||
"error-json-schema": "Содержимое вашего JSON не содержит информацию в корректном формате",
|
||||
"error-list-doesNotExist": "Список не найден",
|
||||
"error-user-doesNotExist": "Пользователь не найден",
|
||||
"error-user-notAllowSelf": "Вы не можете пригласить себя",
|
||||
"error-user-notCreated": "Пользователь не создан",
|
||||
"error-username-taken": "Этот пользователь уже существует",
|
||||
"error-username-taken": "Это имя пользователя уже занято",
|
||||
"error-email-taken": "Email has already been taken",
|
||||
"export-board": "Экспортировать доску",
|
||||
"filter": "Фильтр",
|
||||
"filter-cards": "Фильтр карточек",
|
||||
"filter-clear": "Очистить фильтр",
|
||||
"filter-no-label": "Нет метки",
|
||||
"filter-no-member": "Нет пользователей",
|
||||
"filter-on": "Filter is on",
|
||||
"filter-on": "Включен фильтр",
|
||||
"filter-on-desc": "Показываются карточки, соответствующие настройкам фильтра. Нажмите для редактирования.",
|
||||
"filter-to-selection": "Filter to selection",
|
||||
"fullname": "Полное имя",
|
||||
|
@ -210,7 +211,7 @@
|
|||
"import-board-c": "Импортировать доску",
|
||||
"import-board-title-trello": "Импортировать доску из Trello",
|
||||
"import-board-title-wekan": "Импортировать доску с Wekan",
|
||||
"import-sandstorm-warning": "Imported board will delete all existing data on board and replace it with imported board.",
|
||||
"import-sandstorm-warning": "Импортированная доска удалит все существующие данные на доске и заменит ее доской.",
|
||||
"from-trello": "Из Trello",
|
||||
"from-wekan": "Их Wekan",
|
||||
"import-board-instruction-trello": "На вашей Trello доске нажмите “Menu” - “More” - “Print and export - “Export JSON” и скопируйте полученный текст",
|
||||
|
@ -218,17 +219,17 @@
|
|||
"import-json-placeholder": "Вставьте JSON сюда",
|
||||
"import-map-members": "Карта пользователей",
|
||||
"import-members-map": "Вы ипортировали доску с пользователями. Пожалуйста, составьте карту пользователей, которых вы хотите импортировать в Wekan пользователей",
|
||||
"import-show-user-mapping": "Пересмотреть карту пользователей",
|
||||
"import-show-user-mapping": "Проверить карту пользователей",
|
||||
"import-user-select": "Выберите Wekan-пользователя, которого вы хотите использовать в качестве пользователя",
|
||||
"importMapMembersAddPopup-title": "Выбрать Wekan пользователя",
|
||||
"info": "Version",
|
||||
"info": "Версия",
|
||||
"initials": "Инициалы",
|
||||
"invalid-date": "Неверная дата",
|
||||
"joined": "вступил",
|
||||
"just-invited": "Вы только пригласили на эту доску",
|
||||
"keyboard-shortcuts": "Сочетания клавиш",
|
||||
"label-create": "Создать метку",
|
||||
"label-default": "%s",
|
||||
"label-default": "%sметка (по умолчанию)",
|
||||
"label-delete-pop": "Это действие невозможно будет отменить. Метка будет удалена во всех карточках.",
|
||||
"labels": "Метки",
|
||||
"language": "Язык",
|
||||
|
@ -366,18 +367,22 @@
|
|||
"error-notAuthorized": "У вас нет доступа на просмотр этой страницы.",
|
||||
"outgoing-webhooks": "Исходящие Веб-хуки",
|
||||
"outgoingWebhooksPopup-title": "Исходящие Веб-хуки",
|
||||
"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"
|
||||
"Wekan_version": "Версия Wekan",
|
||||
"Node_version": "Версия NodeJS",
|
||||
"OS_Arch": "Архитектура",
|
||||
"OS_Cpus": "Количество процессоров",
|
||||
"OS_Freemem": "Свободная память",
|
||||
"OS_Loadavg": "Средняя загрузка",
|
||||
"OS_Platform": "Платформа",
|
||||
"OS_Release": "Релиз",
|
||||
"OS_Totalmem": "Общая память",
|
||||
"OS_Type": "Тип ОС",
|
||||
"OS_Uptime": "Время работы",
|
||||
"hours": "часы",
|
||||
"minutes": "минуты",
|
||||
"seconds": "секунды",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"accounts": "Accounts",
|
||||
"accounts-allowEmailChange": "Allow Email Change"
|
||||
}
|
|
@ -191,6 +191,7 @@
|
|||
"error-user-notAllowSelf": "You can not invite yourself",
|
||||
"error-user-notCreated": "This user is not created",
|
||||
"error-username-taken": "Korisničko ime je već zauzeto",
|
||||
"error-email-taken": "Email has already been taken",
|
||||
"export-board": "Export board",
|
||||
"filter": "Filter",
|
||||
"filter-cards": "Filter Cards",
|
||||
|
@ -379,5 +380,9 @@
|
|||
"OS_Uptime": "OS Uptime",
|
||||
"hours": "hours",
|
||||
"minutes": "minutes",
|
||||
"seconds": "seconds"
|
||||
"seconds": "seconds",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"accounts": "Accounts",
|
||||
"accounts-allowEmailChange": "Allow Email Change"
|
||||
}
|
|
@ -191,6 +191,7 @@
|
|||
"error-user-notAllowSelf": "Du kan inte bjuda in dig själv",
|
||||
"error-user-notCreated": "Den här användaren har inte skapats",
|
||||
"error-username-taken": "Detta användarnamn är redan taget",
|
||||
"error-email-taken": "Email has already been taken",
|
||||
"export-board": "Exportera anslagstavla",
|
||||
"filter": "Filtrera",
|
||||
"filter-cards": "Filtrera kort",
|
||||
|
@ -379,5 +380,9 @@
|
|||
"OS_Uptime": "OS Uptime",
|
||||
"hours": "hours",
|
||||
"minutes": "minutes",
|
||||
"seconds": "seconds"
|
||||
"seconds": "seconds",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"accounts": "Accounts",
|
||||
"accounts-allowEmailChange": "Allow Email Change"
|
||||
}
|
|
@ -191,6 +191,7 @@
|
|||
"error-user-notAllowSelf": "You can not invite yourself",
|
||||
"error-user-notCreated": "This user is not created",
|
||||
"error-username-taken": "This username is already taken",
|
||||
"error-email-taken": "Email has already been taken",
|
||||
"export-board": "Export board",
|
||||
"filter": "Filter",
|
||||
"filter-cards": "Filter Cards",
|
||||
|
@ -379,5 +380,9 @@
|
|||
"OS_Uptime": "OS Uptime",
|
||||
"hours": "hours",
|
||||
"minutes": "minutes",
|
||||
"seconds": "seconds"
|
||||
"seconds": "seconds",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"accounts": "Accounts",
|
||||
"accounts-allowEmailChange": "Allow Email Change"
|
||||
}
|
|
@ -191,6 +191,7 @@
|
|||
"error-user-notAllowSelf": "You can not invite yourself",
|
||||
"error-user-notCreated": "ผู้ใช้รายนี้ไม่ได้สร้าง",
|
||||
"error-username-taken": "ชื่อนี้ถูกใช้งานแล้ว",
|
||||
"error-email-taken": "Email has already been taken",
|
||||
"export-board": "ส่งออกกระดาน",
|
||||
"filter": "กรอง",
|
||||
"filter-cards": "กรองการ์ด",
|
||||
|
@ -379,5 +380,9 @@
|
|||
"OS_Uptime": "OS Uptime",
|
||||
"hours": "hours",
|
||||
"minutes": "minutes",
|
||||
"seconds": "seconds"
|
||||
"seconds": "seconds",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"accounts": "Accounts",
|
||||
"accounts-allowEmailChange": "Allow Email Change"
|
||||
}
|
|
@ -191,6 +191,7 @@
|
|||
"error-user-notAllowSelf": "Kendi kendini davet edemezsin",
|
||||
"error-user-notCreated": "Bu üye oluşturulmadı",
|
||||
"error-username-taken": "Kullanıcı adı zaten alınmış",
|
||||
"error-email-taken": "Email has already been taken",
|
||||
"export-board": "Panoyu dışarı aktar",
|
||||
"filter": "Filtre",
|
||||
"filter-cards": "Kartları Filtrele",
|
||||
|
@ -379,5 +380,9 @@
|
|||
"OS_Uptime": "OS Uptime",
|
||||
"hours": "hours",
|
||||
"minutes": "minutes",
|
||||
"seconds": "seconds"
|
||||
"seconds": "seconds",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"accounts": "Accounts",
|
||||
"accounts-allowEmailChange": "Allow Email Change"
|
||||
}
|
|
@ -191,6 +191,7 @@
|
|||
"error-user-notAllowSelf": "You can not invite yourself",
|
||||
"error-user-notCreated": "This user is not created",
|
||||
"error-username-taken": "This username is already taken",
|
||||
"error-email-taken": "Email has already been taken",
|
||||
"export-board": "Export board",
|
||||
"filter": "Filter",
|
||||
"filter-cards": "Filter Cards",
|
||||
|
@ -379,5 +380,9 @@
|
|||
"OS_Uptime": "OS Uptime",
|
||||
"hours": "hours",
|
||||
"minutes": "minutes",
|
||||
"seconds": "seconds"
|
||||
"seconds": "seconds",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"accounts": "Accounts",
|
||||
"accounts-allowEmailChange": "Allow Email Change"
|
||||
}
|
|
@ -191,6 +191,7 @@
|
|||
"error-user-notAllowSelf": "You can not invite yourself",
|
||||
"error-user-notCreated": "This user is not created",
|
||||
"error-username-taken": "This username is already taken",
|
||||
"error-email-taken": "Email has already been taken",
|
||||
"export-board": "Export board",
|
||||
"filter": "Filter",
|
||||
"filter-cards": "Filter Cards",
|
||||
|
@ -379,5 +380,9 @@
|
|||
"OS_Uptime": "OS Uptime",
|
||||
"hours": "hours",
|
||||
"minutes": "minutes",
|
||||
"seconds": "seconds"
|
||||
"seconds": "seconds",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"accounts": "Accounts",
|
||||
"accounts-allowEmailChange": "Allow Email Change"
|
||||
}
|
|
@ -191,6 +191,7 @@
|
|||
"error-user-notAllowSelf": "无法邀请自己",
|
||||
"error-user-notCreated": "该用户未能成功创建",
|
||||
"error-username-taken": "此用户名已存在",
|
||||
"error-email-taken": "Email has already been taken",
|
||||
"export-board": "导出看板",
|
||||
"filter": "过滤",
|
||||
"filter-cards": "过滤卡片",
|
||||
|
@ -379,5 +380,9 @@
|
|||
"OS_Uptime": "OS Uptime",
|
||||
"hours": "hours",
|
||||
"minutes": "minutes",
|
||||
"seconds": "seconds"
|
||||
"seconds": "seconds",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"accounts": "Accounts",
|
||||
"accounts-allowEmailChange": "Allow Email Change"
|
||||
}
|
|
@ -191,6 +191,7 @@
|
|||
"error-user-notAllowSelf": "不允許對自己執行此操作",
|
||||
"error-user-notCreated": "該使用者未能成功建立",
|
||||
"error-username-taken": "這個使用者名稱已被使用",
|
||||
"error-email-taken": "Email has already been taken",
|
||||
"export-board": "Export board",
|
||||
"filter": "過濾",
|
||||
"filter-cards": "過濾卡片",
|
||||
|
@ -379,5 +380,9 @@
|
|||
"OS_Uptime": "OS Uptime",
|
||||
"hours": "hours",
|
||||
"minutes": "minutes",
|
||||
"seconds": "seconds"
|
||||
"seconds": "seconds",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"accounts": "Accounts",
|
||||
"accounts-allowEmailChange": "Allow Email Change"
|
||||
}
|
33
models/accountSettings.js
Normal file
33
models/accountSettings.js
Normal file
|
@ -0,0 +1,33 @@
|
|||
AccountSettings = new Mongo.Collection('accountSettings');
|
||||
|
||||
AccountSettings.attachSchema(new SimpleSchema({
|
||||
_id: {
|
||||
type: String,
|
||||
},
|
||||
booleanValue: {
|
||||
type: Boolean,
|
||||
optional: true,
|
||||
},
|
||||
sort: {
|
||||
type: Number,
|
||||
decimal: true,
|
||||
},
|
||||
}));
|
||||
|
||||
AccountSettings.allow({
|
||||
update(userId) {
|
||||
const user = Users.findOne(userId);
|
||||
return user && user.isAdmin;
|
||||
},
|
||||
});
|
||||
|
||||
if (Meteor.isServer) {
|
||||
Meteor.startup(() => {
|
||||
AccountSettings.upsert({ _id: 'accounts-allowEmailChange' }, {
|
||||
$setOnInsert: {
|
||||
booleanValue: false,
|
||||
sort: 0,
|
||||
},
|
||||
});
|
||||
});
|
||||
}
|
|
@ -334,6 +334,28 @@ Meteor.methods({
|
|||
check(limit, Number);
|
||||
Meteor.user().setShowCardsCountAt(limit);
|
||||
},
|
||||
setEmail(email) {
|
||||
check(email, String);
|
||||
const existingUser = Users.findOne({ 'emails.address': email }, { fields: { _id: 1 } });
|
||||
if (existingUser) {
|
||||
throw new Meteor.Error('email-already-taken');
|
||||
} else {
|
||||
Users.update(this.userId, {
|
||||
$set: {
|
||||
emails: [{
|
||||
address: email,
|
||||
verified: false,
|
||||
}],
|
||||
},
|
||||
});
|
||||
}
|
||||
},
|
||||
setUsernameAndEmail(username, email) {
|
||||
check(username, String);
|
||||
check(email, String);
|
||||
Meteor.call('setUsername', username);
|
||||
Meteor.call('setEmail', email);
|
||||
},
|
||||
});
|
||||
|
||||
if (Meteor.isServer) {
|
||||
|
|
3
server/publications/accountSettings.js
Normal file
3
server/publications/accountSettings.js
Normal file
|
@ -0,0 +1,3 @@
|
|||
Meteor.publish('accountSettings', function() {
|
||||
return AccountSettings.find();
|
||||
});
|
Loading…
Add table
Add a link
Reference in a new issue