[Eventlogmonitor-svn-update] SF.net SVN: eventlogmonitor: [39] trunk/htdocs
Status: Beta
Brought to you by:
soundboss
From: <sou...@us...> - 2007-07-30 19:03:46
|
Revision: 39 http://eventlogmonitor.svn.sourceforge.net/eventlogmonitor/?rev=39&view=rev Author: soundboss Date: 2007-07-30 12:03:39 -0700 (Mon, 30 Jul 2007) Log Message: ----------- * added "unsaved settings" check when leaving settings page * modification of RPC.php - this should solve the Agent <-> RPC.php communication issues * fixed PHP notices when exporting all alert rules Modified Paths: -------------- trunk/htdocs/_CHANGE-LOG.txt trunk/htdocs/_todo.txt trunk/htdocs/class_core.php trunk/htdocs/core.css trunk/htdocs/core.js trunk/htdocs/languages/_empty.lng trunk/htdocs/languages/cs.lng trunk/htdocs/languages/fr.lng trunk/htdocs/languages/ru.lng trunk/htdocs/modules/settings_filters_export.php trunk/htdocs/modules/settings_groups_access.php trunk/htdocs/modules/settings_groups_user.php trunk/htdocs/rpc.php trunk/htdocs/templates/_wnd_end.tpl trunk/htdocs/templates/settings_computers.tpl trunk/htdocs/templates/settings_computers_groupsel.tpl trunk/htdocs/templates/settings_cron.tpl trunk/htdocs/templates/settings_filters.tpl trunk/htdocs/templates/settings_groups_access.tpl trunk/htdocs/templates/settings_groups_computer.tpl trunk/htdocs/templates/settings_groups_user.tpl trunk/htdocs/templates/settings_rpc.tpl trunk/htdocs/templates/settings_users.tpl Modified: trunk/htdocs/_CHANGE-LOG.txt =================================================================== --- trunk/htdocs/_CHANGE-LOG.txt 2007-07-29 15:39:41 UTC (rev 38) +++ trunk/htdocs/_CHANGE-LOG.txt 2007-07-30 19:03:39 UTC (rev 39) @@ -11,6 +11,9 @@ * added "loading" animation when leaving page (after 500ms of waiting for the next page) * fixed "page loading" animation - it is not showing when logging in, ... * added DEBUG for RPC.php (only when debug_on is set tu true in class_core - logs are stored in ./runlogs/) +* added "unsaved settings" check when leaving settings page +* modification of RPC.php - this should solve the Agent <-> RPC.php communication issues +* fixed PHP notices when exporting all alert rules 0.75 !!! MySQL table change !!! (_sbeventlogmonitor_beta2__075.sql) Modified: trunk/htdocs/_todo.txt =================================================================== --- trunk/htdocs/_todo.txt 2007-07-29 15:39:41 UTC (rev 38) +++ trunk/htdocs/_todo.txt 2007-07-30 19:03:39 UTC (rev 39) @@ -18,4 +18,37 @@ - 1735723 - Agent Filtering - 1731970 - Event Log File - 1726421 - SMTP test button -- 1724799 - Change VBS to plain php \ No newline at end of file +- 1724799 - Change VBS to plain php + + + + +**** AGENT bug ***** +v. 1.0.3 + +Date and time: 2007-07-29 19:28:11 (1185730091) +Client: 192.168.1.37 +Secretrequest: +Secret: hBGdHAAg +Result: WRONG SECRET + +------------------------------------------------------------------------ +Date and time: 2007-07-29 19:28:11 (1185730091) +Client: 192.168.1.37 +Secretrequest: 1 +Secret: +Result: new secret: wgs88F1e + +------------------------------------------------------------------------ +Date and time: 2007-07-29 19:28:11 (1185730091) +Client: 192.168.1.37 +Secretrequest: 1 +Secret: hBGdHAAg +Result: agent can't get new SECRET... Old one is still valid! + +------------------------------------------------------------------------ +Date and time: 2007-07-29 19:28:11 (1185730091) +Client: 192.168.1.37 +Secretrequest: +Secret: hBGdHAAg +Result: WRONG SECRET Modified: trunk/htdocs/class_core.php =================================================================== --- trunk/htdocs/class_core.php 2007-07-29 15:39:41 UTC (rev 38) +++ trunk/htdocs/class_core.php 2007-07-30 19:03:39 UTC (rev 39) @@ -1,6 +1,6 @@ <?php class sb_core { - var $version = "0.76e beta3"; + var $version = "0.76f beta3"; var $app_name = "SB EventLog Monitor"; var $debug_on = false; var $AutoRefresh_enable = false; Modified: trunk/htdocs/core.css =================================================================== --- trunk/htdocs/core.css 2007-07-29 15:39:41 UTC (rev 38) +++ trunk/htdocs/core.css 2007-07-30 19:03:39 UTC (rev 39) @@ -82,6 +82,7 @@ font-weight: bold; text-transform: uppercase; white-space: nowrap; + cursor: pointer; } .button_txt:hover { color: #000000; Modified: trunk/htdocs/core.js =================================================================== --- trunk/htdocs/core.js 2007-07-29 15:39:41 UTC (rev 38) +++ trunk/htdocs/core.js 2007-07-30 19:03:39 UTC (rev 39) @@ -2,14 +2,28 @@ var IdArray = new Array(); var IdArray_pos = 0; var ShowLoadingBar = true; +var WarningBeforePageLeave = false; +var PageUnloadWarningText = "...this text should be loaded by page template..."; window.onbeforeunload = PageUnload; function PageUnload() { + if (WarningBeforePageLeave == true) { + // todo: TRANSLATE... + return PageUnloadWarningText; + } + if (ShowLoadingBar == true) { document.getElementById('img_loader').style.display = 'block'; } } +function SettingsHighlight(tab_row_ID, btn_submit_ID, showSaveWarning) { + document.getElementById(tab_row_ID).style.background = '#FFED8D'; + document.getElementById(btn_submit_ID).style.background = "#dedcd6 url('templates_img/button_menu_bg.gif')"; + + if (showSaveWarning == true) WarningBeforePageLeave = true; +} + function OpenWindow_build_settings(w, h) { LeftPosition = (screen.width) ? (screen.width-w)/2 : 0; TopPosition = (screen.height) ? (screen.height-h)/2 : 0; Modified: trunk/htdocs/languages/_empty.lng =================================================================== --- trunk/htdocs/languages/_empty.lng 2007-07-29 15:39:41 UTC (rev 38) +++ trunk/htdocs/languages/_empty.lng 2007-07-30 19:03:39 UTC (rev 39) @@ -86,6 +86,7 @@ Access denied= You are not allowed to access this module.= You are not allowed to access this group of computers.= +There are unsaved changes. If You will leave this page, all changes will be lost.= // EVENTs GLOBAL Date and time= Modified: trunk/htdocs/languages/cs.lng =================================================================== --- trunk/htdocs/languages/cs.lng 2007-07-29 15:39:41 UTC (rev 38) +++ trunk/htdocs/languages/cs.lng 2007-07-30 19:03:39 UTC (rev 39) @@ -81,6 +81,7 @@ Access denied=Přístup odmítnut You are not allowed to access this module.=Nemáte oprávnění přistupovat k tomuto modulu. You are not allowed to access this group of computers.=Nemáte oprávnění přistupovat k této skupině počítačů. +There are unsaved changes. If You will leave this page, all changes will be lost.=Na této stránce jsou neuložené změny. Pokud stránku opustíte, všechny změnou budou ztraceny. // EVENTs GLOBAL Date and time=Datum a čas Modified: trunk/htdocs/languages/fr.lng =================================================================== --- trunk/htdocs/languages/fr.lng 2007-07-29 15:39:41 UTC (rev 38) +++ trunk/htdocs/languages/fr.lng 2007-07-30 19:03:39 UTC (rev 39) @@ -86,6 +86,7 @@ Access denied=Accés refusé You are not allowed to access this module.=On ne te permet pas d'accéder à ce module. You are not allowed to access this group of computers.=On ne te permet pas d'accéder à ce groupe d'ordinateurs. +There are unsaved changes. If You will leave this page, all changes will be lost.= // EVENTs GLOBAL Date and time=Date et heure Modified: trunk/htdocs/languages/ru.lng =================================================================== --- trunk/htdocs/languages/ru.lng 2007-07-29 15:39:41 UTC (rev 38) +++ trunk/htdocs/languages/ru.lng 2007-07-30 19:03:39 UTC (rev 39) @@ -87,6 +87,7 @@ Access denied= You are not allowed to access this module.= You are not allowed to access this group of computers.= +There are unsaved changes. If You will leave this page, all changes will be lost.= // EVENTs GLOBAL Date and time=Дата и время Modified: trunk/htdocs/modules/settings_filters_export.php =================================================================== --- trunk/htdocs/modules/settings_filters_export.php 2007-07-29 15:39:41 UTC (rev 38) +++ trunk/htdocs/modules/settings_filters_export.php 2007-07-30 19:03:39 UTC (rev 39) @@ -1,5 +1,6 @@ <?php if (APP_TOKEN != "SB_ELM") die("ACCESS DENIED"); +if (!isset($_GET["id"])) $_GET["id"] = ""; $query = $safesql->query("SELECT * FROM ".DB_PREFIX."filters[ WHERE id=%I]", array($_GET["id"])); $query_data = $db->get_results($query, ARRAY_A); Modified: trunk/htdocs/modules/settings_groups_access.php =================================================================== --- trunk/htdocs/modules/settings_groups_access.php 2007-07-29 15:39:41 UTC (rev 38) +++ trunk/htdocs/modules/settings_groups_access.php 2007-07-30 19:03:39 UTC (rev 39) @@ -3,7 +3,7 @@ if (!empty($_POST)) { $template_file = "settings_edit_ok.tpl"; - $this->DebugArray($_POST); + // $this->DebugArray($_POST); if ((isset($_POST["access_table"])) && (is_array($_POST["access_table"]))){ $db->query("TRUNCATE ".DB_PREFIX."groups_access"); Modified: trunk/htdocs/modules/settings_groups_user.php =================================================================== --- trunk/htdocs/modules/settings_groups_user.php 2007-07-29 15:39:41 UTC (rev 38) +++ trunk/htdocs/modules/settings_groups_user.php 2007-07-30 19:03:39 UTC (rev 39) @@ -2,7 +2,7 @@ if (APP_TOKEN != "SB_ELM") die("ACCESS DENIED"); if (!empty($_POST)) { - $this->DebugArray($_POST); + // $this->DebugArray($_POST); $template_file = "settings_edit_ok.tpl"; // UPDATE or DELETE @@ -28,7 +28,7 @@ if (!empty($_POST["new_user_group"])) { $query_data = array(strtoupper($_POST["new_user_group"]), $_POST["new_access_summary"], $_POST["new_access_events"], $_POST["new_access_alerts"], $_POST["new_access_settings"]); $query = $safesql->query("INSERT INTO ".DB_PREFIX."groups_user SET user_group='%s', access_summary=%i, access_events=%i, access_alerts=%i, access_settings=%i", $query_data); - $this->Debug($query); + // $this->Debug($query); $db->query($query); } $smarty->clear_all_cache(); Modified: trunk/htdocs/rpc.php =================================================================== --- trunk/htdocs/rpc.php 2007-07-29 15:39:41 UTC (rev 38) +++ trunk/htdocs/rpc.php 2007-07-30 19:03:39 UTC (rev 39) @@ -55,14 +55,19 @@ return $ret; } -function gen_secret() { - $randlen = 8; - $randval = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; - $random = ""; - for ($i = 1; $i <= $randlen; $i++) { - $random .= substr($randval, rand(0,(strlen($randval) - 1)), 1); +function ClientAddOrModify($remote_ip, $curr_computer="handshake", $agent_version="N/A") { + global $safesql, $db; + + $query = $safesql->query("SELECT * FROM ".DB_PREFIX."secrets WHERE ip_addr='%s' LIMIT 1", array($remote_ip)); + $secret_data = $db->get_row($query, ARRAY_A); + if ($db->num_rows > 0) { + $query = $safesql->query("UPDATE ".DB_PREFIX."secrets SET hostname='%s', agent_version='%s' WHERE ip_addr='%s'", array($curr_computer, $agent_version, $remote_ip)); + $db->query($query); + } else { + $expire = date("Y-m-d H:i:s", time() + 604800); + $query = $safesql->query("INSERT INTO ".DB_PREFIX."secrets SET ip_addr='%s', hostname='%s', agent_version='%s', secret_expire='%s'", array($remote_ip, $curr_computer, $agent_version, $expire)); + $db->query($query); } - return $random; } // FUNCTIONs end @@ -77,46 +82,18 @@ $debug_info = "\r\n------------------------------------------------------------------------\r\n"; $debug_info .= "Date and time: " . date("Y-m-d H:i:s") . " (" . time() . ")\r\n"; $debug_info .= "Client: " . $remote_ip . "\r\n"; -$debug_info .= "Secretrequest: " . $_GET["secretrequest"] . "\r\n"; -$debug_info .= "Secret: " . $_GET["secret"] . "\r\n"; $query = $safesql->query("DELETE FROM ".DB_PREFIX."secrets WHERE secret_expire<'%s'", array(date("Y-m-d H:i:s"))); $db->query($query); // Is this a "secret regenerate" request? if ($_GET["secretrequest"] == 1) { - // regenerate "secret" key - $query = $safesql->query("SELECT * FROM ".DB_PREFIX."secrets WHERE ip_addr='%s' LIMIT 1", array($remote_ip)); - $secret_data = $db->get_row($query, ARRAY_A); - if ($db->num_rows > 0) { - if ($secret_data["secret"] == $_GET["secret"]) { - $query = $safesql->query("DELETE FROM ".DB_PREFIX."secrets WHERE ip_addr='%s'", array($remote_ip)); - $db->query($query); - } else { - - $debug_info .= "Result: agent can't get new SECRET... Old one is still valid!\r\n"; - if ($core->debug_on) file_put_contents("./runlogs/".date("Ymd")."_RPC.txt", $debug_info, FILE_APPEND); - die("WRONG SECRET\r\n"); - } - } - $new_secret = gen_secret(); - $query = $safesql->query("INSERT INTO ".DB_PREFIX."secrets SET ip_addr='%s', secret='%s', secret_expire='%s'", array($remote_ip, $new_secret, date("Y-m-d H:i:s", time() + 3600))); - $db->query($query); - echo $new_secret . "\r\n"; - - $debug_info .= "Result: new secret: " . $new_secret . "\r\n"; + ClientAddOrModify($remote_ip); + $debug_info .= "Handshake..."; if ($core->debug_on) file_put_contents("./runlogs/".date("Ymd")."_RPC.txt", $debug_info, FILE_APPEND); + echo "kGbUicYe\r\n"; die(); } -// Check "secret" table -$query = $safesql->query("SELECT * FROM ".DB_PREFIX."secrets WHERE ip_addr='%s' AND secret='%s' LIMIT 1", array($remote_ip, $_GET["secret"])); -$db->get_row($query, ARRAY_A); -if ($db->num_rows != 1) { - // NO SECRET! - - $debug_info .= "Result: WRONG SECRET\r\n"; - if ($core->debug_on) file_put_contents("./runlogs/".date("Ymd")."_RPC.txt", $debug_info, FILE_APPEND); - die("WRONG SECRET\r\n"); -} + // PARSE POSTED DATA... echo "OK\r\n"; include_once "./modules_cron/parse_data_filters.php"; @@ -127,9 +104,7 @@ if(is_array($xml_data)) { $curr_computer = strtolower($xml_data["computer_name"]); $agent_version = strtolower($xml_data["agent_version"]); - $query = $safesql->query("UPDATE ".DB_PREFIX."secrets SET hostname='%s', agent_version='%s' WHERE ip_addr='%s'", array($curr_computer, $agent_version, $remote_ip)); - $db->query($query); - + ClientAddOrModify($remote_ip, $curr_computer, $agent_version); $debug_info .= "Computer name: " . $curr_computer . "\r\n"; $debug_info .= "Agent version: " . $agent_version . "\r\n"; $debug_info .= "\r\nRPC data: " . var_export($xml_data, true) . "\r\n\r\n"; Modified: trunk/htdocs/templates/_wnd_end.tpl =================================================================== --- trunk/htdocs/templates/_wnd_end.tpl 2007-07-29 15:39:41 UTC (rev 38) +++ trunk/htdocs/templates/_wnd_end.tpl 2007-07-30 19:03:39 UTC (rev 39) @@ -3,5 +3,6 @@ {dynamic}{$smarty.now|date_format:"%d.%m.%Y %H:%M:%S"}{/dynamic} {if $smarty.const.SMARTY_caching == true} (##generated at## {$smarty.now|date_format:"%H:%M:%S"}){/if}</div> {/if} +<div id="img_loader" style="display: none;"><img src="templates_img/loader.gif" alt="loading..." /></div> </body> </html> \ No newline at end of file Modified: trunk/htdocs/templates/settings_computers.tpl =================================================================== --- trunk/htdocs/templates/settings_computers.tpl 2007-07-29 15:39:41 UTC (rev 38) +++ trunk/htdocs/templates/settings_computers.tpl 2007-07-30 19:03:39 UTC (rev 39) @@ -1,4 +1,7 @@ {include file="_page_start.tpl"} +<script language="JavaScript" type="text/javascript"> + PageUnloadWarningText = "##There are unsaved changes. If You will leave this page, all changes will be lost.##"; +</script> <table border="0" style="border: 0px none;"> <tr><td> <h2>##Monitored computers##</h2> @@ -22,7 +25,7 @@ <td class="td_header">##Delete##</td> </tr> {section name=loop loop=$s_computers} -<tr class="tr_data"> +<tr class="tr_data" id="tab_row_{$smarty.section.loop.index}"> <td class="td_data_v" style="font-weight: bold;"> <input type="hidden" name="id[{$smarty.section.loop.index}]" value="{$s_computers[loop].id}" /> <input type="hidden" name="computer_name[{$smarty.section.loop.index}]" value="{$s_computers[loop].computer_name}" /> @@ -31,7 +34,7 @@ <td class="td_data_v" style="font-weight: bold;"> <input type="hidden" name="computer_group[{$smarty.section.loop.index}]" id="computer_group_{$smarty.section.loop.index}" value="{$s_computers[loop].computer_group}" /> -<a href="#NEED-JavaScript" class="button_txt" style="display: block; width: 120px; text-align: left; overflow: hidden;" onClick="OpenWindow('index.php?module=settings&sub=computers_groupsel&id=computer_group_{$smarty.section.loop.index}', 'computer_group', 300, 300); return false;"> +<a href="#NEED-JavaScript" class="button_txt" style="display: block; width: 120px; text-align: left; overflow: hidden;" onClick="OpenWindow('index.php?module=settings&sub=computers_groupsel&id=computer_group_{$smarty.section.loop.index}&tab_row_id=tab_row_{$smarty.section.loop.index}&btn_submit_id=btn_submit', 'computer_group', 300, 300); return false;"> <span id="computer_group_{$smarty.section.loop.index}_label">{$s_computers[loop].computer_group|replace:'~~':''|replace:'~':', '|truncate:20:"...":true|default:"..."}</span> </a> @@ -43,15 +46,15 @@ </td> <td class="td_data_v"> -<input type="text" name="computer_harvest_interval[{$smarty.section.loop.index}]" value="{$s_computers[loop].computer_harvest_interval}" size="5" /> -<select name="computer_harvest_interval_unit[{$smarty.section.loop.index}]"> +<input type="text" name="computer_harvest_interval[{$smarty.section.loop.index}]" value="{$s_computers[loop].computer_harvest_interval}" size="5" onChange="SettingsHighlight('tab_row_{$smarty.section.loop.index}', 'btn_submit', true);" /> +<select name="computer_harvest_interval_unit[{$smarty.section.loop.index}]" onChange="SettingsHighlight('tab_row_{$smarty.section.loop.index}', 'btn_submit', true);"> <option label="##minutes##" value="60"{if $s_computers[loop].computer_harvest_interval_unit == "60"} SELECTED{/if}>##minutes##</option> <option label="##hours##" value="3600"{if $s_computers[loop].computer_harvest_interval_unit == "3600"} SELECTED{/if}>##hours##</option> <option label="##days##" value="86400"{if $s_computers[loop].computer_harvest_interval_unit == "86400"} SELECTED{/if}>##days##</option> </select> </td> <td class="td_data_v"> -<select name="computer_enable[{$smarty.section.loop.index}]" style="width: 150px;"> +<select name="computer_enable[{$smarty.section.loop.index}]" style="width: 150px;" onChange="SettingsHighlight('tab_row_{$smarty.section.loop.index}', 'btn_submit', true);"> <option value="0"{if $s_computers[loop].computer_enable == "0"} SELECTED{/if}>##Agent##</option> <option value="1"{if $s_computers[loop].computer_enable == "1"} SELECTED{/if}>##all##</option> <option value="2"{if $s_computers[loop].computer_enable == "2"} SELECTED{/if}>##Error##</option> @@ -62,17 +65,17 @@ <td class="td_data_v">{$s_computers[loop].computer_next_harvest}</td> -<td class="td_data_v" align="right"><input type="checkbox" name="s_computer_delete[{$smarty.section.loop.index}]" value="YES" /></td> +<td class="td_data_v" align="right"><input type="checkbox" name="s_computer_delete[{$smarty.section.loop.index}]" value="YES" onChange="SettingsHighlight('tab_row_{$smarty.section.loop.index}', 'btn_submit', true);"/></td> </tr> {/section} <tr><td class="td_data_v" colspan="7"> </td></tr> <!--NEW--> -<tr style="background: #FFDC7C;"> +<tr style="background: #FFDC7C;" id="tab_row_new"> <td class="td_data_v" style="font-weight: bold;"> <input type="hidden" name="new_id" value="-NEW-" /> -<input type="text" name="new_computer_name" value="" size="10" /> +<input type="text" name="new_computer_name" value="" size="10" onChange="SettingsHighlight('tab_row_new', 'btn_submit', true);" /> </td> <td class="td_data_v" style="font-weight: bold;"> @@ -110,7 +113,7 @@ <!--NEW--> <tr><td colspan="7" class="td_data" style="text-align: center; padding-top: 10px; padding-bottom: 10px;"> -<input type="submit" class="button_txt" name="OK" value="##Save changes##" /> +<input type="submit" id="btn_submit" class="button_txt" name="OK" value="##Save changes##" onClick="WarningBeforePageLeave = false;" /> </td></tr> </table> Modified: trunk/htdocs/templates/settings_computers_groupsel.tpl =================================================================== --- trunk/htdocs/templates/settings_computers_groupsel.tpl 2007-07-29 15:39:41 UTC (rev 38) +++ trunk/htdocs/templates/settings_computers_groupsel.tpl 2007-07-30 19:03:39 UTC (rev 39) @@ -31,6 +31,8 @@ var groups_txt = ""; var overlen = false; {/literal} + var tab_row_id = '{$smarty.get.tab_row_id}'; + var btn_submit_id = '{$smarty.get.btn_submit_id}'; {section name="loop" loop=$groups} if (document.getElementById("{$groups[loop]}").checked == true) groups += "{$groups[loop]}~"; {/section} @@ -50,6 +52,8 @@ opener.document.getElementById(comp_group_id).value = groups; opener.document.getElementById(comp_group_label_id).innerHTML = groups_txt; + opener.SettingsHighlight(tab_row_id, btn_submit_id, true); + this.close(); } Modified: trunk/htdocs/templates/settings_cron.tpl =================================================================== --- trunk/htdocs/templates/settings_cron.tpl 2007-07-29 15:39:41 UTC (rev 38) +++ trunk/htdocs/templates/settings_cron.tpl 2007-07-30 19:03:39 UTC (rev 39) @@ -1,4 +1,7 @@ {include file="_page_start.tpl"} +<script language="JavaScript" type="text/javascript"> + PageUnloadWarningText = "##There are unsaved changes. If You will leave this page, all changes will be lost.##"; +</script> <h2>##Scheduled tasks##</h2> <form action="{$smarty.server.REQUEST_URI}" method="post"> <table border="0" cellpadding="0" cellspacing="0"> @@ -11,7 +14,7 @@ <td class="td_header" width="120">##Next run##</td> </tr> {section name=loop loop=$s_cron} -<tr class="tr_data"> +<tr class="tr_data" id="tab_row_{$smarty.section.loop.index}"> <td class="td_data_v" style="font-weight: bold;"> <input type="hidden" name="cron_title[{$smarty.section.loop.index}]" value="{$s_cron[loop].cron_title}" /> <input type="hidden" name="cron_module[{$smarty.section.loop.index}]" value="{$s_cron[loop].cron_module}" /> @@ -19,27 +22,27 @@ </td> <td class="td_data_v"> -<input type="text" name="cron_params[{$smarty.section.loop.index}]" value="{$s_cron[loop].cron_params}" size="15" /> +<input type="text" name="cron_params[{$smarty.section.loop.index}]" value="{$s_cron[loop].cron_params}" size="15" onChange="SettingsHighlight('tab_row_{$smarty.section.loop.index}', 'btn_submit', true);" /> </td> <td class="td_data_v"> -<input type="text" name="cron_repeat[{$smarty.section.loop.index}]" value="{$s_cron[loop].cron_repeat}" size="5" /> -<select name="cron_repeat_unit[{$smarty.section.loop.index}]"> -<option label="##minutes##" value="60"{if $s_cron[loop].cron_repeat_unit == "60"} SELECTED{/if}>##minutes##</option> -<option label="##hours##" value="3600"{if $s_cron[loop].cron_repeat_unit == "3600"} SELECTED{/if}>##hours##</option> -<option label="##days##" value="86400"{if $s_cron[loop].cron_repeat_unit == "86400"} SELECTED{/if}>##days##</option> +<input type="text" name="cron_repeat[{$smarty.section.loop.index}]" value="{$s_cron[loop].cron_repeat}" size="5" onChange="SettingsHighlight('tab_row_{$smarty.section.loop.index}', 'btn_submit', true);" /> +<select name="cron_repeat_unit[{$smarty.section.loop.index}]" onChange="SettingsHighlight('tab_row_{$smarty.section.loop.index}', 'btn_submit', true);"> + <option label="##minutes##" value="60"{if $s_cron[loop].cron_repeat_unit == "60"} SELECTED{/if}>##minutes##</option> + <option label="##hours##" value="3600"{if $s_cron[loop].cron_repeat_unit == "3600"} SELECTED{/if}>##hours##</option> + <option label="##days##" value="86400"{if $s_cron[loop].cron_repeat_unit == "86400"} SELECTED{/if}>##days##</option> </select> </td> <td class="td_data_v"> -<select name="cron_enable[{$smarty.section.loop.index}]"> +<select name="cron_enable[{$smarty.section.loop.index}]" onChange="SettingsHighlight('tab_row_{$smarty.section.loop.index}', 'btn_submit', true);"> <option value="0"{if $s_cron[loop].cron_enable == "0"} SELECTED{/if}>##NO##</option> <option value="1"{if $s_cron[loop].cron_enable == "1"} SELECTED{/if}>##YES##</option> </select> </td> <td class="td_data_v"> -<select name="cron_priority[{$smarty.section.loop.index}]"> +<select name="cron_priority[{$smarty.section.loop.index}]" onChange="SettingsHighlight('tab_row_{$smarty.section.loop.index}', 'btn_submit', true);"> {section name=loop2 loop=$priority} <option value="{$priority[loop2]}"{if $s_cron[loop].cron_priority == $priority[loop2]} SELECTED{/if}>{$priority[loop2]}</option> {/section} @@ -47,14 +50,14 @@ </td> <td class="td_data_v"> -<input type="text" name="cron_time[{$smarty.section.loop.index}]" value="{$s_cron[loop].cron_time}" size="18" /> +<input type="text" name="cron_time[{$smarty.section.loop.index}]" value="{$s_cron[loop].cron_time}" size="18" onChange="SettingsHighlight('tab_row_{$smarty.section.loop.index}', 'btn_submit', true);" /> </td> </tr> {/section} <tr><td colspan="6" class="td_data" style="text-align: center; padding-top: 10px; padding-bottom: 10px;"> -<input type="submit" class="button_txt" name="OK" value="##Save changes##" /> +<input type="submit" id="btn_submit" class="button_txt" name="OK" value="##Save changes##" onClick="WarningBeforePageLeave = false;" /> </td></tr> </table> Modified: trunk/htdocs/templates/settings_filters.tpl =================================================================== --- trunk/htdocs/templates/settings_filters.tpl 2007-07-29 15:39:41 UTC (rev 38) +++ trunk/htdocs/templates/settings_filters.tpl 2007-07-30 19:03:39 UTC (rev 39) @@ -1,4 +1,7 @@ {include file="_page_start.tpl"} +<script language="JavaScript" type="text/javascript"> + PageUnloadWarningText = "##There are unsaved changes. If You will leave this page, all changes will be lost.##"; +</script> <h2>##Alert filters##</h2> <form action="{$smarty.server.REQUEST_URI}" method="post"> <table border="0" cellpadding="0" cellspacing="0"> @@ -14,7 +17,7 @@ <td class="td_header">##Delete##</td> </tr> {section name=loop loop=$filters} -<tr class="tr_data"> +<tr class="tr_data" id="tab_row_{$smarty.section.loop.index}"> <td class="td_data_v"> <a href="{$smarty.server.REQUEST_URI|add_url_param:'sub':'filters_export'|add_url_param:'id':$filters[loop].id}" class="button_txt">##XML##</a> @@ -22,32 +25,32 @@ <td class="td_data_v"> <input type="hidden" name="id[{$smarty.section.loop.index}]" value="{$filters[loop].id}" /> -<input type="text" name="filter_title[{$smarty.section.loop.index}]" value="{$filters[loop].filter_title}" size="30" /> +<input type="text" name="filter_title[{$smarty.section.loop.index}]" value="{$filters[loop].filter_title}" size="30" onChange="SettingsHighlight('tab_row_{$smarty.section.loop.index}', 'btn_submit', true);" /> </td> <td class="td_data_v"> -<input type="radio" name="filter_is[{$smarty.section.loop.index}]" value="noise"{if $filters[loop].filter_isNoise == "1"} CHECKED{/if} />##Noise## -<input type="radio" name="filter_is[{$smarty.section.loop.index}]" value="alert"{if $filters[loop].filter_isAlert == "1"} CHECKED{/if} />##Alert## +<input type="radio" name="filter_is[{$smarty.section.loop.index}]" value="noise"{if $filters[loop].filter_isNoise == "1"} CHECKED{/if} onChange="SettingsHighlight('tab_row_{$smarty.section.loop.index}', 'btn_submit', true);" />##Noise## +<input type="radio" name="filter_is[{$smarty.section.loop.index}]" value="alert"{if $filters[loop].filter_isAlert == "1"} CHECKED{/if} onChange="SettingsHighlight('tab_row_{$smarty.section.loop.index}', 'btn_submit', true);" />##Alert## </td> <td class="td_data_v"> -<input type="text" name="filter_mailto[{$smarty.section.loop.index}]" value="{$filters[loop].filter_mailto}" /> -<input type="checkbox" name="filter_isEmail[{$smarty.section.loop.index}]" value="YES"{if $filters[loop].filter_isEmail} checked{/if} /> +<input type="text" name="filter_mailto[{$smarty.section.loop.index}]" value="{$filters[loop].filter_mailto}" onChange="SettingsHighlight('tab_row_{$smarty.section.loop.index}', 'btn_submit', true);" /> +<input type="checkbox" name="filter_isEmail[{$smarty.section.loop.index}]" value="YES"{if $filters[loop].filter_isEmail} checked{/if} onChange="SettingsHighlight('tab_row_{$smarty.section.loop.index}', 'btn_submit', true);" /> </td> <td class="td_data_v"> -<input type="text" size="3" name="filter_email_ignore[{$smarty.section.loop.index}]" value="{$filters[loop].filter_email_ignore}" /> ##min.## +<input type="text" size="3" name="filter_email_ignore[{$smarty.section.loop.index}]" value="{$filters[loop].filter_email_ignore}" onChange="SettingsHighlight('tab_row_{$smarty.section.loop.index}', 'btn_submit', true);" /> ##min.## </td> <td class="td_data_v"> -<select name="filter_active[{$smarty.section.loop.index}]"> +<select name="filter_active[{$smarty.section.loop.index}]" onChange="SettingsHighlight('tab_row_{$smarty.section.loop.index}', 'btn_submit', true);"> <option value="0"{if $filters[loop].filter_active == "0"} SELECTED{/if}>##NO##</option> <option value="1"{if $filters[loop].filter_active == "1"} SELECTED{/if}>##YES##</option> </select> </td> <td class="td_data_v" align="center"> -<select name="filter_priority[{$smarty.section.loop.index}]"> +<select name="filter_priority[{$smarty.section.loop.index}]" onChange="SettingsHighlight('tab_row_{$smarty.section.loop.index}', 'btn_submit', true);"> {section name=loop2 loop=$priority} <option value="{$priority[loop2]}"{if $filters[loop].filter_priority == $priority[loop2]} SELECTED{/if}>{$priority[loop2]}</option> {/section} @@ -59,7 +62,7 @@ </td> <td class="td_data_v" align="center"> -<input type="checkbox" name="filter_delete[{$smarty.section.loop.index}]" value="YES" /> +<input type="checkbox" name="filter_delete[{$smarty.section.loop.index}]" value="YES" onChange="SettingsHighlight('tab_row_{$smarty.section.loop.index}', 'btn_submit', true);" /> </td> </tr> @@ -68,13 +71,13 @@ <tr><td class="td_data_v" colspan="9"> </td></tr> <!--NEW--> -<tr class="tr_data" style="background: #FFDC7C;"> +<tr class="tr_data" style="background: #FFDC7C;" id="tab_row_new"> <td class="td_data_v"> </td> <td class="td_data_v" style="font-weight: bold;"> <input type="hidden" name="new_id" value="-NEW-" /> -<input type="text" name="new_filter_title" value="" /> +<input type="text" name="new_filter_title" value="" onChange="SettingsHighlight('tab_row_new', 'btn_submit', true);" /> </td> <td class="td_data_v"> @@ -101,7 +104,7 @@ <!--NEW--> <tr><td colspan="9" class="td_data" style="text-align: center; padding-top: 10px; padding-bottom: 10px;"> -<input type="submit" class="button_txt" name="OK" value="##Save changes##" /> +<input type="submit" id="btn_submit" class="button_txt" name="OK" value="##Save changes##" onClick="WarningBeforePageLeave = false;" /> </td></tr> </table> Modified: trunk/htdocs/templates/settings_groups_access.tpl =================================================================== --- trunk/htdocs/templates/settings_groups_access.tpl 2007-07-29 15:39:41 UTC (rev 38) +++ trunk/htdocs/templates/settings_groups_access.tpl 2007-07-30 19:03:39 UTC (rev 39) @@ -1,4 +1,7 @@ {include file="_page_start.tpl"} +<script language="JavaScript" type="text/javascript"> + PageUnloadWarningText = "##There are unsaved changes. If You will leave this page, all changes will be lost.##"; +</script> <h2>##Access control##</h2> <form action="{$smarty.server.REQUEST_URI}" method="post"> @@ -11,13 +14,13 @@ </tr> {section name=loop_c loop=$groups_computer} -<tr> +<tr id="tab_row_{$smarty.section.loop_c.index}"> <td class="td_header_v" style="text-align: right;">{$groups_computer[loop_c]|default:'##All computers##'}</td> {section name=loop_u loop=$groups_user} <td class="td_data_v" style="text-align: center;"> {assign var=idx_c value=$groups_computer[loop_c]} {assign var=idx_u value=$groups_user[loop_u]} - <input type="checkbox" name="access_table[{$idx_c}][{$idx_u}]" value="1"{if $access_table.$idx_c.$idx_u == 1}CHECKED{/if} /> + <input type="checkbox" name="access_table[{$idx_c}][{$idx_u}]" value="1"{if $access_table.$idx_c.$idx_u == 1}CHECKED{/if} onChange="SettingsHighlight('tab_row_{$smarty.section.loop_c.index}', 'btn_submit', true);" /> </td> {/section} </tr> @@ -26,7 +29,7 @@ <tr><td class="td_data_v" colspan="{$cols_count}"> </td></tr> <tr><td colspan="{$cols_count}" class="td_data" style="text-align: center; padding-top: 10px; padding-bottom: 10px;"> -<input type="submit" class="button_txt" name="OK" value="##Save changes##" /> +<input type="submit" id="btn_submit" class="button_txt" name="OK" value="##Save changes##" onClick="WarningBeforePageLeave = false;" /> </td></tr> </table> Modified: trunk/htdocs/templates/settings_groups_computer.tpl =================================================================== --- trunk/htdocs/templates/settings_groups_computer.tpl 2007-07-29 15:39:41 UTC (rev 38) +++ trunk/htdocs/templates/settings_groups_computer.tpl 2007-07-30 19:03:39 UTC (rev 39) @@ -1,4 +1,7 @@ {include file="_page_start.tpl"} +<script language="JavaScript" type="text/javascript"> + PageUnloadWarningText = "##There are unsaved changes. If You will leave this page, all changes will be lost.##"; +</script> <h2>##Computer groups##</h2> <form action="{$smarty.server.REQUEST_URI}" method="post"> <table border="0" cellpadding="0" cellspacing="0"> @@ -8,20 +11,20 @@ <td class="td_header">##Computers##</td> </tr> {section name=loop loop=$groups_computer} -<tr class="tr_data"> +<tr class="tr_data" id="tab_row_{$smarty.section.loop.index}"> <td class="td_data_v" style="font-weight: bold;"> -<input type="text" name="groups_computer[{$groups_computer[loop].group}]" value="{$groups_computer[loop].group}" size="20" /> +<input type="text" name="groups_computer[{$groups_computer[loop].group}]" value="{$groups_computer[loop].group}" size="20" onChange="SettingsHighlight('tab_row_{$smarty.section.loop.index}', 'btn_submit', true);" /> </td> -<td class="td_data_v" align="center"><input type="checkbox" name="groups_computer_delete[{$groups_computer[loop].group}]" value="YES" /></td> +<td class="td_data_v" align="center"><input type="checkbox" name="groups_computer_delete[{$groups_computer[loop].group}]" value="YES" onChange="SettingsHighlight('tab_row_{$smarty.section.loop.index}', 'btn_submit', true);" /></td> <td class="td_data_v">{$groups_computer[loop].computers}</td> </tr> {/section} <tr><td class="td_data_v" colspan="3"> </td></tr> <!--NEW--> -<tr style="background: #FFDC7C;"> +<tr style="background: #FFDC7C;" id="tab_row_new"> <td class="td_data_v" style="font-weight: bold;"> -<input type="text" name="new_groups_computer" value="" size="20" /> +<input type="text" name="new_groups_computer" value="" size="20" onChange="SettingsHighlight('tab_row_new', 'btn_submit', true);" /> </td> <td class="td_data_v" style="font-weight: bold;"> </td> @@ -32,7 +35,7 @@ <!--NEW--> <tr><td colspan="3" class="td_data" style="text-align: center; padding-top: 10px; padding-bottom: 10px;"> -<input type="submit" class="button_txt" name="OK" value="##Save changes##" /> +<input type="submit" id="btn_submit" class="button_txt" name="OK" value="##Save changes##" onClick="WarningBeforePageLeave = false;" /> </td></tr> </table> Modified: trunk/htdocs/templates/settings_groups_user.tpl =================================================================== --- trunk/htdocs/templates/settings_groups_user.tpl 2007-07-29 15:39:41 UTC (rev 38) +++ trunk/htdocs/templates/settings_groups_user.tpl 2007-07-30 19:03:39 UTC (rev 39) @@ -1,4 +1,7 @@ {include file="_page_start.tpl"} +<script language="JavaScript" type="text/javascript"> + PageUnloadWarningText = "##There are unsaved changes. If You will leave this page, all changes will be lost.##"; +</script> <h2>##User groups##</h2> <form action="{$smarty.server.REQUEST_URI}" method="post"> <table border="0" cellpadding="0" cellspacing="0"> @@ -12,49 +15,49 @@ </tr> {section name=loop loop=$groups_user} -<tr class="tr_data"> +<tr class="tr_data" id="tab_row_{$smarty.section.loop.index}"> <td class="td_data_v" style="font-weight: bold;"> <input type="hidden" name="id[{$smarty.section.loop.index}]" value="{$groups_user[loop].id}" /> -<input type="text" name="user_group[{$smarty.section.loop.index}]" value="{$groups_user[loop].user_group}" size="20" /> +<input type="text" name="user_group[{$smarty.section.loop.index}]" value="{$groups_user[loop].user_group}" size="20" onChange="SettingsHighlight('tab_row_{$smarty.section.loop.index}', 'btn_submit', true);" /> </td> <td class="td_data_v"> -<select name="access_summary[{$smarty.section.loop.index}]"> +<select name="access_summary[{$smarty.section.loop.index}]" onChange="SettingsHighlight('tab_row_{$smarty.section.loop.index}', 'btn_submit', true);"> <option value="0"{if $groups_user[loop].access_summary == "0"} SELECTED{/if}>##Denied##</option> <option value="100"{if $groups_user[loop].access_summary == "100"} SELECTED{/if}>##Allowed##</option> </select> </td> <td class="td_data_v"> -<select name="access_events[{$smarty.section.loop.index}]"> +<select name="access_events[{$smarty.section.loop.index}]" onChange="SettingsHighlight('tab_row_{$smarty.section.loop.index}', 'btn_submit', true);"> <option value="0"{if $groups_user[loop].access_events == "0"} SELECTED{/if}>##Denied##</option> <option value="100"{if $groups_user[loop].access_events == "100"} SELECTED{/if}>##Allowed##</option> </select> </td> <td class="td_data_v"> -<select name="access_alerts[{$smarty.section.loop.index}]"> +<select name="access_alerts[{$smarty.section.loop.index}]" onChange="SettingsHighlight('tab_row_{$smarty.section.loop.index}', 'btn_submit', true);"> <option value="0"{if $groups_user[loop].access_alerts == "0"} SELECTED{/if}>##Denied##</option> <option value="100"{if $groups_user[loop].access_alerts == "100"} SELECTED{/if}>##Allowed##</option> </select> </td> <td class="td_data_v"> -<select name="access_settings[{$smarty.section.loop.index}]"> +<select name="access_settings[{$smarty.section.loop.index}]" onChange="SettingsHighlight('tab_row_{$smarty.section.loop.index}', 'btn_submit', true);"> <option value="0"{if $groups_user[loop].access_settings == "0"} SELECTED{/if}>##Denied##</option> <option value="100"{if $groups_user[loop].access_settings == "100"} SELECTED{/if}>##Allowed##</option> </select> </td> -<td class="td_data_v" align="right"><input type="checkbox" name="groups_user_delete[{$smarty.section.loop.index}]" value="YES" /></td> +<td class="td_data_v" align="right"><input type="checkbox" name="groups_user_delete[{$smarty.section.loop.index}]" value="YES" onChange="SettingsHighlight('tab_row_{$smarty.section.loop.index}', 'btn_submit', true);" /></td> </tr> {/section} <tr><td class="td_data_v" colspan="6"> </td></tr> <!--NEW--> -<tr style="background: #FFDC7C;"> +<tr style="background: #FFDC7C;" id="tab_row_new"> <td class="td_data_v" style="font-weight: bold;"> -<input type="text" name="new_user_group" value="" size="20" /> +<input type="text" name="new_user_group" value="" size="20" onChange="SettingsHighlight('tab_row_new', 'btn_submit', true);" /> </td> <td class="td_data_v"> @@ -91,7 +94,7 @@ <!--NEW--> <tr><td colspan="6" class="td_data" style="text-align: center; padding-top: 10px; padding-bottom: 10px;"> -<input type="submit" class="button_txt" name="OK" value="##Save changes##" /> +<input type="submit" id="btn_submit" class="button_txt" name="OK" value="##Save changes##" onClick="WarningBeforePageLeave = false;" /> </td></tr> </table> Modified: trunk/htdocs/templates/settings_rpc.tpl =================================================================== --- trunk/htdocs/templates/settings_rpc.tpl 2007-07-29 15:39:41 UTC (rev 38) +++ trunk/htdocs/templates/settings_rpc.tpl 2007-07-30 19:03:39 UTC (rev 39) @@ -6,15 +6,13 @@ <td class="td_header">##IP address##</td> <td class="td_header">##Computer##</td> <td class="td_header">##Agent version##</td> -<td class="td_header">##Secret key##</td> <td class="td_header">##Expire##</td> </tr> {section name=loop loop=$secrets} <tr class="tr_data"> <td class="td_data_v">{$secrets[loop].ip_addr}</td> <td class="td_data_v">{$secrets[loop].hostname}</td> -<td class="td_data_v">{$secrets[loop].agent_version|default:'???'}</td> -<td class="td_data_v" style="text-align: center;">{$secrets[loop].secret}</td> +<td class="td_data_v">{$secrets[loop].agent_version|default:'N/A'}</td> <td class="td_data_v">{$secrets[loop].secret_expire}</td> </tr> {/section} Modified: trunk/htdocs/templates/settings_users.tpl =================================================================== --- trunk/htdocs/templates/settings_users.tpl 2007-07-29 15:39:41 UTC (rev 38) +++ trunk/htdocs/templates/settings_users.tpl 2007-07-30 19:03:39 UTC (rev 39) @@ -1,4 +1,7 @@ {include file="_page_start.tpl"} +<script language="JavaScript" type="text/javascript"> + PageUnloadWarningText = "##There are unsaved changes. If You will leave this page, all changes will be lost.##"; +</script> <h2>##Users & Passwords##</h2> <form action="{$smarty.server.REQUEST_URI}" method="post"> @@ -13,14 +16,14 @@ <td class="td_header">##Delete##</td> </tr> {section name=loop loop=$users} -<tr class="tr_data"> +<tr class="tr_data" id="tab_row_{$smarty.section.loop.index}"> <td class="td_data_v" style="font-weight: bold;"> <input type="hidden" name="user[{$smarty.section.loop.index}]" value="{$users[loop].user}" /> {$users[loop].user} </td> <td class="td_data_v"> -<select name="user_group[{$smarty.section.loop.index}]"> +<select name="user_group[{$smarty.section.loop.index}]" onChange="SettingsHighlight('tab_row_{$smarty.section.loop.index}', 'btn_submit', true);"> {section name=loop2 loop=$user_group} <option value="{$user_group[loop2]}"{if $users[loop].user_group == $user_group[loop2]} SELECTED{/if}>{$user_group[loop2]}</option> {/section} @@ -28,7 +31,7 @@ </td> <td class="td_data_v"> -<input type="text" name="email[{$smarty.section.loop.index}]" size="20" value="{$users[loop].email}"/> +<input type="text" name="email[{$smarty.section.loop.index}]" size="20" value="{$users[loop].email}" onChange="SettingsHighlight('tab_row_{$smarty.section.loop.index}', 'btn_submit', true);" /> </td> <td class="td_data_v"> @@ -37,23 +40,23 @@ </td> <td class="td_data_v"> -<input type="password" name="pass_n1[{$smarty.section.loop.index}]" size="15" /> +<input type="password" name="pass_n1[{$smarty.section.loop.index}]" size="15" onChange="SettingsHighlight('tab_row_{$smarty.section.loop.index}', 'btn_submit', true);" /> </td> <td class="td_data_v"> -<input type="password" name="pass_n2[{$smarty.section.loop.index}]" size="15" /> +<input type="password" name="pass_n2[{$smarty.section.loop.index}]" size="15" onChange="SettingsHighlight('tab_row_{$smarty.section.loop.index}', 'btn_submit', true);" /> </td> -<td class="td_data_v" align="right"><input type="checkbox" name="user_delete[{$smarty.section.loop.index}]" value="YES" /></td> +<td class="td_data_v" align="right"><input type="checkbox" name="user_delete[{$smarty.section.loop.index}]" value="YES" onChange="SettingsHighlight('tab_row_{$smarty.section.loop.index}', 'btn_submit', true);" /></td> </tr> {/section} <tr><td class="td_data_v" colspan="7"> </td></tr> <!--NEW--> -<tr style="background: #FFDC7C;"> +<tr style="background: #FFDC7C;" id="tab_row_new"> -<td class="td_data_v"><input type="text" name="new_user" size="15" value="" /></td> +<td class="td_data_v"><input type="text" name="new_user" size="15" value="" onChange="SettingsHighlight('tab_row_new', 'btn_submit', true);" /></td> <td class="td_data_v"> <select name="new_user_group"> @@ -77,7 +80,7 @@ <!--NEW--> <tr><td colspan="7" class="td_data" style="text-align: center; padding-top: 10px; padding-bottom: 10px;"> -<input type="submit" class="button_txt" name="OK" value="##Save changes##" /> +<input type="submit" id="btn_submit" class="button_txt" name="OK" value="##Save changes##" onClick="WarningBeforePageLeave = false;" /> </td></tr> </table> </form> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |