merge with 2.0.0-m3

This commit is contained in:
Sebastian Sdorra
2019-02-01 08:06:27 +01:00
19 changed files with 594 additions and 67 deletions

View File

@@ -1,7 +1,7 @@
// @flow
import React from "react";
import type {Branch} from "@scm-manager/ui-types";
import type { Branch } from "@scm-manager/ui-types";
import injectSheet from "react-jss";
import classNames from "classnames";
import DropDown from "./forms/DropDown";
@@ -39,7 +39,9 @@ class BranchSelector extends React.Component<Props, State> {
}
componentDidMount() {
const selectedBranch = this.props.branches.find(branch => branch.name === this.props.selectedBranch);
const selectedBranch = this.props.branches.find(
branch => branch.name === this.props.selectedBranch
);
this.setState({ selectedBranch });
}

View File

@@ -0,0 +1,44 @@
// @flow
import React from "react";
import Button from "./Button";
type Props = {
firstlabel: string,
secondlabel: string,
firstAction?: (event: Event) => void,
secondAction?: (event: Event) => void,
firstIsSelected: boolean
};
class ButtonGroup extends React.Component<Props> {
render() {
const { firstlabel, secondlabel, firstAction, secondAction, firstIsSelected } = this.props;
let showFirstColor = "";
let showSecondColor = "";
if (firstIsSelected) {
showFirstColor += "link is-selected";
} else {
showSecondColor += "link is-selected";
}
return (
<div className="buttons has-addons">
<Button
label={firstlabel}
color={showFirstColor}
action={firstAction}
/>
<Button
label={secondlabel}
color={showSecondColor}
action={secondAction}
/>
</div>
);
}
}
export default ButtonGroup;

View File

@@ -5,6 +5,9 @@ export { default as Button } from "./Button.js";
export { default as CreateButton } from "./CreateButton.js";
export { default as DeleteButton } from "./DeleteButton.js";
export { default as EditButton } from "./EditButton.js";
export { default as RemoveEntryOfTableButton } from "./RemoveEntryOfTableButton.js";
export { default as SubmitButton } from "./SubmitButton.js";
export {default as DownloadButton} from "./DownloadButton.js";
export { default as DownloadButton } from "./DownloadButton.js";
export { default as ButtonGroup } from "./ButtonGroup.js";
export {
default as RemoveEntryOfTableButton
} from "./RemoveEntryOfTableButton.js";

View File

@@ -0,0 +1,72 @@
{
"login": {
"title": "Anmeldung",
"subtitle": "Bitte anmelden, um fortzufahren.",
"logo-alt": "SCM-Manager",
"username-placeholder": "Benutzername",
"password-placeholder": "Passwort",
"submit": "Anmelden"
},
"logout": {
"error": {
"title": "Abmeldung fehlgeschlagen",
"subtitle": "Während der Abmeldung ist ein Fehler aufgetreten."
}
},
"app": {
"error": {
"title": "Fehler",
"subtitle": "Ein unbekannter Fehler ist aufgetreten."
}
},
"error-notification": {
"prefix": "Fehler",
"loginLink": "Erneute Anmeldung",
"timeout": "Die Session ist abgelaufen.",
"wrong-login-credentials": "Ungültige Anmeldedaten"
},
"loading": {
"alt": "Lade ..."
},
"logo": {
"alt": "SCM-Manager"
},
"primary-navigation": {
"repositories": "Repositories",
"users": "Benutzer",
"logout": "Abmelden",
"groups": "Gruppen",
"config": "Einstellungen"
},
"paginator": {
"next": "Weiter",
"previous": "Zurück"
},
"profile": {
"navigation-label": "Navigation",
"actions-label": "Aktionen",
"username": "Benutzername",
"displayName": "Anzeigename",
"mail": "E-Mail",
"groups": "Gruppen",
"information": "Informationen",
"change-password": "Passwort ändern",
"error-title": "Fehler",
"error-subtitle": "Das Profil kann nicht angezeigt werden.",
"error": "Fehler",
"error-message": "'me' ist nicht definiert"
},
"password": {
"label": "Passwort",
"newPassword": "Neues Passwort",
"passwordHelpText": "Klartext Passwort des Benutzers.",
"passwordConfirmHelpText": "Passwort zur Bestätigen wiederholen.",
"currentPassword": "Aktuelles Passwort",
"currentPasswordHelpText": "Dieses Passwort wird momentan bereits verwendet.",
"confirmPassword": "Passwort wiederholen",
"passwordInvalid": "Das Passwort muss zwischen 6 und 32 Zeichen lang sein!",
"passwordConfirmFailed": "Passwörter müssen identisch sein!",
"submit": "Speichern",
"changedSuccessfully": "Passwort erfolgreich geändert!"
}
}

