[TASK] change traffic lights to be better seen
This commit is contained in:
parent
c0ad2028fb
commit
0ffcf653c9
|
@ -5,15 +5,11 @@
|
||||||
<!-- ex. {procent .Count 10}%-->
|
<!-- ex. {procent .Count 10}%-->
|
||||||
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
|
||||||
<g class="arcs">
|
<g class="arcs">
|
||||||
{{if lt .Count 4}}
|
{{if eq .Count 0}}
|
||||||
<circle cx="50" cy="50" r="40" fill="#fff" stroke="#aaa" stroke-width="5"/>
|
<circle cx="50" cy="50" r="40" fill="#fff" stroke="#b02" stroke-width="8"/>
|
||||||
<circle cx="50" cy="50" r="40" fill="none" stroke="#b02" stroke-width="5" stroke-dasharray="251.33" stroke-dashoffset="{{process_radius .Count 10 40}}"/>
|
|
||||||
{{ else if and (lt .Count 7) (gt .Count 3)}}
|
|
||||||
<circle cx="50" cy="50" r="40" fill="#fff" stroke="#aaa" stroke-width="5"/>
|
|
||||||
<circle cx="50" cy="50" r="40" fill="none" stroke="#e72" stroke-width="5" stroke-dasharray="251.33" stroke-dashoffset="{{process_radius .Count 10 40}}"/>
|
|
||||||
{{else}}
|
{{else}}
|
||||||
<circle cx="50" cy="50" r="40" fill="#fff" stroke="#aaa" stroke-width="5"/>
|
<circle cx="50" cy="50" r="40" fill="#fff" stroke="#b02" stroke-width="8"/>
|
||||||
<circle cx="50" cy="50" r="40" fill="none" stroke="#6a4" stroke-width="5" stroke-dasharray="251.33" stroke-dashoffset="{{process_radius .Count 10 40}}"/>
|
<circle cx="50" cy="50" r="40" fill="none" stroke="#093" stroke-width="8" stroke-dasharray="251.33" stroke-dashoffset="{{process_radius .Count 10 40}}"/>
|
||||||
{{end}}
|
{{end}}
|
||||||
</g>
|
</g>
|
||||||
<text x="50" y="65" fill="#555" text-anchor="middle" style="font: 50px Roboto,Verdana,sans-serif;">{{.Count}}</text>
|
<text x="50" y="65" fill="#555" text-anchor="middle" style="font: 50px Roboto,Verdana,sans-serif;">{{.Count}}</text>
|
||||||
|
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 854 B |
|
@ -2,9 +2,9 @@
|
||||||
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
|
||||||
<g class="arcs">
|
<g class="arcs">
|
||||||
{{if eq .Fresh false}}
|
{{if eq .Fresh false}}
|
||||||
<circle cx="50" cy="50" r="40" fill="#b02" stroke="#aaa" stroke-width="5"/>
|
<circle cx="50" cy="50" r="40" fill="#b02" stroke="#b02" stroke-width="5"/>
|
||||||
{{else}}
|
{{else}}
|
||||||
<circle cx="50" cy="50" r="40" fill="#fff" stroke="#6a4" stroke-width="5"/>
|
<circle cx="50" cy="50" r="40" fill="#093" stroke="#093" stroke-width="5"/>
|
||||||
{{end}}
|
{{end}}
|
||||||
</g>
|
</g>
|
||||||
</svg>
|
</svg>
|
||||||
|
|
Before Width: | Height: | Size: 442 B After Width: | Height: | Size: 442 B |
|
@ -101,7 +101,7 @@ func getGoodFreshness(w http.ResponseWriter, r *http.Request){
|
||||||
}
|
}
|
||||||
fresh := false
|
fresh := false
|
||||||
if good.FouledAt != nil {
|
if good.FouledAt != nil {
|
||||||
fresh = time.Now().Add(-time.Duration(3) * time.Hour * 24).Before(*good.FouledAt)
|
fresh = time.Now().Before(*good.FouledAt)
|
||||||
}
|
}
|
||||||
|
|
||||||
log = log.WithField("type", r.Header.Get("Content-Type"))
|
log = log.WithField("type", r.Header.Get("Content-Type"))
|
||||||
|
|
|
@ -7,6 +7,7 @@ import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/genofire/hs_master-kss-monolith/lib/log"
|
"github.com/genofire/hs_master-kss-monolith/lib/log"
|
||||||
|
"sync"
|
||||||
)
|
)
|
||||||
|
|
||||||
// URL to the microservice which manages permissions
|
// URL to the microservice which manages permissions
|
||||||
|
@ -31,12 +32,15 @@ type permissionMicroServiceCache struct {
|
||||||
LastCheck time.Time
|
LastCheck time.Time
|
||||||
session string
|
session string
|
||||||
permissions map[Permission]boolMicroServiceCache
|
permissions map[Permission]boolMicroServiceCache
|
||||||
|
sync.Mutex
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Function to check, if a user has a permission
|
// Function to check, if a user has a permission
|
||||||
func (c *permissionMicroServiceCache) HasPermission(p Permission) (bool, error) {
|
func (c *permissionMicroServiceCache) HasPermission(p Permission) (bool, error) {
|
||||||
c.LastCheck = time.Now()
|
c.LastCheck = time.Now()
|
||||||
|
c.Lock()
|
||||||
|
defer c.Unlock()
|
||||||
if cache, ok := c.permissions[p]; ok {
|
if cache, ok := c.permissions[p]; ok {
|
||||||
before := time.Now().Add(-CacheConfig.After.Duration)
|
before := time.Now().Add(-CacheConfig.After.Duration)
|
||||||
if before.After(cache.LastCheck) {
|
if before.After(cache.LastCheck) {
|
||||||
|
@ -63,7 +67,7 @@ func (c *permissionMicroServiceCache) HasPermission(p Permission) (bool, error)
|
||||||
|
|
||||||
// Cache for permissions
|
// Cache for permissions
|
||||||
var permissionCache map[string]*permissionMicroServiceCache
|
var permissionCache map[string]*permissionMicroServiceCache
|
||||||
|
var permissionMutex sync.Mutex
|
||||||
// Function to initialize the permission cache
|
// Function to initialize the permission cache
|
||||||
func init() {
|
func init() {
|
||||||
permissionCache = make(map[string]*permissionMicroServiceCache)
|
permissionCache = make(map[string]*permissionMicroServiceCache)
|
||||||
|
@ -71,6 +75,8 @@ func init() {
|
||||||
|
|
||||||
// Function to check, if the current session has any permissions
|
// Function to check, if the current session has any permissions
|
||||||
func HasPermission(session string, p int) (bool, error) {
|
func HasPermission(session string, p int) (bool, error) {
|
||||||
|
permissionMutex.Lock()
|
||||||
|
defer permissionMutex.Unlock()
|
||||||
_, ok := permissionCache[session]
|
_, ok := permissionCache[session]
|
||||||
if !ok {
|
if !ok {
|
||||||
permissionCache[session] = &permissionMicroServiceCache{
|
permissionCache[session] = &permissionMicroServiceCache{
|
||||||
|
|
|
@ -7,6 +7,7 @@ import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/genofire/hs_master-kss-monolith/lib/log"
|
"github.com/genofire/hs_master-kss-monolith/lib/log"
|
||||||
|
"sync"
|
||||||
)
|
)
|
||||||
|
|
||||||
// URL to the microservice which manages the products (product catalogue)
|
// URL to the microservice which manages the products (product catalogue)
|
||||||
|
@ -20,6 +21,7 @@ type boolMicroServiceCache struct {
|
||||||
|
|
||||||
// Cache for existing products
|
// Cache for existing products
|
||||||
var productExistCache map[int64]boolMicroServiceCache
|
var productExistCache map[int64]boolMicroServiceCache
|
||||||
|
var productMutex sync.Mutex
|
||||||
|
|
||||||
// Function to initialize the cache for existing products
|
// Function to initialize the cache for existing products
|
||||||
func init() {
|
func init() {
|
||||||
|
@ -28,6 +30,8 @@ func init() {
|
||||||
|
|
||||||
// Function to check on the other microservice (product catalogue) if the product exists
|
// Function to check on the other microservice (product catalogue) if the product exists
|
||||||
func ProductExists(id int64) (bool, error) {
|
func ProductExists(id int64) (bool, error) {
|
||||||
|
productMutex.Lock()
|
||||||
|
defer productMutex.Unlock()
|
||||||
if cache, ok := productExistCache[id]; ok {
|
if cache, ok := productExistCache[id]; ok {
|
||||||
return cache.Value, nil
|
return cache.Value, nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,9 +31,8 @@
|
||||||
<td>{{item.position}}</td>
|
<td>{{item.position}}</td>
|
||||||
<td>{{item.comment}}</td>
|
<td>{{item.comment}}</td>
|
||||||
<td></td>
|
<td></td>
|
||||||
<td>
|
<td valign="middle">
|
||||||
<img class="icon" ng-src="/api/good/freshness/{{item.id}}"/>
|
<img class="icon" ng-src="/api/good/freshness/{{item.id}}"/>
|
||||||
{{item.fouled_at|date:"shortDate"}}
|
|
||||||
</td>
|
</td>
|
||||||
<td><i class="trash icon" ng-click="delete(item.id)"></i></td>
|
<td><i class="trash icon" ng-click="delete(item.id)"></i></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
Reference in New Issue