mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-08 14:35:45 +01:00
merge
This commit is contained in:
@@ -11,7 +11,7 @@ class MailLink extends React.Component<Props> {
|
||||
if (!address) {
|
||||
return null;
|
||||
}
|
||||
return <a href={"mailto: " + address}>{address}</a>;
|
||||
return <a href={"mailto:" + address}>{address}</a>;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -15,7 +15,8 @@ type Props = {
|
||||
value?: string,
|
||||
onChange: (value: string, name?: string) => void,
|
||||
loading?: boolean,
|
||||
helpText?: string
|
||||
helpText?: string,
|
||||
disabled?: boolean
|
||||
};
|
||||
|
||||
class Select extends React.Component<Props> {
|
||||
@@ -34,7 +35,7 @@ class Select extends React.Component<Props> {
|
||||
};
|
||||
|
||||
render() {
|
||||
const { options, value, label, helpText, loading } = this.props;
|
||||
const { options, value, label, helpText, loading, disabled } = this.props;
|
||||
const loadingClass = loading ? "is-loading" : "";
|
||||
|
||||
|
||||
@@ -51,6 +52,7 @@ class Select extends React.Component<Props> {
|
||||
}}
|
||||
value={value}
|
||||
onChange={this.handleInput}
|
||||
disabled={disabled}
|
||||
>
|
||||
{options.map(opt => {
|
||||
return (
|
||||
|
||||
@@ -11,6 +11,7 @@ import {
|
||||
import injectSheets from "react-jss";
|
||||
import classNames from "classnames";
|
||||
import { translate } from "react-i18next";
|
||||
import {Button} from "../buttons";
|
||||
|
||||
const styles = {
|
||||
panel: {
|
||||
@@ -39,14 +40,16 @@ type Props = DiffObjectProps & {
|
||||
};
|
||||
|
||||
type State = {
|
||||
collapsed: boolean
|
||||
collapsed: boolean,
|
||||
sideBySide: boolean
|
||||
};
|
||||
|
||||
class DiffFile extends React.Component<Props, State> {
|
||||
constructor(props: Props) {
|
||||
super(props);
|
||||
this.state = {
|
||||
collapsed: false
|
||||
collapsed: false,
|
||||
sideBySide: false
|
||||
};
|
||||
}
|
||||
|
||||
@@ -56,6 +59,12 @@ class DiffFile extends React.Component<Props, State> {
|
||||
}));
|
||||
};
|
||||
|
||||
toggleSideBySide = () => {
|
||||
this.setState(state => ({
|
||||
sideBySide: !state.sideBySide
|
||||
}));
|
||||
};
|
||||
|
||||
setCollapse = (collapsed: boolean) => {
|
||||
this.setState({
|
||||
collapsed
|
||||
@@ -149,10 +158,10 @@ class DiffFile extends React.Component<Props, State> {
|
||||
file,
|
||||
fileControlFactory,
|
||||
fileAnnotationFactory,
|
||||
sideBySide,
|
||||
classes
|
||||
classes,
|
||||
t
|
||||
} = this.props;
|
||||
const { collapsed } = this.state;
|
||||
const { collapsed, sideBySide } = this.state;
|
||||
const viewType = sideBySide ? "split" : "unified";
|
||||
|
||||
let body = null;
|
||||
@@ -173,14 +182,10 @@ class DiffFile extends React.Component<Props, State> {
|
||||
}
|
||||
|
||||
const fileControls = fileControlFactory ? fileControlFactory(file, this.setCollapse) : null;
|
||||
return (
|
||||
<div className={classNames("panel", classes.panel)}>
|
||||
return <div className={classNames("panel", classes.panel)}>
|
||||
<div className="panel-heading">
|
||||
<div className="level">
|
||||
<div
|
||||
className={classNames("level-left", classes.titleHeader)}
|
||||
onClick={this.toggleCollapse}
|
||||
>
|
||||
<div className={classNames("level-left", classes.titleHeader)} onClick={this.toggleCollapse}>
|
||||
<i className={icon} />
|
||||
<span className={classes.title}>
|
||||
{this.renderFileTitle(file)}
|
||||
@@ -189,12 +194,21 @@ class DiffFile extends React.Component<Props, State> {
|
||||
{this.renderChangeTag(file)}
|
||||
</span>
|
||||
</div>
|
||||
<div className="level-right">{fileControls}</div>
|
||||
<div className="level-right">
|
||||
<Button action={this.toggleSideBySide}>
|
||||
<span className="icon is-small">
|
||||
<i className={classNames("fas", sideBySide ? "fa-align-left" : "fa-columns")} />
|
||||
</span>
|
||||
<span className="is-hidden-mobile">
|
||||
{t(sideBySide ? "diff.combined" : "diff.sideBySide")}
|
||||
</span>
|
||||
</Button>
|
||||
{fileControls}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{body}
|
||||
</div>
|
||||
);
|
||||
</div>;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -2,13 +2,13 @@
|
||||
import React from "react";
|
||||
import type { Changeset } from "@scm-manager/ui-types";
|
||||
import { ExtensionPoint } from "@scm-manager/ui-extensions";
|
||||
import {translate} from "react-i18next";
|
||||
import { translate } from "react-i18next";
|
||||
|
||||
type Props = {
|
||||
changeset: Changeset,
|
||||
|
||||
// context props
|
||||
t: (string) => string
|
||||
t: string => string
|
||||
};
|
||||
|
||||
class ChangesetAuthor extends React.Component<Props> {
|
||||
@@ -28,7 +28,10 @@ class ChangesetAuthor extends React.Component<Props> {
|
||||
renderWithMail(name: string, mail: string) {
|
||||
const { t } = this.props;
|
||||
return (
|
||||
<a href={"mailto: " + mail} title={t("changeset.author.mailto") + " " + mail}>
|
||||
<a
|
||||
href={"mailto:" + mail}
|
||||
title={t("changeset.author.mailto") + " " + mail}
|
||||
>
|
||||
{name}
|
||||
</a>
|
||||
);
|
||||
@@ -44,7 +47,7 @@ class ChangesetAuthor extends React.Component<Props> {
|
||||
props={{ changeset: this.props.changeset }}
|
||||
renderAll={true}
|
||||
/>
|
||||
</>
|
||||
</>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,11 +11,10 @@ type Props = {
|
||||
changeset: Changeset,
|
||||
|
||||
// context props
|
||||
t: (string) => string
|
||||
}
|
||||
t: string => string
|
||||
};
|
||||
|
||||
class ChangesetButtonGroup extends React.Component<Props> {
|
||||
|
||||
render() {
|
||||
const { repository, changeset, t } = this.props;
|
||||
|
||||
@@ -26,7 +25,7 @@ class ChangesetButtonGroup extends React.Component<Props> {
|
||||
<ButtonGroup className="is-pulled-right">
|
||||
<Button link={changesetLink}>
|
||||
<span className="icon">
|
||||
<i className="fas fa-code-branch"></i>
|
||||
<i className="fas fa-exchange-alt" />
|
||||
</span>
|
||||
<span className="is-hidden-mobile is-hidden-tablet-only">
|
||||
{t("changeset.buttons.details")}
|
||||
@@ -34,7 +33,7 @@ class ChangesetButtonGroup extends React.Component<Props> {
|
||||
</Button>
|
||||
<Button link={sourcesLink}>
|
||||
<span className="icon">
|
||||
<i className="fas fa-code"></i>
|
||||
<i className="fas fa-code" />
|
||||
</span>
|
||||
<span className="is-hidden-mobile is-hidden-tablet-only">
|
||||
{t("changeset.buttons.sources")}
|
||||
@@ -43,7 +42,6 @@ class ChangesetButtonGroup extends React.Component<Props> {
|
||||
</ButtonGroup>
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export default translate("repos")(ChangesetButtonGroup);
|
||||
|
||||
Reference in New Issue
Block a user