View File

@@ -0,0 +1,93 @@
{
"config": {
"navigation-title": "Navigation"
},
"global-config": {
"title": "Einstellungen",
"navigation-label": "Globale Einstellungen",
"error-title": "Fehler",
"error-subtitle": "Unbekannter Einstellungen Fehler"
},
"config-form": {
"submit": "Speichern",
"submit-success-notification": "Einstellungen wurden erfolgreich geändert!",
"no-permission-notification": "Hinweis: Es fehlen Berechtigungen zum Bearbeiten der Einstellungen!"
},
"proxy-settings": {
"name": "Proxy Einstellungen",
"proxy-password": "Proxy Passwort",
"proxy-port": "Proxy Port",
"proxy-server": "Proxy Server",
"proxy-user": "Proxy Benutzer",
"enable-proxy": "Proxy aktivieren",
"proxy-excludes": "Proxy Excludes",
"remove-proxy-exclude-button": "Proxy Exclude löschen",
"add-proxy-exclude-error": "Der Proxy Exclude ist ungültig",
"add-proxy-exclude-textfield": "Neue Proxy Excludes hinzufügen",
"add-proxy-exclude-button": "Proxy Exclude hinzufügen"
},
"base-url-settings": {
"name": "Base URL Einstellungen",
"base-url": "Base URL",
"force-base-url": "Base URL erzwingen"
},
"admin-settings": {
"name": "Administrations Einstellungen",
"admin-groups": "Admin Gruppen",
"admin-users": "Admin Benutzer",
"remove-group-button": "Admin Group löschen",
"remove-user-button": "Admin Benutzer löschen",
"add-group-error": "Der eingegebene Gruppenname ist ungültig",
"add-group-textfield": "Neue Gruppe mit Administrationsrechten hinzufügen",
"add-group-button": "Admin Gruppe hinzufügen",
"add-user-error": "Der eingegebene Benutzername ist ungültig",
"add-user-textfield": "Neuen Benutzer mit Administrationsrechten hinzufügen",
"add-user-button": "Admin Benutzer hinzufügen"
},
"login-attempt": {
"name": "Anmeldeversuche",
"login-attempt-limit": "Limit für Anmeldeversuche",
"login-attempt-limit-timeout": "Timeout bei fehlgeschlagenen Anmeldeversuchen"
},
"general-settings": {
"realm-description": "Realm Beschreibung",
"enable-repository-archive": "Repository Archiv aktivieren",
"disable-grouping-grid": "Gruppen deaktivieren",
"date-format": "Datumsformat",
"anonymous-access-enabled": "Anonyme Zugriffe erlauben",
"skip-failed-authenticators": "Fehlgeschlagene Authentifizierer überspringen",
"plugin-url": "Plugin URL",
"enabled-xsrf-protection": "XSRF Protection aktivieren",
"default-namespace-strategy": "Default Namespace Strategie"
},
"validation": {
"date-format-invalid": "Das Datumsformat ist ungültig",
"login-attempt-limit-timeout-invalid": "Dies ist keine Zahl",
"login-attempt-limit-invalid": "Dies ist keine Zahl",
"plugin-url-invalid": "Dies ist keine gültige URL"
},
"help": {
"realmDescriptionHelpText": "Beschreibung des Authentication Realm.",
"dateFormatHelpText": "Moments Datumsformat. Zulässige Formate sind in der MomentJS Dokumentation beschrieben.",
"pluginRepositoryHelpText": "Die URL des Plugin Repositories. Beschreibung der Platzhalter: version = SCM-Manager Version; os = Betriebssystem; arch = Architektur",
"enableForwardingHelpText": "mod_proxy Port Weiterleitung aktivieren.",
"enableRepositoryArchiveHelpText": "Repository Archive aktivieren. Nach einer Änderung an dieser Einstellung muss die Seite komplett neu geladen werden.",
"disableGroupingGridHelpText": "Repository Gruppen deaktivieren. Nach einer Änderung an dieser Einstellung muss die Seite komplett neu geladen werden.",
"allowAnonymousAccessHelpText": "Anonyme Benutzer haben Zugriff auf öffentliche Repositories.",
"skipFailedAuthenticatorsHelpText": "Die Kette der Authentifikatoren wird nicht beendet, wenn ein Authentifikator einen Benutzer findet, ihn aber nicht erfolgreich authentifizieren kann.",
"adminGroupsHelpText": "Namen von Gruppen mit Admin-Berechtigungen.",
"adminUsersHelpText": "Namen von Benutzern mit Admin-Berechtigungen.",
"forceBaseUrlHelpText": "Zugriffe, die von einer anderen URL kommen, werden auf die Base URL weiter geleitet.",
"baseUrlHelpText": "Die URL der Applikation mit Kontextpfad, z.B. http://localhost:8080/scm",
"loginAttemptLimitHelpText": "Maximale Anzahl von Anmeldeversuchen. Durch Verwendung von -1 wird die Begrenzung der Anmeldeversuche deaktiviert.",
"loginAttemptLimitTimeoutHelpText": "Timeout in Sekunden für Benutzer, die vorübergehend wegen zu vieler fehlgeschlagener Anmeldeversuche, deaktiviert wurden.",
"enableProxyHelpText": "Proxy aktivieren",
"proxyPortHelpText": "Der Proxy Port",
"proxyPasswordHelpText": "Das Passwort für die Proxy Server Anmeldung.",
"proxyServerHelpText": "Der Proxy Server",
"proxyUserHelpText": "Der Benutzername für die Proxy Server Anmeldung.",
"proxyExcludesHelpText": "Glob patterns für Hostnamen, die von den Proxy-Einstellungen ausgeschlossen werden sollen.",
"enableXsrfProtectionHelpText": "Xsrf Cookie Protection aktivieren. Hinweis: Dieses Feature befindet sich noch im Experimentalstatus.",
"defaultNameSpaceStrategyHelpText": "Die Standardstrategie für Namespaces."
}
}

