mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-07 22:15:45 +01:00
Merge with 2.0.0-m3
This commit is contained in:
@@ -9,7 +9,7 @@
|
||||
"flow": "flow check"
|
||||
},
|
||||
"dependencies": {
|
||||
"@scm-manager/ui-extensions": "^0.1.1"
|
||||
"@scm-manager/ui-extensions": "^0.1.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@scm-manager/ui-bundler": "^0.0.24"
|
||||
|
||||
@@ -747,9 +747,10 @@
|
||||
vinyl-source-stream "^2.0.0"
|
||||
watchify "^3.11.0"
|
||||
|
||||
"@scm-manager/ui-extensions@^0.1.1":
|
||||
version "0.1.1"
|
||||
resolved "https://registry.yarnpkg.com/@scm-manager/ui-extensions/-/ui-extensions-0.1.1.tgz#966e62d89981e92a14adf7e674e646e76de96d45"
|
||||
"@scm-manager/ui-extensions@^0.1.2":
|
||||
version "0.1.2"
|
||||
resolved "https://registry.yarnpkg.com/@scm-manager/ui-extensions/-/ui-extensions-0.1.2.tgz#0689427ca45c8e4e045b5b9dbc89036f1d2c45fc"
|
||||
integrity sha512-oIkXcc/VWssnK/yjWKC/Wnq5DZ01rArsz76n4X/0DT0hkGNIKmwk/Fdp7OoXiUEb7+aaPjUX1VvDqlTwCNKPmA==
|
||||
dependencies:
|
||||
react "^16.4.2"
|
||||
react-dom "^16.4.2"
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
"build": "ui-bundler plugin"
|
||||
},
|
||||
"dependencies": {
|
||||
"@scm-manager/ui-extensions": "^0.1.1"
|
||||
"@scm-manager/ui-extensions": "^0.1.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@scm-manager/ui-bundler": "^0.0.24"
|
||||
|
||||
@@ -681,9 +681,10 @@
|
||||
vinyl-source-stream "^2.0.0"
|
||||
watchify "^3.11.0"
|
||||
|
||||
"@scm-manager/ui-extensions@^0.1.1":
|
||||
version "0.1.1"
|
||||
resolved "https://registry.yarnpkg.com/@scm-manager/ui-extensions/-/ui-extensions-0.1.1.tgz#966e62d89981e92a14adf7e674e646e76de96d45"
|
||||
"@scm-manager/ui-extensions@^0.1.2":
|
||||
version "0.1.2"
|
||||
resolved "https://registry.yarnpkg.com/@scm-manager/ui-extensions/-/ui-extensions-0.1.2.tgz#0689427ca45c8e4e045b5b9dbc89036f1d2c45fc"
|
||||
integrity sha512-oIkXcc/VWssnK/yjWKC/Wnq5DZ01rArsz76n4X/0DT0hkGNIKmwk/Fdp7OoXiUEb7+aaPjUX1VvDqlTwCNKPmA==
|
||||
dependencies:
|
||||
react "^16.4.2"
|
||||
react-dom "^16.4.2"
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
"build": "ui-bundler plugin"
|
||||
},
|
||||
"dependencies": {
|
||||
"@scm-manager/ui-extensions": "^0.1.1"
|
||||
"@scm-manager/ui-extensions": "^0.1.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@scm-manager/ui-bundler": "^0.0.24"
|
||||
|
||||
@@ -681,9 +681,10 @@
|
||||
vinyl-source-stream "^2.0.0"
|
||||
watchify "^3.11.0"
|
||||
|
||||
"@scm-manager/ui-extensions@^0.1.1":
|
||||
version "0.1.1"
|
||||
resolved "https://registry.yarnpkg.com/@scm-manager/ui-extensions/-/ui-extensions-0.1.1.tgz#966e62d89981e92a14adf7e674e646e76de96d45"
|
||||
"@scm-manager/ui-extensions@^0.1.2":
|
||||
version "0.1.2"
|
||||
resolved "https://registry.yarnpkg.com/@scm-manager/ui-extensions/-/ui-extensions-0.1.2.tgz#0689427ca45c8e4e045b5b9dbc89036f1d2c45fc"
|
||||
integrity sha512-oIkXcc/VWssnK/yjWKC/Wnq5DZ01rArsz76n4X/0DT0hkGNIKmwk/Fdp7OoXiUEb7+aaPjUX1VvDqlTwCNKPmA==
|
||||
dependencies:
|
||||
react "^16.4.2"
|
||||
react-dom "^16.4.2"
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
"react-router-enzyme-context": "^1.2.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"@scm-manager/ui-extensions": "^0.1.1",
|
||||
"@scm-manager/ui-extensions": "^0.1.2",
|
||||
"@scm-manager/ui-types": "2.0.0-SNAPSHOT",
|
||||
"classnames": "^2.2.6",
|
||||
"moment": "^2.22.2",
|
||||
|
||||
@@ -3,15 +3,16 @@ import React from "react";
|
||||
import type { Changeset, Repository, Tag } from "@scm-manager/ui-types";
|
||||
|
||||
import classNames from "classnames";
|
||||
import {Interpolate, translate} from "react-i18next";
|
||||
import { Interpolate, translate } from "react-i18next";
|
||||
import ChangesetId from "./ChangesetId";
|
||||
import injectSheet from "react-jss";
|
||||
import {DateFromNow} from "../..";
|
||||
import { DateFromNow } from "../..";
|
||||
import ChangesetAuthor from "./ChangesetAuthor";
|
||||
import ChangesetTag from "./ChangesetTag";
|
||||
|
||||
import {parseDescription} from "./changesets";
|
||||
import {AvatarWrapper, AvatarImage} from "../../avatar";
|
||||
import { parseDescription } from "./changesets";
|
||||
import { AvatarWrapper, AvatarImage } from "../../avatar";
|
||||
import { ExtensionPoint } from "@scm-manager/ui-extensions";
|
||||
|
||||
const styles = {
|
||||
pointer: {
|
||||
@@ -64,7 +65,15 @@ class ChangesetRow extends React.Component<Props> {
|
||||
<div className={classNames("media-content", classes.withOverflow)}>
|
||||
<div className="content">
|
||||
<p className="is-ellipsis-overflow">
|
||||
<strong>{description.title}</strong>
|
||||
<strong>
|
||||
<ExtensionPoint
|
||||
name="changesets.changeset.description"
|
||||
props={{ changeset, value: description.title }}
|
||||
renderAll={false}
|
||||
>
|
||||
{description.title}
|
||||
</ExtensionPoint>
|
||||
</strong>
|
||||
<br />
|
||||
<Interpolate
|
||||
i18nKey="changesets.changeset.summary"
|
||||
|
||||
@@ -727,9 +727,9 @@
|
||||
vinyl-source-stream "^2.0.0"
|
||||
watchify "^3.11.0"
|
||||
|
||||
"@scm-manager/ui-extensions@^0.1.1":
|
||||
version "0.1.1"
|
||||
resolved "https://registry.yarnpkg.com/@scm-manager/ui-extensions/-/ui-extensions-0.1.1.tgz#966e62d89981e92a14adf7e674e646e76de96d45"
|
||||
"@scm-manager/ui-extensions@^0.1.2":
|
||||
version "0.1.2"
|
||||
resolved "https://registry.yarnpkg.com/@scm-manager/ui-extensions/-/ui-extensions-0.1.2.tgz#0689427ca45c8e4e045b5b9dbc89036f1d2c45fc"
|
||||
dependencies:
|
||||
react "^16.4.2"
|
||||
react-dom "^16.4.2"
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
"dependencies": {
|
||||
"@babel/polyfill": "^7.0.0",
|
||||
"@fortawesome/fontawesome-free": "^5.3.1",
|
||||
"@scm-manager/ui-extensions": "^0.1.1",
|
||||
"@scm-manager/ui-extensions": "^0.1.2",
|
||||
"bulma": "^0.7.1",
|
||||
"bulma-tooltip": "^2.0.2",
|
||||
"classnames": "^2.2.5",
|
||||
|
||||
@@ -46,7 +46,15 @@ class ChangesetDetails extends React.Component<Props> {
|
||||
return (
|
||||
<div>
|
||||
<div className="content">
|
||||
<h4>{description.title}</h4>
|
||||
<h4>
|
||||
<ExtensionPoint
|
||||
name="changesets.changeset.description"
|
||||
props={{ changeset, value: description.title }}
|
||||
renderAll={false}
|
||||
>
|
||||
{description.title}
|
||||
</ExtensionPoint>
|
||||
</h4>
|
||||
<article className="media">
|
||||
<AvatarWrapper>
|
||||
<p className={classNames("image", "is-64x64", classes.spacing)}>
|
||||
@@ -67,22 +75,23 @@ class ChangesetDetails extends React.Component<Props> {
|
||||
</div>
|
||||
<div className="media-right">{this.renderTags()}</div>
|
||||
</article>
|
||||
<ExtensionPoint
|
||||
name="changesets.changeset.description"
|
||||
props={{ changeset, description }}
|
||||
renderAll={true}
|
||||
>
|
||||
<p>
|
||||
{description.message.split("\n").map((item, key) => {
|
||||
return (
|
||||
<span key={key}>
|
||||
|
||||
<p>
|
||||
{description.message.split("\n").map((item, key) => {
|
||||
return (
|
||||
<span key={key}>
|
||||
<ExtensionPoint
|
||||
name="changesets.changeset.description"
|
||||
props={{ changeset, value: item }}
|
||||
renderAll={false}
|
||||
>
|
||||
{item}
|
||||
<br />
|
||||
</span>
|
||||
);
|
||||
})}
|
||||
</p>
|
||||
</ExtensionPoint>
|
||||
</ExtensionPoint>
|
||||
<br />
|
||||
</span>
|
||||
);
|
||||
})}
|
||||
</p>
|
||||
</div>
|
||||
<div>
|
||||
<ChangesetDiff changeset={changeset} />
|
||||
|
||||
@@ -9,16 +9,6 @@ import classNames from "classnames";
|
||||
import RepositoryAvatar from "./RepositoryAvatar";
|
||||
|
||||
const styles = {
|
||||
overlayFullColumn: {
|
||||
position: "absolute",
|
||||
height: "calc(120px - 0.5rem)",
|
||||
width: "calc(100% - 1.5rem)"
|
||||
},
|
||||
overlayHalfColumn: {
|
||||
position: "absolute",
|
||||
height: "calc(120px - 1.5rem)",
|
||||
width: "calc(50% - 3rem)"
|
||||
},
|
||||
inner: {
|
||||
position: "relative",
|
||||
pointerEvents: "none",
|
||||
@@ -86,8 +76,8 @@ class RepositoryEntry extends React.Component<Props> {
|
||||
const repositoryLink = this.createLink(repository);
|
||||
const halfColumn = fullColumnWidth ? "is-full" : "is-half";
|
||||
const overlayLinkClass = fullColumnWidth
|
||||
? classes.overlayFullColumn
|
||||
: classes.overlayHalfColumn;
|
||||
? "overlay-full-column"
|
||||
: "overlay-half-column";
|
||||
return (
|
||||
<div
|
||||
className={classNames(
|
||||
|
||||
@@ -100,6 +100,19 @@ $fa-font-path: "webfonts";
|
||||
&:nth-child(odd) {
|
||||
margin-right: 1.5rem;
|
||||
}
|
||||
|
||||
.overlay-half-column {
|
||||
position: absolute;
|
||||
height: calc(120px - 1.5rem);
|
||||
width: calc(50% - 3rem);
|
||||
}
|
||||
}
|
||||
.column.is-full {
|
||||
.overlay-full-column {
|
||||
position: absolute;
|
||||
height: calc(120px - 0.5rem);
|
||||
width: calc(100% - 1.5rem);
|
||||
}
|
||||
}
|
||||
@media screen and (max-width: 768px) {
|
||||
.column.is-half {
|
||||
@@ -108,6 +121,13 @@ $fa-font-path: "webfonts";
|
||||
&:nth-child(odd) {
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
|
||||
.overlay-half-column{
|
||||
position: absolute;
|
||||
height: calc(120px - 0.5rem);
|
||||
width: calc(100% - 1.5rem);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -738,9 +738,10 @@
|
||||
vinyl-source-stream "^2.0.0"
|
||||
watchify "^3.11.0"
|
||||
|
||||
"@scm-manager/ui-extensions@^0.1.1":
|
||||
version "0.1.1"
|
||||
resolved "https://registry.yarnpkg.com/@scm-manager/ui-extensions/-/ui-extensions-0.1.1.tgz#966e62d89981e92a14adf7e674e646e76de96d45"
|
||||
"@scm-manager/ui-extensions@^0.1.2":
|
||||
version "0.1.2"
|
||||
resolved "https://registry.yarnpkg.com/@scm-manager/ui-extensions/-/ui-extensions-0.1.2.tgz#0689427ca45c8e4e045b5b9dbc89036f1d2c45fc"
|
||||
integrity sha512-oIkXcc/VWssnK/yjWKC/Wnq5DZ01rArsz76n4X/0DT0hkGNIKmwk/Fdp7OoXiUEb7+aaPjUX1VvDqlTwCNKPmA==
|
||||
dependencies:
|
||||
react "^16.4.2"
|
||||
react-dom "^16.4.2"
|
||||
|
||||
@@ -41,6 +41,8 @@ public abstract class RepositoryToRepositoryDtoMapper extends BaseMapper<Reposit
|
||||
}
|
||||
if (RepositoryPermissions.modify(repository).isPermitted()) {
|
||||
linksBuilder.single(link("update", resourceLinks.repository().update(target.getNamespace(), target.getName())));
|
||||
}
|
||||
if (RepositoryPermissions.permissionRead(repository).isPermitted()) {
|
||||
linksBuilder.single(link("permissions", resourceLinks.repositoryPermission().all(target.getNamespace(), target.getName())));
|
||||
}
|
||||
try (RepositoryService repositoryService = serviceFactory.create(repository)) {
|
||||
|
||||
Reference in New Issue
Block a user