mirror of
https://github.com/caiwx86/small-packages.git
synced 2026-11-15 20:52:53 +08:00
update 2026-10-27 07:31:06
This commit is contained in:
1 parent
197c60d843
commit
a4d6470641
4213 files changed
-1575003
No files matched your search
@@ -1 +0,0 @@
|
||||
/test
|
||||
@@ -1,11 +0,0 @@
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
LUCI_TITLE:=iStoreNAS Login Page
|
||||
LUCI_DEPENDS:=+luci-theme-argon
|
||||
PKG_VERSION:=1.0.0-r1
|
||||
PKG_RELEASE:=
|
||||
|
||||
include $(TOPDIR)/feeds/luci/luci.mk
|
||||
|
||||
# call BuildPackage - OpenWrt buildroot signature
|
||||
@@ -1,17 +0,0 @@
|
||||
# luci-theme-istorenas
|
||||
|
||||
Argon 主题,但修改登录界面,并且可配置默认登录后跳转路径。
|
||||
|
||||
### 修改登录后默认跳转路径
|
||||
|
||||
例如
|
||||
```bash
|
||||
cat >/etc/config/istorenas <<-EOF
|
||||
config login
|
||||
option landing_page "/cgi-bin/luci/istorenas/landing"
|
||||
EOF
|
||||
```
|
||||
|
||||
注意 `landing_page` 需要以 `/cgi-bin/luci/` 开头,如果需要跳转到其他位置,可以在 landing 页面再重定向。
|
||||
|
||||
注意 `landing_page` 必须在 Luci 中注册,不能是 404,不然无法登录。
|
||||
@@ -1 +0,0 @@
|
||||
argon
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 169 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 11 KiB |
@@ -1,249 +0,0 @@
|
||||
|
||||
#main {
|
||||
width: 100vw;
|
||||
height: 100vh;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
font-family: PingFang SC, helvetica neue, hiragino sans gb, arial, microsoft yahei ui, microsoft yahei, simsun, sans-serif
|
||||
}
|
||||
|
||||
.section_login {
|
||||
display: flex;
|
||||
position: fixed;
|
||||
right: 0;
|
||||
top: 0;
|
||||
background-color: rgba(255, 255, 255, .8);
|
||||
min-width: 480px;
|
||||
max-width: 640px;
|
||||
height: 100%;
|
||||
border-left: 1px solid rgba(255, 255, 255, .4);
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
backdrop-filter: blur(24px);
|
||||
-webkit-backdrop-filter: blur(24px)
|
||||
}
|
||||
|
||||
.section_login .section_body {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
flex-flow: column;
|
||||
width: 100%;
|
||||
width: 360px
|
||||
}
|
||||
|
||||
.section_login .section_body .title {
|
||||
display: flex;
|
||||
flex-flow: column
|
||||
}
|
||||
|
||||
.section_login .section_body .title .logo {
|
||||
display: flex;
|
||||
gap: 8px;
|
||||
width: 80px;
|
||||
height: 80px;
|
||||
padding: 8px;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
transform: rotate(-45deg)
|
||||
}
|
||||
|
||||
.section_login .section_body .title .logo .logopath_1 {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
height: 0px;
|
||||
width: 16px;
|
||||
align-self: flex-end;
|
||||
animation: logo_path-a798f117 .3s .6s ease-out forwards
|
||||
}
|
||||
|
||||
.section_login .section_body .title .logo .logopath_2 {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
height: 0;
|
||||
width: 16px;
|
||||
animation: logo_path-a798f117 .3s .3s forwards
|
||||
}
|
||||
|
||||
.section_login .section_body .title .logo .logopath_3 {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
height: 0;
|
||||
width: 16px;
|
||||
align-self: flex-end;
|
||||
animation: logo_path-a798f117 .3s ease-in forwards
|
||||
}
|
||||
|
||||
.section_login .section_body .title .logo .logopath_1 svg,
|
||||
.section_login .section_body .title .logo .logopath_3 svg {
|
||||
position: absolute;
|
||||
bottom: 0
|
||||
}
|
||||
|
||||
.section_login .section_body .title .text {
|
||||
overflow-wrap: break-word;
|
||||
color: rgba(0, 0, 0, .8);
|
||||
font-size: 36px;
|
||||
font-weight: 700;
|
||||
text-align: left;
|
||||
white-space: nowrap;
|
||||
margin-bottom: 32px;
|
||||
margin-top: 16px
|
||||
}
|
||||
|
||||
.section_login .section_body .form_login {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
flex-flow: column;
|
||||
width: 100%
|
||||
}
|
||||
|
||||
.section_login .section_body .form_login .label {
|
||||
width: 28px;
|
||||
height: 20px;
|
||||
overflow-wrap: break-word;
|
||||
color: rgba(0, 0, 0, .8);
|
||||
font-size: 14px;
|
||||
text-align: left;
|
||||
white-space: nowrap;
|
||||
margin-bottom: 8px
|
||||
}
|
||||
|
||||
.section_login .section_body .form_login input {
|
||||
background-color: rgba(255, 255, 255, .6);
|
||||
border-radius: 8px;
|
||||
width: 360px;
|
||||
height: 48px;
|
||||
border: 1px solid rgba(0, 0, 0, .1);
|
||||
font-size: 16px;
|
||||
margin-bottom: 32px;
|
||||
padding: 0 16px;
|
||||
box-sizing: border-box;
|
||||
outline-style: none;
|
||||
transition: .3s all;
|
||||
color: rgba(0, 0, 0, .8)
|
||||
}
|
||||
|
||||
.section_login .section_body .form_login input::placeholder {
|
||||
color: rgba(0, 0, 0, .2)
|
||||
}
|
||||
|
||||
.section_login .section_body .form_login input:hover {
|
||||
border: 1px solid rgba(0, 0, 0, .2);
|
||||
background-color: rgba(255, 255, 255, .8)
|
||||
}
|
||||
|
||||
.section_login .section_body .form_login input:focus {
|
||||
border: 1px solid rgb(0, 96, 255);
|
||||
background-color: #fff;
|
||||
box-shadow: 0 0 0 2px rgba(0, 96, 255, .1)
|
||||
}
|
||||
|
||||
.section_login .section_body .form_login .btn_login {
|
||||
height: 48px;
|
||||
width: 180px;
|
||||
box-sizing: border-box;
|
||||
left: 0;
|
||||
right: 0;
|
||||
top: 0;
|
||||
bottom: -1px;
|
||||
background: radial-gradient(34.99% 256.21% at 72.3% 100%, rgba(47, 155, 255, .6), rgba(47, 155, 255, 0)), linear-gradient(180deg, #2f7dff, #0060ff);
|
||||
border: 1px solid rgba(0, 0, 0, .08);
|
||||
box-shadow: 0 16px 24px -16px rgba(0, 96, 255, .4), inset 0 0 12px rgba(255, 255, 255, .3);
|
||||
border-radius: 8px;
|
||||
margin-top: 32px;
|
||||
align-self: flex-end;
|
||||
font-size: 14px;
|
||||
color: #fff;
|
||||
transition: .3s all;
|
||||
margin-top: 1rem;
|
||||
width: 100%
|
||||
}
|
||||
|
||||
.section_login .section_body .form_login .btn_login:hover {
|
||||
filter: brightness(1.2);
|
||||
cursor: pointer
|
||||
}
|
||||
|
||||
.section_login .section_body .form_login .links {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
align-items: center;
|
||||
justify-content: flex-end
|
||||
}
|
||||
|
||||
.section_login .section_body .form_login .links a {
|
||||
font-size: .875em;
|
||||
color: #057feb
|
||||
}
|
||||
|
||||
.section_login .section_body .form_login .captcha {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
display: grid;
|
||||
grid-template-columns: auto 8px 170px
|
||||
}
|
||||
|
||||
.section_login .section_body .form_login .captcha input {
|
||||
width: 100%;
|
||||
margin-bottom: 1rem
|
||||
}
|
||||
|
||||
.section_login .section_body .form_login .captcha .captcha_image {
|
||||
height: 48px;
|
||||
cursor: pointer;
|
||||
width: 100%
|
||||
}
|
||||
|
||||
.section_login .section_body .form_login .captcha .captcha_image img {
|
||||
max-width: 100%
|
||||
}
|
||||
|
||||
.section_login .section_body .form_login span.text {
|
||||
display: block;
|
||||
width: 100%;
|
||||
color: #f05d41;
|
||||
font-size: 14px
|
||||
}
|
||||
|
||||
@media screen and (max-width: 680px) {
|
||||
.section_login {
|
||||
width: 100%;
|
||||
max-width: 100%;
|
||||
min-width: 100%;
|
||||
padding: 0
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes bg_scale-a798f117 {
|
||||
to {
|
||||
transform: scale(1)
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes show_form-a798f117 {
|
||||
to {
|
||||
right: 0
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes logo_path-a798f117 {
|
||||
to {
|
||||
height: 64px
|
||||
}
|
||||
}
|
||||
|
||||
.bg {
|
||||
background-position: 50%;
|
||||
background-repeat: no-repeat;
|
||||
background-size: cover;
|
||||
overflow: hidden;
|
||||
position: fixed;
|
||||
z-index: 0;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
width: 100vw;
|
||||
height: 100vh
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
../argon/footer.htm
|
||||
@@ -1 +0,0 @@
|
||||
../argon/header.htm
|
||||
@@ -1,177 +0,0 @@
|
||||
<%
|
||||
local util = require "luci.util"
|
||||
local http = require "luci.http"
|
||||
local disp = require "luci.dispatcher"
|
||||
local fs = require "nixio.fs"
|
||||
local uci = require 'luci.model.uci'.cursor()
|
||||
|
||||
local boardinfo = util.ubus("system", "board")
|
||||
|
||||
local node = disp.context.dispatched
|
||||
|
||||
http.prepare_content('text/html; charset=UTF-8');
|
||||
|
||||
local change_action
|
||||
local path = luci.http.getenv("REQUEST_URI")
|
||||
if (path == "/cgi-bin/luci" or path == "/cgi-bin/luci/") and fs.access('/etc/config/istorenas') then
|
||||
change_action = uci:get_first('istorenas', 'login', 'landing_page')
|
||||
end
|
||||
-%>
|
||||
<!DOCTYPE html>
|
||||
<html lang="<%=luci.i18n.context.lang%>">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>
|
||||
<%=striptags( (boardinfo.hostname or "?") .. ( (node and node.title) and ' - ' .. translate(node.title) or '')) %>
|
||||
- 登录</title>
|
||||
<link rel="shortcut icon" href="/luci-static/istorenas-login/favicon.ico">
|
||||
<style>
|
||||
body {
|
||||
|
||||
margin: 0;
|
||||
font-size: 14px;
|
||||
font-family: v-sans, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
||||
line-height: 1.6;
|
||||
-webkit-text-size-adjust: 100%;
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
|
||||
}
|
||||
|
||||
body input {
|
||||
|
||||
font-family: inherit;
|
||||
font-size: inherit;
|
||||
|
||||
}
|
||||
</style>
|
||||
<style>
|
||||
.n-loading-bar-container {
|
||||
|
||||
z-index: 5999;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
height: 2px;
|
||||
|
||||
}
|
||||
|
||||
.n-loading-bar-container.fade-in-transition-enter-active {
|
||||
transition: all 0.3s cubic-bezier(.4, 0, .2, 1) !important;
|
||||
}
|
||||
|
||||
.n-loading-bar-container.fade-in-transition-leave-active {
|
||||
transition: all 0.8s cubic-bezier(.4, 0, .2, 1) !important;
|
||||
}
|
||||
|
||||
.n-loading-bar-container.fade-in-transition-enter-from,
|
||||
.n-loading-bar-container.fade-in-transition-leave-to {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.n-loading-bar-container.fade-in-transition-leave-from,
|
||||
.n-loading-bar-container.fade-in-transition-enter-to {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.n-loading-bar-container .n-loading-bar {
|
||||
|
||||
width: 100%;
|
||||
transition:
|
||||
max-width 4s linear,
|
||||
background .2s linear;
|
||||
height: var(--n-height);
|
||||
|
||||
}
|
||||
|
||||
.n-loading-bar-container .n-loading-bar.n-loading-bar--starting {
|
||||
|
||||
background: var(--n-color-loading);
|
||||
|
||||
}
|
||||
|
||||
.n-loading-bar-container .n-loading-bar.n-loading-bar--finishing {
|
||||
|
||||
background: var(--n-color-loading);
|
||||
transition:
|
||||
max-width .2s linear,
|
||||
background .2s linear;
|
||||
|
||||
}
|
||||
|
||||
.n-loading-bar-container .n-loading-bar.n-loading-bar--error {
|
||||
|
||||
background: var(--n-color-error);
|
||||
transition:
|
||||
max-width .2s linear,
|
||||
background .2s linear;
|
||||
|
||||
}
|
||||
</style>
|
||||
<style>
|
||||
.errorbox {
|
||||
color: red;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
</style>
|
||||
<link rel="stylesheet" crossorigin="" href="/luci-static/istorenas-login/style.css<%# ?v=PKG_VERSION %>">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<!-- header | sysauth -->
|
||||
|
||||
<div id="app">
|
||||
<div class="n-config-provider" id="main">
|
||||
<div></div>
|
||||
<div class="bg" style="background-image: url("/luci-static/istorenas-login/background.png<%# ?v=PKG_VERSION %>");"></div>
|
||||
<div class="section_login">
|
||||
<div class="section_body">
|
||||
<div class="title">
|
||||
<div class="logo">
|
||||
<div class="logopath_1"><svg width="16" height="64" viewBox="0 0 16 64" fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
d="M7.99984 0C3.5818 0 0 3.5818 0 7.99984C0 12.4186 3.58145 16 8.00018 16C12.4182 16 16 12.4182 16 8.00018C16 3.58145 12.4186 0 7.99984 0Z"
|
||||
fill="#0060FF"></path>
|
||||
<path
|
||||
d="M7.99984 19.9999C3.5818 19.9999 0 23.5817 0 27.9998V47.9997C0 56.8365 7.1636 64.0001 16 63.9997V28.0001C16 23.5814 12.4186 19.9999 7.99984 19.9999Z"
|
||||
fill="#0060FF"></path>
|
||||
</svg></div>
|
||||
<div class="logopath_2"><svg width="16" height="64" viewBox="0 0 16 64" fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
d="M15.9997 0C7.1636 0 0 7.1636 0 15.9997V64.0001C8.83676 64.0001 16 56.8368 16 48L15.9997 0Z"
|
||||
fill="#0060FF"></path>
|
||||
</svg></div>
|
||||
<div class="logopath_3"><svg width="16" height="64" viewBox="0 0 16 64" fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
d="M0 0C8.83676 0 16 7.16325 16 16V35.0001C16 39.4181 12.4182 42.9999 8.00018 42.9999C3.5818 43.0002 0 39.4184 0 34.9997V0Z"
|
||||
fill="#0060FF"></path>
|
||||
</svg></div>
|
||||
</div><span class="text">iStoreOS 登录</span>
|
||||
</div>
|
||||
<form class="form_login" method="post"
|
||||
<%- if change_action then %> action="<%=pcdata(change_action)%>" <% end -%>
|
||||
>
|
||||
<div class="errorbox"
|
||||
<%- if fuser then %> style="opacity:1;"
|
||||
<% else %> style="opacity:0;" <% end -%>
|
||||
><%:Invalid username and/or password! Please try again.%></div>
|
||||
|
||||
<label class="label">账号</label>
|
||||
<input class="input accout" name="luci_username" placeholder="请输入您的账号" required value="root">
|
||||
<label class="label">密码</label>
|
||||
<input class="input password" name="luci_password" type="password" placeholder="请输入您的密码" autofocus>
|
||||
<button class="btn_login" type="submit">登 录</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- sysauth | footer -->
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,12 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
if [ "$PKG_UPGRADE" != 1 ]; then
|
||||
uci get luci.themes.iStoreNAS >/dev/null 2>&1 || \
|
||||
uci batch <<-EOF
|
||||
set luci.themes.iStoreNAS=/luci-static/istorenas
|
||||
set luci.main.mediaurlbase=/luci-static/istorenas
|
||||
commit luci
|
||||
EOF
|
||||
fi
|
||||
|
||||
exit 0
|
||||
Reference in new issue
Block a user