View File

@@ -0,0 +1,70 @@
{
"group": {
"name": "Name",
"description": "Beschreibung",
"creationDate": "Erstellt",
"lastModified": "Zuletzt bearbeitet",
"type": "Typ",
"members": "Mitglieder"
},
"groups": {
"title": "Gruppen",
"subtitle": "Verwaltung der Gruppen"
},
"single-group": {
"error-title": "Fehler",
"error-subtitle": "Unbekannter Gruppen Fehler",
"navigation-label": "Navigation",
"actions-label": "Aktionen",
"information-label": "Informationen",
"back-label": "Zurück"
},
"add-group": {
"title": "Gruppe erstellen",
"subtitle": "Erstellen einer neuen Gruppe"
},
"create-group-button": {
"label": "Gruppe erstellen"
},
"edit-group-button": {
"label": "Bearbeiten"
},
"add-member-button": {
"label": "Mitglied hinzufügen"
},
"remove-member-button": {
"label": "Mitglied entfernen"
},
"add-member-textfield": {
"label": "Mitglied hinzufügen",
"error": "Ungültiger Name für Mitglied"
},
"add-member-autocomplete": {
"placeholder": "Benutzername eingeben",
"loading": "Suche...",
"no-options": "Kein Vorschlag für Benutzername verfügbar"
},
"group-form": {
"submit": "Speichern",
"name-error": "Name ist ungültig",
"description-error": "Beschreibung ist ungültig",
"help": {
"nameHelpText": "Eindeutiger Name der Gruppe",
"descriptionHelpText": "Eine kurze Beschreibung der Gruppe",
"memberHelpText": "Benutzername des Mitglieds der Gruppe"
}
},
"delete-group-button": {
"label": "Löschen",
"confirm-alert": {
"title": "Gruppe löschen",
"message": "Soll die Gruppe wirklich gelöscht werden?",
"submit": "Ja",
"cancel": "Nein"
}
},
"set-permissions-button": {
"label": "Berechtigungen ändern"
}
}

