summaryrefslogtreecommitdiffstats
path: root/models
diff options
context:
space:
mode:
authorLukas Dietrich <lukas@lukasdietrich.com>2016-02-27 13:59:11 +0100
committerLukas Dietrich <lukas@lukasdietrich.com>2016-02-27 13:59:11 +0100
commitc0eaae200e4c6cfdef5a0a298921db02cba56a92 (patch)
treefe0ea0663d2f2e7abc1176dd0ebcd5416fa8ac6b /models
parent79ae163296be367058576589bfc583c22a2e24ca (diff)
downloadgitea-c0eaae200e4c6cfdef5a0a298921db02cba56a92.tar.gz
gitea-c0eaae200e4c6cfdef5a0a298921db02cba56a92.zip
Add ForegroundColor for labels
Diffstat (limited to 'models')
-rw-r--r--models/issue.go22
1 files changed, 22 insertions, 0 deletions
diff --git a/models/issue.go b/models/issue.go
index 62db35d48a..c9883a25e6 100644
--- a/models/issue.go
+++ b/models/issue.go
@@ -8,10 +8,12 @@ import (
"bytes"
"errors"
"fmt"
+ "html/template"
"io"
"mime/multipart"
"os"
"path"
+ "strconv"
"strings"
"time"
@@ -958,6 +960,26 @@ func (m *Label) CalOpenIssues() {
m.NumOpenIssues = m.NumIssues - m.NumClosedIssues
}
+// ForegroundColor calculates the text color for labels based
+// on their background color
+func (l *Label) ForegroundColor() template.CSS {
+ if strings.HasPrefix(l.Color, "#") {
+ if color, err := strconv.ParseUint(l.Color[1:], 16, 64); err == nil {
+ r := float32(0xFF & (color >> 16))
+ g := float32(0xFF & (color >> 8))
+ b := float32(0xFF & color)
+ luminance := (0.2126*r + 0.7152*g + 0.0722*b) / 255
+
+ if luminance < 0.5 {
+ return template.CSS("rgba(255,255,255,.8)")
+ }
+ }
+ }
+
+ // default to black
+ return template.CSS("rgba(0,0,0,.8)")
+}
+
// NewLabel creates new label of repository.
func NewLabel(l *Label) error {
_, err := x.Insert(l)