From 931531310e2f125ec905b061ab0bbf43236704d1 Mon Sep 17 00:00:00 2001
From: Dirk Brenken <dev@brenken.org>
Date: Fri, 5 Jan 2018 18:56:39 +0100
Subject: [PATCH] luci-app-adblock: sync with adblock 3.4.1

* refine logfile search term
* textarea 'autoscroll down' in logfile view
* left-align blocklist source table plus a more compact design

Signed-off-by: Dirk Brenken <dev@brenken.org>
---
 .../luasrc/controller/adblock.lua             |  6 +-
 .../luasrc/model/cbi/adblock/overview_tab.lua |  9 ++-
 .../luasrc/view/adblock/blocklist.htm         | 80 +++++++++++++++++++
 .../luasrc/view/adblock/logread.htm           |  8 +-
 4 files changed, 95 insertions(+), 8 deletions(-)
 create mode 100644 applications/luci-app-adblock/luasrc/view/adblock/blocklist.htm

diff --git a/applications/luci-app-adblock/luasrc/controller/adblock.lua b/applications/luci-app-adblock/luasrc/controller/adblock.lua
index b74858400..0cfbb5f7f 100644
--- a/applications/luci-app-adblock/luasrc/controller/adblock.lua
+++ b/applications/luci-app-adblock/luasrc/controller/adblock.lua
@@ -1,4 +1,4 @@
--- Copyright 2017 Dirk Brenken (dev@brenken.org)
+-- Copyright 2017-2018 Dirk Brenken (dev@brenken.org)
 -- This is free software, licensed under the Apache License, Version 2.0
 
 module("luci.controller.adblock", package.seeall)
@@ -27,9 +27,9 @@ function logread()
 	local logfile
 
 	if nixio.fs.access("/var/log/messages") then
-		logfile = util.trim(util.exec("cat /var/log/messages | grep 'adblock'"))
+		logfile = util.trim(util.exec("cat /var/log/messages | grep -F 'adblock-'"))
 	else
-		logfile = util.trim(util.exec("logread -e 'adblock'"))
+		logfile = util.trim(util.exec("logread -e 'adblock-'"))
 	end
 	templ.render("adblock/logread", {title = i18n.translate("Adblock Logfile"), content = logfile})
 end
diff --git a/applications/luci-app-adblock/luasrc/model/cbi/adblock/overview_tab.lua b/applications/luci-app-adblock/luasrc/model/cbi/adblock/overview_tab.lua
index d0453f7d9..499b8dc7a 100644
--- a/applications/luci-app-adblock/luasrc/model/cbi/adblock/overview_tab.lua
+++ b/applications/luci-app-adblock/luasrc/model/cbi/adblock/overview_tab.lua
@@ -1,4 +1,4 @@
--- Copyright 2017 Dirk Brenken (dev@brenken.org)
+-- Copyright 2017-2018 Dirk Brenken (dev@brenken.org)
 -- This is free software, licensed under the Apache License, Version 2.0
 
 local fs       = require("nixio.fs")
@@ -162,8 +162,8 @@ end
 bl = m:section(TypedSection, "source", translate("Blocklist Sources"),
 	translate("Available blocklist sources. ")
 	.. translate("List URLs and Shallalist category selections are configurable in the 'Advanced' section.<br />")
-	.. translate("Caution: To prevent OOM exceptions on low memory devices with less than 64 MB free RAM, please do not select too many lists - 5-6 should be sufficient!"))
-bl.template = "cbi/tblsection"
+	.. translate("Caution: To prevent OOM exceptions on low memory devices with less than 64 MB free RAM, please do not select more than five blocklist sources!"))
+bl.template = "adblock/blocklist"
 
 name = bl:option(Flag, "enabled", translate("Enabled"))
 name.rmempty = false
@@ -234,7 +234,8 @@ e9.default = e9.disabled
 e9.rmempty = true
 
 e10 = e:option(Value, "adb_notifycnt", translate("Email Notification Count"),
-translate("Raise minimum domain count email notification trigger, to get emails if the overall count is &le; the given limit (default 0)."))
+	translate("Raise the minimum email notification count, to get emails if the overall count is less or equal to the given limit (default 0),<br />")
+	.. translate("e.g. to receive an email notification with every adblock update set this value to 150000."))
 e10.default = 0
 e10.datatype = "min(0)"
 e10.optional = true