View File

@@ -0,0 +1,8 @@
{
"form": {
"submit-button": {
"label": "Berechtigungen speichern"
},
"set-permissions-successful": "Berechtigungen erfolgreich gespeichert"
}
}

View File

@@ -0,0 +1,147 @@
{
"repository": {
"name": "Name",
"type": "Typ",
"contact": "Kontakt",
"description": "Beschreibung",
"creationDate": "Erstellt",
"lastModified": "Zuletzt bearbeitet"
},
"validation": {
"name-invalid": "Der Name des Repository ist ungültig",
"contact-invalid": "Der Kontakt muss eine gültige E-Mail Adresse sein"
},
"overview": {
"title": "Repositories",
"subtitle": "Übersicht aller verfügbaren Repositories",
"create-button": "Repository erstellen"
},
"repository-root": {
"error-title": "Fehler",
"error-subtitle": "Unbekannter Repository Fehler",
"actions-label": "Aktionen",
"back-label": "Zurück",
"navigation-label": "Navigation",
"history": "Commits",
"information": "Informationen",
"permissions": "Berechtigungen",
"sources": "Sources"
},
"create": {
"title": "Repository erstellen",
"subtitle": "Erstellen eines neuen Repository"
},
"repository-form": {
"submit": "Speichern"
},
"edit-nav-link": {
"label": "Bearbeiten"
},
"delete-nav-action": {
"label": "Löschen",
"confirm-alert": {
"title": "Repository löschen",
"message": "Soll das Repository wirklich gelöscht werden?",
"submit": "Ja",
"cancel": "Nein"
}
},
"sources": {
"file-tree": {
"name": "Name",
"length": "Größe",
"lastModified": "Zuletzt bearbeitet",
"description": "Beschreibung",
"branch": "Branch"
},
"content": {
"historyButton": "History",
"sourcesButton": "Sources",
"downloadButton": "Download",
"path": "Pfad",
"branch": "Branch",
"lastModified": "Zuletzt bearbeitet",
"description": "Beschreibung",
"size": "Größe"
}
},
"changesets": {
"diff": {
"not-supported": "Diff des Changesets wird von diesem Repositorytyp nicht unterstützt"
},
"error-title": "Fehler",
"error-subtitle": "Changesets konnten nicht abgerufen werden",
"changeset": {
"id": "ID",
"description": "Beschreibung",
"contact": "Kontakt",
"date": "Datum",
"summary": "Changeset {{id}} wurde committet {{time}}"
},
"author": {
"name": "Autor",
"mail": "Mail"
}
},
"branch-selector": {
"label": "Branches"
},
"permission": {
"user": "Benutzer",
"group": "Gruppe",
"error-title": "Fehler",
"error-subtitle": "Unbekannter Fehler bei Berechtigung",
"name": "Benutzer oder Gruppe",
"role": "Rolle",
"permissions": "Berechtigung",
"group-permission": "Gruppenberechtigung",
"user-permission": "Benutzerberechtigung",
"edit-permission": {
"delete-button": "Löschen",
"save-button": "Änderungen Speichern"
},
"advanced-button": {
"label": "Erweitert"
},
"delete-permission-button": {
"label": "Löschen",
"confirm-alert": {
"title": "Berechtigung löschen",
"message": "Soll die Berechtigung wirklich gelöscht werden?",
"submit": "Ja",
"cancel": "Nein"
}
},
"add-permission": {
"add-permission-heading": "Neue Berechtigung hinzufügen",
"submit-button": "Speichern",
"name-input-invalid": "Die Berechtigung darf nicht leer sein! Falls sie nicht leer ist, ist der Name ungültig oder die Berechtigung besteht bereits!"
},
"help": {
"groupPermissionHelpText": "Zeigt ob es sich bei der Berechtigung um eine Gruppenberechtigung handelt. Wenn hier kein Haken gesetzt ist, handelt es sich um eine Benutzerberechtigung.",
"nameHelpText": "Verwaltung von Berechtigungen für Benutzer und Gruppen",
"roleHelpText": "READ = read; WRITE = read und write; OWNER = read, write und auch die Möglichkeit Einstellungen und Berechtigungen zu verwalten. Wenn hier nichts angezeigt wird, den Erweitert-Button benutzen, um Details zu sehen.",
"permissionsHelpText": "Hier können individuelle Berechtigungen unabhängig von vordefinierten Rollen vergeben werden."
},
"autocomplete": {
"no-group-options": "Kein Gruppenname als Vorschlag verfügbar",
"group-placeholder": "Gruppe eingeben",
"no-user-options": "Kein Benutzername als Vorschlag verfügbar",
"user-placeholder": "Benutzer eingeben",
"loading": "suche..."
},
"advanced": {
"dialog": {
"title": "Erweiterte Berechtigungen",
"submit": "Speichern",
"abort": "Abbrechen"
}
}
},
"help": {
"nameHelpText": "Der Name des Repository. Dieser wird Teil der URL des Repository sein.",
"typeHelpText": "Der Typ des Repository (Mercurial, Git oder Subversion).",
"contactHelpText": "E-Mail Adresse der Person, die für das Repository verantwortlich ist.",
"descriptionHelpText": "Eine kurze Beschreibung des Repository."
}
}

