Frontend: Add Yellowstone theme, unlock Grayscale for everyone

This commit is contained in:
Michael Mayer 2021-04-26 12:37:52 +02:00
parent dd652ce49a
commit 180e46b95f
8 changed files with 159 additions and 31 deletions

View file

@ -2948,9 +2948,9 @@
}
},
"node_modules/caniuse-lite": {
"version": "1.0.30001214",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001214.tgz",
"integrity": "sha512-O2/SCpuaU3eASWVaesQirZv1MSjUNOvmugaD8zNSJqw6Vv5SGwoOpA9LJs3pNPfM745nxqPvfZY3MQKY4AKHYg=="
"version": "1.0.30001216",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001216.tgz",
"integrity": "sha512-1uU+ww/n5WCJRwUcc9UH/W6925Se5aNnem/G5QaSDga2HzvjYMs8vRbekGUN/PnTZ7ezTHcxxTEb9fgiMYwH6Q=="
},
"node_modules/chai": {
"version": "4.3.4",
@ -6419,9 +6419,9 @@
}
},
"node_modules/follow-redirects": {
"version": "1.13.3",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.3.tgz",
"integrity": "sha512-DUgl6+HDzB0iEptNQEXLx/KhTmDb8tZUHSeLqpnjpknR70H0nC2t9N73BK6fN4hOvJ84pKlIQVQ4k5FFlBedKA==",
"version": "1.14.0",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.0.tgz",
"integrity": "sha512-0vRwd7RKQBTt+mgu87mtYeofLFZpTas2S9zY+jIeuLJMNvudIgF52nr19q40HOwH5RrhWIPuj9puybzSJiRrVg==",
"funding": [
{
"type": "individual",
@ -17730,9 +17730,9 @@
}
},
"caniuse-lite": {
"version": "1.0.30001214",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001214.tgz",
"integrity": "sha512-O2/SCpuaU3eASWVaesQirZv1MSjUNOvmugaD8zNSJqw6Vv5SGwoOpA9LJs3pNPfM745nxqPvfZY3MQKY4AKHYg=="
"version": "1.0.30001216",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001216.tgz",
"integrity": "sha512-1uU+ww/n5WCJRwUcc9UH/W6925Se5aNnem/G5QaSDga2HzvjYMs8vRbekGUN/PnTZ7ezTHcxxTEb9fgiMYwH6Q=="
},
"chai": {
"version": "4.3.4",
@ -20484,9 +20484,9 @@
}
},
"follow-redirects": {
"version": "1.13.3",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.3.tgz",
"integrity": "sha512-DUgl6+HDzB0iEptNQEXLx/KhTmDb8tZUHSeLqpnjpknR70H0nC2t9N73BK6fN4hOvJ84pKlIQVQ4k5FFlBedKA=="
"version": "1.14.0",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.0.tgz",
"integrity": "sha512-0vRwd7RKQBTt+mgu87mtYeofLFZpTas2S9zY+jIeuLJMNvudIgF52nr19q40HOwH5RrhWIPuj9puybzSJiRrVg=="
},
"for-in": {
"version": "1.0.2",

View file

@ -201,4 +201,98 @@ body.dark-theme {
#photoprism.theme-shadow .theme--light.v-list .v-list__tile__mask {
color: #cccccc;
background: transparent;
}
/* Yellowstone Theme */
.theme-yellowstone .v-content__wrap,
.theme-yellowstone .p-page,
.theme-yellowstone .form,
.theme-yellowstone .v-content {
background: #444 !important;
}
#photoprism.theme-yellowstone .theme--light.v-small-dialog__content,
#photoprism.theme-yellowstone .theme--light.v-sheet,
#photoprism.theme-yellowstone .theme--light.v-card {
background: #444;
}
.theme-yellowstone .application.theme--light {
background: #444;
}
#photoprism.theme-yellowstone .theme--light .v-table {
background: #4E4E4E;
}
#photoprism.theme-yellowstone .theme--light.v-table thead th,
#photoprism.theme-yellowstone .theme--light.v-table tbody td {
color: #fff;
}
#photoprism.theme-yellowstone .theme--light.v-table tbody tr:hover {
background: #666;
}
#photoprism.theme-yellowstone .theme--light.v-chip,
#photoprism.theme-yellowstone .v-card__actions .theme--light.v-text-field--solo>.v-input__control>.v-input__slot {
background: #333;
}
#photoprism.theme-yellowstone .theme--light.v-text-field--solo>.v-input__control>.v-input__slot {
background: #4E4E4E;
}
#photoprism.theme-yellowstone .theme--light.v-input--selection-controls.v-input--is-disabled .v-icon {
color: #999 !important;
}
#photoprism.theme-yellowstone .theme--light.v-input--selection-controls.v-input--is-disabled .v-icon,
#photoprism.theme-yellowstone .theme--light.v-input--is-disabled .v-label,
#photoprism.theme-yellowstone .theme--light.v-input--is-disabled input,
#photoprism.theme-yellowstone .theme--light.v-input--is-disabled textarea {
color: #ccc;
}
#photoprism.theme-yellowstone,
#photoprism.theme-yellowstone .p-page a,
#photoprism.theme-yellowstone .v-datatable a,
#photoprism.theme-yellowstone .theme--light.v-expansion-panel .v-expansion-panel__container,
#photoprism.theme-yellowstone .theme--light.v-tabs__bar .v-tabs__div,
#photoprism.theme-yellowstone .theme--light {
color: #fff;
}
#photoprism.theme-yellowstone .theme--light.v-list {
background: #555;
}
#photoprism.theme-yellowstone a.text-link {
color: #ffb700 !important;
}
#photoprism.theme-yellowstone .theme--light.v-select .v-select__selections {
color: #eee;
}
#photoprism.theme-yellowstone .theme--light.v-list .v-list__tile__sub-title,
#photoprism.theme-yellowstone .accent--text {
color: #ffb700 !important;
}
#photoprism.theme-yellowstone .theme--light.v-input:not(.v-input--is-disabled) input,
#photoprism.theme-yellowstone .theme--light.v-input:not(.v-input--is-disabled) textarea {
color: #fff;
}
#photoprism.theme-yellowstone .theme--light.v-btn.v-btn--disabled,
#photoprism.theme-yellowstone .theme--light.v-btn.v-btn--disabled .v-btn__loading,
#photoprism.theme-yellowstone .theme--light.v-btn.v-btn--disabled .v-icon {
color: #999 !important;
}
#photoprism.theme-yellowstone .theme--light.v-list .v-list__tile__mask {
color: #cccccc;
background: transparent;
}

