upload luci-theme-infinityfreedom v1.0

update header.htm
This commit is contained in:
xiaoqingfeng 2020-04-19 20:44:58 +08:00
parent 60c7e31996
commit b83057bc4b
21 changed files with 3055 additions and 0 deletions

26
README.md Normal file
View File

@ -0,0 +1,26 @@
# luci-theme-infinityfreedom
InfinityFreedom is a clean HTML5 theme for LuCI. It is based on luci-theme-material.
Copyright 2020 Richard Yu <xiaoqingfengatgm@gmail.com>
### Adding InfinityFreedom to your own LEDE/OpenWRT Build
Edit your feeds.conf.default and add the following to it:
# luci-theme-infinityfreedom
src-git infinityfreedom https://github.com/xiaoqingfengATGH/luci-theme-infinityfreedom.git
Update your build environment and install the package:
$ scripts/feeds update infinityfreedom
$ scripts/feeds install luci-theme-infinityfreedom
$ make menuconfig
Go to LuCI -> Themes, select luci-theme-infinityfreedom, exit, save and build as usual.
Enable the Theme
----------------
* Go to System -> System -> Language and Style
* Choose 'infinityfreedom' in the Design selectbox

View File

@ -0,0 +1,56 @@
# LuCI Theme Infinity Freedom
# Copyright 2020 Richard Yu <xiaoqingfengatgm@gmail.com>
#
# Licensed under the Apache License v2.0
# http://www.apache.org/licenses/LICENSE-2.0
include $(TOPDIR)/rules.mk
THEME_NAME:=infinityfreedom
THEME_TITLE:=infinityfreedom
PKG_NAME:=luci-theme-$(THEME_NAME)
PKG_VERSION:=1.0
PKG_RELEASE:=1
include $(INCLUDE_DIR)/package.mk
define Package/luci-theme-$(THEME_NAME)
SECTION:=luci
CATEGORY:=LuCI
SUBMENU:=4. Themes
DEPENDS:=+libc
TITLE:=Infinity Freedom Theme
URL:=https://github.com/xiaoqingfengATGH/luci-theme-infinityfreedom
PKGARCH:=all
endef
define Build/Configure
endef
define Build/Compile
endef
define Package/luci-theme-$(THEME_NAME)/install
$(INSTALL_DIR) $(1)/etc/uci-defaults
$(INSTALL_BIN) ./files/10_luci-theme-$(THEME_NAME) $(1)/etc/uci-defaults/luci-theme-$(THEME_NAME)
$(INSTALL_DIR) $(1)/www/luci-static/$(THEME_NAME)
$(CP) -a ./files/htdocs/* $(1)/www/luci-static/$(THEME_NAME)/ 2>/dev/null || true
$(INSTALL_DIR) $(1)/usr/lib/lua/luci/view/themes/$(THEME_NAME)
$(CP) -a ./files/templates/* $(1)/usr/lib/lua/luci/view/themes/$(THEME_NAME)/ 2>/dev/null || true
endef
define Package/luci-theme-$(THEME_NAME)/postinst
#!/bin/sh
if [ -z "$${IPKG_INSTROOT}" ]; then
if [ -f /etc/uci-defaults/luci-theme-$(THEME_NAME) ]; then
( . /etc/uci-defaults/luci-theme-$(THEME_NAME) ) && \
rm -f /etc/uci-defaults/luci-theme-$(THEME_NAME)
fi
rm -rf /tmp/luci-indexcache /tmp/luci-modulecache
fi
exit 0
endef
$(eval $(call BuildPackage,luci-theme-$(THEME_NAME)))

View File

@ -0,0 +1,7 @@
#!/bin/sh
uci batch <<-EOF
set luci.themes.infinityfreedom=/luci-static/infinityfreedom
set luci.main.mediaurlbase=/luci-static/infinityfreedom
commit luci
EOF
exit 0

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

View File

@ -0,0 +1,53 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg">
<metadata>Generated by Fontastic.me</metadata>
<defs>
<font id="advancedtomato" horiz-adv-x="512">
<font-face font-family="advancedtomato" units-per-em="512" ascent="480" descent="-32"/>
<missing-glyph horiz-adv-x="512" />
<glyph unicode="&#57344;" d="M317 169c9-9 9-17 0-25-9-8-17-8-24 0 0 0-99 100-99 100-8 8-8 16 0 25 0 0 99 100 99 100 7 9 15 9 24 0 9-8 9-16 0-25 0 0-80-88-80-88 0 0 80-87 80-87"/>
<glyph unicode="&#57345;" d="M195 169c0 0 81 87 81 87 0 0-81 88-81 88-9 9-9 17 0 25 9 9 17 9 24 0 0 0 99-100 99-100 8-9 8-17 0-25 0 0-99-100-99-100-7-8-15-8-24 0-9 8-9 16 0 25"/>
<glyph unicode="&#57346;" d="M169 195c-9-8-17-8-26 0-8 8-8 16 0 25 0 0 101 97 101 97 9 9 17 9 24 0 0 0 101-97 101-97 8-9 8-17 0-25-9-8-17-8-26 0 0 0-87 80-87 80 0 0-87-80-87-80"/>
<glyph unicode="&#57347;" d="M344 317c8 9 16 9 25 0 9-7 9-15 0-24 0 0-101-98-101-98-7-8-15-8-24 0 0 0-101 98-101 98-9 9-9 17 0 24 9 9 17 9 26 0 0 0 87-79 87-79 0 0 88 79 88 79"/>
<glyph unicode="&#57348;" d="M141 148c0 0 60 60 60 60 0 0 0-150 0-150 0 0-142 9-142 9 0 0 45 44 45 44-39 41-59 91-58 148 1 57 21 107 62 148 34 34 75 53 122 59 0 0 2-52 2-52-34-6-63-21-88-45-30-30-45-67-46-109 0-43 14-80 43-112m170 307c0 0 142-9 142-9 0 0-45-44-45-44 39-41 59-91 58-148-1-57-21-107-62-148-32-33-73-53-122-60 0 0-1 53-1 53 33 6 62 21 87 45 30 30 45 67 46 109 0 43-14 80-43 112 0 0-59-60-59-60 0 0-1 150-1 150"/>
<glyph unicode="&#57349;" d="M283 77c0 0 0 51 0 51 0 0 50 0 50 0 0 0 0-51 0-51 0-14-5-26-15-36-10-10-22-15-36-15 0 0-205 0-205 0-14 0-26 5-36 15-10 10-15 22-15 36 0 0 0 358 0 358 0 15 5 27 15 37 10 9 22 14 36 14 0 0 205 0 205 0 14 0 26-5 36-14 10-10 15-22 15-37 0 0 0-77 0-77 0 0-50 0-50 0 0 0 0 77 0 77 0 0-206 0-206 0 0 0 0-358 0-358 0 0 206 0 206 0m203 167c0 0-101-101-101-101 0 0 0 62 0 62 0 0-230 0-230 0 0 0 0 77 0 77 0 0 230 0 230 0 0 0 0 61 0 61 0 0 101-99 101-99"/>
<glyph unicode="&#57350;" d="M212 77c-11 0-21 5-28 14 0 0-92 121-92 121-6 8-8 17-6 27 1 9 5 17 13 23 7 6 16 9 26 7 10-1 18-6 24-14 0 0 60-79 60-79 0 0 152 243 152 243 5 8 13 13 22 15 9 2 18 1 27-4 8-5 13-13 15-22 3-9 1-18-4-27 0 0-179-287-179-287-7-11-16-16-28-16 0 0-2-1-2-1"/>
<glyph unicode="&#57352;" d="M372 410c25 0 38-11 38-33 0 0 0-241 0-241 0-22-13-34-38-34 0 0-231 0-231 0-26 0-39 12-39 34 0 0 0 241 0 241 0 12 3 21 10 25 6 5 16 8 29 8 0 0 231 0 231 0"/>
<glyph unicode="&#57353;" d="M377 269c5-3 7-8 7-13 0-5-2-9-7-12 0 0-219-136-219-136-8-6-15-7-21-4-6 4-9 11-9 21 0 0 0 263 0 263 0 10 3 17 9 21 6 3 13 2 21-3 0 0 219-137 219-137"/>
<glyph unicode="&#57354;" d="M79 336c-3-3-4-7-6-11-1-5-1-9-1-13 0-4 0-6-1-6-1-1-4-3-9-8-5-4-8-7-9-8-6-5-11-4-15 2 0 0-36 39-36 39-3 4-3 8 1 12 1 1 4 3 10 7 5 4 8 7 10 8 2 2 6 3 14 3 7 0 13 3 19 8 4 4 7 11 9 19 1 8 3 13 5 15 1 0 2 2 5 4 2 2 6 6 13 11 6 5 13 11 21 16 46 31 77 47 95 49 42 0 67 0 76-1 4 0 3-1-4-4-41-18-67-31-78-39-27-19-34-38-19-58 12-16 19-24 20-25 3-2 2-5-1-7-1-1-7-6-20-18-12-11-18-17-19-18-5-2-8-3-9-2-15 17-27 27-37 31-9 4-21 2-34-6m147-13c0 0 209-244 209-244 7-8 6-14-1-20 0 0-24-21-24-21-8-5-14-4-20 2 0 0-212 242-212 242-2 2-2 6 0 10 0 0 37 32 37 32 4 2 8 2 11-1m283 103c6-36 3-64-8-85-17-30-43-41-79-32-19 4-36-1-51-16 0 0-42-40-42-40 0 0-35 40-35 40 0 0 35 36 35 36 8 8 13 17 16 27 2 10 3 21 3 33 0 12 0 22 2 30 5 19 28 38 72 57 4 2 7 2 9-1 2-3 3-6 1-8-4-4-12-18-23-41-5-3-7-9-6-18 0-8 7-18 20-27 20-14 36-10 49 11 2 4 7 11 14 21 6 10 10 16 11 17 1 3 4 5 7 5 3-1 5-4 5-9m-439-350c0 0 130 127 130 127 0 0 39-44 39-44 0 0-126-124-126-124-7-7-13-8-20-2 0 0-23 23-23 23-8 6-8 13 0 20"/>
<glyph unicode="&#57355;" d="M478 232c9-15 11-31 7-49 0 0-17-94-17-94-1-7-4-13-10-18-6-5-13-8-20-8 0 0-365 0-365 0-7 0-13 3-19 8-6 5-10 11-10 18 0 0-18 94-18 94-3 18 0 34 7 49 0 0 81 192 81 192 8 16 20 23 37 23 0 0 209 0 209 0 17 0 30-7 38-23 0 0 80-192 80-192m-35-67c1 7-1 14-5 19-4 6-10 9-18 9 0 0-329 0-329 0-8 0-14-3-18-9-4-5-6-12-5-19 0 0 7-38 7-38 1-8 4-14 10-19 6-5 13-8 20-8 0 0 302 0 302 0 8 0 14 3 20 8 6 5 9 11 10 19 0 0 6 38 6 38"/>
<glyph unicode="&#57357;" d="M256 448c-106 0-192-86-192-192 0-106 86-192 192-192 106 0 192 86 192 192 0 106-86 192-192 192z m0-333c-78 0-141 63-141 141 0 34 12 66 33 90l198-198c-24-21-56-33-90-33z m108 51l-198 198c24 21 56 33 90 33 78 0 141-63 141-141 0-34-12-66-33-90z"/>
<glyph unicode="&#57358;" d="M256 502c68 0 126-24 174-72 48-49 72-106 72-174 0-68-24-126-72-174-48-48-106-72-174-72-68 0-125 24-174 72-48 48-72 106-72 174 0 68 24 125 72 174 49 48 106 72 174 72m210-246c0 45-13 86-40 122-27 37-61 62-103 77-7-9-9-14-9-17 2-13 5-21 10-26 4-4 9-5 15-3 0 0 16 6 16 6 0 0 4 0 11 1 7-8 7-16 0-24-8-8-16-18-23-29-8-11-8-24-1-39 12-22 28-33 49-33 10-1 17-7 22-19 5-11 8-22 9-33 3-28 1-52-7-72-8-15-5-28 7-39 29 38 44 81 44 128m-239 207c-38-5-72-19-102-43-29-24-51-54-65-89 2 0 6-1 12-1 5-1 10-1 14-2 4 0 9-1 13-2 5-1 9-2 13-4 3-2 5-4 6-7 1-4-1-11-7-23-7-11-10-21-10-31 0-10 7-20 20-29 13-8 19-16 19-23 0-10 2-21 4-35 3-14 4-21 4-22 0-5 7-14 19-28 12-14 21-22 27-22 3 0 5 4 5 12 1 7 0 16-1 27-1 11-1 18-1 21 0 11 2 23 7 38 4 14 14 26 30 36 16 9 25 17 28 23 6 12 7 22 5 31-3 10-6 17-9 22-3 6-9 11-17 15-9 4-16 7-21 8-6 2-12 4-19 5-7 1-11 2-12 2-5 2-12 3-21 4-9 0-15-1-18-2-4-1-9 1-14 6-6 5-9 10-9 15 0 3 3 8 8 13 5 6 11 12 18 19 6 7 11 12 14 16 3 4 6 8 9 10 3 3 6 6 11 9 4 3 9 6 14 10 1 2 5 5 13 9 7 5 11 8 13 12m-37-407c23-7 45-10 66-10 44 0 82 12 116 35-9 15-29 21-61 17-8 0-19-3-33-8-14-6-22-8-24-9-25-6-38-8-39-8-4-1-8-3-13-7-5-5-9-8-12-10"/>
<glyph unicode="&#57360;" d="M450 117c10-12 11-22 3-32 0 0-24-24-24-24-12-10-24-10-35 0 0 0-97 98-97 98-25-15-52-22-80-22-44 0-82 16-114 49-33 32-49 70-49 114 0 44 16 81 46 112 31 31 68 47 112 47 44 0 82-16 115-49 32-32 49-70 49-114 0-30-8-58-24-83 0 0 98-96 98-96m-348 183c0-30 12-57 35-80 23-23 50-35 80-35 30 0 56 11 77 33 22 21 33 47 33 78 0 30-12 56-35 79-23 23-50 35-80 35-30 0-56-11-77-33-22-21-33-47-33-77"/>
<glyph unicode="&#57361;" d="M425 249c0 0-98 0-98 0 0 0 0-179 0-179 0 0-142 0-142 0 0 0 0 179 0 179 0 0-98 0-98 0 0 0 169 194 169 194 0 0 169-194 169-194"/>
<glyph unicode="&#57362;" d="M425 264c0 0-169-194-169-194 0 0-169 194-169 194 0 0 98 0 98 0 0 0 0 179 0 179 0 0 142 0 142 0 0 0 0-179 0-179 0 0 98 0 98 0"/>
<glyph unicode="&#57363;" d="M302 206c-72 0-128-8-170-23-42-16-77-49-106-101 1 7 3 16 6 27 3 11 12 31 26 60 14 29 30 54 49 76 19 22 45 42 80 60 34 18 73 27 115 27 0 0 0 98 0 98 0 0 184-165 184-165 0 0-184-171-184-171 0 0 0 112 0 112"/>
<glyph unicode="&#57365;" d="M208 168c11 19 48 68 109 145 62 78 95 116 100 113 4-2-13-50-49-142-37-93-61-149-71-167-17-30-40-36-70-19-29 17-36 41-19 70m48 194c-57 0-106-21-145-65-40-43-60-96-60-159 0-10 1-18 1-23 1-8-1-14-6-19-5-5-10-8-17-9-7-1-13 1-19 6-5 5-8 11-9 18 0 2 0 7 0 13-1 6-1 11-1 14 0 77 25 143 74 196 50 53 110 80 182 80 25 0 47-3 69-10 0 0-36-44-36-44-14 2-25 2-33 2m185-31c47-53 71-117 71-193 0-13 0-22-1-28-1-7-3-13-8-17-5-5-11-7-18-7 0 0-2 0-2 0-7 1-13 5-18 10-4 6-6 12-5 19 0 4 1 12 1 23 0 51-14 97-41 137 2 5 5 14 10 27 5 12 9 22 11 29"/>
<glyph unicode="&#57366;" d="M376 255c40-13 60-36 60-70 0-34-21-68-65-101-43-32-97-48-160-48-55 0-103 13-146 40-43 26-64 60-64 100 0 44 25 92 75 143 31 32 63 54 95 67 32 12 55 12 69-2 12-12 14-32 5-59-2-5 0-8 4-8 0 0 8 1 8 1 25 12 48 18 69 18 20 0 34-6 43-18 8-12 7-29-1-51-2-6 0-10 8-12m-165-181c42 4 76 17 103 39 28 22 40 47 37 74-3 28-20 50-51 66-31 16-67 22-109 18-41-4-76-17-103-39-27-22-39-47-36-74 3-28 20-49 50-66 31-16 67-22 109-18m300 250c0 0 0-1 0-1 0-5-2-9-6-13-3-3-8-5-12-5-5 0-9 2-13 5-3 4-5 8-5 13 0 32-11 60-35 83-23 23-51 34-83 34-5 0-10 2-13 5-3 4-5 8-5 14 0 11 6 17 18 17 43 0 79-15 109-44 30-30 45-66 45-108m-72 2c2-5 1-10-2-14-2-5-6-7-11-8-12-1-19 4-22 14-2 13-8 25-18 34-10 10-21 16-34 19-11 2-16 9-13 20 3 12 10 17 21 15 20-5 37-14 52-29 14-14 23-32 27-51m-270-108c16 4 31 1 45-6 14-8 22-18 25-32 3-13 0-27-10-39-10-13-24-21-41-23-16-4-31-2-45 6-13 7-21 18-24 32-3 13 0 26 10 39 10 12 23 20 40 23"/>
<glyph unicode="&#57367;" d="M185 231l-133-133c-2-2-4-3-6-3-3 0-5 1-7 3l-14 14c-2 2-3 4-3 7 0 2 1 5 3 6l112 113-112 112c-2 2-3 4-3 7 0 2 1 4 3 6l14 14c2 2 4 3 7 3 2 0 4-1 6-3l133-133c2-2 3-4 3-6 0-3-1-5-3-7z m309-130l0-19c0-2-1-5-3-6-2-2-4-3-6-3l-275 0c-2 0-5 1-6 3-2 1-3 4-3 6l0 19c0 2 1 4 3 6 1 2 4 3 6 3l275 0c2 0 4-1 6-3 2-2 3-4 3-6z"/>
<glyph unicode="&#57369;" d="M389 282c10 0 15-9 15-26 0-17-5-26-15-26 0 0-266 0-266 0-10 0-15 9-15 26 0 17 5 26 15 26 0 0 266 0 266 0"/>
<glyph unicode="&#57370;" d="M256 474c0 0 133-125 133-125 0 0-84 0-84 0 0 0 0-131 0-131 0 0-97 0-97 0 0 0 0 131 0 131 0 0-85 0-85 0 0 0 133 125 133 125m239-296c7-3 11-9 14-16 3-8 4-15 2-21 0 0-14-79-14-79-2-6-6-12-12-16-6-5-13-7-20-7 0 0-418 0-418 0-8 0-14 2-21 7-6 4-9 10-11 16 0 0-14 79-14 79-4 17 2 29 16 37 0 0 81 55 81 55 0 0 50 0 50 0 0 0-87-66-87-66 0 0 91 0 91 0 3 0 5-1 7-4 0 0 20-57 20-57 0 0 154 0 154 0 0 0 20 57 20 57 3 3 5 4 6 4 0 0 91 0 91 0 0 0-87 66-87 66 0 0 51 0 51 0 0 0 81-55 81-55"/>
<glyph unicode="&#57371;" d="M495 178c7-3 11-9 14-16 3-8 4-15 2-21 0 0-14-79-14-79-2-6-6-12-12-16-6-5-13-7-20-7 0 0-418 0-418 0-8 0-14 2-21 7-6 4-9 10-11 16 0 0-14 79-14 79-4 17 2 29 16 37 0 0 81 55 81 55 0 0 50 0 50 0 0 0-87-66-87-66 0 0 91 0 91 0 3 0 5-1 7-4 0 0 20-57 20-57 0 0 154 0 154 0 0 0 20 57 20 57 3 3 5 4 6 4 0 0 91 0 91 0 0 0-87 66-87 66 0 0 51 0 51 0 0 0 81-55 81-55m-106 165c0 0-133-125-133-125 0 0-133 125-133 125 0 0 85 0 85 0 0 0 0 131 0 131 0 0 97 0 97 0 0 0 0-131 0-131 0 0 84 0 84 0"/>
<glyph unicode="&#57372;" d="M213 331c44 0 79-33 85-75l75 0c-1 10-3 20-5 29l61 35-43 74-61-35c-19 19-42 33-69 40l0 70-85 0 0-70c-27-7-51-21-70-40l-60 35-43-74 61-35c-4-12-6-26-6-40 0-13 2-27 6-40l-61-35 43-74 60 35c19-18 43-32 70-40l0-70 85 0 0 151c-13-7-27-12-43-12-47 0-85 38-85 85 0 47 38 86 85 86z m278-203c0 8-2 15-4 23l40 23-22 36-39-22c-11 11-24 18-39 22l0 46-43 0 0-46c-15-4-29-11-40-22l-39 22-21-36 39-23c-2-8-3-15-3-23 0-8 1-15 3-23l-39-23 21-36 39 22c11-11 25-18 40-22l0-46 43 0 0 46c15 4 28 11 39 22l40-22 21 36-40 23c2 8 4 15 4 23z m-86-43c-23 0-42 19-42 43 0 24 19 43 42 43 24 0 43-19 43-43 0-24-19-43-43-43z"/>
<glyph unicode="&#57364;" d="M318 512c17 0 29-5 38-14 9-9 14-21 14-35 0-17-7-32-20-45-14-13-30-20-49-20-16 0-29 5-38 14-9 9-13 21-12 37 0 15 6 30 18 43 12 13 28 20 49 20m-105-512c-34 0-43 30-28 91 0 0 31 130 31 130 5 19 5 29 0 29-4 0-13-3-28-9-14-7-26-13-36-20 0 0-14 23-14 23 31 26 63 48 97 64 34 17 60 25 77 25 27 0 33-28 19-83 0 0-36-136-36-136-6-22-5-33 3-33 15 0 35 10 60 31 0 0 16-21 16-21-29-29-59-52-90-67-31-16-55-24-71-24"/>
<glyph unicode="&#57368;" d="M457 302l0-55c0-8-3-14-8-20-5-5-12-8-19-8l-119 0 0-118c0-8-3-15-8-20-5-5-12-8-20-8l-54 0c-8 0-15 3-20 8-5 5-8 12-8 20l0 118-119 0c-7 0-14 3-19 8-5 6-8 12-8 20l0 55c0 7 3 14 8 19 5 5 12 8 19 8l119 0 0 119c0 8 3 14 8 19 5 6 12 8 20 8l54 0c8 0 15-2 20-8 5-5 8-11 8-19l0-119 119 0c7 0 14-3 19-8 5-5 8-12 8-19z"/>
<glyph unicode="&#57379;" d="M256 512c-141 0-256-115-256-256 0-141 115-256 256-256 141 0 256 115 256 256 0 141-115 256-256 256z m0-469c-118 0-213 95-213 213 0 118 95 213 213 213 118 0 213-95 213-213 0-118-95-213-213-213z m95 360c-11 5-23 1-29-9l-72-145-43 43c-8 9-22 9-30 0-8-8-8-21 0-30l64-64c4-4 9-6 15-6 1 0 2 0 3 0 7 1 13 6 16 12l85 170c6 11 1 24-9 29z m-116-296l42 0 0-22-42 0z m0 341l42 0 0-21-42 0z m-171-171l43 0 0-21-43 0z m341 0l43 0 0-21-43 0z"/>
<glyph unicode="&#57378;" d="M55 37l82 0 0 82-82 0z m100 0l92 0 0 82-92 0z m-100 100l82 0 0 92-82 0z m100 0l92 0 0 92-92 0z m-100 110l82 0 0 82-82 0z m210-210l92 0 0 82-92 0z m-110 210l92 0 0 82-92 0z m220-210l82 0 0 82-82 0z m-110 100l92 0 0 92-92 0z m-100 247l0 82c0 3-1 5-3 7-2 2-4 2-7 2l-18 0c-2 0-4 0-6-2-2-2-3-4-3-7l0-82c0-2 1-5 3-6 2-2 4-3 6-3l18 0c3 0 5 1 7 3 2 1 3 4 3 6z m210-247l82 0 0 92-82 0z m-110 110l92 0 0 82-92 0z m110 0l82 0 0 82-82 0z m9 137l0 82c0 3-1 5-3 7-2 2-4 2-6 2l-18 0c-3 0-5 0-7-2-2-2-3-4-3-7l0-82c0-2 1-5 3-6 2-2 4-3 7-3l18 0c2 0 4 1 6 3 2 1 3 4 3 6z m110 18l0-365c0-10-4-19-11-26-7-7-16-11-26-11l-402 0c-10 0-19 4-26 11-7 7-11 16-11 26l0 365c0 10 4 19 11 26 7 7 16 11 26 11l36 0 0 27c0 13 5 24 14 33 9 9 20 13 32 13l18 0c13 0 24-4 33-13 9-9 13-20 13-33l0-27 110 0 0 27c0 13 4 24 13 33 9 9 20 13 33 13l18 0c12 0 23-4 32-13 9-9 14-20 14-33l0-27 36 0c10 0 19-4 26-11 7-7 11-16 11-26z"/>
<glyph unicode="&#57380;" d="M55 37l402 0 0 292-402 0z m110 347l0 82c0 3-1 5-3 7-2 2-4 2-7 2l-18 0c-3 0-5 0-6-2-2-2-3-4-3-7l0-82c0-3 1-5 3-7 1-1 3-2 6-2l18 0c3 0 5 1 7 2 2 2 3 4 3 7z m219 0l0 82c0 3-1 5-3 7-1 2-3 2-6 2l-18 0c-3 0-5 0-7-2-2-2-3-4-3-7l0-82c0-3 1-5 3-7 2-1 4-2 7-2l18 0c3 0 5 1 6 2 2 2 3 4 3 7z m110 18l0-365c0-10-4-19-11-26-7-7-16-11-26-11l-402 0c-10 0-19 4-26 11-7 7-11 16-11 26l0 365c0 10 4 19 11 26 7 7 16 11 26 11l36 0 0 27c0 13 5 24 14 33 9 9 20 13 32 13l18 0c13 0 24-4 33-13 9-9 13-20 13-33l0-27 110 0 0 27c0 13 4 24 13 33 9 9 20 13 33 13l18 0c12 0 23-4 32-13 9-9 14-20 14-33l0-27 36 0c10 0 19-4 26-11 7-7 11-16 11-26z"/>
<glyph unicode="&#57381;" d="M407 461l27 0 0 51-370 0 0-51 32 0c4-96 39-159 101-180l0-53c-61-21-96-83-101-177l-32 0 0-51 370 0 0 51-27 0c-5 94-40 156-101 177l0 53c62 21 97 84 101 180m-116-255c67-17 87-90 91-155l-26 0-45 52-57 68-58-68-45-52-29 0c3 65 23 138 90 155l10 2 0 93-10 2c-69 17-88 92-91 158l261 0c-3-66-22-141-91-158l-10-2 0-93z m17 151l-105 0 26-31 27-30 26 30z"/>
<glyph unicode="&#57381;" d="M399 395c0-15-8-31-24-49-17-18-33-35-50-51-17-16-25-29-25-39 0-10 8-23 25-39 17-16 33-32 50-50 16-17 24-34 24-49 0 0 0-61 0-61 0-11-14-24-44-37-29-13-62-20-99-20-37 0-70 7-99 20-30 13-44 26-44 37 0 0 0 61 0 61 0 15 8 32 24 49 17 18 33 34 50 50 17 16 25 29 25 39 0 10-8 23-25 39-17 16-33 33-50 51-16 18-24 34-24 49 0 0 0 61 0 61 0 11 14 23 44 36 30 13 63 20 99 20 36 0 69-7 99-20 30-13 44-25 44-36 0 0 0-61 0-61m-246 58c0 0-10-8-10-8-1-2 0-5 2-7 32-17 69-26 111-26 45 0 83 8 113 25 4 4 2 9-9 16-32 18-67 27-103 27-41 0-76-9-104-27m116-197c0 6 1 12 2 17 2 5 5 11 10 17 4 6 8 10 10 13 2 2 7 7 16 15 8 9 13 13 15 15 31 31 47 52 47 62 0 0 1 26 1 26-34-19-72-28-114-28-42 0-80 9-114 28 0 0 2-26 2-26 0-11 16-31 46-62 3-2 6-6 12-11 5-5 9-9 12-11 0 0 9-10 9-10 0 0 3-4 9-11 6-7 8-10 6-10-2 0-1-4 4-12 5-8 6-12 2-12 0-3 0-7-1-10 0-3-1-6-3-9-2-3-3-6-4-8-1-3-3-5-6-9 0 0-6-8-6-8 0 0-2-2-7-8-6-5-8-8-9-7 0 0-3-3-9-9-6-5-9-8-9-8-30-30-46-51-46-62 0 0 0-34 0-34 3 1 14 5 34 12 20 6 36 14 47 22 12 8 18 18 18 29 0 11 4 16 13 16 9 0 13-5 13-16 0-11 6-21 17-29 11-8 28-16 48-22 21-7 33-11 35-12 0 0 0 34 0 34 0 10-16 31-47 62-2 2-5 5-11 10-6 6-10 10-11 11-2 2-5 5-10 10-4 5-7 8-9 11-2 3-4 6-6 10-2 5-4 8-5 12 0 4-1 8-1 12"/>
<glyph unicode="&#57377;" d="M256 458l0 1-172-100 0 0 0-118 0 0c2-97 77-178 172-188 96 10 170 91 172 188l0 118 0 0z m0-353l0 142-121 0 0 82 121 70 0-152 121 0 0-6 0 0c-2-69-54-127-121-136z"/>
<glyph unicode="&#57382;" d="M428 318l-167 129c-4 4-11 4-16 0l-161-129c-3-2-5-6-5-10l0-233c0-7 6-13 13-13l96 0c7 0 13 6 13 13l0 143 110 0 0-143c0-7 6-13 13-13l96 0c7 0 13 6 13 13l0 233c0 4-2 8-5 10z"/>
<glyph unicode="&#57384;" d="M442 392l-20-20-19-19-25-24c-13-1-26 4-36 13-9 10-14 23-13 36l63 64c1 1 1 3 0 4 0 1 0 1-1 1l0 0c0 0 0 0 0 0 0 0 0 0 0 0-14 6-29 10-45 10-61 0-111-50-111-111 0-12 2-23 6-33l-116-116c-39-1-70-32-70-71 0-39 32-71 71-71 39 0 70 31 71 70l116 116c10-4 21-6 33-6 61 0 111 50 111 111 0 16-4 31-10 45 0 0 0 0 0 0 0 0 0 1 0 1l0 0c0 0-1 0-1 0-1 1-3 1-4 0z m-286-266c0-16-14-29-30-29-16 0-29 13-29 29 0 16 13 30 29 30 16 0 30-14 30-30z"/>
<glyph unicode="&#57383;" d="M256 369c-20 0-34-12-34-31 0-18 14-30 34-30 21 0 34 12 34 30 0 19-13 31-34 31z m-32-81l64 0 0-145-64 0z m32 196c-126 0-228-102-228-228 0-126 102-228 228-228 126 0 228 102 228 228 0 126-102 228-228 228z m0-399c-94 0-171 77-171 171 0 94 77 171 171 171 94 0 171-77 171-171 0-94-77-171-171-171z"/>
<glyph unicode="&#57385;" d="M512 128l0-37c0-5-2-9-5-12-4-4-8-6-13-6l-476 0c-5 0-9 2-13 6-3 3-5 7-5 12l0 37c0 5 2 9 5 13 4 3 8 5 13 5l476 0c5 0 9-2 13-5 3-4 5-8 5-13z m-110 110l0-37c0-5-2-9-5-13-4-3-8-5-13-5l-366 0c-5 0-9 2-13 5-3 4-5 8-5 13l0 37c0 5 2 9 5 13 4 3 8 5 13 5l366 0c5 0 9-2 13-5 3-4 5-8 5-13z m73 109l0-36c0-5-1-9-5-13-4-4-8-5-13-5l-439 0c-5 0-9 1-13 5-3 4-5 8-5 13l0 36c0 5 2 10 5 13 4 4 8 6 13 6l439 0c5 0 9-2 13-6 4-3 5-8 5-13z m-109 110l0-36c0-5-2-10-6-13-3-4-8-6-13-6l-329 0c-5 0-9 2-13 6-3 3-5 8-5 13l0 36c0 5 2 9 5 13 4 4 8 5 13 5l329 0c5 0 10-1 13-5 4-4 6-8 6-13z"/>
<glyph unicode="&#57386;" d="M256 256c-18 0-32 14-32 32l0 160c0 18 14 32 32 32 18 0 32-14 32-32l0-160c0-18-14-32-32-32z m123 187c61-40 101-109 101-187 0-124-100-224-224-224-124 0-224 100-224 224 0 78 40 147 101 187 5 3 11 5 17 5 18 0 32-14 32-32 0-6-2-12-5-17-2-3-4-6-7-8-1-1-3-2-4-3-8-6-16-12-23-19-30-30-47-70-47-113 0-43 17-83 47-113 30-30 70-47 113-47 43 0 83 17 113 47 30 30 47 70 47 113 0 43-17 83-47 113-7 7-15 13-23 19-1 1-3 2-4 3-3 2-5 5-7 8-3 5-5 11-5 17 0 18 14 32 32 32 6 0 12-2 17-5z"/>
<glyph unicode="&#57387;" d="M444 125c3-3 4-6 4-10 0-4-1-7-4-10l-38-37c-3-3-5-4-9-4-4 0-7 1-10 4l-131 131-131-131c-3-3-5-4-9-4-4 0-7 1-10 4l-38 37c-3 3-4 6-4 10 0 4 1 7 4 10l132 131-132 130c-5 5-5 15 0 20l37 38c3 2 6 4 10 4 4 0 7-1 10-4l131-130 131 130c3 2 6 4 10 4 4 0 7-1 10-4l37-38c5-5 5-14 0-19l-132-130z"/>
<glyph unicode="&#57356;" d="M149 172l30-30c20 20 47 32 77 32 30 0 57-12 77-32l30 30c-27 28-65 45-107 45-42 0-80-17-107-45z m-69 69l30-30c38 37 89 60 146 60 57 0 108-23 146-60l30 30c-45 45-107 73-176 73-69 0-131-28-176-73z m176 170c-96 0-182-38-245-101l31-30c55 55 130 89 214 89 84 0 159-34 214-89l31 30c-63 63-149 101-245 101z m0-283c-18 0-32-14-32-32 0-18 14-32 32-32 18 0 32 14 32 32 0 18-14 32-32 32z"/>
<glyph unicode="&#57359;" d="M352 384l-96 0 0-320 96 0z m128-96l-96 0 0-224 96 0z m-448-256l0 64 32 0 0 32-32 0 0 64 32 0 0 32-32 0 0 64 32 0 0 32-32 0 0 64 32 0 0 32-32 0 0 64 32 0 0 32-64 0 0-512 512 0 0 32z m192 192l-96 0 0-160 96 0z"/>
<glyph unicode="&#57351;" d="M288 192l0-96 64 0-96-96-96 96 64 0 0 96z m-64 128l0 96-64 0 96 96 96-96-64 0 0-96z m-32-96l-96 0 0-64-96 96 96 96 0-64 96 0z m128 64l96 0 0 64 96-96-96-96 0 64-96 0z"/>
<glyph unicode="&#57373;" d="M431 389c0 0 4-2 4-2 13-7 23-18 31-32 7-13 10-29 10-49 0-44-19-80-56-107-36-28-89-41-157-41 0 0-15 0-15 0-6 0-11-2-17-6-5-5-9-9-10-15 0 0-18-80-18-80-4-14-13-21-27-21 0 0-54 0-54 0-6 0-11 2-15 6-3 5-4 10-3 15 0 0 3 13 3 13 0 0 35 0 35 0 6 0 11 2 17 6 5 5 8 10 10 15 0 0 18 80 18 80 4 14 13 20 27 20 0 0 15 0 15 0 67 0 119 14 157 41 37 28 56 64 56 108 0 19-4 35-11 49m-297-264c-1-6-4-10-9-15-6-4-11-7-17-7 0 0-55 0-55 0-6 0-11 3-14 7-3 5-4 9-2 15 0 0 77 331 77 331 3 13 12 20 26 20 0 0 115 0 115 0 26 0 48-1 64-4 19-4 36-10 48-17 13-9 23-19 30-32 7-13 10-29 10-49 0-45-18-80-56-108-36-27-88-41-156-41 0 0-16 0-16 0-5 0-11-2-16-6-6-4-9-9-10-14 0 0-19-80-19-80m45 191c-1-5 0-10 3-14 4-4 8-6 13-6 0 0 15 0 15 0 29 0 52 6 68 18 17 12 25 29 25 51 0 15-5 25-15 32-11 7-27 11-49 11 0 0-17 0-17 0-14 0-23-7-27-21 0 0-16-71-16-71"/>
<glyph unicode="&#57374;" d="M293 119l0 54c0 3-1 5-3 7-2 2-4 3-7 3l-54 0c-3 0-5-1-7-3-2-2-3-4-3-7l0-54c0-3 1-5 3-7 2-1 4-2 7-2l54 0c3 0 5 1 7 2 2 2 3 4 3 7z m-1 107l5 131c0 2-1 4-3 6-2 2-4 3-7 3l-62 0c-3 0-5-1-7-3-2-2-3-4-3-6l5-131c0-2 1-3 3-5 1-1 4-2 6-2l53 0c3 0 5 1 7 2 2 2 3 3 3 5z m-4 267l219-402c7-12 7-24 0-36-3-6-8-10-13-14-6-3-12-4-19-4l-438 0c-7 0-13 1-19 4-5 4-10 8-13 14-7 12-7 24 0 36l219 402c3 6 8 10 13 14 6 3 12 5 19 5 7 0 13-2 19-5 5-4 10-8 13-14z"/>
</font></defs></svg>

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

View File

@ -0,0 +1,16 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg">
<metadata>Generated by IcoMoon</metadata>
<defs>
<font id="icomoon" horiz-adv-x="1024">
<font-face units-per-em="1024" ascent="960" descent="-64" />
<missing-glyph horiz-adv-x="1024" />
<glyph unicode="&#x20;" horiz-adv-x="512" d="" />
<glyph unicode="&#xe20a;" glyph-name="expand_less" d="M512 596.667l256-256-60-60-196 196-196-196-60 60z" />
<glyph unicode="&#xe20b;" glyph-name="expand_more" d="M708 572.667l60-60-256-256-256 256 60 60 196-196z" />
<glyph unicode="&#xe20e;" glyph-name="menu" d="M128 682.667h768v-86h-768v86zM128 384.667v84h768v-84h-768zM128 170.667v86h768v-86h-768z" />
<glyph unicode="&#xe291;" glyph-name="favorite" d="M512 28.667l-62 56q-106 96-154 142t-107 114-81 123-22 113q0 98 67 166t167 68q116 0 192-90 76 90 192 90 100 0 167-68t67-166q0-78-52-162t-113-146-199-186z" />
<glyph unicode="&#xe603;" glyph-name="spinner9" d="M512 960c-278.748 0-505.458-222.762-511.848-499.974 5.92 241.864 189.832 435.974 415.848 435.974 229.75 0 416-200.576 416-448 0-53.020 42.98-96 96-96s96 42.98 96 96c0 282.77-229.23 512-512 512zM512-64c278.748 0 505.458 222.762 511.848 499.974-5.92-241.864-189.832-435.974-415.848-435.974-229.75 0-416 200.576-416 448 0 53.020-42.98 96-96 96s-96-42.98-96-96c0-282.77 229.23-512 512-512z" />
<glyph unicode="&#xf059;" glyph-name="question-circle" horiz-adv-x="878" d="M512 164.571v109.714q0 8-5.143 13.143t-13.143 5.143h-109.714q-8 0-13.143-5.143t-5.143-13.143v-109.714q0-8 5.143-13.143t13.143-5.143h109.714q8 0 13.143 5.143t5.143 13.143zM658.286 548.571q0 50.286-31.714 93.143t-79.143 66.286-97.143 23.429q-138.857 0-212-121.714-8.571-13.714 4.571-24l75.429-57.143q4-3.429 10.857-3.429 9.143 0 14.286 6.857 30.286 38.857 49.143 52.571 19.429 13.714 49.143 13.714 27.429 0 48.857-14.857t21.429-33.714q0-21.714-11.429-34.857t-38.857-25.714q-36-16-66-49.429t-30-71.714v-20.571q0-8 5.143-13.143t13.143-5.143h109.714q8 0 13.143 5.143t5.143 13.143q0 10.857 12.286 28.286t31.143 28.286q18.286 10.286 28 16.286t26.286 20 25.429 27.429 16 34.571 7.143 46.286zM877.714 438.857q0-119.429-58.857-220.286t-159.714-159.714-220.286-58.857-220.286 58.857-159.714 159.714-58.857 220.286 58.857 220.286 159.714 159.714 220.286 58.857 220.286-58.857 159.714-159.714 58.857-220.286z" />
</font></defs></svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 523 KiB

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,238 @@
/**
* InfinityFreedom is a clean HTML5 theme for LuCI. It is based on luci-theme-material.
*
* luci-theme-infinityfreedom
* Copyright 2020 Richard Yu <xiaoqingfengatgm@gmail.com>
*
* Have a bug? Please create an issue here on GitHub!
* https://github.com/xiaoqingfengATGH/luci-theme-infinityfreedom/issues
*
* luci-theme-material:
* Copyright 2015 Lutty Yang
*
* luci-theme-bootstrap:
* Copyright 2008 Steven Barth <steven@midlink.org>
* Copyright 2008-2016 Jo-Philipp Wich <jow@openwrt.org>
* Copyright 2012 David Menting <david@nut-bolt.nl>
* MUI:
* https://github.com/muicss/mui
*
* Licensed to the public under the Apache License 2.0
*/
(function ($) {
$(".main > .loading").fadeOut();
/**
* trim text, Remove spaces, wrap
* @param text
* @returns {string}
*/
function trimText(text) {
return text.replace(/[ \t\n\r]+/g, " ");
}
var lastNode = undefined;
var mainNodeName = undefined;
var nodeUrl = "";
(function(node){
if (node[0] == "admin"){
luciLocation = [node[1], node[2]];
}else{
luciLocation = node;
}
for(var i in luciLocation){
nodeUrl += luciLocation[i];
if (i != luciLocation.length - 1){
nodeUrl += "/";
}
}
})(luciLocation);
/**
* get the current node by Burl (primary)
* @returns {boolean} success?
*/
function getCurrentNodeByUrl() {
var ret = false;
if (!$('body').hasClass('logged-in')) {
luciLocation = ["Main", "Login"];
return true;
}
$(".main > .main-left > .nav > .slide > .menu").each(function () {
var ulNode = $(this);
ulNode.next().find("a").each(function () {
var that = $(this);
var href = that.attr("href");
if (href.indexOf(nodeUrl) != -1) {
ulNode.click();
ulNode.next(".slide-menu").stop(true, true);
lastNode = that.parent();
lastNode.addClass("active");
ret = true;
return true;
}
});
});
return ret;
}
/**
* menu click
*/
$(".main > .main-left > .nav > .slide > .menu").click(function () {
var ul = $(this).next(".slide-menu");
var menu = $(this);
if (!ul.is(":visible")) {
menu.addClass("active");
ul.addClass("active");
ul.stop(true).slideDown("fast");
} else {
ul.stop(true).slideUp("fast", function () {
menu.removeClass("active");
ul.removeClass("active");
});
}
return false;
});
/**
* hook menu click and add the hash
*/
$(".main > .main-left > .nav > .slide > .slide-menu > li > a").click(function () {
if (lastNode != undefined) lastNode.removeClass("active");
$(this).parent().addClass("active");
$(".main > .loading").fadeIn("fast");
return true;
});
/**
* fix menu click
*/
$(".main > .main-left > .nav > .slide > .slide-menu > li").click(function () {
if (lastNode != undefined) lastNode.removeClass("active");
$(this).addClass("active");
$(".main > .loading").fadeIn("fast");
window.location = $($(this).find("a")[0]).attr("href");
return false;
});
/**
* get current node and open it
*/
if (getCurrentNodeByUrl()) {
mainNodeName = "node-" + luciLocation[0] + "-" + luciLocation[1];
mainNodeName = mainNodeName.replace(/[ \t\n\r\/]+/g, "_").toLowerCase();
$("body").addClass(mainNodeName);
}
$(".cbi-button-up").val("");
$(".cbi-button-down").val("");
/**
* hook other "A Label" and add hash to it.
*/
$("#maincontent > .container").find("a").each(function () {
var that = $(this);
var onclick = that.attr("onclick");
if (onclick == undefined || onclick == "") {
that.click(function () {
var href = that.attr("href");
if (href.indexOf("#") == -1) {
$(".main > .loading").fadeIn("fast");
return true;
}
});
}
});
/**
* Sidebar expand
*/
var showSide = false;
$(".showSide").click(function () {
if (showSide) {
$(".darkMask").stop(true).fadeOut("fast");
$(".main-left").stop(true).animate({
width: "0"
}, "fast");
$(".main-right").css("overflow-y", "auto");
showSide = false;
} else {
$(".darkMask").stop(true).fadeIn("fast");
$(".main-left").stop(true).animate({
width: "15rem"
}, "fast");
$(".main-right").css("overflow-y", "hidden");
showSide = true;
}
});
$(".darkMask").click(function () {
if (showSide) {
showSide = false;
$(".darkMask").stop(true).fadeOut("fast");
$(".main-left").stop(true).animate({
width: "0"
}, "fast");
$(".main-right").css("overflow-y", "auto");
}
});
$(window).resize(function () {
if ($(window).width() > 921) {
$(".main-left").css("width", "");
$(".darkMask").stop(true);
$(".darkMask").css("display", "none");
showSide = false;
}
});
/**
* fix legend position
*/
$("legend").each(function () {
var that = $(this);
that.after("<span class='panel-title'>" + that.text() + "</span>");
});
/*fix vlan prot*/
/*$(".cbi-section-table-titles, .cbi-section-table-descr, .cbi-section-descr").each(function () {
var that = $(this);
if (that.text().trim() == ""){
that.css("display", "none");
}
});*/
$(".main-right").focus();
$(".main-right").blur();
$("input").attr("size", "0");
if (mainNodeName != undefined) {
console.log(mainNodeName);
switch (mainNodeName) {
case "node-status-system_log":
case "node-status-kernel_log":
$("#syslog").focus(function () {
$("#syslog").blur();
$(".main-right").focus();
$(".main-right").blur();
});
break;
case "node-status-firewall":
var button = $(".node-status-firewall > .main fieldset li > a");
button.addClass("cbi-button cbi-button-reset a-to-btn");
break;
case "node-system-reboot":
var button = $(".node-system-reboot > .main > .main-right p > a");
button.addClass("cbi-button cbi-input-reset a-to-btn");
break;
}
}
})(jQuery);