View File

@@ -0,0 +1,68 @@
{
"user": {
"name": "Benutzername",
"displayName": "Anzeigename",
"mail": "E-Mail",
"password": "Passwort",
"admin": "Admin",
"active": "Aktiv",
"type": "Typ",
"creationDate": "Erstellt",
"lastModified": "Zuletzt bearbeitet"
},
"users": {
"title": "Benutzer",
"subtitle": "Verwaltung der Benutzer"
},
"create-user-button": {
"label": "Benutzer erstellen"
},
"delete-user-button": {
"label": "Löschen",
"confirm-alert": {
"title": "Benutzer löschen",
"message": "Soll der Benutzer wirklich gelöscht werden?",
"submit": "Ja",
"cancel": "Nein"
}
},
"edit-user-button": {
"label": "Bearbeiten"
},
"set-password-button": {
"label": "Passwort ändern"
},
"set-permissions-button": {
"label": "Berechtigungen ändern"
},
"user-form": {
"submit": "Speichern"
},
"add-user": {
"title": "Benutzer erstellen",
"subtitle": "Erstellen eines neuen Benutzers"
},
"single-user": {
"error-title": "Fehler",
"error-subtitle": "Unbekannter Benutzer Fehler",
"navigation-label": "Navigation",
"actions-label": "Aktionen",
"information-label": "Informationen",
"back-label": "Zurück"
},
"validation": {
"mail-invalid": "Diese E-Mail ist ungültig",
"name-invalid": "Dieser Name ist ungültig",
"displayname-invalid": "Dieser Anzeigename ist ungültig"
},
"password": {
"set-password-successful": "Das Passwort wurde erfolgreich gespeichert."
},
"help": {
"usernameHelpText": "Einzigartiger Name des Benutzers",
"displayNameHelpText": "Anzeigename des Benutzers",
"mailHelpText": "E-Mail Adresse des Benutzers",
"adminHelpText": "Ein Administrator kann Repositories, Gruppen und Benutzer erstellen, bearbeiten und löschen.",
"activeHelpText": "Aktivierung oder Deaktivierung eines Benutzers"
}
}

