Migrate UI cleanup phase 4 from MIPS into ARM
[tomato.git] / release / src-rt-6.x.4708 / router / www / admin-log.asp
blobe529ce891ec2c1b56e4823129a7309bb950fddd2
1 <!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.0//EN'>
2 <!--
3 Tomato GUI
4 Copyright (C) 2006-2010 Jonathan Zarate
5 http://www.polarcloud.com/tomato/
7 For use with Tomato Firmware only.
8 No part of this file may be used without permission.
9 -->
10 <html>
11 <head>
12 <meta http-equiv='content-type' content='text/html;charset=utf-8'>
13 <meta name='robots' content='noindex,nofollow'>
14 <meta name="viewport" content="width=device-width">
15 <title>[<% ident(); %>] Admin: Logging</title>
16 <link rel='stylesheet' type='text/css' href='tomato.css'>
17 <link rel='stylesheet' type='text/css' href='color.css'>
18 <script type='text/javascript' src='tomato.js'></script>
20 <!-- / / / -->
22 <script type='text/javascript' src='debug.js'></script>
24 <script type='text/javascript'>
26 // <% nvram("log_remote,log_remoteip,log_remoteport,log_file,log_file_custom,log_file_path,log_limit,log_in,log_out,log_mark,log_events,log_wm,log_wmtype,log_wmip,log_wmdmax,log_wmsmax,log_file_size,log_file_keep,webmon_bkp,webmon_dir,webmon_shrink"); %>
28 function verifyFields(focused, quiet)
30 var a, b, c;
32 a = E('_f_log_file').checked;
33 b = E('_f_log_remote').checked;
34 c = E('_f_log_file_custom').checked;
36 a = !(a || b);
37 E('_log_in').disabled = a;
38 E('_log_out').disabled = a;
39 E('_log_limit').disabled = a;
40 E('_log_mark').disabled = a;
41 E('_f_log_acre').disabled = a;
42 E('_f_log_crond').disabled = a;
43 E('_f_log_dhcpc').disabled = a;
44 E('_f_log_ntp').disabled = a;
45 E('_f_log_sched').disabled = a;
47 elem.display(PR('_log_remoteip'), b);
48 E('_log_remoteip').disabled = !b;
49 E('_log_remoteport').disabled = !b;
51 E('_f_log_file_custom').disabled = !E('_f_log_file').checked;
52 E('_log_file_path').disabled = !c || !E('_f_log_file').checked;
54 if (!a) {
55 if (!v_range('_log_limit', quiet, 0, 2400)) return 0;
56 if (!v_range('_log_mark', quiet, 0, 99999)) return 0;
57 if (b) {
58 c = E('_log_remoteip');
59 if (!v_ip(c, 1) && !v_domain(c, 1)) {
60 if (!quiet) ferror.show(c);
61 return 0;
63 if (!v_port('_log_remoteport', quiet)) return 0;
67 if (E('_f_log_file').checked) {
68 E('_log_file_size').disabled = 0;
69 if (!v_range('_log_file_size', quiet, 0, 99999)) return 0;
70 if (parseInt(E('_log_file_size').value) > 0) {
71 E('_log_file_keep').disabled = 0;
72 if (!v_range('_log_file_keep', quiet, 0, 99)) return 0;
73 } else {
74 E('_log_file_keep').disabled = 1;
76 } else {
77 E('_log_file_size').disabled = 1;
78 E('_log_file_keep').disabled = 1;
81 a = E('_f_log_wm').checked;
82 b = E('_log_wmtype').value != 0;
83 c = E('_f_webmon_bkp').checked;
84 E('_log_wmtype').disabled = !a;
85 E('_f_log_wmip').disabled = !a;
86 E('_log_wmdmax').disabled = !a;
87 E('_log_wmsmax').disabled = !a;
88 E('_f_webmon_bkp').disabled = !a;
89 E('_f_webmon_shrink').disabled = !a || !c;
90 E('_webmon_dir').disabled = !a || !c;
91 elem.display(PR('_f_log_wmip'), b);
93 if (a) {
94 if (b) {
95 if (!_v_iptaddr('_f_log_wmip', quiet, 15, 1, 1)) return 0;
97 if (!v_range('_log_wmdmax', quiet, 0, 9999)) return 0;
98 if (!v_range('_log_wmsmax', quiet, 0, 9999)) return 0;
101 return 1;
104 function save()
106 var a, fom;
108 if (!verifyFields(null, false)) return;
110 fom = E('_fom');
111 fom.log_remote.value = E('_f_log_remote').checked ? 1 : 0;
112 fom.log_file.value = E('_f_log_file').checked ? 1 : 0;
113 fom.log_file_custom.value = E('_f_log_file_custom').checked ? 1 : 0;
115 a = [];
116 if (E('_f_log_acre').checked) a.push('acre');
117 if (E('_f_log_crond').checked) a.push('crond');
118 if (E('_f_log_dhcpc').checked) a.push('dhcpc');
119 if (E('_f_log_ntp').checked) a.push('ntp');
120 if (E('_f_log_sched').checked) a.push('sched');
121 fom.log_events.value = a.join(',');
123 fom.log_wm.value = E('_f_log_wm').checked ? 1 : 0;
124 fom.log_wmip.value = fom.f_log_wmip.value.split(/\s*,\s*/).join(',');
125 fom.webmon_bkp.value = E('_f_webmon_bkp').checked ? 1 : 0;
126 fom.webmon_shrink.value = E('_f_webmon_shrink').checked ? 1 : 0;
128 form.submit(fom, 1);
130 </script>
132 </head>
133 <body>
134 <form id='_fom' method='post' action='tomato.cgi'>
135 <table id='container' cellspacing=0>
136 <tr><td colspan=2 id='header'>
137 <div class='title'>Tomato</div>
138 <div class='version'>Version <% version(); %></div>
139 </td></tr>
140 <tr id='body'><td id='navi'><script type='text/javascript'>navi()</script></td>
141 <td id='content'>
142 <div id='ident'><% ident(); %></div>
144 <!-- / / / -->
146 <input type='hidden' name='_nextpage' value='admin-log.asp'>
147 <input type='hidden' name='_service' value='logging-restart'>
149 <input type='hidden' name='log_remote'>
150 <input type='hidden' name='log_file'>
151 <input type='hidden' name='log_file_custom'>
152 <input type='hidden' name='log_events'>
154 <input type='hidden' name='log_wm'>
155 <input type='hidden' name='log_wmip'>
156 <input type='hidden' name='webmon_bkp'>
157 <input type='hidden' name='webmon_shrink'>
159 <script type='text/javascript'>
160 </script>
162 <div class='section-title'>Syslog</div>
163 <div class='section'>
164 <script type='text/javascript'>
166 /* REMOVE-BEGIN
167 // adjust (>=1.22)
168 nvram.log_mark *= 1;
169 if (nvram.log_mark >= 120) nvram.log_mark = 120;
170 else if (nvram.log_mark >= 60) nvram.log_mark = 60;
171 else if (nvram.log_mark > 0) nvram.log_mark = 30;
172 else nvram.log_mark = 0;
173 REMOVE-END */
175 createFieldTable('', [
176 { title: 'Log Internally', name: 'f_log_file', type: 'checkbox', value: nvram.log_file == 1 },
177 { title: 'Max size before rotate', name: 'log_file_size', type: 'text', maxlen: 5, size: 6, value: nvram.log_file_size || 50, suffix: ' <small>KB</small>' },
178 { title: 'Number of rotated logs to keep', name: 'log_file_keep', type: 'text', maxlen: 2, size: 3, value: nvram.log_file_keep || 1 },
179 { title: 'Custom Log File Path', multi: [
180 { name: 'f_log_file_custom', type: 'checkbox', value: nvram.log_file_custom == 1, suffix: ' ' },
181 { name: 'log_file_path', type: 'text', maxlen: 50, size: 30, value: nvram.log_file_path, suffix: ' <small>(make sure the directory exists and is writable)</small>' }
182 ] },
183 { title: 'Log To Remote System', name: 'f_log_remote', type: 'checkbox', value: nvram.log_remote == 1 },
184 { title: 'Host or IP Address / Port', indent: 2, multi: [
185 { name: 'log_remoteip', type: 'text', maxlen: 32, size: 35, value: nvram.log_remoteip, suffix: ':' },
186 { name: 'log_remoteport', type: 'text', maxlen: 5, size: 7, value: nvram.log_remoteport } ]},
187 { title: 'Generate Marker', name: 'log_mark', type: 'select', options: [[0,'Disabled'],[30,'Every 30 Minutes'],[60,'Every 1 Hour'],[120,'Every 2 Hours'],[360,'Every 6 Hours'],[720,'Every 12 Hours'],[1440,'Every 1 Day'],[10080,'Every 7 Days']], value: nvram.log_mark },
188 { title: 'Events Logged', text: '<small>(some of the changes will take effect after a restart)</small>' },
189 { title: 'Access Restriction', indent: 2, name: 'f_log_acre', type: 'checkbox', value: (nvram.log_events.indexOf('acre') != -1) },
190 { title: 'Cron', indent: 2, name: 'f_log_crond', type: 'checkbox', value: (nvram.log_events.indexOf('crond') != -1) },
191 { title: 'DHCP Client', indent: 2, name: 'f_log_dhcpc', type: 'checkbox', value: (nvram.log_events.indexOf('dhcpc') != -1) },
192 { title: 'NTP', indent: 2, name: 'f_log_ntp', type: 'checkbox', value: (nvram.log_events.indexOf('ntp') != -1) },
193 { title: 'Scheduler', indent: 2, name: 'f_log_sched', type: 'checkbox', value: (nvram.log_events.indexOf('sched') != -1) },
194 { title: 'Connection Logging' },
195 { title: 'Inbound', indent: 2, name: 'log_in', type: 'select', options: [[0,'Disabled (recommended)'],[1,'If Blocked By Firewall'],[2,'If Allowed By Firewall'],[3,'Both']], value: nvram.log_in },
196 { title: 'Outbound', indent: 2, name: 'log_out', type: 'select', options: [[0,'Disabled (recommended)'],[1,'If Blocked By Firewall'],[2,'If Allowed By Firewall'],[3,'Both']], value: nvram.log_out },
197 { title: 'Limit', indent: 2, name: 'log_limit', type: 'text', maxlen: 4, size: 5, value: nvram.log_limit, suffix: ' <small>messages per minute (0 for unlimited)</small>' }
199 </script>
200 </div>
202 <div class='section-title'>Web Monitor</div>
203 <div class='section'>
204 <script type='text/javascript'>
205 createFieldTable('', [
206 { title: 'Monitor Web Usage', name: 'f_log_wm', type: 'checkbox', value: nvram.log_wm == 1 },
207 { title: 'Monitor', name: 'log_wmtype', type: 'select', options: [[0,'All Computers / Devices'],[1,'The Following...'],[2,'All Except...']], value: nvram.log_wmtype },
208 { title: 'IP Address(es)', indent: 2, name: 'f_log_wmip', type: 'text', maxlen: 512, size: 64, value: nvram.log_wmip,
209 suffix: '<br><small>(ex: "1.1.1.1", "1.1.1.0/24" or "1.1.1.1 - 2.2.2.2")</small>' },
210 { title: 'Number of Entries to remember' },
211 { title: 'Domains', indent: 2, name: 'log_wmdmax', type: 'text', maxlen: 4, size: 6, value: nvram.log_wmdmax, suffix: ' <small>(0 to disable)</small>' },
212 { title: 'Searches', indent: 2, name: 'log_wmsmax', type: 'text', maxlen: 4, size: 6, value: nvram.log_wmsmax, suffix: ' <small>(0 to disable)</small>' },
213 { title: 'Daily Backup', name: 'f_webmon_bkp', type: 'checkbox', value: nvram.webmon_bkp == 1, suffix: ' <small>(every day at midnight)</small>' },
214 { title: 'Clear Data After Backup', indent: 2, name: 'f_webmon_shrink', type: 'checkbox', value: nvram.webmon_shrink == 1 },
215 { title: 'Backup Directory', indent: 2, name: 'webmon_dir', type: 'text', maxlen: 128, size: 30, value: nvram.webmon_dir, suffix: ' <small>(make sure the directory exists and is writable)</small>' }
217 </script>
218 </div>
220 <!-- / / / -->
222 </td></tr>
223 <tr><td id='footer' colspan=2>
224 <span id='footer-msg'></span>
225 <input type='button' value='Save' id='save-button' onclick='save()'>
226 <input type='button' value='Cancel' id='cancel-button' onclick='javascript:reloadPage();'>
227 </td></tr>
228 </table>
229 </form>
230 <script type='text/javascript'>verifyFields(null, 1);</script>
231 </body>
232 </html>