Binary file not shown.

After

Width:  |  Height:  |  Size: 217 KiB

View File

@ -0,0 +1,53 @@
<%#
InfinityFreedom is a clean HTML5 theme for LuCI. It is based on luci-theme-material.
luci-theme-infinityfreedom
Copyright 2020 Richard Yu <xiaoqingfengatgm@gmail.com>
Have a bug? Please create an issue here on GitHub!
https://github.com/xiaoqingfengATGH/luci-theme-infinityfreedom/issues
luci-theme-material:
Copyright 2015 Lutty Yang
luci-theme-bootstrap:
Copyright 2008 Steven Barth <steven@midlink.org>
Copyright 2008-2016 Jo-Philipp Wich <jow@openwrt.org>
Copyright 2012 David Menting <david@nut-bolt.nl>
MUI:
https://github.com/muicss/mui
Licensed to the public under the Apache License 2.0
-%>
<%
local ver = require "luci.version"
local disp = require "luci.dispatcher"
local request = disp.context.path
local category = request[1]
local tree = disp.node()
local categories = disp.node_childs(tree)
%>
</div>
<footer class="mobile-hide">
<a href="https://github.com/openwrt/luci">Powered by <%= ver.luciname %> (<%= ver.luciversion %>)</a> /
<%= ver.distversion %>
<% if #categories > 1 then %>
<ul class="breadcrumb pull-right" id="modemenu">
<% for i, r in ipairs(categories) do %>
<li<% if request[1] == r then %> class="active"<%end%>><a href="<%=controller%>/<%=r%>/"><%=striptags(translate(tree.nodes[r].title))%></a> <span class="divider">|</span></li>
<% end %>
</ul>
<% end %>
</footer>
</div>
</div>
<script>
// thanks for Jo-Philipp Wich <jow@openwrt.org>
var luciLocation = <%= luci.http.write_json(luci.dispatcher.context.path) %>;
</script>
<script src="<%=media%>/js/script.js"></script>
</body>
</html>

