Merge with upstream, add missing refs in CHANGELOG.md

This commit is contained in:
Florian Scholdei
2020-10-20 11:11:18 +02:00
37 changed files with 787 additions and 245 deletions

View File

@@ -47,6 +47,7 @@
"skip-failed-authenticators": "Fehlgeschlagene Authentifizierer überspringen",
"plugin-url": "Plugin Center URL",
"release-feed-url": "Release Feed URL",
"mail-domain-name": "Fallback E-Mail Domain Name",
"enabled-xsrf-protection": "XSRF Protection aktivieren",
"namespace-strategy": "Namespace Strategie",
"login-info-url": "Login Info URL"
@@ -62,6 +63,7 @@
"dateFormatHelpText": "Moments Datumsformat. Zulässige Formate sind in der MomentJS Dokumentation beschrieben.",
"pluginUrlHelpText": "Die URL der Plugin Center API. Beschreibung der Platzhalter: version = SCM-Manager Version; os = Betriebssystem; arch = Architektur",
"releaseFeedUrlHelpText": "Die URL des RSS Release Feed des SCM-Manager. Darüber wird über die neue SCM-Manager Version informiert. Um diese Funktion zu deaktivieren lassen Sie dieses Feld leer.",
"mailDomainNameHelpText": "Dieser Domain Name wird genutzt, wenn für einen User eine E-Mail-Adresse benötigt wird, für den keine hinterlegt ist. Diese Domain wird nicht zum Versenden von E-Mails genutzt und auch keine anderweitige Verbindung aufgebaut.",
"enableForwardingHelpText": "mod_proxy Port Weiterleitung aktivieren.",
"disableGroupingGridHelpText": "Repository Gruppen deaktivieren. Nach einer Änderung an dieser Einstellung muss die Seite komplett neu geladen werden.",
"allowAnonymousAccessHelpText": "Anonyme Benutzer haben Zugriff auf freigegebene Repositories.",

View File

@@ -135,6 +135,12 @@
"sources": "Sources"
}
},
"commit": {
"commitAuthor": {
"author": "Autor",
"noMail": "Für den aktuellen Benutzer existiert keine E-Mail-Adresse. Es wird die unten angezeigte generierte Adresse genutzt."
}
},
"repositoryForm": {
"subtitle": "Repository bearbeiten",
"submit": "Speichern",
@@ -273,4 +279,4 @@
"clickHere": "Klicken Sie hier um Ihre Datei hochzuladen.",
"dragAndDrop": "Sie können Ihre Datei auch direkt in die Dropzone ziehen."
}
}
},

View File

@@ -47,6 +47,7 @@
"skip-failed-authenticators": "Skip Failed Authenticators",
"plugin-url": "Plugin Center URL",
"release-feed-url": "Release Feed URL",
"mail-domain-name": "Fallback Mail Domain Name",
"enabled-xsrf-protection": "Enabled XSRF Protection",
"namespace-strategy": "Namespace Strategy",
"login-info-url": "Login Info URL"
@@ -62,6 +63,7 @@
"dateFormatHelpText": "Moments date format. Please have a look at the MomentJS documentation.",
"pluginUrlHelpText": "The url of the Plugin Center API. Explanation of the placeholders: version = SCM-Manager Version; os = Operation System; arch = Architecture",
"releaseFeedUrlHelpText": "The url of the RSS Release Feed for SCM-Manager. This provides up-to-date version information. To disable this feature just leave the url blank.",
"mailDomainNameHelpText": "This domain name will be used to create email addresses for users without one when needed. It will not be used to send mails nor will be accessed otherwise.",
"enableForwardingHelpText": "Enable mod_proxy port forwarding.",
"disableGroupingGridHelpText": "Disable repository Groups. A complete page reload is required after a change of this value.",
"allowAnonymousAccessHelpText": "Anonymous users have access on granted repositories.",

View File

@@ -135,6 +135,12 @@
"count_plural": "{{count}} Contributors"
}
},
"commit": {
"commitAuthor": {
"author": "Author",
"noMail": "We have found no email address for your current user. We will use the generated address shown below."
}
},
"repositoryForm": {
"subtitle": "Edit Repository",
"submit": "Save",

View File

@@ -144,6 +144,7 @@ class ConfigForm extends React.Component<Props, State> {
skipFailedAuthenticators={config.skipFailedAuthenticators}
pluginUrl={config.pluginUrl}
releaseFeedUrl={config.releaseFeedUrl}
mailDomainName={config.mailDomainName}
enabledXsrfProtection={config.enabledXsrfProtection}
namespaceStrategy={config.namespaceStrategy}
onChange={(isValid, changedValue, name) => this.onChange(isValid, changedValue, name)}

View File

@@ -36,6 +36,7 @@ type Props = WithTranslation & {
skipFailedAuthenticators: boolean;
pluginUrl: string;
releaseFeedUrl: string;
mailDomainName: string;
enabledXsrfProtection: boolean;
namespaceStrategy: string;
namespaceStrategies?: NamespaceStrategies;
@@ -51,6 +52,7 @@ class GeneralSettings extends React.Component<Props> {
loginInfoUrl,
pluginUrl,
releaseFeedUrl,
mailDomainName,
enabledXsrfProtection,
anonymousMode,
namespaceStrategy,
@@ -129,7 +131,7 @@ class GeneralSettings extends React.Component<Props> {
</div>
</div>
<div className="columns">
<div className="column">
<div className="column is-half">
<InputField
label={t("general-settings.release-feed-url")}
onChange={this.handleReleaseFeedUrlChange}
@@ -138,6 +140,15 @@ class GeneralSettings extends React.Component<Props> {
helpText={t("help.releaseFeedUrlHelpText")}
/>
</div>
<div className="column is-half">
<InputField
label={t("general-settings.mail-domain-name")}
onChange={this.handleMailDomainNameChange}
value={mailDomainName}
disabled={!hasUpdatePermission}
helpText={t("help.mailDomainNameHelpText")}
/>
</div>
</div>
</div>
);
@@ -164,6 +175,9 @@ class GeneralSettings extends React.Component<Props> {
handleReleaseFeedUrlChange = (value: string) => {
this.props.onChange(true, value, "releaseFeedUrl");
};
handleMailDomainNameChange = (value: string) => {
this.props.onChange(true, value, "mailDomainName");
};
}
export default withTranslation("config")(GeneralSettings);

View File

@@ -113,8 +113,7 @@ class UserForm extends React.Component<Props, State> {
this.editUserComponentsAreUnchanged() ||
this.state.mailValidationError ||
this.state.displayNameValidationError ||
this.isFalsy(user.displayName) ||
this.isFalsy(user.mail)
this.isFalsy(user.displayName)
);
};
@@ -152,6 +151,7 @@ class UserForm extends React.Component<Props, State> {
// edit existing user
subtitle = <Subtitle subtitle={t("userForm.subtitle")} />;
}
return (
<>
{subtitle}
@@ -218,7 +218,7 @@ class UserForm extends React.Component<Props, State> {
handleEmailChange = (mail: string) => {
this.setState({
mailValidationError: !validator.isMailValid(mail),
mailValidationError: !!mail && !validator.isMailValid(mail),
user: {
...this.state.user,
mail