View File

@@ -1,7 +1,7 @@
{
"login": {
"title": "Login",
"subtitle": "Please login to proceed.",
"subtitle": "Please login to proceed",
"logo-alt": "SCM-Manager",
"username-placeholder": "Your Username",
"password-placeholder": "Your Password",
@@ -22,7 +22,7 @@
"error-notification": {
"prefix": "Error",
"loginLink": "You can login here again.",
"timeout": "The session has expired.",
"timeout": "The session has expired",
"wrong-login-credentials": "Invalid credentials"
},
"loading": {
@@ -50,7 +50,7 @@
"mail": "E-Mail",
"groups": "Groups",
"information": "Information",
"change-password": "Change password",
"change-password": "Change Password",
"error-title": "Error",
"error-subtitle": "Cannot display profile",
"error": "Error",
@@ -59,14 +59,14 @@
"password": {
"label": "Password",
"newPassword": "New password",
"passwordHelpText": "Plain text password of the user.",
"passwordConfirmHelpText": "Repeat the password for confirmation.",
"passwordHelpText": "Plain text password of the user",
"passwordConfirmHelpText": "Repeat the password for confirmation",
"currentPassword": "Current password",
"currentPasswordHelpText": "The password currently in use",
"confirmPassword": "Confirm password",
"passwordInvalid": "Password has to be between 6 and 32 characters",
"passwordConfirmFailed": "Passwords have to be identical",
"submit": "Submit",
"changedSuccessfully": "Pasword successfully changed"
"changedSuccessfully": "Password successfully changed"
}
}

View File

@@ -67,17 +67,17 @@
"plugin-url-invalid": "This is not a valid url"
},
"help": {
"realmDescriptionHelpText": "Enter authentication realm description",
"dateFormatHelpText": "Moments date format. Please have a look at the momentjs documentation.",
"realmDescriptionHelpText": "Enter authentication realm description.",
"dateFormatHelpText": "Moments date format. Please have a look at the MomentJS documentation.",
"pluginRepositoryHelpText": "The url of the plugin repository. Explanation of the placeholders: version = SCM-Manager Version; os = Operation System; arch = Architecture",
"enableForwardingHelpText": "Enbale mod_proxy port forwarding.",
"enableForwardingHelpText": "Enable mod_proxy port forwarding.",
"enableRepositoryArchiveHelpText": "Enable repository archives. A complete page reload is required after a change of this value.",
"disableGroupingGridHelpText": "Disable repository Groups. A complete page reload is required after a change of this value.",
"allowAnonymousAccessHelpText": "Anonymous users have read access on public repositories.",
"skipFailedAuthenticatorsHelpText": "Do not stop the authentication chain, if an authenticator finds the user but fails to authenticate the user.",
"adminGroupsHelpText": "Names of groups with admin permissions.",
"adminUsersHelpText": "Names of users with admin permissions.",
"forceBaseUrlHelpText": "Redirects to the base url if the request comes from a other url",
"forceBaseUrlHelpText": "Redirects to the base url if the request comes from a other url.",
"baseUrlHelpText": "The url of the application (with context path), i.e. http://localhost:8080/scm",
"loginAttemptLimitHelpText": "Maximum allowed login attempts. Use -1 to disable the login attempt limit.",
"loginAttemptLimitTimeoutHelpText": "Timeout in seconds for users which are temporary disabled, because of too many failed login attempts.",
@@ -86,8 +86,8 @@
"proxyPasswordHelpText": "The password for the proxy server authentication.",
"proxyServerHelpText": "The proxy server",
"proxyUserHelpText": "The username for the proxy server authentication.",
"proxyExcludesHelpText": "Glob patterns for hostnames which should be excluded from proxy settings.",
"enableXsrfProtectionHelpText": "Enable Xsrf Cookie Protection. Note: This feature is still experimental.",
"defaultNameSpaceStrategyHelpText": "The default namespace strategy"
"proxyExcludesHelpText": "Glob patterns for hostnames, which should be excluded from proxy settings.",
"enableXsrfProtectionHelpText": "Enable XSRF Cookie Protection. Note: This feature is still experimental.",
"defaultNameSpaceStrategyHelpText": "The default namespace strategy."
}
}