View File

@ -0,0 +1,279 @@
<%#
InfinityFreedom is a clean HTML5 theme for LuCI. It is based on luci-theme-material.
luci-theme-infinityfreedom
Copyright 2020 Richard Yu <xiaoqingfengatgm@gmail.com>
Have a bug? Please create an issue here on GitHub!
https://github.com/xiaoqingfengATGH/luci-theme-infinityfreedom/issues
luci-theme-material:
Copyright 2015 Lutty Yang
luci-theme-bootstrap:
Copyright 2008 Steven Barth <steven@midlink.org>
Copyright 2008-2016 Jo-Philipp Wich <jow@openwrt.org>
Copyright 2012 David Menting <david@nut-bolt.nl>
MUI:
https://github.com/muicss/mui
Licensed to the public under the Apache License 2.0
-%>
<%
local ver = require "luci.version"
local sys = require "luci.sys"
local util = require "luci.util"
local http = require "luci.http"
local disp = require "luci.dispatcher"
local boardinfo = util.ubus("system", "board")
local boardinfo={}
boardinfo.hostname=sys.hostname()
local request = disp.context.path
local request2 = disp.context.request
local category = request[1]
local cattree = category and disp.node(category)
local leaf = request2[#request2]
local tree = disp.node()
local node = disp.context.dispatched
local categories = disp.node_childs(tree)
local c = tree
local i, r
-- tag all nodes leading to this page
for i, r in ipairs(request) do
if c.nodes and c.nodes[r] then
c = c.nodes[r]
c._menu_selected = true
end
end
-- send as HTML5
http.prepare_content("text/html")
local function nodeurl(prefix, name, query)
local u = url(prefix, name)
if query then
u = u .. http.build_querystring(query)
end
return pcdata(u)
end
local function render_tabmenu(prefix, node, level)
if not level then
level = 1
end
local childs = disp.node_childs(node)
if #childs > 0 then
if level > 2 then
write('<ul class="tabs">')
end
local selected_node
local selected_name
local i, v
for i, v in ipairs(childs) do
local nnode = node.nodes[v]
if nnode._menu_selected then
selected_node = nnode
selected_name = v
end
if level > 2 then
write('<li class="tabmenu-item-%s %s"><a href="%s">%s</a></li>' %{
v, (nnode._menu_selected or (node.leaf and v == leaf)) and 'active' or '',
nodeurl(prefix, v, nnode.query),
striptags(translate(nnode.title))
})
end
end
if level > 2 then
write('</ul>')
end
if selected_node then
render_tabmenu(prefix .. "/" .. selected_name, selected_node, level + 1)
end
end
end
local function render_submenu(prefix, node)
local childs = disp.node_childs(node)
if #childs > 0 then
write('<ul class="slide-menu">')
for i, r in ipairs(childs) do
local nnode = node.nodes[r]
local title = pcdata(striptags(translate(nnode.title)))
write('<li><a data-title="%s" href="%s">%s</a></li>' %{
title,
nodeurl(prefix, r, nnode.query),
title
})
end
write('</ul>')
end
end
local function render_topmenu()
local childs = disp.node_childs(cattree)
if #childs > 0 then
write('<ul class="nav">')
for i, r in ipairs(childs) do
local nnode = cattree.nodes[r]
local grandchildren = disp.node_childs(nnode)
if #grandchildren > 0 then
local title = pcdata(striptags(translate(nnode.title)))
write('<li class="slide"><a class="menu" data-title="%s" href="#">%s</a>' %{
pcdata(striptags(nnode.title)),
title
})
render_submenu(category .. "/" .. r, nnode)
write('</li>')
else
local title = pcdata(striptags(translate(nnode.title)))
write('<li><a data-title="%s" href="%s">%s</a></li>' %{
pcdata(striptags(nnode.title)),
nodeurl(category, r, nnode.query),
title
})
end
end
write('</ul>')
end
end
local function render_changes()
-- calculate the number of unsaved changes
if tree.nodes[category] and tree.nodes[category].ucidata then
local ucichanges = 0
for i, j in pairs(require("luci.model.uci").cursor():changes()) do
for k, l in pairs(j) do
for m, n in pairs(l) do
ucichanges = ucichanges + 1;
end
end
end
if ucichanges > 0 then
write('<a class="uci_change_indicator label notice" href="%s?redir=%s">%s: %d</a>' %{
url(category, 'uci/changes'),
http.urlencode(http.formvalue('redir') or table.concat(disp.context.request, "/")),
translate('Unsaved Changes'),
ucichanges
})
end
end
end
-%>
<!DOCTYPE html>
<html lang="<%=luci.i18n.context.lang%>">
<head>
<meta charset="utf-8">
<title><%=striptags( (boardinfo.hostname or "?") .. ( (node and node.title) and ' - ' .. translate(node.title) or '')) %> - LuCI</title>
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport"/>
<meta name="format-detection" content="telephone=no, email=no"/>
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="mobile-web-app-capable" content="yes">
<meta name="x5-fullscreen" content="true">
<meta name="full-screen" content="yes">
<meta name="x5-page-mode" content="app">
<meta name="browsermode" content="application">
<meta name="theme-color" content="#0099CC">
<meta name="msapplication-tap-highlight" content="no">
<meta name="msapplication-TileColor" content="#0099CC">
<meta name="application-name" content="<%=striptags( (boardinfo.hostname or "?") ) %> - LuCI">
<meta name="apple-mobile-web-app-title" content="<%=striptags( (boardinfo.hostname or "?") ) %> - LuCI">
<meta name="msapplication-TileImage" content="<%=media%>/logo.png"/>
<link rel="icon" href="<%=media%>/logo.png" sizes="144x144">
<link rel="apple-touch-icon-precomposed" href="<%=media%>/logo.png" sizes="144x144">
<link rel="stylesheet" href="<%=media%>/css/style.css">
<link rel="shortcut icon" href="<%=media%>/favicon.ico">
<% if node and node.css then %>
<link rel="stylesheet" href="<%=resource%>/<%=node.css%>">
<% end -%>
<% if css then %>
<style title="text/css"><%= css %></style>
<% end -%>
<script src="<%=resource%>/xhr.js"></script>
<script src="<%=media%>/js/jquery.min.js"></script>
</head>
<body class="lang_<%=luci.i18n.context.lang%> <%- if node then %><%= striptags( node.title ) %><%- end %> <% if luci.dispatcher.context.authsession then %>logged-in<% end %>">
<header>
<div class="container">
<span class="showSide"></span>
<a class="brand" href="#"><%="OpenWrt"%></a>
<div class="pull-right">
<% render_changes() %>
<span id="xhr_poll_status" style="display:none" onclick="XHR.running() ? XHR.halt() : XHR.run()">
<span class="label success" id="xhr_poll_status_on"><span class="mobile-hide"><%:Auto Refresh%></span> <%:on%></span>
<span class="label" id="xhr_poll_status_off" style="display:none"><span class="mobile-hide"><%:Auto Refresh%></span> <%:off%></span>
</span>
</div>
</div>
</header>
<script>
var brandurl = '/luci-static/infinityfreedom/images/brand.png';
$.ajax({
url : brandurl,
type : 'HEAD',
error : function() {
var brand = $("body > header > div > a.brand");
brand.addClass('brandMark');
},
success : function() {
var brandContainer = $("header > .container > .brand");
brandContainer.css("background", "url(" + brandurl + ") 50% 50%/cover no-repeat rgba(7,34,62,.8)");
brandContainer.css("background-size", "171px 50px");
var brand = $("body > header > div > a.brand");
brand.html('');
}
});
</script>
<div class="main">
<div style="" class="loading"><span><div class="loading-img"></div>Loading...</span></div>
<div class="main-left">
<% render_topmenu() %>
</div>
<div class="main-right">
<div class="darkMask"></div>
<div id="maincontent">
<div class="container">
<%- if luci.sys.process.info("uid") == 0 and luci.sys.user.getuser("root") and not luci.sys.user.getpasswd("root") then -%>
<div class="alert-message warning">
<h4><%:No password set!%></h4>
<p><%:There is no password set on this router. Please configure a root password to protect the web interface and enable SSH.%></p>
<div class="right"><a class="btn" href="<%=url("admin/system/admin")%>"><%:Go to password configuration...%></a></div>
</div>
<%- end -%>
<noscript>
<div class="alert-message warning">
<h4><%:JavaScript required!%></h4>
<p><%:You must enable JavaScript in your browser or LuCI will not work properly.%></p>
</div>
</noscript>
<% if category then render_tabmenu(category, cattree) end %>