diff --git a/applications/luci-app-adblock/luasrc/view/adblock/blocklist.htm b/applications/luci-app-adblock/luasrc/view/adblock/blocklist.htm
new file mode 100644
index 000000000..aae64075f
--- /dev/null
+++ b/applications/luci-app-adblock/luasrc/view/adblock/blocklist.htm
@@ -0,0 +1,80 @@
+<%#
+Copyright 2017-2018 Dirk Brenken (dev@brenken.org)
+This is free software, licensed under the Apache License, Version 2.0
+-%>
+
+<%-
+local rowcnt = 1
+function rowstyle()
+	rowcnt = rowcnt + 1
+	return (rowcnt % 2) + 1
+end
+
+function width(o)
+	if o.width then
+		if type(o.width) == 'number' then
+			return ' style="width:%dpx"' % o.width
+		end
+		return ' style="width:%s"' % o.width
+	end
+	return ''
+end
+-%>
+
+<style type="text/css">
+<!--
+.cbi-section-table-cell,
+.cbi-section-table-row
+{
+	text-align:left;
+	margin-right:auto;
+	margin-left:0px;
+}
+-->
+</style>
+
+<fieldset class="cbi-section" id="cbi-<%=self.config%>-<%=self.sectiontype%>">
+	<% if self.title then -%>
+		<legend><%=self.title%></legend>
+	<%- end %>
+	<div class="cbi-section-descr"><%=self.description%></div>
+	<div class="cbi-section-node">
+		<%- local count = 0 -%>
+		<table class="cbi-section-table">
+			<tr class="cbi-section-table-titles">
+			<%- if self.sectionhead then -%>
+				<th class="cbi-section-table-cell"><%=self.sectionhead%></th>
+			<%- else -%>
+				<th>&#160;</th>
+			<%- end -%>
+			<%- for i, k in pairs(self.children) do -%>
+				<th class="cbi-section-table-cell"<%=width(k)%>>
+					<%-=k.title-%>
+				</th>
+			<%- count = count + 1; end; -%>
+			</tr>
+			<%- local isempty = true
+				for i, k in ipairs(self:cfgsections()) do
+					section = k
+					isempty = false
+					scope = { valueheader = "cbi/cell_valueheader", valuefooter = "cbi/cell_valuefooter" }
+			-%>
+			<tr class="cbi-section-table-row" id="cbi-<%=self.config%>-<%=section%>">
+					<th><%=k%></th>
+				<%-
+					for k, node in ipairs(self.children) do
+						if not node.optional then
+							node:render(section, scope or {})
+						end
+					end
+				-%>
+			</tr>
+			<%- end -%>
+			<%- if isempty then -%>
+			<tr class="cbi-section-table-row">
+				<td colspan="<%=count%>"><em><br /><%:This section contains no values yet%></em></td>
+			</tr>
+			<%- end -%>
+		</table>
+	</div>
+</fieldset>
diff --git a/applications/luci-app-adblock/luasrc/view/adblock/logread.htm b/applications/luci-app-adblock/luasrc/view/adblock/logread.htm
index 5e25a549c..082ec806f 100644
--- a/applications/luci-app-adblock/luasrc/view/adblock/logread.htm
+++ b/applications/luci-app-adblock/luasrc/view/adblock/logread.htm
@@ -1,5 +1,5 @@
 <%#
-Copyright 2017 Dirk Brenken (dev@brenken.org)
+Copyright 2017-2018 Dirk Brenken (dev@brenken.org)
 This is free software, licensed under the Apache License, Version 2.0
 -%>
 
@@ -11,4 +11,10 @@ This is free software, licensed under the Apache License, Version 2.0
 		<textarea id="logread_id" style="width: 100%; height: 450px; border: 1px solid #cccccc; padding: 5px; font-size: 12px; font-family: monospace; resize: none;" readonly="readonly" wrap="off" rows="<%=content:cmatch("\n")+2%>"><%=content:pcdata()%></textarea>
 	</fieldset>
 </div>
+
+<script type="text/javascript">
+	var textarea = document.getElementById('logread_id');
+	textarea.scrollTop = textarea.scrollHeight;
+</script>
+
 <%+footer%>
-- 
2.25.1