View File

@@ -24,23 +24,23 @@
"subtitle": "Create a new group"
},
"create-group-button": {
"label": "Create"
"label": "Create Group"
},
"edit-group-button": {
"label": "Edit"
},
"add-member-button": {
"label": "Add member"
"label": "Add Member"
},
"remove-member-button": {
"label": "Remove member"
"label": "Remove Member"
},
"add-member-textfield": {
"label": "Add member",
"label": "Add Member",
"error": "Invalid member name"
},
"add-member-autocomplete": {
"placeholder": "Enter member",
"placeholder": "Enter Member",
"loading": "Loading...",
"no-options": "No suggestion available"
},
@@ -65,6 +65,6 @@
}
},
"set-permissions-button": {
"label": "Set permissions"
"label": "Set Permissions"
}
}

View File

@@ -1,7 +1,7 @@
{
"form": {
"submit-button": {
"label": "Set permissions"
"label": "Set Permissions"
},
"set-permissions-successful": "Permissions set successfully"
}

View File

@@ -14,7 +14,7 @@
"overview": {
"title": "Repositories",
"subtitle": "Overview of available repositories",
"create-button": "Create"
"create-button": "Create Repository"
},
"repository-root": {
"error-title": "Error",
@@ -40,7 +40,7 @@
"delete-nav-action": {
"label": "Delete",
"confirm-alert": {
"title": "Delete repository",
"title": "Delete Repository",
"message": "Do you really want to delete the repository?",
"submit": "Yes",
"cancel": "No"
@@ -106,7 +106,7 @@
"delete-permission-button": {
"label": "Delete",
"confirm-alert": {
"title": "Delete permission",
"title": "Delete Permission",
"message": "Do you really want to delete the permission?",
"submit": "Yes",
"cancel": "No"
@@ -119,9 +119,9 @@
},
"help": {
"groupPermissionHelpText": "States if a permission is a group permission. If this is not checked, it is a user permission.",
"nameHelpText": "Manage permissions for a specific user or group",
"nameHelpText": "Manage permissions for a specific user or group.",
"roleHelpText": "READ = read; WRITE = read and write; OWNER = read, write and also the ability to manage the properties and permissions. If nothing is selected here, use the 'Advanced' Button to see detailed permissions.",
"permissionsHelpText": "Use this to specify your own set of permissions regardless of predefined roles"
"permissionsHelpText": "Use this to specify your own set of permissions regardless of predefined roles."
},
"autocomplete": {
"no-group-options": "No group suggestion available",
@@ -132,7 +132,7 @@
},
"advanced": {
"dialog": {
"title": "Advanced permissions",
"title": "Advanced Permissions",
"submit": "Submit",
"abort": "Abort"
}

View File

@@ -15,12 +15,12 @@
"subtitle": "Create, read, update and delete users"
},
"create-user-button": {
"label": "Create"
"label": "Create User"
},
"delete-user-button": {
"label": "Delete",
"confirm-alert": {
"title": "Delete user",
"title": "Delete User",
"message": "Do you really want to delete the user?",
"submit": "Yes",
"cancel": "No"
@@ -30,10 +30,10 @@
"label": "Edit"
},
"set-password-button": {
"label": "Set password"
"label": "Set Password"
},
"set-permissions-button": {
"label": "Set permissions"
"label": "Set Permissions"
},
"user-form": {
"submit": "Submit"
@@ -63,6 +63,6 @@
"displayNameHelpText": "Display name of the user.",
"mailHelpText": "Email address of the user.",
"adminHelpText": "An administrator is able to create, modify and delete repositories, groups and users.",
"activeHelpText": "Activate or deactive the user."
"activeHelpText": "Activate or deactivate the user."
}
}

View File

@@ -1,7 +1,7 @@
// @flow
import React from "react";
import { translate } from "react-i18next";
import { Button } from "@scm-manager/ui-components";
import { ButtonGroup } from "@scm-manager/ui-components";
type Props = {
t: string => string,
@@ -9,7 +9,7 @@ type Props = {
showHistory: boolean => void
};
class ButtonGroup extends React.Component<Props> {
class FileButtonGroup extends React.Component<Props> {
showHistory = () => {
this.props.showHistory(true);
};
@@ -21,15 +21,6 @@ class ButtonGroup extends React.Component<Props> {
render() {
const { t, historyIsSelected } = this.props;
let sourcesColor = "";
let historyColor = "";
if (historyIsSelected) {
historyColor = "link is-selected";
} else {
sourcesColor = "link is-selected";
}
const sourcesLabel = (
<>
<span className="icon">
@@ -53,20 +44,15 @@ class ButtonGroup extends React.Component<Props> {
);
return (
<div className="buttons has-addons">
<Button
label={sourcesLabel}
color={sourcesColor}
action={this.showSources}
/>
<Button
label={historyLabel}
color={historyColor}
action={this.showHistory}
/>
</div>
<ButtonGroup
firstlabel={sourcesLabel}
secondlabel={historyLabel}
firstAction={this.showSources}
secondAction={this.showHistory}
firstIsSelected={!historyIsSelected}
/>
);
}
}
export default translate("repos")(ButtonGroup);
export default translate("repos")(FileButtonGroup);

View File

@@ -6,7 +6,7 @@ import { DateFromNow } from "@scm-manager/ui-components";
import FileSize from "../components/FileSize";
import injectSheet from "react-jss";
import classNames from "classnames";
import ButtonGroup from "../components/content/ButtonGroup";
import FileButtonGroup from "../components/content/FileButtonGroup";
import SourcesView from "./SourcesView";
import HistoryView from "./HistoryView";
import { getSources } from "../modules/sources";
@@ -76,7 +76,7 @@ class Content extends React.Component<Props, State> {
const icon = collapsed ? "fa-angle-right" : "fa-angle-down";
const selector = file._links.history ? (
<ButtonGroup
<FileButtonGroup
file={file}
historyIsSelected={showHistory}
showHistory={(changeShowHistory: boolean) =>

View File

@@ -61,16 +61,42 @@ class UserForm extends React.Component<Props, State> {
return false;
}
createUserComponentsAreInvalid = () => {
const user = this.state.user;
if (!this.props.user) {
return (
this.state.nameValidationError ||
this.isFalsy(user.name) ||
!this.state.passwordValid
);
} else {
return false;
}
};
editUserComponentsAreUnchanged = () => {
const user = this.state.user;
if (this.props.user) {
return (
this.props.user.displayName === user.displayName &&
this.props.user.mail === user.mail &&
this.props.user.admin === user.admin &&
this.props.user.active === user.active
);
} else {
return false;
}
};
isValid = () => {
const user = this.state.user;
return !(
this.state.nameValidationError ||
this.createUserComponentsAreInvalid() ||
this.editUserComponentsAreUnchanged() ||
this.state.mailValidationError ||
this.state.displayNameValidationError ||
this.isFalsy(user.name) ||
this.isFalsy(user.displayName) ||
this.isFalsy(user.mail) ||
!this.state.passwordValid
this.isFalsy(user.mail)
);
};

View File

@@ -81,7 +81,16 @@ $fa-font-path: "webfonts";
height: 2.5rem;
&.is-primary {
background-color: $mint;
background-color: #00d1df;
}
&.is-primary:hover, &.is-primary.is-hovered {
background-color: #00b9c6;
}
&.is-primary:active, &.is-primary.is-active {
background-color: #00a1ac;
}
&.is-primary[disabled] {
background-color: #40dde7;
}
}
@@ -124,7 +133,6 @@ $fa-font-path: "webfonts";
margin-right: 0;
}
.overlay-half-column{
position: absolute;
height: calc(120px - 0.5rem);