View file

@ -230,6 +230,11 @@ export const Themes = () => [
value: "shadow",
disabled: false,
},
{
text: $gettext("Yellowstone"),
value: "yellowstone",
disabled: false,
},
];
export const MapsAnimate = () => [
{

View file

@ -30,7 +30,7 @@
},
"grayscale": {
"dark": true,
"sponsor": true,
"sponsor": false,
"colors": {
"application": "#525252",
"form": "#e5e4e2",
@ -259,5 +259,34 @@
"navigation": "#212121",
"navigation-home": "#000000"
}
},
"yellowstone": {
"dark": true,
"sponsor": true,
"colors": {
"application": "#444",
"form": "#eeeeee",
"primary": "#ffb700",
"primary-button": "#918c7d",
"secondary-dark": "#ffb700",
"secondary": "#585858",
"secondary-light": "#666",
"accent": "#333",
"error": "#e57373",
"info": "#00acc1",
"success": "#4db6ac",
"warning": "#ffd740",
"remove": "#e57373",
"restore": "#64b5f6",
"album": "#ffab00",
"download": "#00bfa5",
"private": "#00b8d4",
"edit": "#00b8d4",
"share": "#9575cd",
"love": "#ef5350",
"terminal": "#333333",
"navigation": "#111",
"navigation-home": "#000000"
}
}
}

9
go.mod
View file

