diff --git a/scm-ui-components/packages/ui-components/src/BranchSelector.js b/scm-ui-components/packages/ui-components/src/BranchSelector.js index d03011bfdd..99c93fd677 100644 --- a/scm-ui-components/packages/ui-components/src/BranchSelector.js +++ b/scm-ui-components/packages/ui-components/src/BranchSelector.js @@ -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 { } 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 }); } diff --git a/scm-ui-components/packages/ui-components/src/buttons/ButtonGroup.js b/scm-ui-components/packages/ui-components/src/buttons/ButtonGroup.js new file mode 100644 index 0000000000..56ef66522a --- /dev/null +++ b/scm-ui-components/packages/ui-components/src/buttons/ButtonGroup.js @@ -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 { + + 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 ( +
+
+ ); + } +} + +export default ButtonGroup; diff --git a/scm-ui-components/packages/ui-components/src/buttons/index.js b/scm-ui-components/packages/ui-components/src/buttons/index.js index 2e166e1d93..014d92958d 100644 --- a/scm-ui-components/packages/ui-components/src/buttons/index.js +++ b/scm-ui-components/packages/ui-components/src/buttons/index.js @@ -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"; diff --git a/scm-ui/public/locales/de/commons.json b/scm-ui/public/locales/de/commons.json new file mode 100644 index 0000000000..c38dff2468 --- /dev/null +++ b/scm-ui/public/locales/de/commons.json @@ -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!" + } +} diff --git a/scm-ui/public/locales/de/config.json b/scm-ui/public/locales/de/config.json new file mode 100644 index 0000000000..e26c2cddac --- /dev/null +++ b/scm-ui/public/locales/de/config.json @@ -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." + } +} diff --git a/scm-ui/public/locales/de/groups.json b/scm-ui/public/locales/de/groups.json new file mode 100644 index 0000000000..768704bf38 --- /dev/null +++ b/scm-ui/public/locales/de/groups.json @@ -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" + } +} diff --git a/scm-ui/public/locales/de/permissions.json b/scm-ui/public/locales/de/permissions.json new file mode 100644 index 0000000000..d1280808e5 --- /dev/null +++ b/scm-ui/public/locales/de/permissions.json @@ -0,0 +1,8 @@ +{ + "form": { + "submit-button": { + "label": "Berechtigungen speichern" + }, + "set-permissions-successful": "Berechtigungen erfolgreich gespeichert" + } +} diff --git a/scm-ui/public/locales/de/repos.json b/scm-ui/public/locales/de/repos.json new file mode 100644 index 0000000000..e82edf7512 --- /dev/null +++ b/scm-ui/public/locales/de/repos.json @@ -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." + } +} diff --git a/scm-ui/public/locales/de/users.json b/scm-ui/public/locales/de/users.json new file mode 100644 index 0000000000..31b954d996 --- /dev/null +++ b/scm-ui/public/locales/de/users.json @@ -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" + } +} diff --git a/scm-ui/public/locales/en/commons.json b/scm-ui/public/locales/en/commons.json index e3e1dbf032..4788f7b39f 100644 --- a/scm-ui/public/locales/en/commons.json +++ b/scm-ui/public/locales/en/commons.json @@ -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" } } diff --git a/scm-ui/public/locales/en/config.json b/scm-ui/public/locales/en/config.json index 1a33da8c8b..bdc7ec21f6 100644 --- a/scm-ui/public/locales/en/config.json +++ b/scm-ui/public/locales/en/config.json @@ -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." } } diff --git a/scm-ui/public/locales/en/groups.json b/scm-ui/public/locales/en/groups.json index 3fbe088029..60a10e4302 100644 --- a/scm-ui/public/locales/en/groups.json +++ b/scm-ui/public/locales/en/groups.json @@ -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" } } diff --git a/scm-ui/public/locales/en/permissions.json b/scm-ui/public/locales/en/permissions.json index 52059db60a..f5ba065ced 100644 --- a/scm-ui/public/locales/en/permissions.json +++ b/scm-ui/public/locales/en/permissions.json @@ -1,7 +1,7 @@ { "form": { "submit-button": { - "label": "Set permissions" + "label": "Set Permissions" }, "set-permissions-successful": "Permissions set successfully" } diff --git a/scm-ui/public/locales/en/repos.json b/scm-ui/public/locales/en/repos.json index 7eef6f79b1..727fe4f664 100644 --- a/scm-ui/public/locales/en/repos.json +++ b/scm-ui/public/locales/en/repos.json @@ -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" } diff --git a/scm-ui/public/locales/en/users.json b/scm-ui/public/locales/en/users.json index afe86deb9b..4c671617ec 100644 --- a/scm-ui/public/locales/en/users.json +++ b/scm-ui/public/locales/en/users.json @@ -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." } } diff --git a/scm-ui/src/repos/sources/components/content/ButtonGroup.js b/scm-ui/src/repos/sources/components/content/FileButtonGroup.js similarity index 58% rename from scm-ui/src/repos/sources/components/content/ButtonGroup.js rename to scm-ui/src/repos/sources/components/content/FileButtonGroup.js index 055ee115a5..c56df2e5a1 100644 --- a/scm-ui/src/repos/sources/components/content/ButtonGroup.js +++ b/scm-ui/src/repos/sources/components/content/FileButtonGroup.js @@ -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 { +class FileButtonGroup extends React.Component { showHistory = () => { this.props.showHistory(true); }; @@ -21,15 +21,6 @@ class ButtonGroup extends React.Component { render() { const { t, historyIsSelected } = this.props; - let sourcesColor = ""; - let historyColor = ""; - - if (historyIsSelected) { - historyColor = "link is-selected"; - } else { - sourcesColor = "link is-selected"; - } - const sourcesLabel = ( <> @@ -53,20 +44,15 @@ class ButtonGroup extends React.Component { ); return ( -
-
+ ); } } -export default translate("repos")(ButtonGroup); +export default translate("repos")(FileButtonGroup); diff --git a/scm-ui/src/repos/sources/containers/Content.js b/scm-ui/src/repos/sources/containers/Content.js index 6339c49a3d..a7e9874058 100644 --- a/scm-ui/src/repos/sources/containers/Content.js +++ b/scm-ui/src/repos/sources/containers/Content.js @@ -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 { const icon = collapsed ? "fa-angle-right" : "fa-angle-down"; const selector = file._links.history ? ( - diff --git a/scm-ui/src/users/components/UserForm.js b/scm-ui/src/users/components/UserForm.js index ba1e2f6753..9bf36d19d0 100644 --- a/scm-ui/src/users/components/UserForm.js +++ b/scm-ui/src/users/components/UserForm.js @@ -61,16 +61,42 @@ class UserForm extends React.Component { 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) ); }; diff --git a/scm-ui/styles/scm.scss b/scm-ui/styles/scm.scss index d31f40ceea..be708d1bea 100644 --- a/scm-ui/styles/scm.scss +++ b/scm-ui/styles/scm.scss @@ -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);