diff --git a/package/gluon-luci-theme/Makefile b/package/gluon-luci-theme/Makefile index 2348e97917cbd811d33370684255308bd9a74420..72c92edd1dcc450e425585f5c8288729ca56f4e0 100644 --- a/package/gluon-luci-theme/Makefile +++ b/package/gluon-luci-theme/Makefile @@ -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)) diff --git a/package/gluon-luci-theme/files/usr/lib/lua/luci/view/themes/gluon/header.htm b/package/gluon-luci-theme/files/usr/lib/lua/luci/view/themes/gluon/header.htm index 2fe1004b94b09833daa1f15c02e1b8ee045a2dbc..68d114b5ce0502b92a991e459805f0d63d09cfb9 100644 --- a/package/gluon-luci-theme/files/usr/lib/lua/luci/view/themes/gluon/header.htm +++ b/package/gluon-luci-theme/files/usr/lib/lua/luci/view/themes/gluon/header.htm @@ -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%>: diff --git a/package/gluon-luci-theme/luasrc/usr/lib/lua/gluon/luci.lua b/package/gluon-luci-theme/luasrc/usr/lib/lua/gluon/luci.lua new file mode 100644 index 0000000000000000000000000000000000000000..6d027827340a783e1e9e8adde0173d847bc5413f --- /dev/null +++ b/package/gluon-luci-theme/luasrc/usr/lib/lua/gluon/luci.lua @@ -0,0 +1,28 @@ +-- Config mode utility functions + +local string = string + +module 'gluon.luci' + +function escape(s) + return (string.gsub(s, '[<>&"]', { + ['<'] = '<', + ['>'] = '>', + ['&'] = '&', + ['"'] = '"', + })) +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