summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--templates/repo/projects/view.tmpl56
-rw-r--r--web_src/js/features/projects.js2
-rw-r--r--web_src/less/_base.less22
-rw-r--r--web_src/less/_repository.less76
-rw-r--r--web_src/less/features/projects.less83
-rw-r--r--web_src/less/index.less1
-rw-r--r--web_src/less/themes/theme-arc-green.less5
7 files changed, 141 insertions, 104 deletions
diff --git a/templates/repo/projects/view.tmpl b/templates/repo/projects/view.tmpl
index aa6abf0511..59939af6b9 100644
--- a/templates/repo/projects/view.tmpl
+++ b/templates/repo/projects/view.tmpl
@@ -73,13 +73,13 @@
{{ range $board := .Boards }}
<div class="ui segment board-column" data-id="{{.ID}}" data-sorting="{{.Sorting}}" data-url="{{$.RepoLink}}/projects/{{$.Project.ID}}/{{.ID}}">
- <div class="board-column-header">
- <div class="ui large label board-label">{{.Title}}</div>
+ <div class="board-column-header df ac sb">
+ <div class="ui large label board-label py-2">{{.Title}}</div>
{{if and $.CanWriteProjects (not $.Repository.IsArchived) $.PageIsProjects (ne .ID 0)}}
- <div class="ui dropdown jump item poping up right" data-variation="tiny inverted">
- <span class="ui text">
- <span class="fitted not-mobile" tabindex="-1">{{svg "octicon-kebab-horizontal" 24}}</span>
- </span>
+ <div class="ui dropdown jump item poping up" data-variation="tiny inverted">
+ <div class="not-mobile px-3" tabindex="-1">
+ {{svg "octicon-kebab-horizontal"}}
+ </div>
<div class="menu user-menu" tabindex="-1">
<a class="item show-modal button" data-modal="#edit-project-board-modal-{{.ID}}">
{{svg "octicon-pencil"}}
@@ -156,9 +156,9 @@
<!-- start issue card -->
<div class="card board-card" data-issue="{{.ID}}">
- <div class="content">
+ <div class="content p-0">
<div class="header">
- <span>
+ <span class="dif ac vm {{if .IsClosed}}red{{else}}green{{end}}">
{{if .IsPull}}
{{if .PullRequest.HasMerged}}
{{svg "octicon-git-merge" 16 "text purple"}}
@@ -177,29 +177,47 @@
{{end}}
{{end}}
</span>
- <a class="project-board-title" href="{{$.RepoLink}}/issues/{{.Index}}">#{{.Index}} {{.Title}}</a>
+ <a class="project-board-title vm" href="{{$.RepoLink}}/issues/{{.Index}}">
+ {{.Title}}
+ </a>
+ </div>
+ <div class="meta my-2">
+ <span class="text light grey">
+ #{{.Index}}
+ {{ $timeStr := TimeSinceUnix .GetLastEventTimestamp $.Lang }}
+ {{if .OriginalAuthor }}
+ {{$.i18n.Tr .GetLastEventLabelFake $timeStr .OriginalAuthor | Safe}}
+ {{else if gt .Poster.ID 0}}
+ {{$.i18n.Tr .GetLastEventLabel $timeStr .Poster.HomeLink (.Poster.GetDisplayName | Escape) | Safe}}
+ {{else}}
+ {{$.i18n.Tr .GetLastEventLabelFake $timeStr (.Poster.GetDisplayName | Escape) | Safe}}
+ {{end}}
+ </span>
</div>
{{- if .MilestoneID }}
- <div class="meta">
+ <div class="meta my-2">
<a class="milestone" href="{{$.RepoLink}}/milestone/{{ .MilestoneID}}">
- {{svg "octicon-milestone"}} {{ .Milestone.Name }}
+ {{svg "octicon-milestone" 16 "mr-2 vm"}}
+ <span class="vm">{{ .Milestone.Name }}</span>
</a>
</div>
{{- end }}
{{- range index $.LinkedPRs .ID }}
- <div class="meta">
+ <div class="meta my-2">
<a href="{{$.RepoLink}}/pulls/{{ .Index }}">
- <span class="{{if .PullRequest.HasMerged}}purple{{else if .IsClosed}}red{{else}}green{{end}}">{{svg "octicon-git-merge"}}</span>
- {{ .Title}} (#{{ .Index }})
+ <span class="m-0 {{if .PullRequest.HasMerged}}purple{{else if .IsClosed}}red{{else}}green{{end}}">{{svg "octicon-git-merge" 16 "mr-2 vm"}}</span>
+ <span class="vm">{{ .Title}} <span class="text light grey">#{{.Index}}</span></span>
</a>
</div>
{{- end }}
</div>
- <div class="extra content">
- {{ range .Labels }}
- <a class="ui label" href="{{$.RepoLink}}/issues?labels={{.ID}}" style="color: {{.ForegroundColor}}; background-color: {{.Color}}; margin-bottom: 3px;" title="{{.Description | RenderEmojiPlain}}">{{.Name | RenderEmoji}}</a>
- {{ end }}
- </div>
+ {{if .Labels}}
+ <div class="extra content labels-list p-0 pt-2">
+ {{ range .Labels }}
+ <a class="ui label" href="{{$.RepoLink}}/issues?labels={{.ID}}" style="color: {{.ForegroundColor}}; background-color: {{.Color}}" title="{{.Description | RenderEmojiPlain}}">{{.Name | RenderEmoji}}</a>
+ {{ end }}
+ </div>
+ {{end}}
</div>
<!-- stop issue card -->
diff --git a/web_src/js/features/projects.js b/web_src/js/features/projects.js
index 91e5c20850..0d619cab70 100644
--- a/web_src/js/features/projects.js
+++ b/web_src/js/features/projects.js
@@ -14,6 +14,7 @@ export default async function initProject() {
group: 'board-column',
draggable: '.board-column',
animation: 150,
+ ghostClass: 'card-ghost',
onSort: () => {
const board = document.getElementsByClassName('board')[0];
const boardColumns = board.getElementsByClassName('board-column');
@@ -42,6 +43,7 @@ export default async function initProject() {
{
group: 'shared',
animation: 150,
+ ghostClass: 'card-ghost',
onAdd: (e) => {
$.ajax(`${e.to.dataset.url}/${e.item.dataset.issue}`, {
headers: {
diff --git a/web_src/less/_base.less b/web_src/less/_base.less
index cb1cd18e3d..366ee073b4 100644
--- a/web_src/less/_base.less
+++ b/web_src/less/_base.less
@@ -111,6 +111,7 @@
--color-expand-button: #d8efff;
--color-placeholder-text: #aaa;
--color-editor-line-highlight: var(--color-primary-light-6);
+ --color-project-board-bg: var(--color-secondary-light-4);
/* backgrounds */
--checkbox-mask-checked: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="-1 -1 18 18" width="16" height="16"><path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path></svg>');
--checkbox-mask-indeterminate: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M2 7.75A.75.75 0 012.75 7h10a.75.75 0 010 1.5h-10A.75.75 0 012 7.75z"></path></svg>');
@@ -442,6 +443,16 @@ a.muted:hover,
color: var(--color-text);
}
+.ui.cards > .card .meta > a:not(.ui),
+.ui.card .meta > a:not(.ui) {
+ color: var(--color-text-light-2);
+}
+
+.ui.cards > .card .meta > a:not(.ui):hover,
+.ui.card .meta > a:not(.ui):hover {
+ color: var(--color-text);
+}
+
.ui.cards a.card:hover,
.ui.link.cards .card:not(.icon):hover,
a.ui.card:hover,
@@ -450,6 +461,12 @@ a.ui.card:hover,
background: var(--color-card);
}
+.ui.cards > .card > .extra,
+.ui.card > .extra {
+ color: var(--color-text);
+ border-top-color: var(--color-secondary-light-1) !important;
+}
+
.ui.comments .comment .text,
.ui.comments .comment .author {
color: var(--color-text);
@@ -1733,11 +1750,6 @@ a.ui.basic.label:hover {
margin-bottom: .4em;
}
-.ui.cards > .card > .extra,
-.ui.card > .extra {
- color: var(--color-text);
-}
-
.color-icon {
display: inline-block;
border-radius: 100%;
diff --git a/web_src/less/_repository.less b/web_src/less/_repository.less
index 6042a75948..7e6f398f3f 100644
--- a/web_src/less/_repository.less
+++ b/web_src/less/_repository.less
@@ -2940,82 +2940,6 @@ tbody.commit-list {
padding-top: 0 !important;
}
-.board {
- display: flex;
- flex-direction: row;
- flex-wrap: nowrap;
- overflow-x: auto;
- margin: 0 .5em;
-}
-
-.board-column {
- background-color: rgba(0, 0, 0, .05) !important;
- border: 1px solid var(--color-secondary) !important;
- margin: 0 .5rem !important;
- padding: .5rem !important;
- width: 320px;
- height: 60vh;
- overflow-y: scroll;
- flex: 0 0 auto;
- overflow: visible;
- display: flex;
- flex-direction: column;
-}
-
-.board-column-header {
- display: flex;
- justify-content: space-between;
-}
-
-.board-label {
- background: none !important;
- line-height: 1.25 !important;
-}
-
-.board-column > .cards {
- flex: 1;
- display: flex;
- flex-direction: column;
- margin: 0 !important;
- padding: 0 !important;
-
- .card .meta > a.milestone {
- color: #999999;
- }
-}
-
-.board-column > .divider {
- margin: 5px 0;
-}
-
-.board-column:first-child {
- margin-left: auto !important;
-}
-
-.board-column:last-child {
- margin-right: auto !important;
-}
-
-.board-card {
- margin: 3px !important;
- width: auto !important;
- background-color: #fff;
- border-radius: 5px;
- cursor: pointer;
-}
-
-.board-card .header {
- font-size: 1.1em !important;
-}
-
-.board-card .content {
- padding: 8px 8px 5px !important;
-}
-
-.board-card .extra.content {
- padding: 5px 8px !important;
-}
-
td.blob-excerpt {
background-color: #fafafa;
}
diff --git a/web_src/less/features/projects.less b/web_src/less/features/projects.less
new file mode 100644
index 0000000000..f9d97a2086
--- /dev/null
+++ b/web_src/less/features/projects.less
@@ -0,0 +1,83 @@
+.board {
+ display: flex;
+ flex-direction: row;
+ flex-wrap: nowrap;
+ overflow-x: auto;
+ margin: 0 .5em;
+}
+
+.board-column {
+ background-color: var(--color-project-board-bg) !important;
+ border: 1px solid var(--color-secondary) !important;
+ margin: 0 .5rem !important;
+ padding: .5rem !important;
+ width: 320px;
+ height: 60vh;
+ overflow-y: scroll;
+ flex: 0 0 auto;
+ overflow: visible;
+ display: flex;
+ flex-direction: column;
+}
+
+.board-column-header {
+ display: flex;
+ justify-content: space-between;
+}
+
+.board-label {
+ background: none !important;
+ line-height: 1.25 !important;
+}
+
+.board-column > .cards {
+ flex: 1;
+ display: flex;
+ margin: 0 !important;
+ padding: 0 !important;
+ flex-wrap: nowrap !important;
+ flex-direction: column;
+}
+
+.project-board-title {
+ word-break: break-word;
+}
+
+.board-column > .divider {
+ margin: 5px 0;
+}
+
+.board-column:first-child {
+ margin-left: auto !important;
+}
+
+.board-column:last-child {
+ margin-right: auto !important;
+}
+
+.board-card {
+ margin: 4px 2px !important;
+ border-radius: 5px !important;
+ cursor: move;
+ width: calc(100% - 4px) !important;
+ padding: .5rem !important;
+ min-height: auto !important;
+}
+
+.board-card .meta * {
+ margin-right: 0 !important;
+}
+
+.board-card .header {
+ margin-top: 0 !important;
+ font-size: 16px !important;
+}
+
+.card-ghost {
+ border-style: dashed !important;
+ background: none !important;
+}
+
+.card-ghost * {
+ opacity: 0;
+}
diff --git a/web_src/less/index.less b/web_src/less/index.less
index f1ac49a513..c125ccac31 100644
--- a/web_src/less/index.less
+++ b/web_src/less/index.less
@@ -8,6 +8,7 @@
@import "./features/heatmap.less";
@import "./features/imagediff.less";
@import "./features/codeeditor.less";
+@import "./features/projects.less";
@import "./markdown/mermaid.less";
@import "./chroma/base.less";
diff --git a/web_src/less/themes/theme-arc-green.less b/web_src/less/themes/theme-arc-green.less
index cd381973c5..7c084284d1 100644
--- a/web_src/less/themes/theme-arc-green.less
+++ b/web_src/less/themes/theme-arc-green.less
@@ -107,6 +107,7 @@
--color-expand-button: #3c404d;
--color-placeholder-text: #6a737d;
--color-editor-line-highlight: var(--color-primary-light-5);
+ --color-project-board-bg: var(--color-secondary-light-2);
}
.ui.horizontal.segments > .segment {
@@ -690,10 +691,6 @@ footer .container .links > * {
border-color: #383c4a;
}
-.board-column {
- background-color: rgba(0, 0, 0, .2) !important;
-}
-
.tribute-container {
box-shadow: 0 .25rem .5rem rgba(0, 0, 0, .6);
}