gluon-luci-theme: add HTML and URL escaping utility functions

This commit is contained in:
Matthias Schiffer 2016-08-27 12:14:35 +02:00
parent 81280d8e18
commit 79a49a1515
No known key found for this signature in database
GPG Key ID: 16EF3F64CB201D9C
3 changed files with 35 additions and 4 deletions

View File

@ -9,7 +9,7 @@ PKG_RELEASE:=1
PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME) PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
include $(INCLUDE_DIR)/package.mk include $(GLUONDIR)/include/package.mk
define Package/gluon-luci-theme define Package/gluon-luci-theme
@ -31,10 +31,12 @@ define Build/Configure
endef endef
define Build/Compile define Build/Compile
$(call GluonSrcDiet,./luasrc,$(PKG_BUILD_DIR)/luadest/)
endef endef
define Package/gluon-luci-theme/install define Package/gluon-luci-theme/install
$(CP) ./files/* $(1)/ $(CP) ./files/* $(1)/
$(CP) $(PKG_BUILD_DIR)/luadest/* $(1)/
endef endef
$(eval $(call BuildPackage,gluon-luci-theme)) $(eval $(call BuildPackage,gluon-luci-theme))

View File

@ -17,6 +17,7 @@ $Id$
local http = require "luci.http" local http = require "luci.http"
local disp = require "luci.dispatcher" local disp = require "luci.dispatcher"
local fs = require "nixio.fs" local fs = require "nixio.fs"
local gluon_luci = require "gluon.luci"
local hostname = sys.hostname() local hostname = sys.hostname()
local release = fs.readfile("/lib/gluon/release") local release = fs.readfile("/lib/gluon/release")
@ -110,15 +111,15 @@ $Id$
</style> </style>
<% end -%> <% end -%>
<script type="text/javascript" src="<%=resource%>/xhr.js"></script> <script type="text/javascript" src="<%=resource%>/xhr.js"></script>
<title><%=striptags( hostname .. ( (node and node.title) and ' - ' .. translate(node.title) or '')) %> - LuCI</title> <title><%=gluon_luci.escape( hostname .. ( (node and node.title) and ' - ' .. translate(node.title) or '')) %> - LuCI</title>
</head> </head>
<body class="lang_<%=luci.i18n.context.lang%>"> <body class="lang_<%=luci.i18n.context.lang%>">
<div id="menubar"> <div id="menubar">
<div class="hostinfo"> <div class="hostinfo">
<%=hostname%> <%=gluon_luci.escape(hostname)%>
<% if release then %> <% if release then %>
/ <%=release%> / <%=gluon_luci.escape(release)%>
<% end %> <% end %>
<span id="xhr_poll_status" style="display:none" onclick="XHR.running() ? XHR.halt() : XHR.run()"> <span id="xhr_poll_status" style="display:none" onclick="XHR.running() ? XHR.halt() : XHR.run()">
| <%:Auto Refresh%>: | <%:Auto Refresh%>:

View File

@ -0,0 +1,28 @@
-- Config mode utility functions
local string = string
module 'gluon.luci'
function escape(s)
return (string.gsub(s, '[<>&"]', {
['<'] = '&lt;',
['>'] = '&gt;',
['&'] = '&amp;',
['"'] = '&quot;',
}))
end
function urlescape(s)
return (string.gsub(s, '[^a-zA-Z0-9%-_%.~]',
function(c)
local ret = ''
for i = 1, string.len(c) do
ret = ret .. string.format('%%%02X', string.byte(c, i, i))
end
return ret
end
))
end