diff --git a/cmd/dashboard/controller/common_page.go b/cmd/dashboard/controller/common_page.go index cb2f2b4..9b22ac4 100644 --- a/cmd/dashboard/controller/common_page.go +++ b/cmd/dashboard/controller/common_page.go @@ -35,7 +35,7 @@ func (cp *commonPage) home(c *gin.Context) { if ok { data["Admin"] = u } - c.HTML(http.StatusOK, "page/home", mygin.CommonEnvironment(c, data)) + c.HTML(http.StatusOK, "theme-"+dao.Conf.Site.Theme+"/home", mygin.CommonEnvironment(c, data)) } var upgrader = websocket.Upgrader{} diff --git a/cmd/dashboard/controller/guest_page.go b/cmd/dashboard/controller/guest_page.go index a663209..87cfa35 100644 --- a/cmd/dashboard/controller/guest_page.go +++ b/cmd/dashboard/controller/guest_page.go @@ -39,7 +39,7 @@ func (gp *guestPage) serve() { } func (gp *guestPage) login(c *gin.Context) { - c.HTML(http.StatusOK, "page/login", mygin.CommonEnvironment(c, gin.H{ + c.HTML(http.StatusOK, "dashboard/login", mygin.CommonEnvironment(c, gin.H{ "Title": "登录", })) } diff --git a/cmd/dashboard/controller/member_api.go b/cmd/dashboard/controller/member_api.go index 63b3e6d..9385a5c 100644 --- a/cmd/dashboard/controller/member_api.go +++ b/cmd/dashboard/controller/member_api.go @@ -30,6 +30,7 @@ func (ma *memberAPI) serve() { mr.POST("/logout", ma.logout) mr.POST("/server", ma.addOrEditServer) + mr.POST("/setting", ma.updateSetting) mr.DELETE("/server/:id", ma.delete) } @@ -124,3 +125,33 @@ func (ma *memberAPI) logout(c *gin.Context) { Code: http.StatusOK, }) } + +type settingForm struct { + Title string + Admin string + Theme string +} + +func (ma *memberAPI) updateSetting(c *gin.Context) { + var sf settingForm + if err := c.ShouldBind(&sf); err != nil { + c.JSON(http.StatusOK, model.Response{ + Code: http.StatusBadRequest, + Message: fmt.Sprintf("请求错误:%s", err), + }) + return + } + dao.Conf.Site.Brand = sf.Title + dao.Conf.Site.Theme = sf.Theme + dao.Conf.GitHub.Admin = sf.Admin + if err := dao.Conf.Save(); err != nil { + c.JSON(http.StatusOK, model.Response{ + Code: http.StatusBadRequest, + Message: fmt.Sprintf("请求错误:%s", err), + }) + return + } + c.JSON(http.StatusOK, model.Response{ + Code: http.StatusOK, + }) +} diff --git a/cmd/dashboard/controller/member_page.go b/cmd/dashboard/controller/member_page.go index bc5e378..07dfaba 100644 --- a/cmd/dashboard/controller/member_page.go +++ b/cmd/dashboard/controller/member_page.go @@ -22,13 +22,21 @@ func (mp *memberPage) serve() { Redirect: "/login", })) mr.GET("/server", mp.server) + mr.GET("/setting", mp.setting) } func (mp *memberPage) server(c *gin.Context) { dao.ServerLock.RLock() defer dao.ServerLock.RUnlock() - c.HTML(http.StatusOK, "page/server", mygin.CommonEnvironment(c, gin.H{ + c.HTML(http.StatusOK, "dashboard/server", mygin.CommonEnvironment(c, gin.H{ "Title": "服务器管理", "Servers": dao.ServerList, })) } + +func (mp *memberPage) setting(c *gin.Context) { + c.HTML(http.StatusOK, "dashboard/setting", mygin.CommonEnvironment(c, gin.H{ + "Title": "系统设置", + "Conf": dao.Conf, + })) +} diff --git a/go.mod b/go.mod index b006555..49557ad 100644 --- a/go.mod +++ b/go.mod @@ -22,4 +22,5 @@ require ( golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43 google.golang.org/grpc v1.33.1 google.golang.org/protobuf v1.25.0 + gopkg.in/yaml.v2 v2.2.8 ) diff --git a/model/config.go b/model/config.go index eac9476..edf8206 100644 --- a/model/config.go +++ b/model/config.go @@ -2,9 +2,12 @@ package model import ( "fmt" + "io/ioutil" + "os" "github.com/fsnotify/fsnotify" "github.com/spf13/viper" + "gopkg.in/yaml.v2" ) // Config .. @@ -13,6 +16,7 @@ type Config struct { Site struct { Brand string // 站点名称 CookieName string // 浏览器 Cookie 名称 + Theme string } GitHub struct { Admin string // 管理员ID列表 @@ -38,11 +42,23 @@ func (c *Config) Read(path string) error { return err } + if c.Site.Theme == "" { + c.Site.Theme = "default" + } + c.v.OnConfigChange(func(in fsnotify.Event) { - fmt.Println("配置文件更新,重载配置") c.v.Unmarshal(c) + fmt.Println("配置文件更新,重载配置", c) }) go c.v.WatchConfig() return nil } + +func (c *Config) Save() error { + data, err := yaml.Marshal(c) + if err != nil { + return err + } + return ioutil.WriteFile(c.v.ConfigFileUsed(), data, os.ModePerm) +} diff --git a/pkg/mygin/error.go b/pkg/mygin/error.go index 5cf80ed..040c303 100644 --- a/pkg/mygin/error.go +++ b/pkg/mygin/error.go @@ -20,7 +20,7 @@ type ErrInfo struct { // ShowErrorPage .. func ShowErrorPage(c *gin.Context, i ErrInfo, isPage bool) { if isPage { - c.HTML(http.StatusOK, "page/error", CommonEnvironment(c, gin.H{ + c.HTML(http.StatusOK, "dashboard/error", CommonEnvironment(c, gin.H{ "Code": i.Code, "Title": i.Title, "Msg": i.Msg, diff --git a/resource/static/theme-hotaru/css/core.css b/resource/static/theme-hotaru/css/core.css new file mode 100644 index 0000000..c00ff25 --- /dev/null +++ b/resource/static/theme-hotaru/css/core.css @@ -0,0 +1,1713 @@ +/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */ + +@media print { + *, *:before, *:after { + color: #000 !important; + text-shadow: none !important; + background: transparent !important; + -webkit-box-shadow: none !important; + box-shadow: none !important; + } + + a, a:visited { + text-decoration: underline; + } + + a[href]:after { + content: " (" attr(href) ")"; + } + + abbr[title]:after { + content: " (" attr(title) ")"; + } + + a[href^="#"]:after, a[href^="javascript:"]:after { + content: ""; + } + + pre, blockquote { + border: 1px solid #999999; + page-break-inside: avoid; + } + + thead { + display: table-header-group; + } + + tr, img { + page-break-inside: avoid; + } + + img { + max-width: 100% !important; + } + + p, h2, h3 { + orphans: 3; + widows: 3; + } + + h2, h3 { + page-break-after: avoid; + } + + .navbar { + display: none; + } + + .btn > .caret, .dropup > .btn > .caret { + border-top-color: #000 !important; + } + + .label { + border: 1px solid #000; + } + + .table { + border-collapse: collapse !important; + } + + .table td, .table th { + background-color: #fff !important; + } + + .table-bordered th, .table-bordered td { + border: 1px solid #edeff2 !important; + } +} + +* { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +*:before, *:after { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +html { + font-size: 12px; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} + +a, .link { + color: #1e88e5; + text-decoration: none; +} + +a:hover, a:focus, .link:hover, .link:focus { + color: #3ba3ff; + text-decoration: none; +} + +.link .zmdi-long-arrow-right { + margin-left: 8px; +} + +figure { + margin: 0; +} + +img { + vertical-align: middle; + border-radius: 5px; +} + +.img-responsive, .thumbnail > img, .thumbnail a > img, .carousel-inner > .item > img, .carousel-inner > .item > a > img { + display: block; + max-width: 100%; + height: auto; +} + +.img-rounded { + border-radius: 6px; +} + +.img-thumbnail { + display: inline-block; + max-width: 100%; + height: auto; + padding: 4px; + line-height: 1.42857143; + background-color: #fff; + border: 1px solid #edeff2; + border-radius: 4px; + -webkit-transition: all .2s ease-in-out; + -o-transition: all .2s ease-in-out; + transition: all .2s ease-in-out; +} + +.img-circle { + border-radius: 50%; +} + +hr { + margin-top: 35px; + margin-bottom: 35px; + border: 0; + border-top: 1px solid #eee; +} + +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + border: 0; +} + +.sr-only-focusable:active, .sr-only-focusable:focus { + position: static; + width: auto; + height: auto; + margin: 0; + overflow: visible; + clip: auto; +} + +h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6 { + color: #363b40; + font-weight: 500; +} + +h1, .h1 { + margin-top: 38px; + margin-bottom: 38px; + font-size: 33px; + line-height: 46px; +} + +h2, .h2 { + margin-top: 25px; + margin-bottom: 25px; + font-size: 24px; + line-height: 34px; +} + +h3, .h3 { + margin-top: 25px; + margin-bottom: 25px; + font-size: 20px; + line-height: 28px; +} + +h4, .h4 { + margin-top: 18px; + margin-bottom: 18px; + font-size: 16px; + line-height: 22px; + font-weight: bolder; +} + +h5, .h5 { + margin-top: 18px; + margin-bottom: 18px; + font-size: 15px; + font-weight: bold; + line-height: 22px; +} + +h6, .h6 { + margin-top: 18px; + margin-bottom: 18px; + font-size: 14px; + font-weight: bold; + line-height: 20px; +} + +h1 small, .h1 small, h2 small, .h2 small, h3 small, .h3 small, h4 small, .h4 small, h5 small, .h5 small, h6 small, .h6 small { + font-weight: 300; +} + +h1 a, .h1 a, h2 a, .h2 a, h3 a, .h3 a, h4 a, .h4 a, h5 a, .h5 a, h6 a, .h6 a { + color: #363b40; +} + +h1 a:hover, .h1 a:hover, h2 a:hover, .h2 a:hover, h3 a:hover, .h3 a:hover, h4 a:hover, .h4 a:hover, h5 a:hover, .h5 a:hover, h6 a:hover, .h6 a:hover { + color: #1e88e5; +} + +h1 small, h2 small, h3 small, h4 small, h5 small, h6 small, .h1 small, .h2 small, .h3 small, .h4 small, .h5 small, .h6 small, h1 .small, h2 .small, h3 .small, h4 .small, h5 .small, h6 .small, .h1 .small, .h2 .small, .h3 .small, .h4 .small, .h5 .small, .h6 .small { + font-weight: normal; + line-height: 1; + color: #777; +} + +.lead { + margin-bottom: 20px; + font-size: 16px; + font-weight: 300; + line-height: 1.4; +} + +@media (min-width: 768px) { + .lead { + font-size: 21px; + } +} + +small, .small { + font-size: 85%; +} + +mark, .mark { + padding: .2em; + background-color: #fcf8e3; +} + +.text-left { + text-align: left !important; +} + +.text-right { + text-align: right !important; +} + +.text-center { + text-align: center !important; +} + +.text-justify { + text-align: justify !important; +} + +.text-nowrap { + white-space: nowrap !important; +} + +.text-lowercase { + text-transform: lowercase; +} + +.text-uppercase { + text-transform: none; +} + +.text-capitalize { + text-transform: none; +} + +.text-muted { + color: #777; +} + +.text-normal { + font-weight: 300 !important; +} + +.text-semibold { + font-weight: 500 !important; +} + +.text-bold { + font-weight: bold !important; +} + +.text-primary { + color: #1e88e5 !important; +} + +.text-white { + color: #fff !important; +} + +a.text-primary:hover, a.text-primary:focus { + color: #286090; +} + +.text-success { + color: #43A047 !important; +} + +a.text-success:hover, a.text-success:focus { + color: #2b542c; +} + +.text-info { + color: #3ba3ff !important; +} + +a.text-info:hover, a.text-info:focus { + color: #245269; +} + +.text-warning { + color: #fca426 !important; +} + +a.text-warning:hover, a.text-warning:focus { + color: #fcb858; +} + +.text-danger { + color: #e53935 !important; +} + +a.text-danger:hover, a.text-danger:focus { + color: #ff4d4a !important; +} + +.bg-primary { + color: #fff; + background-color: #1e88e5; +} + +a.bg-primary:hover, a.bg-primary:focus { + background-color: #286090; +} + +.bg-success { + background-color: #dff0d8; +} + +a.bg-success:hover, a.bg-success:focus { + background-color: #c1e2b3; +} + +.bg-info { + background-color: #d9edf7; +} + +a.bg-info:hover, a.bg-info:focus { + background-color: #afd9ee; +} + +.bg-warning { + background-color: #fcf8e3; +} + +a.bg-warning:hover, a.bg-warning:focus { + background-color: #f7ecb5; +} + +.bg-danger { + background-color: #f2dede; +} + +a.bg-danger:hover, a.bg-danger:focus { + background-color: #e4b9b9; +} + +.page-header { + padding-bottom: 9px; + margin: 40px 0 20px; + border-bottom: 1px solid #eee; +} + +ul, ol { + margin-top: 0; + margin-bottom: 10px; +} + +ul ul, ol ul, ul ol, ol ol { + margin-bottom: 0; +} + +.list-unstyled { + padding-left: 0; + list-style: none; +} + +.list-inline { + padding-left: 0; + margin-left: -5px; + list-style: none; +} + +.list-inline > li { + display: inline-block; + padding-right: 5px; + padding-left: 5px; +} + +.list-styled { + padding: 0; + margin: 0 0 12px 0; + list-style: none; +} + +.list-styled > li { + margin-bottom: 5px; +} + +.list-styled > li:last-child { + margin-bottom: 0; +} + +.list-label { + display: inline-block; + color: #363b40; + font-weight: 500; +} + +.list-styled-minwidth > li { + position: relative; + padding-left: 150px; +} + +.list-styled-minwidth .list-label { + position: absolute; + top: 0; + left: 0; + width: 150px; +} + +.list-icon { + padding: 0; + margin: 0 0 12px 0; + list-style: none; +} + +.list-icon > li { + margin-bottom: 16px; +} + +.list-icon > li { + position: relative; + padding-left: 32px; +} + +.list-icon > li > a { + display: block; + color: #616366; +} + +.list-icon > li > a > i, .list-icon > li > i { + position: absolute; + top: 0; + left: 0; + color: #616366; + font-size: 24px; +} + +.list-icon > li > i > span { + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; + font-size: 10px; + font-weight: bold; + text-align: center; + line-height: 22px; +} + +.list-bullet { + padding: 0; + margin: 0 0 12px 0; + list-style: none; +} + +.list-bullet > li { + margin-bottom: 6px; +} + +.list-bullet > li { + position: relative; + padding-left: 24px; +} + +.list-bullet > li:before { + position: absolute; + top: 0; + left: 0; + display: block; + content: "•"; + font-size: 34px; +} + +.standard-ol { + counter-reset: item; +} + +.standard-ol > li { + margin: 0 0 17px 0; + list-style-type: none; + counter-increment: item; + text-indent: -2em; +} + +.standard-ol > li > .standard-ol { + margin-top: 17px; +} + +.standard-ol > li:before { + display: inline-block; + width: 2em; + padding-right: 0.5em; + color: #2b3033; + font-weight: bold; + text-align: right; + content: counter(item) "."; +} + +.list-upper-latin > li:before { + content: counter(item, upper-latin) "."; +} + +dl { + margin-top: 0; + margin-bottom: 20px; +} + +dt, dd { + line-height: 1.42857143; +} + +dt { + font-weight: bold; +} + +dd { + margin-left: 0; +} + +@media (min-width: 768px) { + .dl-horizontal dt { + float: left; + width: 160px; + overflow: hidden; + clear: left; + text-align: right; + text-overflow: ellipsis; + white-space: nowrap; + } + + .dl-horizontal dd { + margin-left: 180px; + } +} + +abbr[title], abbr[data-original-title] { + cursor: help; + border-bottom: 1px dotted #777; +} + +.initialism { + font-size: 90%; + text-transform: none; +} + +blockquote { + padding: 10px 20px; + margin: 0 0 20px; + font-size: 18px; + border-left: 5px solid #eee; +} + +blockquote p:last-child, blockquote ul:last-child, blockquote ol:last-child { + margin-bottom: 0; +} + +blockquote footer, blockquote small, blockquote .small { + display: block; + font-size: 80%; + line-height: 1.42857143; + color: #777; +} + +blockquote footer:before, blockquote small:before, blockquote .small:before { + content: '\2014 \00A0'; +} + +.blockquote-reverse, blockquote.pull-right { + padding-right: 15px; + padding-left: 0; + text-align: right; + border-right: 5px solid #eee; + border-left: 0; +} + +.blockquote-reverse footer:before, blockquote.pull-right footer:before, .blockquote-reverse small:before, blockquote.pull-right small:before, .blockquote-reverse .small:before, blockquote.pull-right .small:before { + content: ''; +} + +.blockquote-reverse footer:after, blockquote.pull-right footer:after, .blockquote-reverse small:after, blockquote.pull-right small:after, .blockquote-reverse .small:after, blockquote.pull-right .small:after { + content: '\00A0 \2014'; +} + +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; +} + +.container { + -webkit-border-radius: .75rem; + border-radius: .75rem; + padding-right: 10px; + padding-left: 10px; + margin-right: auto; + margin-left: auto; +} + +@media (min-width: 768px) { + .container { + width: 100%; + /*width: 750px;*/ + } +} + +@media (min-width: 992px) { + .container { + width: 970px; + } +} + +@media (min-width: 1200px) { + .container { + width: 1170px; + } +} + +.container-fluid { + padding-right: 10px; + padding-left: 10px; + margin-right: auto; + margin-left: auto; +} + +.row { + margin-right: -10px; + margin-left: -10px; +} + +.col-mob-1, .col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-mob-2 .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-mob-3, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-mob-6, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 { + position: relative; + min-height: 1px; + padding-right: 10px; + padding-left: 10px; +} + +.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 { + float: left; +} + +.col-xs-12 { + width: 100%; +} + +.col-xs-11 { + width: 91.66666667%; +} + +.col-xs-10 { + width: 83.33333333%; +} + +.col-xs-9 { + width: 75%; +} + +.col-xs-8 { + width: 66.66666667%; +} + +.col-xs-7 { + width: 58.33333333%; +} + +.col-xs-6 { + width: 50%; +} + +.col-xs-5 { + width: 41.66666667%; +} + +.col-xs-4 { + width: 33.33333333%; +} + +.col-xs-3 { + width: 25%; +} + +.col-xs-2 { + width: 16.66666667%; +} + +.col-xs-1 { + width: 8.33333333%; +} + +.col-xs-pull-12 { + right: 100%; +} + +.col-xs-pull-11 { + right: 91.66666667%; +} + +.col-xs-pull-10 { + right: 83.33333333%; +} + +.col-xs-pull-9 { + right: 75%; +} + +.col-xs-pull-8 { + right: 66.66666667%; +} + +.col-xs-pull-7 { + right: 58.33333333%; +} + +.col-xs-pull-6 { + right: 50%; +} + +.col-xs-pull-5 { + right: 41.66666667%; +} + +.col-xs-pull-4 { + right: 33.33333333%; +} + +.col-xs-pull-3 { + right: 25%; +} + +.col-xs-pull-2 { + right: 16.66666667%; +} + +.col-xs-pull-1 { + right: 8.33333333%; +} + +.col-xs-pull-0 { + right: auto; +} + +.col-xs-push-12 { + left: 100%; +} + +.col-xs-push-11 { + left: 91.66666667%; +} + +.col-xs-push-10 { + left: 83.33333333%; +} + +.col-xs-push-9 { + left: 75%; +} + +.col-xs-push-8 { + left: 66.66666667%; +} + +.col-xs-push-7 { + left: 58.33333333%; +} + +.col-xs-push-6 { + left: 50%; +} + +.col-xs-push-5 { + left: 41.66666667%; +} + +.col-xs-push-4 { + left: 33.33333333%; +} + +.col-xs-push-3 { + left: 25%; +} + +.col-xs-push-2 { + left: 16.66666667%; +} + +.col-xs-push-1 { + left: 8.33333333%; +} + +.col-xs-push-0 { + left: auto; +} + +.col-xs-offset-12 { + margin-left: 100%; +} + +.col-xs-offset-11 { + margin-left: 91.66666667%; +} + +.col-xs-offset-10 { + margin-left: 83.33333333%; +} + +.col-xs-offset-9 { + margin-left: 75%; +} + +.col-xs-offset-8 { + margin-left: 66.66666667%; +} + +.col-xs-offset-7 { + margin-left: 58.33333333%; +} + +.col-xs-offset-6 { + margin-left: 50%; +} + +.col-xs-offset-5 { + margin-left: 41.66666667%; +} + +.col-xs-offset-4 { + margin-left: 33.33333333%; +} + +.col-xs-offset-3 { + margin-left: 25%; +} + +.col-xs-offset-2 { + margin-left: 16.66666667%; +} + +.col-xs-offset-1 { + margin-left: 8.33333333%; +} + +.col-xs-offset-0 { + margin-left: 0; +} + +@media (max-width: 479px) { + .col-mob-1, .col-mob-2, .col-mob-3, .col-mob-4, .col-mob-5, .col-mob-6, .col-mob-7, .col-mob-8, .col-mob-9, .col-mob-10, .col-mob-11, .col-mob-12 { + float: left; + } + + .col-mob-12 { + width: 100%; + } + + .col-mob-11 { + width: 91.66666667%; + } + + .col-mob-10 { + width: 83.33333333%; + } + + .col-mob-9 { + width: 75%; + } + + .col-mob-8 { + width: 66.66666667%; + } + + .col-mob-7 { + width: 58.33333333%; + } + + .col-mob-6 { + width: 50%; + } + + .col-mob-5 { + width: 41.66666667%; + } + + .col-mob-4 { + width: 33.33333333%; + } + + .col-mob-3 { + width: 25%; + } + + .col-mob-2 { + width: 16.66666667%; + } + + .col-mob-1 { + width: 8.33333333%; + } +} + +@media (min-width: 768px) { + .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 { + float: left; + } + + .col-sm-12 { + width: 100%; + } + + .col-sm-11 { + width: 91.66666667%; + } + + .col-sm-10 { + width: 83.33333333%; + } + + .col-sm-9 { + width: 75%; + } + + .col-sm-8 { + width: 66.66666667%; + } + + .col-sm-7 { + width: 58.33333333%; + } + + .col-sm-6 { + width: 50%; + } + + .col-sm-5 { + width: 41.66666667%; + } + + .col-sm-4 { + width: 33.33333333%; + } + + .col-sm-3 { + width: 25%; + } + + .col-sm-2 { + width: 16.66666667%; + } + + .col-sm-1 { + width: 8.33333333%; + } + + .col-sm-pull-12 { + right: 100%; + } + + .col-sm-pull-11 { + right: 91.66666667%; + } + + .col-sm-pull-10 { + right: 83.33333333%; + } + + .col-sm-pull-9 { + right: 75%; + } + + .col-sm-pull-8 { + right: 66.66666667%; + } + + .col-sm-pull-7 { + right: 58.33333333%; + } + + .col-sm-pull-6 { + right: 50%; + } + + .col-sm-pull-5 { + right: 41.66666667%; + } + + .col-sm-pull-4 { + right: 33.33333333%; + } + + .col-sm-pull-3 { + right: 25%; + } + + .col-sm-pull-2 { + right: 16.66666667%; + } + + .col-sm-pull-1 { + right: 8.33333333%; + } + + .col-sm-pull-0 { + right: auto; + } + + .col-sm-push-12 { + left: 100%; + } + + .col-sm-push-11 { + left: 91.66666667%; + } + + .col-sm-push-10 { + left: 83.33333333%; + } + + .col-sm-push-9 { + left: 75%; + } + + .col-sm-push-8 { + left: 66.66666667%; + } + + .col-sm-push-7 { + left: 58.33333333%; + } + + .col-sm-push-6 { + left: 50%; + } + + .col-sm-push-5 { + left: 41.66666667%; + } + + .col-sm-push-4 { + left: 33.33333333%; + } + + .col-sm-push-3 { + left: 25%; + } + + .col-sm-push-2 { + left: 16.66666667%; + } + + .col-sm-push-1 { + left: 8.33333333%; + } + + .col-sm-push-0 { + left: auto; + } + + .col-sm-offset-12 { + margin-left: 100%; + } + + .col-sm-offset-11 { + margin-left: 91.66666667%; + } + + .col-sm-offset-10 { + margin-left: 83.33333333%; + } + + .col-sm-offset-9 { + margin-left: 75%; + } + + .col-sm-offset-8 { + margin-left: 66.66666667%; + } + + .col-sm-offset-7 { + margin-left: 58.33333333%; + } + + .col-sm-offset-6 { + margin-left: 50%; + } + + .col-sm-offset-5 { + margin-left: 41.66666667%; + } + + .col-sm-offset-4 { + margin-left: 33.33333333%; + } + + .col-sm-offset-3 { + margin-left: 25%; + } + + .col-sm-offset-2 { + margin-left: 16.66666667%; + } + + .col-sm-offset-1 { + margin-left: 8.33333333%; + } + + .col-sm-offset-0 { + margin-left: 0; + } +} + +@media (min-width: 992px) { + .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 { + float: left; + } + + .col-md-12 { + width: 100%; + } + + .col-md-11 { + width: 91.66666667%; + } + + .col-md-10 { + width: 83.33333333%; + } + + .col-md-9 { + width: 75%; + } + + .col-md-8 { + width: 66.66666667%; + } + + .col-md-7 { + width: 58.33333333%; + } + + .col-md-6 { + width: 50%; + } + + .col-md-5 { + width: 41.66666667%; + } + + .col-md-4 { + width: 33.33333333%; + } + + .col-md-3 { + width: 25%; + } + + .col-md-2 { + width: 16.66666667%; + } + + .col-md-1 { + width: 8.33333333%; + } + + .col-md-pull-12 { + right: 100%; + } + + .col-md-pull-11 { + right: 91.66666667%; + } + + .col-md-pull-10 { + right: 83.33333333%; + } + + .col-md-pull-9 { + right: 75%; + } + + .col-md-pull-8 { + right: 66.66666667%; + } + + .col-md-pull-7 { + right: 58.33333333%; + } + + .col-md-pull-6 { + right: 50%; + } + + .col-md-pull-5 { + right: 41.66666667%; + } + + .col-md-pull-4 { + right: 33.33333333%; + } + + .col-md-pull-3 { + right: 25%; + } + + .col-md-pull-2 { + right: 16.66666667%; + } + + .col-md-pull-1 { + right: 8.33333333%; + } + + .col-md-pull-0 { + right: auto; + } + + .col-md-push-12 { + left: 100%; + } + + .col-md-push-11 { + left: 91.66666667%; + } + + .col-md-push-10 { + left: 83.33333333%; + } + + .col-md-push-9 { + left: 75%; + } + + .col-md-push-8 { + left: 66.66666667%; + } + + .col-md-push-7 { + left: 58.33333333%; + } + + .col-md-push-6 { + left: 50%; + } + + .col-md-push-5 { + left: 41.66666667%; + } + + .col-md-push-4 { + left: 33.33333333%; + } + + .col-md-push-3 { + left: 25%; + } + + .col-md-push-2 { + left: 16.66666667%; + } + + .col-md-push-1 { + left: 8.33333333%; + } + + .col-md-push-0 { + left: auto; + } + + .col-md-offset-12 { + margin-left: 100%; + } + + .col-md-offset-11 { + margin-left: 91.66666667%; + } + + .col-md-offset-10 { + margin-left: 83.33333333%; + } + + .col-md-offset-9 { + margin-left: 75%; + } + + .col-md-offset-8 { + margin-left: 66.66666667%; + } + + .col-md-offset-7 { + margin-left: 58.33333333%; + } + + .col-md-offset-6 { + margin-left: 50%; + } + + .col-md-offset-5 { + margin-left: 41.66666667%; + } + + .col-md-offset-4 { + margin-left: 33.33333333%; + } + + .col-md-offset-3 { + margin-left: 25%; + } + + .col-md-offset-2 { + margin-left: 16.66666667%; + } + + .col-md-offset-1 { + margin-left: 8.33333333%; + } + + .col-md-offset-0 { + margin-left: 0; + } +} + +@media (min-width: 1200px) { + .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 { + float: left; + } + + .col-lg-12 { + width: 100%; + } + + .col-lg-11 { + width: 91.66666667%; + } + + .col-lg-10 { + width: 83.33333333%; + } + + .col-lg-9 { + width: 75%; + } + + .col-lg-8 { + width: 66.66666667%; + } + + .col-lg-7 { + width: 58.33333333%; + } + + .col-lg-6 { + width: 50%; + } + + .col-lg-5 { + width: 41.66666667%; + } + + .col-lg-4 { + width: 33.33333333%; + } + + .col-lg-3 { + width: 25%; + } + + .col-lg-2 { + width: 16.66666667%; + } + + .col-lg-1 { + width: 8.33333333%; + } + + .col-lg-pull-12 { + right: 100%; + } + + .col-lg-pull-11 { + right: 91.66666667%; + } + + .col-lg-pull-10 { + right: 83.33333333%; + } + + .col-lg-pull-9 { + right: 75%; + } + + .col-lg-pull-8 { + right: 66.66666667%; + } + + .col-lg-pull-7 { + right: 58.33333333%; + } + + .col-lg-pull-6 { + right: 50%; + } + + .col-lg-pull-5 { + right: 41.66666667%; + } + + .col-lg-pull-4 { + right: 33.33333333%; + } + + .col-lg-pull-3 { + right: 25%; + } + + .col-lg-pull-2 { + right: 16.66666667%; + } + + .col-lg-pull-1 { + right: 8.33333333%; + } + + .col-lg-pull-0 { + right: auto; + } + + .col-lg-push-12 { + left: 100%; + } + + .col-lg-push-11 { + left: 91.66666667%; + } + + .col-lg-push-10 { + left: 83.33333333%; + } + + .col-lg-push-9 { + left: 75%; + } + + .col-lg-push-8 { + left: 66.66666667%; + } + + .col-lg-push-7 { + left: 58.33333333%; + } + + .col-lg-push-6 { + left: 50%; + } + + .col-lg-push-5 { + left: 41.66666667%; + } + + .col-lg-push-4 { + left: 33.33333333%; + } + + .col-lg-push-3 { + left: 25%; + } + + .col-lg-push-2 { + left: 16.66666667%; + } + + .col-lg-push-1 { + left: 8.33333333%; + } + + .col-lg-push-0 { + left: auto; + } + + .col-lg-offset-12 { + margin-left: 100%; + } + + .col-lg-offset-11 { + margin-left: 91.66666667%; + } + + .col-lg-offset-10 { + margin-left: 83.33333333%; + } + + .col-lg-offset-9 { + margin-left: 75%; + } + + .col-lg-offset-8 { + margin-left: 66.66666667%; + } + + .col-lg-offset-7 { + margin-left: 58.33333333%; + } + + .col-lg-offset-6 { + margin-left: 50%; + } + + .col-lg-offset-5 { + margin-left: 41.66666667%; + } + + .col-lg-offset-4 { + margin-left: 33.33333333%; + } + + .col-lg-offset-3 { + margin-left: 25%; + } + + .col-lg-offset-2 { + margin-left: 16.66666667%; + } + + .col-lg-offset-1 { + margin-left: 8.33333333%; + } + + .col-lg-offset-0 { + margin-left: 0; + } +} + +table { + background-color: transparent; +} + +th { + text-align: left; +} + +.table { + width: 100%; + max-width: 100%; +} + +.table > thead > tr > th, .table > tbody > tr > th, .table > tfoot > tr > th, .table > thead > tr > td, .table > tbody > tr > td, .table > tfoot > tr > td { + padding: 12px 10px; + line-height: 1.42857143; + vertical-align: middle; +} + +.table > thead > tr > th { + padding: 16px 10px; + vertical-align: bottom; + border-bottom: 1px solid #edeff2; + color: #9da2a6; + /* font-size: 12px; */ + font-weight: bold; +} + +.table > caption + thead > tr:first-child > th, .table > colgroup + thead > tr:first-child > th, .table > thead:first-child > tr:first-child > th, .table > caption + thead > tr:first-child > td, .table > colgroup + thead > tr:first-child > td, .table > thead:first-child > tr:first-child > td { + border-top: 0; +} + +.table-striped > tbody > tr:nth-of-type(odd) { + background-color: #f9f9f9; +} + +.collapsed { + /* display: none; */ + height: 0; + overflow: hidden; +} + +.overflow { + overflow: hidden; +} + +.progress { + height: 25px; + overflow: hidden; + background-color: #f5f5f5; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1); +} + +.progress-bar { + float: left; + width: 0; + height: 100%; + font-size: 12px; + line-height: 20px; + color: #fff; + text-align: center; + background-color: #1e88e5; + -webkit-border-radius: 6px; + border-radius: 6px; + -webkit-transition: width .6s ease; + -o-transition: width .6s ease; + transition: width .6s ease; +} + +.progress-striped .progress-bar, .progress-bar-striped { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + -webkit-background-size: 40px 40px; + background-size: 40px 40px; +} + +.progress.active .progress-bar, .progress-bar.active { + -webkit-animation: progress-bar-stripes 2s linear infinite; + -o-animation: progress-bar-stripes 2s linear infinite; + animation: progress-bar-stripes 2s linear infinite; +} + +.progress-bar-success { + background-color: #5cb85c; +} + +.progress-striped .progress-bar-success { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); +} + +.progress-striped .progress-bar-warning { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); +} + +.progress-striped .progress-bar-danger { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); +} + +.panel { + position: relative; + display: block; + margin-bottom: 20px; + background-color: #fff; + box-shadow: 5px 5px 25px 0 rgba(46, 61, 73, .2); + border-radius: .375rem; + transition: all .3s ease; + -webkit-border-radius: .75rem; + text-align: left; +} + +.panel-block { + padding: 30px; +} + +.panel-body, .panel-block-sm { + padding: 24px; +} + +.clearfix:before, .clearfix:after, .dl-horizontal dd:before, .dl-horizontal dd:after, .container:before, .container:after, .container-fluid:before, .container-fluid:after, .row:before, .row:after, .form-horizontal .form-group:before, .form-horizontal .form-group:after, .btn-toolbar:before, .btn-toolbar:after, .btn-group-vertical > .btn-group:before, .btn-group-vertical > .btn-group:after, .nav:before, .nav:after, .navbar:before, .navbar:after, .navbar-header:before, .navbar-header:after, .navbar-collapse:before, .navbar-collapse:after, .pager:before, .pager:after, .panel-body:before, .panel-body:after, .modal-footer:before, .modal-footer:after { + display: table; + content: " "; +} + +.clearfix:after, .dl-horizontal dd:after, .container:after, .container-fluid:after, .row:after, .form-horizontal .form-group:after, .btn-toolbar:after, .btn-group-vertical > .btn-group:after, .nav:after, .navbar:after, .navbar-header:after, .navbar-collapse:after, .pager:after, .panel-body:after, .modal-footer:after { + clear: both; +} \ No newline at end of file diff --git a/resource/static/theme-hotaru/css/darkmode.css b/resource/static/theme-hotaru/css/darkmode.css new file mode 100644 index 0000000..7c01654 --- /dev/null +++ b/resource/static/theme-hotaru/css/darkmode.css @@ -0,0 +1,47 @@ +/* Dark mode */ + +#darkmodeButton { + background-color: black; + width: 3rem; + height: 3rem; + position: fixed; + bottom: 2rem; + right: 0.5rem; + z-index: 9999; + border-radius: 50%; + outline: 0; +} + +body.dark #darkmodeButton { + background-color: white; +} + +body.dark { + background: #263236; + color: #aaa; +} + +body.dark table.table-striped tr.even { + background-color: #212f36; +} + +body.dark table.table-striped tr.odd { + background-color: #2f3c42; +} + +body.dark tr.expandRow { + background-color: #263238 !important; +} + +body.dark .panel { + background-color: #384d58; + color: #aaa; +} + +body.dark .panel h3, body.dark .panel span { + color: #aaa; +} + +body.dark .page-section { + border-bottom: 1px solid #212f36; +} \ No newline at end of file diff --git a/resource/static/theme-hotaru/css/main.css b/resource/static/theme-hotaru/css/main.css new file mode 100644 index 0000000..4fc87af --- /dev/null +++ b/resource/static/theme-hotaru/css/main.css @@ -0,0 +1,312 @@ +body { + margin: 0; + color: #616366; + background: url(../img/bg_parts.png) repeat-y left top, url(../img/bg.png) repeat left top; +} + +a { + -webkit-transition: all ease-in .15s; + -moz-transition: all ease-in .15s; + -ms-transition: all ease-in .15s; + -o-transition: all ease-in .15s; + transition: all ease-in .15s; +} + +th { + padding: 0; + text-align: center; +} + +table { + border-spacing: 0; + border-collapse: collapse; +} + +@media (max-width: 991px) { + .container { + padding-left: 24px; + padding-right: 24px; + } +} + +@media (max-width: 767px) { + .container { + padding-left: 20px; + padding-right: 20px; + } +} + +.page-section { + padding-top: 48px; + padding-bottom: 55px; + border-bottom: 1px solid #edeff2; +} + +@media (max-width: 991px) { + .page-section { + padding-top: 25px; + padding-bottom: 35px; + } +} + +.location-header { + padding: 0 0 20px 0; +} + +.location-header .h4 { + margin: 0; +} + +.location-header .h4 small { + display: block; + padding: 3px 0 0 0; + color: #919699; + font-size: 12px; + font-weight: 300; + text-transform: none; +} + +.location-info { + margin: 0 0 -5px 0; + font-size: 14px; + opacity: 1; + visibility: visible; + -webkit-transform: translateX(0) translateY(0); + transform: translateX(0) translateY(0); + -webkit-transition: all ease-in .25s, transform .6s cubic-bezier(0.165, 0.84, 0.44, 1); + -moz-transition: all ease-in .25s, transform .6s cubic-bezier(0.165, 0.84, 0.44, 1); + transition: all ease-in .25s, transform .6s cubic-bezier(0.165, 0.84, 0.44, 1); +} + +.location-info>li { + margin: 0; +} + +.location-header>i { + position: absolute; + top: 20px; + right: 20px; + font-size: 24px; +} + +.location-progress .progress { + margin: 0 0 15px 0; +} + +.progress { + background-color: #d5dade; + -webkit-box-shadow: none; + box-shadow: none; +} + +.progress-bar { + background: linear-gradient(to right, #44ce78 0%, #43ce9f 100%) !important; +} + +.progress-bar-danger { + background: #d9534f !important; +} + +.progress-bar-warning { + background: #f0ad4e !important; +} + +.progress-sm { + height: 5px; +} + +.table { + /* font-size: 0.9rem; */ + font-weight: 800; +} + +.table>thead>tr>th:first-child { + padding-left: 5px; +} + +.table>thead>tr>th:last-child { + padding-right: 5px; +} + +.hotaru-cover p, +h1 { + color: white; + font-weight: bolder; +} + + +@media only screen and (min-width: 992px) { + .hotaru-cover { + background: url(../img/tenshi_l.png) center no-repeat; + background-size: 100%; + } +} + +@media only screen and (max-width: 992px) { + + #location, + tr td:nth-child(4) { + display: none; + visibility: hidden; + } + + .hotaru-cover { + background: url(../img/tenshi_l.png) center no-repeat; + background-size: 100%; + } +} + +@media only screen and (max-width: 720px) { + + #type, + tr td:nth-child(3) { + display: none; + visibility: hidden; + } + + #location, + tr td:nth-child(4) { + display: none; + visibility: hidden; + } + + #uptime, + tr td:nth-child(5) { + display: none; + visibility: hidden; + } + + .hotaru-cover { + background: url(../img/tenshi.png) no-repeat; + background-size: 100%; + } +} + +@media only screen and (max-width: 600px) { + + #type, + tr td:nth-child(3) { + display: none; + visibility: hidden; + } + + #location, + tr td:nth-child(4) { + display: none; + visibility: hidden; + } + + #uptime, + tr td:nth-child(5) { + display: none; + visibility: hidden; + } + + #load, + tr td:nth-child(6) { + display: none; + visibility: hidden; + } + + .hotaru-cover { + background: url(../img/tenshi.png) no-repeat; + background-size: 100%; + } +} + +@media only screen and (max-width: 533px) { + + #type, + tr td:nth-child(3) { + display: none; + visibility: hidden; + } + + #location, + tr td:nth-child(4) { + display: none; + visibility: hidden; + } + + #uptime, + tr td:nth-child(5) { + display: none; + visibility: hidden; + } + + #traffic, + tr td:nth-child(8) { + display: none; + visibility: hidden; + } + + #load, + tr td:nth-child(6) { + display: none; + visibility: hidden; + } + + .hotaru-cover { + background: url(../img/tenshi.png) no-repeat; + background-size: 100%; + } + + @media only screen and (max-width: 450px) { + body { + font-size: 10px; + } + + .content { + padding: 0; + } + + #name, + tr td:nth-child(2) { + min-width: 20px; + max-width: 60px; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; + } + + #type, + tr td:nth-child(3) { + display: none; + visibility: hidden; + } + + #location, + tr td:nth-child(4) { + display: none; + visibility: hidden; + } + + #uptime, + tr td:nth-child(5) { + display: none; + visibility: hidden; + } + + #traffic, + tr td:nth-child(8) { + display: none; + visibility: hidden; + } + + #hdd, + tr td:nth-child(11) { + display: none; + visibility: hidden; + } + + #cpu, + #ram { + min-width: 20px; + max-width: 40px; + } + + .hotaru-cover { + background: url(../img/tenshi.png) no-repeat; + background-size: 100%; + } + } \ No newline at end of file diff --git a/resource/static/theme-hotaru/img/bg.png b/resource/static/theme-hotaru/img/bg.png new file mode 100644 index 0000000..cadc42a Binary files /dev/null and b/resource/static/theme-hotaru/img/bg.png differ diff --git a/resource/static/theme-hotaru/img/bg_parts.png b/resource/static/theme-hotaru/img/bg_parts.png new file mode 100644 index 0000000..02ef231 Binary files /dev/null and b/resource/static/theme-hotaru/img/bg_parts.png differ diff --git a/resource/static/theme-hotaru/img/clients/AD.png b/resource/static/theme-hotaru/img/clients/AD.png new file mode 100644 index 0000000..ba0ff72 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/AD.png differ diff --git a/resource/static/theme-hotaru/img/clients/AE.png b/resource/static/theme-hotaru/img/clients/AE.png new file mode 100644 index 0000000..faf5cfc Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/AE.png differ diff --git a/resource/static/theme-hotaru/img/clients/AF.png b/resource/static/theme-hotaru/img/clients/AF.png new file mode 100644 index 0000000..df8ad28 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/AF.png differ diff --git a/resource/static/theme-hotaru/img/clients/AG.png b/resource/static/theme-hotaru/img/clients/AG.png new file mode 100644 index 0000000..70cddc3 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/AG.png differ diff --git a/resource/static/theme-hotaru/img/clients/AL.png b/resource/static/theme-hotaru/img/clients/AL.png new file mode 100644 index 0000000..79b6748 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/AL.png differ diff --git a/resource/static/theme-hotaru/img/clients/AM.png b/resource/static/theme-hotaru/img/clients/AM.png new file mode 100644 index 0000000..71a7b8a Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/AM.png differ diff --git a/resource/static/theme-hotaru/img/clients/AR.png b/resource/static/theme-hotaru/img/clients/AR.png new file mode 100644 index 0000000..a5a1547 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/AR.png differ diff --git a/resource/static/theme-hotaru/img/clients/AT.png b/resource/static/theme-hotaru/img/clients/AT.png new file mode 100644 index 0000000..ff27251 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/AT.png differ diff --git a/resource/static/theme-hotaru/img/clients/AU.png b/resource/static/theme-hotaru/img/clients/AU.png new file mode 100644 index 0000000..505e172 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/AU.png differ diff --git a/resource/static/theme-hotaru/img/clients/AZ.png b/resource/static/theme-hotaru/img/clients/AZ.png new file mode 100644 index 0000000..2b2852f Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/AZ.png differ diff --git a/resource/static/theme-hotaru/img/clients/BA.png b/resource/static/theme-hotaru/img/clients/BA.png new file mode 100644 index 0000000..1e1a263 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/BA.png differ diff --git a/resource/static/theme-hotaru/img/clients/BB.png b/resource/static/theme-hotaru/img/clients/BB.png new file mode 100644 index 0000000..ef5ec6f Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/BB.png differ diff --git a/resource/static/theme-hotaru/img/clients/BD.png b/resource/static/theme-hotaru/img/clients/BD.png new file mode 100644 index 0000000..0844236 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/BD.png differ diff --git a/resource/static/theme-hotaru/img/clients/BE.png b/resource/static/theme-hotaru/img/clients/BE.png new file mode 100644 index 0000000..9d9367d Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/BE.png differ diff --git a/resource/static/theme-hotaru/img/clients/BF.png b/resource/static/theme-hotaru/img/clients/BF.png new file mode 100644 index 0000000..206ae58 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/BF.png differ diff --git a/resource/static/theme-hotaru/img/clients/BG.png b/resource/static/theme-hotaru/img/clients/BG.png new file mode 100644 index 0000000..a5ce9e3 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/BG.png differ diff --git a/resource/static/theme-hotaru/img/clients/BH.png b/resource/static/theme-hotaru/img/clients/BH.png new file mode 100644 index 0000000..c47a0d8 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/BH.png differ diff --git a/resource/static/theme-hotaru/img/clients/BI.png b/resource/static/theme-hotaru/img/clients/BI.png new file mode 100644 index 0000000..e9bc3c8 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/BI.png differ diff --git a/resource/static/theme-hotaru/img/clients/BJ.png b/resource/static/theme-hotaru/img/clients/BJ.png new file mode 100644 index 0000000..62e0f74 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/BJ.png differ diff --git a/resource/static/theme-hotaru/img/clients/BN.png b/resource/static/theme-hotaru/img/clients/BN.png new file mode 100644 index 0000000..a83ee0d Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/BN.png differ diff --git a/resource/static/theme-hotaru/img/clients/BO.png b/resource/static/theme-hotaru/img/clients/BO.png new file mode 100644 index 0000000..bb42629 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/BO.png differ diff --git a/resource/static/theme-hotaru/img/clients/BR.png b/resource/static/theme-hotaru/img/clients/BR.png new file mode 100644 index 0000000..6d59968 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/BR.png differ diff --git a/resource/static/theme-hotaru/img/clients/BS.png b/resource/static/theme-hotaru/img/clients/BS.png new file mode 100644 index 0000000..c8a276a Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/BS.png differ diff --git a/resource/static/theme-hotaru/img/clients/BT.png b/resource/static/theme-hotaru/img/clients/BT.png new file mode 100644 index 0000000..c1aa18b Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/BT.png differ diff --git a/resource/static/theme-hotaru/img/clients/BW.png b/resource/static/theme-hotaru/img/clients/BW.png new file mode 100644 index 0000000..522d80e Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/BW.png differ diff --git a/resource/static/theme-hotaru/img/clients/BY.png b/resource/static/theme-hotaru/img/clients/BY.png new file mode 100644 index 0000000..69ccb7e Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/BY.png differ diff --git a/resource/static/theme-hotaru/img/clients/BZ.png b/resource/static/theme-hotaru/img/clients/BZ.png new file mode 100644 index 0000000..63c6b33 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/BZ.png differ diff --git a/resource/static/theme-hotaru/img/clients/CA.png b/resource/static/theme-hotaru/img/clients/CA.png new file mode 100644 index 0000000..516b098 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/CA.png differ diff --git a/resource/static/theme-hotaru/img/clients/CD.png b/resource/static/theme-hotaru/img/clients/CD.png new file mode 100644 index 0000000..c65361a Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/CD.png differ diff --git a/resource/static/theme-hotaru/img/clients/CF.png b/resource/static/theme-hotaru/img/clients/CF.png new file mode 100644 index 0000000..7d628dc Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/CF.png differ diff --git a/resource/static/theme-hotaru/img/clients/CG.png b/resource/static/theme-hotaru/img/clients/CG.png new file mode 100644 index 0000000..a1d8c6d Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/CG.png differ diff --git a/resource/static/theme-hotaru/img/clients/CH.png b/resource/static/theme-hotaru/img/clients/CH.png new file mode 100644 index 0000000..1d532ab Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/CH.png differ diff --git a/resource/static/theme-hotaru/img/clients/CI.png b/resource/static/theme-hotaru/img/clients/CI.png new file mode 100644 index 0000000..a0ba7ea Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/CI.png differ diff --git a/resource/static/theme-hotaru/img/clients/CL.png b/resource/static/theme-hotaru/img/clients/CL.png new file mode 100644 index 0000000..e16e07a Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/CL.png differ diff --git a/resource/static/theme-hotaru/img/clients/CM.png b/resource/static/theme-hotaru/img/clients/CM.png new file mode 100644 index 0000000..e7dca5a Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/CM.png differ diff --git a/resource/static/theme-hotaru/img/clients/CN.png b/resource/static/theme-hotaru/img/clients/CN.png new file mode 100644 index 0000000..b9b81fd Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/CN.png differ diff --git a/resource/static/theme-hotaru/img/clients/CO.png b/resource/static/theme-hotaru/img/clients/CO.png new file mode 100644 index 0000000..e70094b Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/CO.png differ diff --git a/resource/static/theme-hotaru/img/clients/CR.png b/resource/static/theme-hotaru/img/clients/CR.png new file mode 100644 index 0000000..59bee04 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/CR.png differ diff --git a/resource/static/theme-hotaru/img/clients/CU.png b/resource/static/theme-hotaru/img/clients/CU.png new file mode 100644 index 0000000..c69fc96 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/CU.png differ diff --git a/resource/static/theme-hotaru/img/clients/CV.png b/resource/static/theme-hotaru/img/clients/CV.png new file mode 100644 index 0000000..e42814e Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/CV.png differ diff --git a/resource/static/theme-hotaru/img/clients/CY.png b/resource/static/theme-hotaru/img/clients/CY.png new file mode 100644 index 0000000..2ae4edd Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/CY.png differ diff --git a/resource/static/theme-hotaru/img/clients/CZ.png b/resource/static/theme-hotaru/img/clients/CZ.png new file mode 100644 index 0000000..a063a99 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/CZ.png differ diff --git a/resource/static/theme-hotaru/img/clients/DE.png b/resource/static/theme-hotaru/img/clients/DE.png new file mode 100644 index 0000000..ea10600 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/DE.png differ diff --git a/resource/static/theme-hotaru/img/clients/DJ.png b/resource/static/theme-hotaru/img/clients/DJ.png new file mode 100644 index 0000000..a80ab34 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/DJ.png differ diff --git a/resource/static/theme-hotaru/img/clients/DK.png b/resource/static/theme-hotaru/img/clients/DK.png new file mode 100644 index 0000000..6342203 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/DK.png differ diff --git a/resource/static/theme-hotaru/img/clients/DM.png b/resource/static/theme-hotaru/img/clients/DM.png new file mode 100644 index 0000000..cd66ffc Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/DM.png differ diff --git a/resource/static/theme-hotaru/img/clients/DO.png b/resource/static/theme-hotaru/img/clients/DO.png new file mode 100644 index 0000000..c760526 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/DO.png differ diff --git a/resource/static/theme-hotaru/img/clients/DZ.png b/resource/static/theme-hotaru/img/clients/DZ.png new file mode 100644 index 0000000..4eb2ccf Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/DZ.png differ diff --git a/resource/static/theme-hotaru/img/clients/EC.png b/resource/static/theme-hotaru/img/clients/EC.png new file mode 100644 index 0000000..5d49824 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/EC.png differ diff --git a/resource/static/theme-hotaru/img/clients/EE.png b/resource/static/theme-hotaru/img/clients/EE.png new file mode 100644 index 0000000..699f54f Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/EE.png differ diff --git a/resource/static/theme-hotaru/img/clients/EG.png b/resource/static/theme-hotaru/img/clients/EG.png new file mode 100644 index 0000000..7869f1a Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/EG.png differ diff --git a/resource/static/theme-hotaru/img/clients/ER.png b/resource/static/theme-hotaru/img/clients/ER.png new file mode 100644 index 0000000..16c36ae Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/ER.png differ diff --git a/resource/static/theme-hotaru/img/clients/ES.png b/resource/static/theme-hotaru/img/clients/ES.png new file mode 100644 index 0000000..1b66afa Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/ES.png differ diff --git a/resource/static/theme-hotaru/img/clients/ET.png b/resource/static/theme-hotaru/img/clients/ET.png new file mode 100644 index 0000000..043a36f Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/ET.png differ diff --git a/resource/static/theme-hotaru/img/clients/FI.png b/resource/static/theme-hotaru/img/clients/FI.png new file mode 100644 index 0000000..c184e69 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/FI.png differ diff --git a/resource/static/theme-hotaru/img/clients/FJ.png b/resource/static/theme-hotaru/img/clients/FJ.png new file mode 100644 index 0000000..0a35931 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/FJ.png differ diff --git a/resource/static/theme-hotaru/img/clients/FM.png b/resource/static/theme-hotaru/img/clients/FM.png new file mode 100644 index 0000000..c34c0e3 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/FM.png differ diff --git a/resource/static/theme-hotaru/img/clients/FR.png b/resource/static/theme-hotaru/img/clients/FR.png new file mode 100644 index 0000000..208d373 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/FR.png differ diff --git a/resource/static/theme-hotaru/img/clients/GA.png b/resource/static/theme-hotaru/img/clients/GA.png new file mode 100644 index 0000000..f2072de Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/GA.png differ diff --git a/resource/static/theme-hotaru/img/clients/GB.png b/resource/static/theme-hotaru/img/clients/GB.png new file mode 100644 index 0000000..ba1a60c Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/GB.png differ diff --git a/resource/static/theme-hotaru/img/clients/GD.png b/resource/static/theme-hotaru/img/clients/GD.png new file mode 100644 index 0000000..c0d9857 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/GD.png differ diff --git a/resource/static/theme-hotaru/img/clients/GE.png b/resource/static/theme-hotaru/img/clients/GE.png new file mode 100644 index 0000000..a44c6d7 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/GE.png differ diff --git a/resource/static/theme-hotaru/img/clients/GH.png b/resource/static/theme-hotaru/img/clients/GH.png new file mode 100644 index 0000000..04c845b Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/GH.png differ diff --git a/resource/static/theme-hotaru/img/clients/GM.png b/resource/static/theme-hotaru/img/clients/GM.png new file mode 100644 index 0000000..9149b23 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/GM.png differ diff --git a/resource/static/theme-hotaru/img/clients/GQ.png b/resource/static/theme-hotaru/img/clients/GQ.png new file mode 100644 index 0000000..de3e4b7 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/GQ.png differ diff --git a/resource/static/theme-hotaru/img/clients/GR.png b/resource/static/theme-hotaru/img/clients/GR.png new file mode 100644 index 0000000..f31d5b6 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/GR.png differ diff --git a/resource/static/theme-hotaru/img/clients/GT.png b/resource/static/theme-hotaru/img/clients/GT.png new file mode 100644 index 0000000..a9d89ae Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/GT.png differ diff --git a/resource/static/theme-hotaru/img/clients/GW.png b/resource/static/theme-hotaru/img/clients/GW.png new file mode 100644 index 0000000..0bd42f8 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/GW.png differ diff --git a/resource/static/theme-hotaru/img/clients/GY.png b/resource/static/theme-hotaru/img/clients/GY.png new file mode 100644 index 0000000..a5d1297 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/GY.png differ diff --git a/resource/static/theme-hotaru/img/clients/HK.png b/resource/static/theme-hotaru/img/clients/HK.png new file mode 100644 index 0000000..4ebc9f1 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/HK.png differ diff --git a/resource/static/theme-hotaru/img/clients/HN.png b/resource/static/theme-hotaru/img/clients/HN.png new file mode 100644 index 0000000..05b70fc Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/HN.png differ diff --git a/resource/static/theme-hotaru/img/clients/HR.png b/resource/static/theme-hotaru/img/clients/HR.png new file mode 100644 index 0000000..b9f49bc Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/HR.png differ diff --git a/resource/static/theme-hotaru/img/clients/HT.png b/resource/static/theme-hotaru/img/clients/HT.png new file mode 100644 index 0000000..77cc152 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/HT.png differ diff --git a/resource/static/theme-hotaru/img/clients/HU.png b/resource/static/theme-hotaru/img/clients/HU.png new file mode 100644 index 0000000..33ca92f Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/HU.png differ diff --git a/resource/static/theme-hotaru/img/clients/ID.png b/resource/static/theme-hotaru/img/clients/ID.png new file mode 100644 index 0000000..1f6e9f4 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/ID.png differ diff --git a/resource/static/theme-hotaru/img/clients/IE.png b/resource/static/theme-hotaru/img/clients/IE.png new file mode 100644 index 0000000..6959ed0 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/IE.png differ diff --git a/resource/static/theme-hotaru/img/clients/IL.png b/resource/static/theme-hotaru/img/clients/IL.png new file mode 100644 index 0000000..b9dff6d Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/IL.png differ diff --git a/resource/static/theme-hotaru/img/clients/IN.png b/resource/static/theme-hotaru/img/clients/IN.png new file mode 100644 index 0000000..082b89c Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/IN.png differ diff --git a/resource/static/theme-hotaru/img/clients/IQ.png b/resource/static/theme-hotaru/img/clients/IQ.png new file mode 100644 index 0000000..8f2446f Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/IQ.png differ diff --git a/resource/static/theme-hotaru/img/clients/IR.png b/resource/static/theme-hotaru/img/clients/IR.png new file mode 100644 index 0000000..90cacfa Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/IR.png differ diff --git a/resource/static/theme-hotaru/img/clients/IS.png b/resource/static/theme-hotaru/img/clients/IS.png new file mode 100644 index 0000000..2a1049a Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/IS.png differ diff --git a/resource/static/theme-hotaru/img/clients/IT.png b/resource/static/theme-hotaru/img/clients/IT.png new file mode 100644 index 0000000..231d70f Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/IT.png differ diff --git a/resource/static/theme-hotaru/img/clients/JM.png b/resource/static/theme-hotaru/img/clients/JM.png new file mode 100644 index 0000000..2fa7747 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/JM.png differ diff --git a/resource/static/theme-hotaru/img/clients/JO.png b/resource/static/theme-hotaru/img/clients/JO.png new file mode 100644 index 0000000..ff14c3e Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/JO.png differ diff --git a/resource/static/theme-hotaru/img/clients/JP.png b/resource/static/theme-hotaru/img/clients/JP.png new file mode 100644 index 0000000..d42cd46 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/JP.png differ diff --git a/resource/static/theme-hotaru/img/clients/KE.png b/resource/static/theme-hotaru/img/clients/KE.png new file mode 100644 index 0000000..fef3014 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/KE.png differ diff --git a/resource/static/theme-hotaru/img/clients/KG.png b/resource/static/theme-hotaru/img/clients/KG.png new file mode 100644 index 0000000..1ee95ca Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/KG.png differ diff --git a/resource/static/theme-hotaru/img/clients/KH.png b/resource/static/theme-hotaru/img/clients/KH.png new file mode 100644 index 0000000..30c0f18 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/KH.png differ diff --git a/resource/static/theme-hotaru/img/clients/KI.png b/resource/static/theme-hotaru/img/clients/KI.png new file mode 100644 index 0000000..215faac Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/KI.png differ diff --git a/resource/static/theme-hotaru/img/clients/KM.png b/resource/static/theme-hotaru/img/clients/KM.png new file mode 100644 index 0000000..0dc9b3e Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/KM.png differ diff --git a/resource/static/theme-hotaru/img/clients/KN.png b/resource/static/theme-hotaru/img/clients/KN.png new file mode 100644 index 0000000..0d4e7c5 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/KN.png differ diff --git a/resource/static/theme-hotaru/img/clients/KP.png b/resource/static/theme-hotaru/img/clients/KP.png new file mode 100644 index 0000000..3bdcb23 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/KP.png differ diff --git a/resource/static/theme-hotaru/img/clients/KR.png b/resource/static/theme-hotaru/img/clients/KR.png new file mode 100644 index 0000000..72c4672 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/KR.png differ diff --git a/resource/static/theme-hotaru/img/clients/KW.png b/resource/static/theme-hotaru/img/clients/KW.png new file mode 100644 index 0000000..3d1fbd1 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/KW.png differ diff --git a/resource/static/theme-hotaru/img/clients/KZ.png b/resource/static/theme-hotaru/img/clients/KZ.png new file mode 100644 index 0000000..30ec7d4 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/KZ.png differ diff --git a/resource/static/theme-hotaru/img/clients/LA.png b/resource/static/theme-hotaru/img/clients/LA.png new file mode 100644 index 0000000..7a825a3 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/LA.png differ diff --git a/resource/static/theme-hotaru/img/clients/LB.png b/resource/static/theme-hotaru/img/clients/LB.png new file mode 100644 index 0000000..03c84b0 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/LB.png differ diff --git a/resource/static/theme-hotaru/img/clients/LC.png b/resource/static/theme-hotaru/img/clients/LC.png new file mode 100644 index 0000000..8f5124b Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/LC.png differ diff --git a/resource/static/theme-hotaru/img/clients/LI.png b/resource/static/theme-hotaru/img/clients/LI.png new file mode 100644 index 0000000..c1247de Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/LI.png differ diff --git a/resource/static/theme-hotaru/img/clients/LK.png b/resource/static/theme-hotaru/img/clients/LK.png new file mode 100644 index 0000000..c56d1d6 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/LK.png differ diff --git a/resource/static/theme-hotaru/img/clients/LR.png b/resource/static/theme-hotaru/img/clients/LR.png new file mode 100644 index 0000000..30091bf Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/LR.png differ diff --git a/resource/static/theme-hotaru/img/clients/LS.png b/resource/static/theme-hotaru/img/clients/LS.png new file mode 100644 index 0000000..bd1ace1 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/LS.png differ diff --git a/resource/static/theme-hotaru/img/clients/LT.png b/resource/static/theme-hotaru/img/clients/LT.png new file mode 100644 index 0000000..5567ed4 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/LT.png differ diff --git a/resource/static/theme-hotaru/img/clients/LU.png b/resource/static/theme-hotaru/img/clients/LU.png new file mode 100644 index 0000000..8dadf24 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/LU.png differ diff --git a/resource/static/theme-hotaru/img/clients/LV.png b/resource/static/theme-hotaru/img/clients/LV.png new file mode 100644 index 0000000..3d69f18 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/LV.png differ diff --git a/resource/static/theme-hotaru/img/clients/LY.png b/resource/static/theme-hotaru/img/clients/LY.png new file mode 100644 index 0000000..a188e03 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/LY.png differ diff --git a/resource/static/theme-hotaru/img/clients/MA.png b/resource/static/theme-hotaru/img/clients/MA.png new file mode 100644 index 0000000..6f419d9 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/MA.png differ diff --git a/resource/static/theme-hotaru/img/clients/MC.png b/resource/static/theme-hotaru/img/clients/MC.png new file mode 100644 index 0000000..1f6e9f4 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/MC.png differ diff --git a/resource/static/theme-hotaru/img/clients/MD.png b/resource/static/theme-hotaru/img/clients/MD.png new file mode 100644 index 0000000..14b6841 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/MD.png differ diff --git a/resource/static/theme-hotaru/img/clients/ME.png b/resource/static/theme-hotaru/img/clients/ME.png new file mode 100644 index 0000000..c07ce6a Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/ME.png differ diff --git a/resource/static/theme-hotaru/img/clients/MG.png b/resource/static/theme-hotaru/img/clients/MG.png new file mode 100644 index 0000000..37401a2 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/MG.png differ diff --git a/resource/static/theme-hotaru/img/clients/MH.png b/resource/static/theme-hotaru/img/clients/MH.png new file mode 100644 index 0000000..582c8c3 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/MH.png differ diff --git a/resource/static/theme-hotaru/img/clients/MK.png b/resource/static/theme-hotaru/img/clients/MK.png new file mode 100644 index 0000000..ba121e3 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/MK.png differ diff --git a/resource/static/theme-hotaru/img/clients/ML.png b/resource/static/theme-hotaru/img/clients/ML.png new file mode 100644 index 0000000..138e915 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/ML.png differ diff --git a/resource/static/theme-hotaru/img/clients/MM.png b/resource/static/theme-hotaru/img/clients/MM.png new file mode 100644 index 0000000..8c29421 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/MM.png differ diff --git a/resource/static/theme-hotaru/img/clients/MN.png b/resource/static/theme-hotaru/img/clients/MN.png new file mode 100644 index 0000000..4f68961 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/MN.png differ diff --git a/resource/static/theme-hotaru/img/clients/MR.png b/resource/static/theme-hotaru/img/clients/MR.png new file mode 100644 index 0000000..8fb4cf4 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/MR.png differ diff --git a/resource/static/theme-hotaru/img/clients/MT.png b/resource/static/theme-hotaru/img/clients/MT.png new file mode 100644 index 0000000..f761ed5 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/MT.png differ diff --git a/resource/static/theme-hotaru/img/clients/MU.png b/resource/static/theme-hotaru/img/clients/MU.png new file mode 100644 index 0000000..37216c6 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/MU.png differ diff --git a/resource/static/theme-hotaru/img/clients/MV.png b/resource/static/theme-hotaru/img/clients/MV.png new file mode 100644 index 0000000..f6cb90c Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/MV.png differ diff --git a/resource/static/theme-hotaru/img/clients/MW.png b/resource/static/theme-hotaru/img/clients/MW.png new file mode 100644 index 0000000..a7d1adb Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/MW.png differ diff --git a/resource/static/theme-hotaru/img/clients/MX.png b/resource/static/theme-hotaru/img/clients/MX.png new file mode 100644 index 0000000..ab62e1d Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/MX.png differ diff --git a/resource/static/theme-hotaru/img/clients/MY.png b/resource/static/theme-hotaru/img/clients/MY.png new file mode 100644 index 0000000..005989e Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/MY.png differ diff --git a/resource/static/theme-hotaru/img/clients/MZ.png b/resource/static/theme-hotaru/img/clients/MZ.png new file mode 100644 index 0000000..5f6703f Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/MZ.png differ diff --git a/resource/static/theme-hotaru/img/clients/NA.png b/resource/static/theme-hotaru/img/clients/NA.png new file mode 100644 index 0000000..5ff3e15 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/NA.png differ diff --git a/resource/static/theme-hotaru/img/clients/NE.png b/resource/static/theme-hotaru/img/clients/NE.png new file mode 100644 index 0000000..c98cd12 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/NE.png differ diff --git a/resource/static/theme-hotaru/img/clients/NG.png b/resource/static/theme-hotaru/img/clients/NG.png new file mode 100644 index 0000000..bb96450 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/NG.png differ diff --git a/resource/static/theme-hotaru/img/clients/NI.png b/resource/static/theme-hotaru/img/clients/NI.png new file mode 100644 index 0000000..f19be4b Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/NI.png differ diff --git a/resource/static/theme-hotaru/img/clients/NL.png b/resource/static/theme-hotaru/img/clients/NL.png new file mode 100644 index 0000000..a196579 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/NL.png differ diff --git a/resource/static/theme-hotaru/img/clients/NO.png b/resource/static/theme-hotaru/img/clients/NO.png new file mode 100644 index 0000000..c9a865b Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/NO.png differ diff --git a/resource/static/theme-hotaru/img/clients/NP.png b/resource/static/theme-hotaru/img/clients/NP.png new file mode 100644 index 0000000..96a3d02 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/NP.png differ diff --git a/resource/static/theme-hotaru/img/clients/NR.png b/resource/static/theme-hotaru/img/clients/NR.png new file mode 100644 index 0000000..b685f67 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/NR.png differ diff --git a/resource/static/theme-hotaru/img/clients/NZ.png b/resource/static/theme-hotaru/img/clients/NZ.png new file mode 100644 index 0000000..8f4ce39 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/NZ.png differ diff --git a/resource/static/theme-hotaru/img/clients/OM.png b/resource/static/theme-hotaru/img/clients/OM.png new file mode 100644 index 0000000..1045e3b Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/OM.png differ diff --git a/resource/static/theme-hotaru/img/clients/PA.png b/resource/static/theme-hotaru/img/clients/PA.png new file mode 100644 index 0000000..3656ab7 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/PA.png differ diff --git a/resource/static/theme-hotaru/img/clients/PE.png b/resource/static/theme-hotaru/img/clients/PE.png new file mode 100644 index 0000000..b811472 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/PE.png differ diff --git a/resource/static/theme-hotaru/img/clients/PG.png b/resource/static/theme-hotaru/img/clients/PG.png new file mode 100644 index 0000000..d18ab0e Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/PG.png differ diff --git a/resource/static/theme-hotaru/img/clients/PH.png b/resource/static/theme-hotaru/img/clients/PH.png new file mode 100644 index 0000000..1b0c075 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/PH.png differ diff --git a/resource/static/theme-hotaru/img/clients/PK.png b/resource/static/theme-hotaru/img/clients/PK.png new file mode 100644 index 0000000..34e9bd2 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/PK.png differ diff --git a/resource/static/theme-hotaru/img/clients/PL.png b/resource/static/theme-hotaru/img/clients/PL.png new file mode 100644 index 0000000..6409441 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/PL.png differ diff --git a/resource/static/theme-hotaru/img/clients/PT.png b/resource/static/theme-hotaru/img/clients/PT.png new file mode 100644 index 0000000..8a0ed4e Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/PT.png differ diff --git a/resource/static/theme-hotaru/img/clients/PW.png b/resource/static/theme-hotaru/img/clients/PW.png new file mode 100644 index 0000000..b19498e Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/PW.png differ diff --git a/resource/static/theme-hotaru/img/clients/PY.png b/resource/static/theme-hotaru/img/clients/PY.png new file mode 100644 index 0000000..a466fd2 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/PY.png differ diff --git a/resource/static/theme-hotaru/img/clients/QA.png b/resource/static/theme-hotaru/img/clients/QA.png new file mode 100644 index 0000000..af028ee Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/QA.png differ diff --git a/resource/static/theme-hotaru/img/clients/RO.png b/resource/static/theme-hotaru/img/clients/RO.png new file mode 100644 index 0000000..e6ff152 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/RO.png differ diff --git a/resource/static/theme-hotaru/img/clients/RS.png b/resource/static/theme-hotaru/img/clients/RS.png new file mode 100644 index 0000000..07f9680 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/RS.png differ diff --git a/resource/static/theme-hotaru/img/clients/RU.png b/resource/static/theme-hotaru/img/clients/RU.png new file mode 100644 index 0000000..8c2fc39 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/RU.png differ diff --git a/resource/static/theme-hotaru/img/clients/RW.png b/resource/static/theme-hotaru/img/clients/RW.png new file mode 100644 index 0000000..442095c Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/RW.png differ diff --git a/resource/static/theme-hotaru/img/clients/SA.png b/resource/static/theme-hotaru/img/clients/SA.png new file mode 100644 index 0000000..a2cad5a Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/SA.png differ diff --git a/resource/static/theme-hotaru/img/clients/SB.png b/resource/static/theme-hotaru/img/clients/SB.png new file mode 100644 index 0000000..7ab682d Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/SB.png differ diff --git a/resource/static/theme-hotaru/img/clients/SC.png b/resource/static/theme-hotaru/img/clients/SC.png new file mode 100644 index 0000000..d6ebb6a Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/SC.png differ diff --git a/resource/static/theme-hotaru/img/clients/SD.png b/resource/static/theme-hotaru/img/clients/SD.png new file mode 100644 index 0000000..f49be86 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/SD.png differ diff --git a/resource/static/theme-hotaru/img/clients/SE.png b/resource/static/theme-hotaru/img/clients/SE.png new file mode 100644 index 0000000..af2dba4 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/SE.png differ diff --git a/resource/static/theme-hotaru/img/clients/SG.png b/resource/static/theme-hotaru/img/clients/SG.png new file mode 100644 index 0000000..abc3e8d Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/SG.png differ diff --git a/resource/static/theme-hotaru/img/clients/SI.png b/resource/static/theme-hotaru/img/clients/SI.png new file mode 100644 index 0000000..436c88f Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/SI.png differ diff --git a/resource/static/theme-hotaru/img/clients/SK.png b/resource/static/theme-hotaru/img/clients/SK.png new file mode 100644 index 0000000..0ab2705 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/SK.png differ diff --git a/resource/static/theme-hotaru/img/clients/SL.png b/resource/static/theme-hotaru/img/clients/SL.png new file mode 100644 index 0000000..3d4e299 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/SL.png differ diff --git a/resource/static/theme-hotaru/img/clients/SM.png b/resource/static/theme-hotaru/img/clients/SM.png new file mode 100644 index 0000000..78b9ca1 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/SM.png differ diff --git a/resource/static/theme-hotaru/img/clients/SN.png b/resource/static/theme-hotaru/img/clients/SN.png new file mode 100644 index 0000000..84ded5a Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/SN.png differ diff --git a/resource/static/theme-hotaru/img/clients/SO.png b/resource/static/theme-hotaru/img/clients/SO.png new file mode 100644 index 0000000..8829b9d Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/SO.png differ diff --git a/resource/static/theme-hotaru/img/clients/SR.png b/resource/static/theme-hotaru/img/clients/SR.png new file mode 100644 index 0000000..78c7564 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/SR.png differ diff --git a/resource/static/theme-hotaru/img/clients/SS.png b/resource/static/theme-hotaru/img/clients/SS.png new file mode 100644 index 0000000..69e51ca Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/SS.png differ diff --git a/resource/static/theme-hotaru/img/clients/ST.png b/resource/static/theme-hotaru/img/clients/ST.png new file mode 100644 index 0000000..80f1d33 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/ST.png differ diff --git a/resource/static/theme-hotaru/img/clients/SV.png b/resource/static/theme-hotaru/img/clients/SV.png new file mode 100644 index 0000000..f19be4b Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/SV.png differ diff --git a/resource/static/theme-hotaru/img/clients/SY.png b/resource/static/theme-hotaru/img/clients/SY.png new file mode 100644 index 0000000..c46810f Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/SY.png differ diff --git a/resource/static/theme-hotaru/img/clients/SZ.png b/resource/static/theme-hotaru/img/clients/SZ.png new file mode 100644 index 0000000..b57178e Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/SZ.png differ diff --git a/resource/static/theme-hotaru/img/clients/TD.png b/resource/static/theme-hotaru/img/clients/TD.png new file mode 100644 index 0000000..2d584eb Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/TD.png differ diff --git a/resource/static/theme-hotaru/img/clients/TG.png b/resource/static/theme-hotaru/img/clients/TG.png new file mode 100644 index 0000000..afefe49 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/TG.png differ diff --git a/resource/static/theme-hotaru/img/clients/TH.png b/resource/static/theme-hotaru/img/clients/TH.png new file mode 100644 index 0000000..db61ce1 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/TH.png differ diff --git a/resource/static/theme-hotaru/img/clients/TJ.png b/resource/static/theme-hotaru/img/clients/TJ.png new file mode 100644 index 0000000..3e7ed53 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/TJ.png differ diff --git a/resource/static/theme-hotaru/img/clients/TL.png b/resource/static/theme-hotaru/img/clients/TL.png new file mode 100644 index 0000000..0641395 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/TL.png differ diff --git a/resource/static/theme-hotaru/img/clients/TM.png b/resource/static/theme-hotaru/img/clients/TM.png new file mode 100644 index 0000000..5b0979b Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/TM.png differ diff --git a/resource/static/theme-hotaru/img/clients/TN.png b/resource/static/theme-hotaru/img/clients/TN.png new file mode 100644 index 0000000..c06e117 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/TN.png differ diff --git a/resource/static/theme-hotaru/img/clients/TO.png b/resource/static/theme-hotaru/img/clients/TO.png new file mode 100644 index 0000000..3846e2b Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/TO.png differ diff --git a/resource/static/theme-hotaru/img/clients/TR.png b/resource/static/theme-hotaru/img/clients/TR.png new file mode 100644 index 0000000..509cc6c Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/TR.png differ diff --git a/resource/static/theme-hotaru/img/clients/TT.png b/resource/static/theme-hotaru/img/clients/TT.png new file mode 100644 index 0000000..17c7015 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/TT.png differ diff --git a/resource/static/theme-hotaru/img/clients/TV.png b/resource/static/theme-hotaru/img/clients/TV.png new file mode 100644 index 0000000..7bd5f0f Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/TV.png differ diff --git a/resource/static/theme-hotaru/img/clients/TW.png b/resource/static/theme-hotaru/img/clients/TW.png new file mode 100644 index 0000000..3597a77 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/TW.png differ diff --git a/resource/static/theme-hotaru/img/clients/TZ.png b/resource/static/theme-hotaru/img/clients/TZ.png new file mode 100644 index 0000000..4b0c47a Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/TZ.png differ diff --git a/resource/static/theme-hotaru/img/clients/UA.png b/resource/static/theme-hotaru/img/clients/UA.png new file mode 100644 index 0000000..6e6da49 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/UA.png differ diff --git a/resource/static/theme-hotaru/img/clients/UG.png b/resource/static/theme-hotaru/img/clients/UG.png new file mode 100644 index 0000000..05c7187 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/UG.png differ diff --git a/resource/static/theme-hotaru/img/clients/US.png b/resource/static/theme-hotaru/img/clients/US.png new file mode 100644 index 0000000..f77cd28 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/US.png differ diff --git a/resource/static/theme-hotaru/img/clients/UY.png b/resource/static/theme-hotaru/img/clients/UY.png new file mode 100644 index 0000000..5faf871 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/UY.png differ diff --git a/resource/static/theme-hotaru/img/clients/UZ.png b/resource/static/theme-hotaru/img/clients/UZ.png new file mode 100644 index 0000000..d08502b Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/UZ.png differ diff --git a/resource/static/theme-hotaru/img/clients/VA.png b/resource/static/theme-hotaru/img/clients/VA.png new file mode 100644 index 0000000..80e79a1 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/VA.png differ diff --git a/resource/static/theme-hotaru/img/clients/VC.png b/resource/static/theme-hotaru/img/clients/VC.png new file mode 100644 index 0000000..2f12385 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/VC.png differ diff --git a/resource/static/theme-hotaru/img/clients/VE.png b/resource/static/theme-hotaru/img/clients/VE.png new file mode 100644 index 0000000..1ad37c2 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/VE.png differ diff --git a/resource/static/theme-hotaru/img/clients/VN.png b/resource/static/theme-hotaru/img/clients/VN.png new file mode 100644 index 0000000..82718b4 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/VN.png differ diff --git a/resource/static/theme-hotaru/img/clients/VU.png b/resource/static/theme-hotaru/img/clients/VU.png new file mode 100644 index 0000000..d8b9be4 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/VU.png differ diff --git a/resource/static/theme-hotaru/img/clients/WS.png b/resource/static/theme-hotaru/img/clients/WS.png new file mode 100644 index 0000000..ca789c3 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/WS.png differ diff --git a/resource/static/theme-hotaru/img/clients/XK.png b/resource/static/theme-hotaru/img/clients/XK.png new file mode 100644 index 0000000..b8d07e4 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/XK.png differ diff --git a/resource/static/theme-hotaru/img/clients/YE.png b/resource/static/theme-hotaru/img/clients/YE.png new file mode 100644 index 0000000..b49239f Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/YE.png differ diff --git a/resource/static/theme-hotaru/img/clients/ZA.png b/resource/static/theme-hotaru/img/clients/ZA.png new file mode 100644 index 0000000..63f1479 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/ZA.png differ diff --git a/resource/static/theme-hotaru/img/clients/ZM.png b/resource/static/theme-hotaru/img/clients/ZM.png new file mode 100644 index 0000000..3302297 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/ZM.png differ diff --git a/resource/static/theme-hotaru/img/clients/ZW.png b/resource/static/theme-hotaru/img/clients/ZW.png new file mode 100644 index 0000000..3ae8f36 Binary files /dev/null and b/resource/static/theme-hotaru/img/clients/ZW.png differ diff --git a/resource/static/theme-hotaru/img/light.png b/resource/static/theme-hotaru/img/light.png new file mode 100644 index 0000000..277ee8c Binary files /dev/null and b/resource/static/theme-hotaru/img/light.png differ diff --git a/resource/static/theme-hotaru/img/tenshi.png b/resource/static/theme-hotaru/img/tenshi.png new file mode 100644 index 0000000..4b9fd8e Binary files /dev/null and b/resource/static/theme-hotaru/img/tenshi.png differ diff --git a/resource/static/theme-hotaru/img/tenshi_l.png b/resource/static/theme-hotaru/img/tenshi_l.png new file mode 100644 index 0000000..a6ae756 Binary files /dev/null and b/resource/static/theme-hotaru/img/tenshi_l.png differ diff --git a/resource/template/common/footer.html b/resource/template/common/footer.html index 7aade5d..ae2c0ee 100644 --- a/resource/template/common/footer.html +++ b/resource/template/common/footer.html @@ -1,7 +1,8 @@ {{define "common/footer"}}
diff --git a/resource/template/common/menu.html b/resource/template/common/menu.html index 7bbe323..eeed1bb 100644 --- a/resource/template/common/menu.html +++ b/resource/template/common/menu.html @@ -7,6 +7,7 @@ 首页 {{if .Admin}} 服务器 + 设置 {{end}}