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)
include $(INCLUDE_DIR)/package.mk
include $(GLUONDIR)/include/package.mk
define Package/gluon-luci-theme
@ -31,10 +31,12 @@ define Build/Configure
endef
define Build/Compile
$(call GluonSrcDiet,./luasrc,$(PKG_BUILD_DIR)/luadest/)
endef
define Package/gluon-luci-theme/install
$(CP) ./files/* $(1)/
$(CP) $(PKG_BUILD_DIR)/luadest/* $(1)/
endef
$(eval $(call BuildPackage,gluon-luci-theme))

View File

@ -17,6 +17,7 @@ $Id$
local http = require "luci.http"
local disp = require "luci.dispatcher"
local fs = require "nixio.fs"
local gluon_luci = require "gluon.luci"
local hostname = sys.hostname()
local release = fs.readfile("/lib/gluon/release")
@ -110,15 +111,15 @@ $Id$
</style>
<% end -%>
<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>
<body class="lang_<%=luci.i18n.context.lang%>">
<div id="menubar">
<div class="hostinfo">
<%=hostname%>
<%=gluon_luci.escape(hostname)%>
<% if release then %>
/ <%=release%>
/ <%=gluon_luci.escape(release)%>
<% end %>
<span id="xhr_poll_status" style="display:none" onclick="XHR.running() ? XHR.halt() : XHR.run()">
| <%: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