@ -21,7 +21,7 @@ require (
github.com/go-playground/validator/v10 v10.5.0 // indirect
github.com/golang/geo v0.0.0-20210211234256-740aa86cb551
github.com/golang/protobuf v1.5.2 // indirect
github.com/google/open-location-code/go v0.0.0-20201229230907-d47d9f9b95e9
github.com/google/open-location-code/go v0.0.0-20210421170257-a9fdf9fced04
github.com/gorilla/websocket v1.4.2
github.com/gosimple/slug v1.9.0
github.com/h2non/filetype v1.1.1
@ -53,14 +53,13 @@ require (
github.com/stretchr/testify v1.7.0
github.com/studio-b12/gowebdav v0.0.0-20210203212356-8244b5a5f51a
github.com/tensorflow/tensorflow v1.15.2
github.com/tidwall/gjson v1.7.4
github.com/tidwall/gjson v1.7.5
github.com/ugorji/go v1.2.5 // indirect
github.com/ulule/deepcopier v0.0.0-20200430083143-45decc6639b6
github.com/urfave/cli v1.22.5
golang.org/x/crypto v0.0.0-20210415154028-4f45737414dc
golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b
golang.org/x/image v0.0.0-20200618115811-c13761719519 // indirect
golang.org/x/net v0.0.0-20210415231046-e915ea6b2b7d
golang.org/x/sys v0.0.0-20210415045647-66c3f260301c // indirect
golang.org/x/net v0.0.0-20210423184538-5f58ad60dda6
gopkg.in/ugjka/go-tz.v2 v2.0.12
gopkg.in/yaml.v2 v2.4.0
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect

21
go.sum
View file

@ -137,8 +137,8 @@ github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU=
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
github.com/google/open-location-code/go v0.0.0-20201229230907-d47d9f9b95e9 h1:9giiAmczhkdgh1p9riU7PFmLXpJkq1D4wkIWmEJFMEk=
github.com/google/open-location-code/go v0.0.0-20201229230907-d47d9f9b95e9/go.mod h1:eJfRN6aj+kR/rnua/rw9jAgYhqoMHldQkdTi+sePRKk=
github.com/google/open-location-code/go v0.0.0-20210421170257-a9fdf9fced04 h1:vSi4tnVMSPrjIS+5VgoWe1OSfeIZNG+p1AsysRZeNns=
github.com/google/open-location-code/go v0.0.0-20210421170257-a9fdf9fced04/go.mod h1:eJfRN6aj+kR/rnua/rw9jAgYhqoMHldQkdTi+sePRKk=
github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
@ -254,8 +254,8 @@ github.com/studio-b12/gowebdav v0.0.0-20210203212356-8244b5a5f51a h1:Zq18I/ONL/y
github.com/studio-b12/gowebdav v0.0.0-20210203212356-8244b5a5f51a/go.mod h1:gCcfDlA1Y7GqOaeEKw5l9dOGx1VLdc/HuQSlQAaZ30s=
github.com/tensorflow/tensorflow v1.15.2 h1:7/f/A664Tml/nRJg04+p3StcrsT53mkcvmxYHXI21Qo=
github.com/tensorflow/tensorflow v1.15.2/go.mod h1:itOSERT4trABok4UOoG+X4BoKds9F3rIsySdn+Lvu90=
github.com/tidwall/gjson v1.7.4 h1:19cchw8FOxkG5mdLRkGf9jqIqEyqdZhPqW60XfyFxk8=
github.com/tidwall/gjson v1.7.4/go.mod h1:5/xDoumyyDNerp2U36lyolv46b3uF/9Bu6OfyQ9GImk=
github.com/tidwall/gjson v1.7.5 h1:zmAN/xmX7OtpAkv4Ovfso60r/BiCi5IErCDYGNJu+uc=
github.com/tidwall/gjson v1.7.5/go.mod h1:5/xDoumyyDNerp2U36lyolv46b3uF/9Bu6OfyQ9GImk=
github.com/tidwall/match v1.0.3 h1:FQUVvBImDutD8wJLN6c5eMzWtjgONK9MwIBCOrUJKeE=
github.com/tidwall/match v1.0.3/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM=
github.com/tidwall/pretty v1.1.0 h1:K3hMW5epkdAVwibsQEfR/7Zj0Qgt4DxtNumTq/VloO8=
@ -283,8 +283,8 @@ golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8U
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20191205180655-e7c4368fe9dd/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20210415154028-4f45737414dc h1:+q90ECDSAQirdykUN6sPEiBXBsp8Csjcca8Oy7bgLTA=
golang.org/x/crypto v0.0.0-20210415154028-4f45737414dc/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b h1:7mWr3k41Qtv8XlltBkDkl8LoP3mpSgBW8BUoxtEdbXg=
golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
@ -334,8 +334,8 @@ golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/
golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
golang.org/x/net v0.0.0-20210415231046-e915ea6b2b7d h1:BgJvlyh+UqCUaPlscHJ+PN8GcpfrFdr7NHjd1JL0+Gs=
golang.org/x/net v0.0.0-20210415231046-e915ea6b2b7d/go.mod h1:9tjilg8BloeKEkVJvy7fQ90B1CfIiPueXVOjqfkSzI8=
golang.org/x/net v0.0.0-20210423184538-5f58ad60dda6 h1:0PC75Fz/kyMGhL0e1QnypqK2kQMqKt9csD1GnMJR+Zk=
golang.org/x/net v0.0.0-20210423184538-5f58ad60dda6/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
@ -365,9 +365,8 @@ golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210415045647-66c3f260301c h1:6L+uOeS3OQt/f4eFHXZcTxeZrGCuz+CLElgEBjbcTA4=
golang.org/x/sys v0.0.0-20210415045647-66c3f260301c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210423082822-04245dca01da h1:b3NXsE2LusjYGGjL5bxEVZZORm/YEFFrWFjR8eFrw/c=
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=

View file

@ -2,11 +2,12 @@ package commands
import (
"context"
"github.com/photoprism/photoprism/pkg/txt"
"path/filepath"
"strings"
"time"
"github.com/photoprism/photoprism/pkg/txt"
"github.com/photoprism/photoprism/internal/config"
"github.com/photoprism/photoprism/internal/service"
"github.com/urfave/cli"

View file

@ -1,8 +1,9 @@
package meta
import (
"github.com/photoprism/photoprism/pkg/txt"
"strings"
"github.com/photoprism/photoprism/pkg/txt"
)
const (