luci-app-banip: sync with banIP 0.7.0
[project/luci.git] / applications / luci-app-banip / htdocs / luci-static / resources / view / banip / whitelist.js
1 'use strict';
2 'require view';
3 'require fs';
4 'require ui';
5
6 return view.extend({
7 load: function() {
8 return L.resolveDefault(fs.read_direct('/etc/banip/banip.whitelist'), '');
9 },
10 handleSave: function(ev) {
11 var value = ((document.querySelector('textarea').value || '').trim().toLowerCase().replace(/\r\n/g, '\n')) + '\n';
12 return fs.write('/etc/banip/banip.whitelist', value)
13 .then(function(rc) {
14 document.querySelector('textarea').value = value;
15 ui.addNotification(null, E('p', _('Whitelist changes have been saved. Refresh your banIP lists that changes take effect.')), 'info');
16 }).catch(function(e) {
17 ui.addNotification(null, E('p', _('Unable to save changes: %s').format(e.message)));
18 });
19 },
20 render: function(whitelist) {
21 return E([
22 E('p', {},
23 _('This is the local banIP whitelist to always allow certain IP/CIDR addresses.<br /> \
24 <em><b>Please note:</b></em> add only one IPv4 or IPv6 address or per line. Comments introduced with \'#\' are allowed - domains, wildcards and regex are not.')),
25 E('p', {},
26 E('textarea', {
27 'style': 'width: 100% !important; padding: 5px; font-family: monospace',
28 'spellcheck': 'false',
29 'wrap': 'off',
30 'rows': 25
31 }, [ whitelist != null ? whitelist : '' ])
32 )
33 ]);
34 },
35 handleSaveApply: null,
36 handleReset: null
37 });