2007-05-20 Sancho Lerena <slerena@artica.es>

* pandoradb_data.sql: Uptated network component data.

        * include/styles/pandora.css: Few updates for style.

        * include/functions_db.php: Added functions for visual console
        features.

        * include/languages/language_en.php: New strings.

        * include/javascript: Moved all javascript files here.

        * include/javascript/x_slide.js, include/javascript/x_event.js:
          Copied from branch / console from Azabel.

        * include/javascript/wz_jsgraphics.js: New functions to draw
        lines.

        * pandoradb.sql: Created new tlayout and tlayout_data tables.

        * index.php: Small changes. Added support to refresh any page via
        POST.

        * operation/visual_console: Added Visual Console feature.

        * operation/agentes/estado_alertas.php: Updated styles and fixes
        damm bug when no alert available.

        * operation/agentes/status_monitor.php: Updated styles.

        * operation/agentes/estado_generalagente.php: Update styles.

        * operation/agentes/estado_agente.php: Updated style.

        * operation/servers/view_server.php: Updated style.

        * operation/reporting/graph_builder.php: Fixed some minor
        bugs. Needs to fix more bugs :(

        * operation/menu.php: Updated menu. Visual Console has dynamic items!.

        * images/pandora_logo_head.png: New header logo !

        * images/pandora_logo.png: New Pandora FMS 1.3 logo ! :-))

        * images/console/background: More samples added.

        * images/console/icons: Icons to be used in visual console.

        * reporting/fgraph.php: New feature added to simple graph to show
        only average values.

        * reporting/stat_win.php: Added support to avg_only and show avg,
        max and min values from each graph. Zoom factor is more usable
        now.

        * general/logoff.php: New style.

        * general/footer.php: Fixed style.

        * general/logon_failed.php: Fixed style.

        * general/login_page.php: New style.

        * general/header.php: Fixed style.

        * godmode/agentes/configurar_agente.php: Fixed styles.

        * godmode/agentes/agent_manager.php: Fixed styles.

	* operation/active_console: Removed from trunk: not ready to be used.



git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@459 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
This commit is contained in:
slerena 2007-05-20 17:12:31 +00:00
parent 16c91673db
commit 4e15be85c7
172 changed files with 2960 additions and 6378 deletions

View File

@ -1,12 +1,85 @@
2007-05-20 Sancho Lerena <slerena@artica.es>
* pandoradb_data.sql: Uptated network component data.
* include/styles/pandora.css: Few updates for style.
* include/functions_db.php: Added functions for visual console
features.
* include/languages/language_en.php: New strings.
* include/javascript: Moved all javascript files here.
* include/javascript/x_slide.js, include/javascript/x_event.js:
Copied from branch / console from Azabel.
* include/javascript/wz_jsgraphics.js: New functions to draw
lines.
* pandoradb.sql: Created new tlayout and tlayout_data tables.
* index.php: Small changes. Added support to refresh any page via
POST.
* operation/visual_console: Added Visual Console feature.
* operation/agentes/estado_alertas.php: Updated styles and fixes
damm bug when no alert available.
* operation/agentes/status_monitor.php: Updated styles.
* operation/agentes/estado_generalagente.php: Update styles.
* operation/agentes/estado_agente.php: Updated style.
* operation/servers/view_server.php: Updated style.
* operation/reporting/graph_builder.php: Fixed some minor
bugs. Needs to fix more bugs :(
* operation/menu.php: Updated menu. Visual Console has dynamic items!.
* images/pandora_logo_head.png: New header logo !
* images/pandora_logo.png: New Pandora FMS 1.3 logo ! :-))
* images/console/background: More samples added.
* images/console/icons: Icons to be used in visual console.
* reporting/fgraph.php: New feature added to simple graph to show
only average values.
* reporting/stat_win.php: Added support to avg_only and show avg,
max and min values from each graph. Zoom factor is more usable
now.
* general/logoff.php: New style.
* general/footer.php: Fixed style.
* general/logon_failed.php: Fixed style.
* general/login_page.php: New style.
* general/header.php: Fixed style.
* godmode/agentes/configurar_agente.php: Fixed styles.
* godmode/agentes/agent_manager.php: Fixed styles.
2007-05-18 Sancho Lerena <slerena@gmail.com>
* include/styles/pandora.css : Some style changes.
* include/functions.php: Changed format_numeric and format_for_graph to show a
better number formatting.
* include/functions.php: Changed format_numeric and
format_for_graph to show a better number formatting.
* index.php: Some minor changes in layout and bgcolor (not used style because
some pages that don't have the same color uses main style, f.e: stat_win for graphs).
* index.php: Some minor changes in layout and bgcolor (not used
style because some pages that don't have the same color uses main
style, f.e: stat_win for graphs).
* godmode/agentes/module_manager.php
* operation/agentes/estado_ultimopaquete.php
@ -15,8 +88,8 @@
* operation/agentes/datos_agente.php, estado_ul: Updated output render and fixes
some tables, added databox style, removed line.
* operation/menu.php: Removed active console. This don't go with 1.3 version
finally due many unfixed bugs.
* operation/menu.php: Removed active console. This don't go with
1.3 version finally due many unfixed bugs.
* reporting/stat_win.php: White background fixed.

View File

@ -15,9 +15,9 @@
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
echo "</center>";
echo "<center>";
echo '<a class="white_bold" target="_new" href="general/license/pandora_info_'.$language_code.'.html">
Pandora FMS '.$pandora_version.' Build '.$build_version.' '.
Pandora FMS '.$pandora_version.' Build '.$build_version.'<br>'.
$lang_label["gpl_notice"].'</a><br>';
if (isset($_SERVER['REQUEST_TIME'])) {
$time = $_SERVER['REQUEST_TIME'];

View File

@ -23,7 +23,7 @@ echo '
<span id="logo_text1">Pandora</span> <span id="logo_text2">FMS</span>
</div>
<div id="head_l">
<a href="index.php"><img src="images/logo_menu.gif" border="0" alt="logo"></a>
<a href="index.php"><img src="images/pandora_logo_head.png" border="0" alt="logo"></a>
</div>
';

View File

@ -18,25 +18,29 @@
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
?>
<div align='center'>
<h1 id="log"><?php echo $lang_label['welcome_title']; ?></h1>
<div id='login'>
<div id="login_box">
<center>
<div align='center' class='databox' style='margin-top:200px; width: 460px; border-left: solid 1px #000;border-top: solid 1px #000; border-bottom: solid 2px #000; border-right: solid 2px #000;'>
<h1 style='font-size: 18px; color: #000; margin-bottom: 0px;'><?php echo $lang_label['welcome_title']; ?></h1>
<div class='databox' style='width: 400px;'>
<form method="post" action="index.php?login=1">
<div class="f9b">Login</div>
<table cellpadding=4 cellspacing=1 width=400>
<tr><td rowspan=5 align='left'>
<a href="index.php">
<img src="images/pandora_logo.png" border="0" alt="logo"></a><br>
<?php echo $pandora_version; ?>
<td class='f9b'>
Login <br>
<input class="login" type="text" name="nick" value="">
<div class="f9b">Password</div>
<tr><td class='f9b'>
Password <br>
<input class="login" type="password" name="pass" value="">
<div><input type="submit" class="sub next" value="Login"></div>
<tr><td align='center'>
<input type="submit" class="sub next" value="Login">
</table>
</form>
</div>
<div id="logo_box">
<a href="index.php">
<img src="images/logo_login.gif" border="0" alt="logo"></a><br>
<?php echo $pandora_version; ?>
</div>
<div id="ip"><?php echo 'IP: <b class="f10">'.$REMOTE_ADDR.'</b>'; ?></div>
</div>
<div id="foot"><?php require("general/footer.php") ?></div>
</div>
</center>

View File

@ -17,17 +17,27 @@
// along with this program; if not, write to the Free Software
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
?>
<div align='center'>
<h1 id="log"><?php echo $lang_label["logged_out"] ; ?></h1>
<div id='login'>
<div id="login_box">
<?PHP echo $lang_label["logout_msg"]; ?>
</div>
<div id="logo_box">
<a href="index.php"><img src="images/logo_menu.gif" border="0" alt="logo"></a><br>
<center>
<div align='center' class='databox' style='margin-top:200px; width: 460px; border-left: solid 1px #000;border-top: solid 1px #000; border-bottom: solid 2px #000; border-right: solid 2px #000;'>
<h1 style='font-size: 18px; color: #000; margin-bottom: 0px;'>
<?php echo $lang_label["logged_out"]; ?></h1>
<div class='databox' style='width: 400px;'>
<form method="post" action="index.php?login=1">
<table cellpadding=4 cellspacing=1 width=400>
<tr><td align='left'>
<a href="index.php">
<img src="images/pandora_logo.png" border="0" alt="logo"></a><br>
<?php echo $pandora_version; ?>
<td valign='bottom'>
<?PHP echo $lang_label["logout_msg"]; ?>
</table>
</form>
</div>
<div id="ip"><?php echo 'IP: <b class="f10">'.$REMOTE_ADDR.'</b>'; ?></div>
</div>
<div id="foot"><?php require("general/footer.php") ?></div>
</div>
</center>

View File

@ -18,14 +18,22 @@
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
?>
<div align='center'>
<div id='login_f'>
<h1 id="log_f" class="error"><?php echo $lang_label['err_auth']; ?></h1>
<div id='noa'><img src='images/noaccess.gif'></div>
<div>
<a href="index.php"><img src="images/logo_login.gif" border="0"></a><br>
<center>
<div align='center' class='databox' style='margin-top:200px; width: 460px; border-left: solid 1px #000;border-top: solid 1px #000; border-bottom: solid 2px #000; border-right: solid 2px #000;'>
<div id='login_f' class='databox' style='width:400px; margin-top: 10px;'>
<h1 id="log_f" style='margin-top: 0px;' class="error"><?php echo $lang_label['err_auth']; ?></h1>
<div id='noa' style='width:50px' >
<img src='images/noaccess.gif'>
</div>
<div style='width: 350px'>
<a href="index.php"><img src="images/pandora_logo.png" border="0"></a><br>
<?php echo $pandora_version; ?>
</div>
<div class="msg"><?php echo $lang_label["err_auth_msg"]; ?></div>
</div>
<br>
</div>
</center>

View File

@ -58,8 +58,8 @@ if ($create_agent == 1) {
echo "<input type='hidden' name='update_agent' value='1'>";
echo "<input type='hidden' name='id_agente' value='".$id_agente."'>";
}
echo '<table width="650" cellpadding="3" cellspacing="3" class="fon">';
echo "<tr><td class='lb' rowspan='9' width='1'>";
echo '<table width="650" cellpadding="4" cellspacing="4" class="databox_color">';
echo "<tr>";
echo '<td class="datos"><b>'.$lang_label["agent_name"].'</b></td>
<td class="datos">
<input type="text" name="agente" size=30 value="'.$nombre_agente.'">';
@ -170,10 +170,8 @@ while ($row=mysql_fetch_array($result)){
echo $lang_label["active"].'
<input type="radio" name="disabled" class="chk" value="0" checked>';
}
?>
<tr><td colspan='3'><div class='raya'></div></td></tr>
<tr><td colspan="3" align="right">
<?php
echo '</table><table width="650"><tr><td align="right">';
if ($create_agent == 1){
echo "
<input name='crtbutton' type='submit' class='sub wand' value='".
@ -183,7 +181,6 @@ if ($create_agent == 1){
<input name='uptbutton' type='submit' class='sub upd' value='".
$lang_label["update"]."'>";
}
echo "</td></form></table>";
?>
</td>
</form>
</table>

View File

@ -617,10 +617,21 @@ if (((!isset($_POST["nc"]) OR ($_POST["nc"]==-1)) ) &&
echo "<h3 class='suc'>".$lang_label["add_module_ok"]."</h3>";
}
// Init vars to null to avoid trash in forms
$id_tipo_modulo = "";$nombre = "";$descripcion = "";$modulo_max = "";
$modulo_min = "";// Pandora 1.2 new module data:
$tcp_send = "";$tcp_rcv = "";$tcp_port = "";$ip_target = "";
$snmp_oid = "";$snmp_community = "";$id_module_group = "";
$id_tipo_modulo = "";
$nombre = "";
$modulo_nombre = "";
$descripcion = "";
$modulo_descripcion= "";
$modulo_max = "";
$modulo_min = "";
// Pandora 1.2 new module data:
$tcp_send = "";
$tcp_rcv = "";
$tcp_port = "";
$ip_target = "";
$snmp_oid = "";
$snmp_community = "";
$id_module_group = "";
$module_interval = "";
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 202 KiB

After

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 748 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 513 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 574 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

View File

@ -1083,4 +1083,112 @@ function give_db_value ($field, $table, $field_search, $condition_value){
return $pro;
}
// ---------------------------------------------------------------
// Return current status from a given agent module (1 alive, 0 down)
// ---------------------------------------------------------------
function return_status_agent_module ($id_agentmodule = 0){
require("config.php");
$query1="SELECT estado FROM tagente_estado WHERE id_agente_modulo = ".$id_agentmodule;
$resq1=mysql_query($query1);
if ($resq1 != 0) {
$rowdup=mysql_fetch_array($resq1);
if ($rowdup[0] == 0)
return 1;
else
return 0;
} else
return 0;
}
// ---------------------------------------------------------------
// Return current value from a given agent module
// ---------------------------------------------------------------
function return_value_agent_module ($id_agentmodule = 0){
require("config.php");
$query1="SELECT datos FROM tagente_estado WHERE id_agente_modulo = ".$id_agentmodule;
$resq1=mysql_query($query1);
if ($resq1 != 0) {
$rowdup=mysql_fetch_array($resq1);
return format_numeric($rowdup[0]);
} else
return 0;
}
// ---------------------------------------------------------------
// Return coordinate X from a layout item
// ---------------------------------------------------------------
function return_coordinate_X_layoutdata ($id_layoutdata){
require("config.php");
$query1="SELECT pos_x FROM tlayout_data WHERE id = ".$id_layoutdata;
$resq1=mysql_query($query1);
if ($resq1 != 0) {
$rowdup=mysql_fetch_array($resq1);
return ($rowdup[0]);
} else
return (0);
}
// ---------------------------------------------------------------
// Return coordinate X from a layout item
// ---------------------------------------------------------------
function return_coordinate_y_layoutdata ($id_layoutdata){
require("config.php");
$query1="SELECT pos_y FROM tlayout_data WHERE id = ".$id_layoutdata;
$resq1=mysql_query($query1);
if ($resq1 != 0) {
$rowdup=mysql_fetch_array($resq1);
return ($rowdup[0]);
} else
return (0);
}
function return_moduledata_avg_value ($id_agent_module, $period){
require("config.php");
$datelimit = time() - $period; // limit date
$id_agent = give_db_value ("id_agente", "tagente_modulo", "id_agente_modulo", $id_agent_module);
$query1="SELECT AVG(datos) FROM tagente_datos WHERE id_agente = $id_agent AND id_agente_modulo = $id_agent_module AND utimestamp > $datelimit";
$resq1=mysql_query($query1);
if ($resq1 != 0) {
$rowdup=mysql_fetch_array($resq1);
return ($rowdup[0]);
} else
return (0);
}
function return_moduledata_max_value ($id_agent_module, $period){
require("config.php");
$datelimit = time() - $period; // limit date
$id_agent = give_db_value ("id_agente", "tagente_modulo", "id_agente_modulo", $id_agent_module);
$query1="SELECT MAX(datos) FROM tagente_datos WHERE id_agente = $id_agent AND id_agente_modulo = $id_agent_module AND utimestamp > $datelimit";
$resq1=mysql_query($query1);
if ($resq1 != 0) {
$rowdup=mysql_fetch_array($resq1);
return ($rowdup[0]);
} else
return (0);
}
function return_moduledata_min_value ($id_agent_module, $period){
require("config.php");
$datelimit = time() - $period; // limit date
$id_agent = give_db_value ("id_agente", "tagente_modulo", "id_agente_modulo", $id_agent_module);
$query1="SELECT MIN(datos) FROM tagente_datos WHERE id_agente = $id_agent AND id_agente_modulo = $id_agent_module AND utimestamp > $datelimit";
$resq1=mysql_query($query1);
if ($resq1 != 0) {
$rowdup=mysql_fetch_array($resq1);
return ($rowdup[0]);
} else
return (0);
}
?>

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
/* This notice must be untouched at all times.
wz_jsgraphics.js v. 2.36
wz_jsgraphics.js v. 3.00
The latest version is available at
http://www.walterzorn.com
or http://www.devira.com
@ -8,7 +8,7 @@ or http://www.walterzorn.de
Copyright (c) 2002-2004 Walter Zorn. All rights reserved.
Created 3. 11. 2002 by Walter Zorn (Web: http://www.walterzorn.com )
Last modified: 21. 6. 2006
Last modified: 4. 2. 2007
Performance optimizations for Internet Explorer
by Thomas Frank and John Holdsworth.
@ -18,7 +18,7 @@ High Performance JavaScript Graphics Library.
Provides methods
- to draw lines, rectangles, ellipses, polygons
with specifiable line thickness,
- to fill rectangles and ellipses
- to fill rectangles, polygons, ellipses and arcs
- to draw text.
NOTE: Operations, functions and branching have rather been optimized
to efficiency and speed than to shortness of source code.
@ -42,62 +42,49 @@ or see http://www.gnu.org/copyleft/lesser.html
*/
var jg_ihtm, jg_ie, jg_fast, jg_dom, jg_moz,
jg_n4 = (document.layers && typeof document.classes != "undefined");
var jg_ok, jg_ie, jg_fast, jg_dom, jg_moz;
function chkDHTM(x, i)
{
x = document.body || null;
jg_ie = x && typeof x.insertAdjacentHTML != "undefined";
jg_ie = x && typeof x.insertAdjacentHTML != "undefined" && document.createElement;
jg_dom = (x && !jg_ie &&
typeof x.appendChild != "undefined" &&
typeof document.createRange != "undefined" &&
typeof (i = document.createRange()).setStartBefore != "undefined" &&
typeof i.createContextualFragment != "undefined");
jg_ihtm = !jg_ie && !jg_dom && x && typeof x.innerHTML != "undefined";
jg_fast = jg_ie && document.all && !window.opera;
jg_moz = jg_dom && typeof x.style.MozOpacity != "undefined";
jg_ok = !!(jg_ie || jg_dom);
}
function pntDoc()
{
this.wnd.document.write(jg_fast? this.htmRpc() : this.htm);
this.htm = '';
}
function pntCnvDom()
{
var x = this.wnd.document.createRange();
x.setStartBefore(this.cnv);
x = x.createContextualFragment(jg_fast? this.htmRpc() : this.htm);
if(this.cnv) this.cnv.appendChild(x);
this.htm = '';
this.htm = "";
}
function pntCnvIe()
{
if(this.cnv) this.cnv.insertAdjacentHTML("BeforeEnd", jg_fast? this.htmRpc() : this.htm);
this.htm = '';
this.htm = "";
}
function pntCnvIhtm()
function pntDoc()
{
if(this.cnv) this.cnv.innerHTML += this.htm;
this.wnd.document.write(jg_fast? this.htmRpc() : this.htm);
this.htm = '';
}
function pntCnv()
function pntN()
{
this.htm = '';
;
}
function mkDiv(x, y, w, h)
{
this.htm += '<div style="position:absolute;'+
@ -111,13 +98,11 @@ function mkDiv(x, y, w, h)
';"><\/div>';
}
function mkDivIe(x, y, w, h)
{
this.htm += '%%'+this.color+';'+x+';'+y+';'+w+';'+h+';';
}
function mkDivPrt(x, y, w, h)
{
this.htm += '<div style="position:absolute;'+
@ -132,18 +117,6 @@ function mkDivPrt(x, y, w, h)
';"><\/div>';
}
function mkLyr(x, y, w, h)
{
this.htm += '<layer '+
'left="' + x + '" '+
'top="' + y + '" '+
'width="' + w + '" '+
'height="' + h + '" '+
'bgcolor="' + this.color + '"><\/layer>\n';
}
var regex = /%%([^;]+);([^;]+);([^;]+);([^;]+);([^;]+);/g;
function htmRpc()
{
@ -153,7 +126,6 @@ function htmRpc()
'$1;left:$2;top:$3;width:$4;height:$5"></div>\n');
}
function htmPrtRpc()
{
return this.htm.replace(
@ -162,7 +134,6 @@ function htmPrtRpc()
'$1;left:$2;top:$3;width:$4;height:$5;border-left:$4px solid $1"></div>\n');
}
function mkLin(x1, y1, x2, y2)
{
if(x1 > x2)
@ -184,8 +155,8 @@ function mkLin(x1, y1, x2, y2)
pru = pr - (dx<<1),
p = pr-dx,
ox = x;
while ((dx--) > 0)
{
while(dx > 0)
{--dx;
++x;
if(p > 0)
{
@ -207,8 +178,8 @@ function mkLin(x1, y1, x2, y2)
oy = y;
if(y2 <= y1)
{
while ((dy--) > 0)
{
while(dy > 0)
{--dy;
if(p > 0)
{
this.mkDiv(x++, y, 1, oy-y+1);
@ -226,8 +197,8 @@ function mkLin(x1, y1, x2, y2)
}
else
{
while ((dy--) > 0)
{
while(dy > 0)
{--dy;
y += yIncr;
if(p > 0)
{
@ -242,7 +213,6 @@ function mkLin(x1, y1, x2, y2)
}
}
function mkLin2D(x1, y1, x2, y2)
{
if(x1 > x2)
@ -273,8 +243,8 @@ function mkLin2D(x1, y1, x2, y2)
pru = pr - (dx<<1),
p = pr-dx,
ox = x;
while ((dx--) > 0)
{
while(dx > 0)
{--dx;
++x;
if(p > 0)
{
@ -305,8 +275,8 @@ function mkLin2D(x1, y1, x2, y2)
if(y2 <= y1)
{
++ad;
while ((dy--) > 0)
{
while(dy > 0)
{--dy;
if(p > 0)
{
this.mkDiv(x++, y, _s, oy-y+ad);
@ -324,8 +294,8 @@ function mkLin2D(x1, y1, x2, y2)
}
else
{
while ((dy--) > 0)
{
while(dy > 0)
{--dy;
y += yIncr;
if(p > 0)
{
@ -340,7 +310,6 @@ function mkLin2D(x1, y1, x2, y2)
}
}
function mkLinDott(x1, y1, x2, y2)
{
if(x1 > x2)
@ -361,8 +330,8 @@ function mkLinDott(x1, y1, x2, y2)
var pr = dy<<1,
pru = pr - (dx<<1),
p = pr-dx;
while ((dx--) > 0)
{
while(dx > 0)
{--dx;
if(drw) this.mkDiv(x, y, 1, 1);
drw = !drw;
if(p > 0)
@ -373,16 +342,14 @@ function mkLinDott(x1, y1, x2, y2)
else p += pr;
++x;
}
if (drw) this.mkDiv(x, y, 1, 1);
}
else
{
var pr = dx<<1,
pru = pr - (dy<<1),
p = pr-dy;
while ((dy--) > 0)
{
while(dy > 0)
{--dy;
if(drw) this.mkDiv(x, y, 1, 1);
drw = !drw;
y += yIncr;
@ -393,84 +360,85 @@ function mkLinDott(x1, y1, x2, y2)
}
else p += pr;
}
}
if(drw) this.mkDiv(x, y, 1, 1);
}
}
function mkOv(left, top, width, height)
{
var a = width>>1, b = height>>1,
wod = width&1, hod = (height&1)+1,
var a = (++width)>>1, b = (++height)>>1,
wod = width&1, hod = height&1,
cx = left+a, cy = top+b,
x = 0, y = b,
ox = 0, oy = b,
aa = (a*a)<<1, bb = (b*b)<<1,
st = (aa>>1)*(1-(b<<1)) + bb,
tt = (bb>>1) - aa*((b<<1)-1),
aa2 = (a*a)<<1, aa4 = aa2<<1, bb2 = (b*b)<<1, bb4 = bb2<<1,
st = (aa2>>1)*(1-(b<<1)) + bb2,
tt = (bb2>>1) - aa2*((b<<1)-1),
w, h;
while(y > 0)
{
if(st < 0)
{
st += bb*((x<<1)+3);
tt += (bb<<1)*(++x);
st += bb2*((x<<1)+3);
tt += bb4*(++x);
}
else if(tt < 0)
{
st += bb*((x<<1)+3) - (aa<<1)*(y-1);
tt += (bb<<1)*(++x) - aa*(((y--)<<1)-3);
st += bb2*((x<<1)+3) - aa4*(y-1);
tt += bb4*(++x) - aa2*(((y--)<<1)-3);
w = x-ox;
h = oy-y;
if (w&2 && h&2)
if((w&2) && (h&2))
{
this.mkOvQds(cx, cy, -x+2, ox+wod, -oy, oy-1+hod, 1, 1);
this.mkOvQds(cx, cy, -x+1, x-1+wod, -y-1, y+hod, 1, 1);
this.mkOvQds(cx, cy, x-2, y+2, 1, 1, wod, hod);
this.mkOvQds(cx, cy, x-1, y+1, 1, 1, wod, hod);
}
else this.mkOvQds(cx, cy, -x+1, ox+wod, -oy, oy-h+hod, w, h);
else this.mkOvQds(cx, cy, x-1, oy, w, h, wod, hod);
ox = x;
oy = y;
}
else
{
tt -= aa*((y<<1)-3);
st -= (aa<<1)*(--y);
tt -= aa2*((y<<1)-3);
st -= aa4*(--y);
}
}
this.mkDiv(cx-a, cy-oy, a-ox+1, (oy<<1)+hod);
this.mkDiv(cx+ox+wod, cy-oy, a-ox+1, (oy<<1)+hod);
w = a-ox+1;
h = (oy<<1)+hod;
y = cy-oy;
this.mkDiv(cx-a, y, w, h);
this.mkDiv(cx+ox+wod-1, y, w, h);
}
function mkOv2D(left, top, width, height)
{
var s = this.stroke;
width += s-1;
height += s-1;
width += s+1;
height += s+1;
var a = width>>1, b = height>>1,
wod = width&1, hod = (height&1)+1,
wod = width&1, hod = height&1,
cx = left+a, cy = top+b,
x = 0, y = b,
aa = (a*a)<<1, bb = (b*b)<<1,
st = (aa>>1)*(1-(b<<1)) + bb,
tt = (bb>>1) - aa*((b<<1)-1);
aa2 = (a*a)<<1, aa4 = aa2<<1, bb2 = (b*b)<<1, bb4 = bb2<<1,
st = (aa2>>1)*(1-(b<<1)) + bb2,
tt = (bb2>>1) - aa2*((b<<1)-1);
if(s-4 < 0 && (!(s-2) || width-51 > 0 && height-51 > 0))
{
var ox = 0, oy = b,
w, h,
pxl, pxr, pxt, pxb, pxw;
pxw;
while(y > 0)
{
if(st < 0)
{
st += bb*((x<<1)+3);
tt += (bb<<1)*(++x);
st += bb2*((x<<1)+3);
tt += bb4*(++x);
}
else if(tt < 0)
{
st += bb*((x<<1)+3) - (aa<<1)*(y-1);
tt += (bb<<1)*(++x) - aa*(((y--)<<1)-3);
st += bb2*((x<<1)+3) - aa4*(y-1);
tt += bb4*(++x) - aa2*(((y--)<<1)-3);
w = x-ox;
h = oy-y;
@ -485,28 +453,28 @@ function mkOv2D(left, top, width, height)
h += 1+(s&1);
}
else pxw = h = s;
this.mkOvQds(cx, cy, -x+1, ox-pxw+w+wod, -oy, -h+oy+hod, pxw, h);
this.mkOvQds(cx, cy, x-1, oy, pxw, h, wod, hod);
ox = x;
oy = y;
}
else
{
tt -= aa*((y<<1)-3);
st -= (aa<<1)*(--y);
tt -= aa2*((y<<1)-3);
st -= aa4*(--y);
}
}
this.mkDiv(cx-a, cy-oy, s, (oy<<1)+hod);
this.mkDiv(cx+a+wod-s+1, cy-oy, s, (oy<<1)+hod);
this.mkDiv(cx+a+wod-s, cy-oy, s, (oy<<1)+hod);
}
else
{
var _a = (width-((s-1)<<1))>>1,
_b = (height-((s-1)<<1))>>1,
var _a = (width-(s<<1))>>1,
_b = (height-(s<<1))>>1,
_x = 0, _y = _b,
_aa = (_a*_a)<<1, _bb = (_b*_b)<<1,
_st = (_aa>>1)*(1-(_b<<1)) + _bb,
_tt = (_bb>>1) - _aa*((_b<<1)-1),
_aa2 = (_a*_a)<<1, _aa4 = _aa2<<1, _bb2 = (_b*_b)<<1, _bb4 = _bb2<<1,
_st = (_aa2>>1)*(1-(_b<<1)) + _bb2,
_tt = (_bb2>>1) - _aa2*((_b<<1)-1),
pxl = new Array(),
pxt = new Array(),
@ -518,48 +486,48 @@ function mkOv2D(left, top, width, height)
{
if(st < 0)
{
st += bb*((x<<1)+3);
tt += (bb<<1)*(++x);
pxl[pxl.length] = x;
pxt[pxt.length] = y;
st += bb2*((x<<1)+3);
tt += bb4*(++x);
}
else if(tt < 0)
{
st += bb*((x<<1)+3) - (aa<<1)*(y-1);
tt += (bb<<1)*(++x) - aa*(((y--)<<1)-3);
pxl[pxl.length] = x;
st += bb2*((x<<1)+3) - aa4*(y-1);
tt += bb4*(++x) - aa2*(((y--)<<1)-3);
pxt[pxt.length] = y;
}
else
{
tt -= aa*((y<<1)-3);
st -= (aa<<1)*(--y);
tt -= aa2*((y<<1)-3);
st -= aa4*(--y);
}
if(_y > 0)
{
if(_st < 0)
{
_st += _bb*((_x<<1)+3);
_tt += (_bb<<1)*(++_x);
_st += _bb2*((_x<<1)+3);
_tt += _bb4*(++_x);
_pxb[_pxb.length] = _y-1;
}
else if(_tt < 0)
{
_st += _bb*((_x<<1)+3) - (_aa<<1)*(_y-1);
_tt += (_bb<<1)*(++_x) - _aa*(((_y--)<<1)-3);
_st += _bb2*((_x<<1)+3) - _aa4*(_y-1);
_tt += _bb4*(++_x) - _aa2*(((_y--)<<1)-3);
_pxb[_pxb.length] = _y-1;
}
else
{
_tt -= _aa*((_y<<1)-3);
_st -= (_aa<<1)*(--_y);
_tt -= _aa2*((_y<<1)-3);
_st -= _aa4*(--_y);
_pxb[_pxb.length-1]--;
}
}
}
var ox = 0, oy = b,
var ox = -wod, oy = b,
_oy = _pxb[0],
l = pxl.length,
w, h;
@ -570,7 +538,7 @@ function mkOv2D(left, top, width, height)
if(_pxb[i] < _oy || pxt[i] < oy)
{
x = pxl[i];
this.mkOvQds(cx, cy, -x+1, ox+wod, -oy, _oy+hod, x-ox, oy-_oy);
this.mkOvQds(cx, cy, x, oy, x-ox, oy-_oy, wod, hod);
ox = x;
oy = pxt[i];
_oy = _pxb[i];
@ -579,7 +547,7 @@ function mkOv2D(left, top, width, height)
else
{
x = pxl[i];
this.mkDiv(cx-x+1, cy-oy, 1, (oy<<1)+hod);
this.mkDiv(cx-x, cy-oy, 1, (oy<<1)+hod);
this.mkDiv(cx+ox+wod, cy-oy, 1, (oy<<1)+hod);
ox = x;
oy = pxt[i];
@ -590,40 +558,38 @@ function mkOv2D(left, top, width, height)
}
}
function mkOvDott(left, top, width, height)
{
var a = width>>1, b = height>>1,
wod = width&1, hod = height&1,
var a = (++width)>>1, b = (++height)>>1,
wod = width&1, hod = height&1, hodu = hod^1,
cx = left+a, cy = top+b,
x = 0, y = b,
aa2 = (a*a)<<1, aa4 = aa2<<1, bb = (b*b)<<1,
st = (aa2>>1)*(1-(b<<1)) + bb,
tt = (bb>>1) - aa2*((b<<1)-1),
aa2 = (a*a)<<1, aa4 = aa2<<1, bb2 = (b*b)<<1, bb4 = bb2<<1,
st = (aa2>>1)*(1-(b<<1)) + bb2,
tt = (bb2>>1) - aa2*((b<<1)-1),
drw = true;
while(y > 0)
{
if(st < 0)
{
st += bb*((x<<1)+3);
tt += (bb<<1)*(++x);
st += bb2*((x<<1)+3);
tt += bb4*(++x);
}
else if(tt < 0)
{
st += bb*((x<<1)+3) - aa4*(y-1);
tt += (bb<<1)*(++x) - aa2*(((y--)<<1)-3);
st += bb2*((x<<1)+3) - aa4*(y-1);
tt += bb4*(++x) - aa2*(((y--)<<1)-3);
}
else
{
tt -= aa2*((y<<1)-3);
st -= aa4*(--y);
}
if (drw) this.mkOvQds(cx, cy, -x, x+wod, -y, y+hod, 1, 1);
if(drw && y >= hodu) this.mkOvQds(cx, cy, x, y, 1, 1, wod, hod);
drw = !drw;
}
}
function mkRect(x, y, w, h)
{
var s = this.stroke;
@ -633,7 +599,6 @@ function mkRect(x, y, w, h)
this.mkDiv(x, y+s, s, h-s);
}
function mkRectDott(x, y, w, h)
{
this.drawLine(x, y, x+w, y);
@ -642,7 +607,6 @@ function mkRectDott(x, y, w, h)
this.drawLine(x, y, x, y+h);
}
function jsgFont()
{
this.PLAIN = 'font-weight:normal;';
@ -653,15 +617,13 @@ function jsgFont()
}
var Font = new jsgFont();
function jsgStroke()
{
this.DOTTED = -1;
}
var Stroke = new jsgStroke();
function jsGraphics(id, wnd)
function jsGraphics(cnv, wnd)
{
this.setColor = new Function('arg', 'this.color = arg.toLowerCase();');
@ -688,7 +650,6 @@ function jsGraphics(id, wnd)
}
};
this.setPrintable = function(arg)
{
this.printable = arg;
@ -697,10 +658,9 @@ function jsGraphics(id, wnd)
this.mkDiv = mkDivIe;
this.htmRpc = arg? htmPrtRpc : htmRpc;
}
else this.mkDiv = jg_n4? mkLyr : arg? mkDivPrt : mkDiv;
else this.mkDiv = arg? mkDivPrt : mkDiv;
};
this.setFont = function(fam, sz, sty)
{
this.ftFam = fam;
@ -708,61 +668,56 @@ function jsGraphics(id, wnd)
this.ftSty = sty || Font.PLAIN;
};
this.drawPolyline = this.drawPolyLine = function(x, y, s)
this.drawPolyline = this.drawPolyLine = function(x, y)
{
for (var i=0 ; i<x.length-1 ; i++ )
for (var i=x.length - 1; i;)
{--i;
this.drawLine(x[i], y[i], x[i+1], y[i+1]);
}
};
this.fillRect = function(x, y, w, h)
{
this.mkDiv(x, y, w, h);
};
this.drawPolygon = function(x, y)
{
this.drawPolyline(x, y);
this.drawLine(x[x.length-1], y[x.length-1], x[0], y[0]);
};
this.drawEllipse = this.drawOval = function(x, y, w, h)
{
this.mkOv(x, y, w, h);
};
this.fillEllipse = this.fillOval = function(left, top, w, h)
{
var a = (w -= 1)>>1, b = (h -= 1)>>1,
wod = (w&1)+1, hod = (h&1)+1,
var a = w>>1, b = h>>1,
wod = w&1, hod = h&1,
cx = left+a, cy = top+b,
x = 0, y = b,
ox = 0, oy = b,
aa2 = (a*a)<<1, aa4 = aa2<<1, bb = (b*b)<<1,
st = (aa2>>1)*(1-(b<<1)) + bb,
tt = (bb>>1) - aa2*((b<<1)-1),
pxl, dw, dh;
if (w+1) while (y > 0)
x = 0, y = b, oy = b,
aa2 = (a*a)<<1, aa4 = aa2<<1, bb2 = (b*b)<<1, bb4 = bb2<<1,
st = (aa2>>1)*(1-(b<<1)) + bb2,
tt = (bb2>>1) - aa2*((b<<1)-1),
xl, dw, dh;
if(w) while(y > 0)
{
if(st < 0)
{
st += bb*((x<<1)+3);
tt += (bb<<1)*(++x);
st += bb2*((x<<1)+3);
tt += bb4*(++x);
}
else if(tt < 0)
{
st += bb*((x<<1)+3) - aa4*(y-1);
pxl = cx-x;
st += bb2*((x<<1)+3) - aa4*(y-1);
xl = cx-x;
dw = (x<<1)+wod;
tt += (bb<<1)*(++x) - aa2*(((y--)<<1)-3);
tt += bb4*(++x) - aa2*(((y--)<<1)-3);
dh = oy-y;
this.mkDiv(pxl, cy-oy, dw, dh);
this.mkDiv(pxl, cy+y+hod, dw, dh);
ox = x;
this.mkDiv(xl, cy-oy, dw, dh);
this.mkDiv(xl, cy+y+hod, dw, dh);
oy = y;
}
else
@ -771,9 +726,74 @@ function jsGraphics(id, wnd)
st -= aa4*(--y);
}
}
this.mkDiv(cx-a, cy-oy, w+1, (oy<<1)+hod);
this.mkDiv(cx-a, cy-oy, w, (oy<<1)+hod);
};
this.fillArc = function(iL, iT, iW, iH, fAngA, fAngZ)
{
var a = iW>>1, b = iH>>1,
iOdds = (iW&1) | ((iH&1) << 16),
cx = iL+a, cy = iT+b,
x = 0, y = b, ox = x, oy = y,
aa2 = (a*a)<<1, aa4 = aa2<<1, bb2 = (b*b)<<1, bb4 = bb2<<1,
st = (aa2>>1)*(1-(b<<1)) + bb2,
tt = (bb2>>1) - aa2*((b<<1)-1),
// Vars for radial boundary lines
xEndA, yEndA, xEndZ, yEndZ,
iSects = (1 << (Math.floor((fAngA %= 360.0)/180.0) << 3))
| (2 << (Math.floor((fAngZ %= 360.0)/180.0) << 3))
| ((fAngA >= fAngZ) << 16),
aBndA = new Array(b+1), aBndZ = new Array(b+1);
// Set up radial boundary lines
fAngA *= Math.PI/180.0;
fAngZ *= Math.PI/180.0;
xEndA = cx+Math.round(a*Math.cos(fAngA));
yEndA = cy+Math.round(-b*Math.sin(fAngA));
aBndA.mkLinVirt(cx, cy, xEndA, yEndA);
xEndZ = cx+Math.round(a*Math.cos(fAngZ));
yEndZ = cy+Math.round(-b*Math.sin(fAngZ));
aBndZ.mkLinVirt(cx, cy, xEndZ, yEndZ);
while(y > 0)
{
if(st < 0) // Advance x
{
st += bb2*((x<<1)+3);
tt += bb4*(++x);
}
else if(tt < 0) // Advance x and y
{
st += bb2*((x<<1)+3) - aa4*(y-1);
ox = x;
tt += bb4*(++x) - aa2*(((y--)<<1)-3);
this.mkArcDiv(ox, y, oy, cx, cy, iOdds, aBndA, aBndZ, iSects);
oy = y;
}
else // Advance y
{
tt -= aa2*((y<<1)-3);
st -= aa4*(--y);
if(y && (aBndA[y] != aBndA[y-1] || aBndZ[y] != aBndZ[y-1]))
{
this.mkArcDiv(x, y, oy, cx, cy, iOdds, aBndA, aBndZ, iSects);
ox = x;
oy = y;
}
}
}
this.mkArcDiv(x, 0, oy, cx, cy, iOdds, aBndA, aBndZ, iSects);
if(iOdds >> 16) // Odd height
{
if(iSects >> 16) // Start-angle > end-angle
{
var xl = (yEndA <= cy || yEndZ > cy)? (cx - x) : cx;
this.mkDiv(xl, cy, x + cx - xl + (iOdds & 0xffff), 1);
}
else if((iSects & 0x01) && yEndZ > cy)
this.mkDiv(cx - x, cy, x, 1);
}
};
/* fillPolygon method, implemented by Matthieu Haller.
This javascript function is an adaptation of the gdImageFilledPolygon for Walter Zorn lib.
@ -796,10 +816,8 @@ interior_extrema. */
var ints;
var n = array_x.length;
if(!n) return;
miny = array_y[0];
maxy = array_y[0];
for(i = 1; i < n; i++)
@ -842,20 +860,19 @@ interior_extrema. */
}
else continue;
// modified 11. 2. 2004 Walter Zorn
// Modified 11. 2. 2004 Walter Zorn
if((y >= y1) && (y < y2))
polyInts[ints++] = Math.round((y-y1) * (x2-x1) / (y2-y1) + x1);
else if((y == maxy) && (y > y1) && (y <= y2))
polyInts[ints++] = Math.round((y-y1) * (x2-x1) / (y2-y1) + x1);
}
polyInts.sort(integer_compare);
polyInts.sort(CompInt);
for(i = 0; i < ints; i+=2)
this.mkDiv(polyInts[i], y, polyInts[i+1]-polyInts[i]+1, 1);
}
};
this.drawString = function(txt, x, y)
{
this.htm += '<div style="position:absolute;white-space:nowrap;'+
@ -868,7 +885,6 @@ interior_extrema. */
'<\/div>';
};
/* drawStringRect() added by Rick Blommers.
Allows to specify the size of the text rectangle and to align the
text both horizontally (e.g. right) and vertically within that rectangle */
@ -886,7 +902,6 @@ text both horizontally (e.g. right) and vertically within that rectangle */
'<\/div>';
};
this.drawImage = function(imgSrc, x, y, w, h, a)
{
this.htm += '<div style="position:absolute;'+
@ -898,46 +913,189 @@ text both horizontally (e.g. right) and vertically within that rectangle */
'<\/div>';
};
this.clear = function()
{
this.htm = "";
if (this.cnv) this.cnv.innerHTML = this.defhtm;
if(this.cnv) this.cnv.innerHTML = "";
};
this.mkOvQds = function(cx, cy, xl, xr, yt, yb, w, h)
this.mkOvQds = function(cx, cy, x, y, w, h, wod, hod)
{
this.mkDiv(xr+cx, yt+cy, w, h);
this.mkDiv(xr+cx, yb+cy, w, h);
this.mkDiv(xl+cx, yb+cy, w, h);
this.mkDiv(xl+cx, yt+cy, w, h);
var xl = cx - x, xr = cx + x + wod - w, yt = cy - y, yb = cy + y + hod - h;
if(xr > xl+w)
{
this.mkDiv(xr, yt, w, h);
this.mkDiv(xr, yb, w, h);
}
else
w = xr - xl + w;
this.mkDiv(xl, yt, w, h);
this.mkDiv(xl, yb, w, h);
};
this.mkArcDiv = function(x, y, oy, cx, cy, iOdds, aBndA, aBndZ, iSects)
{
var xrDef = cx + x + (iOdds & 0xffff), y2, h = oy - y, xl, xr, w;
if(!h) h = 1;
x = cx - x;
if(iSects & 0xff0000) // Start-angle > end-angle
{
y2 = cy - y - h;
if(iSects & 0x00ff)
{
if(iSects & 0x02)
{
xl = Math.max(x, aBndZ[y]);
w = xrDef - xl;
if(w > 0) this.mkDiv(xl, y2, w, h);
}
if(iSects & 0x01)
{
xr = Math.min(xrDef, aBndA[y]);
w = xr - x;
if(w > 0) this.mkDiv(x, y2, w, h);
}
}
else
this.mkDiv(x, y2, xrDef - x, h);
y2 = cy + y + (iOdds >> 16);
if(iSects & 0xff00)
{
if(iSects & 0x0100)
{
xl = Math.max(x, aBndA[y]);
w = xrDef - xl;
if(w > 0) this.mkDiv(xl, y2, w, h);
}
if(iSects & 0x0200)
{
xr = Math.min(xrDef, aBndZ[y]);
w = xr - x;
if(w > 0) this.mkDiv(x, y2, w, h);
}
}
else
this.mkDiv(x, y2, xrDef - x, h);
}
else
{
if(iSects & 0x00ff)
{
if(iSects & 0x02)
xl = Math.max(x, aBndZ[y]);
else
xl = x;
if(iSects & 0x01)
xr = Math.min(xrDef, aBndA[y]);
else
xr = xrDef;
y2 = cy - y - h;
w = xr - xl;
if(w > 0) this.mkDiv(xl, y2, w, h);
}
if(iSects & 0xff00)
{
if(iSects & 0x0100)
xl = Math.max(x, aBndA[y]);
else
xl = x;
if(iSects & 0x0200)
xr = Math.min(xrDef, aBndZ[y]);
else
xr = xrDef;
y2 = cy + y + (iOdds >> 16);
w = xr - xl;
if(w > 0) this.mkDiv(xl, y2, w, h);
}
}
};
this.setStroke(1);
this.setFont('verdana,geneva,helvetica,sans-serif', String.fromCharCode(0x31, 0x32, 0x70, 0x78), Font.PLAIN);
this.color = '#000000';
this.htm = '';
this.setFont("verdana,geneva,helvetica,sans-serif", "12px", Font.PLAIN);
this.color = "#000000";
this.htm = "";
this.wnd = wnd || window;
if (!(jg_ie || jg_dom || jg_ihtm)) chkDHTM();
if (typeof id != 'string' || !id) this.paint = pntDoc;
else
if(!jg_ok) chkDHTM();
if(jg_ok)
{
this.cnv = document.all? (this.wnd.document.all[id] || null)
: document.getElementById? (this.wnd.document.getElementById(id) || null)
if(cnv)
{
if(typeof(cnv) == "string")
this.cont = document.all? (this.wnd.document.all[cnv] || null)
: document.getElementById? (this.wnd.document.getElementById(cnv) || null)
: null;
this.defhtm = (this.cnv && this.cnv.innerHTML)? this.cnv.innerHTML : '';
this.paint = jg_dom? pntCnvDom : jg_ie? pntCnvIe : jg_ihtm? pntCnvIhtm : pntCnv;
else if(cnv == window.document)
this.cont = document.getElementsByTagName("body")[0];
// If cnv is a direct reference to a canvas DOM node
// (option suggested by Andreas Luleich)
else this.cont = cnv;
// Create new canvas inside container DIV. Thus the drawing and clearing
// methods won't interfere with the container's inner html.
// Solution suggested by Vladimir.
this.cnv = document.createElement("div");
this.cont.appendChild(this.cnv);
this.paint = jg_dom? pntCnvDom : pntCnvIe;
}
else
this.paint = pntDoc;
}
else
this.paint = pntN;
this.setPrintable(false);
}
function integer_compare(x,y)
Array.prototype.mkLinVirt = function(x1, y1, x2, y2)
{
return (x < y) ? -1 : ((x > y)*1);
var dx = Math.abs(x2-x1), dy = Math.abs(y2-y1),
x = x1, y = y1,
xIncr = (x1 > x2)? -1 : 1,
yIncr = (y1 > y2)? -1 : 1,
p,
i = 0;
if(dx >= dy)
{
var pr = dy<<1,
pru = pr - (dx<<1);
p = pr-dx;
while(dx > 0)
{--dx;
if(p > 0) // Increment y
{
this[i++] = x;
y += yIncr;
p += pru;
}
else p += pr;
x += xIncr;
}
}
else
{
var pr = dx<<1,
pru = pr - (dy<<1);
p = pr-dy;
while(dy > 0)
{--dy;
y += yIncr;
this[i++] = x;
if(p > 0) // Increment x
{
x += xIncr;
p += pru;
}
else p += pr;
}
}
for(var len = this.length, i = len-i; i;)
this[len-(i--)] = x;
};
function CompInt(x, y)
{
return(x - y);
}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,2 @@
/* x_event.js compiled from X 4.0 with XC 0.27b. Distributed by GNU LGPL. For copyrights, license, documentation and more visit Cross-Browser.com */
function xAddEventListener(e,eT,eL,cap){if(!(e=xGetElementById(e))) return;eT=eT.toLowerCase();if((!xIE4Up && !xOp7Up) && e==window) {if(eT=='resize') { window.xPCW=xClientWidth(); window.xPCH=xClientHeight(); window.xREL=eL; xResizeEvent(); return; }if(eT=='scroll') { window.xPSL=xScrollLeft(); window.xPST=xScrollTop(); window.xSEL=eL; xScrollEvent(); return; }}var eh='e.on'+eT+'=eL';if(e.addEventListener) e.addEventListener(eT,eL,cap);else if(e.attachEvent) e.attachEvent('on'+eT,eL);else eval(eh);}function xResizeEvent(){if (window.xREL) setTimeout('xResizeEvent()', 250);var cw = xClientWidth(), ch = xClientHeight();if (window.xPCW != cw || window.xPCH != ch) { window.xPCW = cw; window.xPCH = ch; if (window.xREL) window.xREL(); }}function xScrollEvent(){if (window.xSEL) setTimeout('xScrollEvent()', 250);var sl = xScrollLeft(), st = xScrollTop();if (window.xPSL != sl || window.xPST != st) { window.xPSL = sl; window.xPST = st; if (window.xSEL) window.xSEL(); }}function xEvent(evt) {var e = evt || window.event;if(!e) return;if(e.type) this.type = e.type;if(e.target) this.target = e.target;else if(e.srcElement) this.target = e.srcElement;if (e.relatedTarget) this.relatedTarget = e.relatedTarget;else if (e.type == 'mouseover' && e.fromElement) this.relatedTarget = e.fromElement;else if (e.type == 'mouseout') this.relatedTarget = e.toElement;if(xOp6Dn) { this.pageX = e.clientX; this.pageY = e.clientY; }else if(xDef(e.pageX,e.pageY)) { this.pageX = e.pageX; this.pageY = e.pageY; }else if(xDef(e.clientX,e.clientY)) { this.pageX = e.clientX + xScrollLeft(); this.pageY = e.clientY + xScrollTop(); }if (xDef(e.offsetX,e.offsetY)) {this.offsetX = e.offsetX;this.offsetY = e.offsetY;}else if (xDef(e.layerX,e.layerY)) {this.offsetX = e.layerX;this.offsetY = e.layerY;}else {this.offsetX = this.pageX - xPageX(this.target);this.offsetY = this.pageY - xPageY(this.target);}if (e.keyCode) { this.keyCode = e.keyCode; } else if (xDef(e.which) && e.type.indexOf('key')!=-1) { this.keyCode = e.which; }this.shiftKey = e.shiftKey;this.ctrlKey = e.ctrlKey;this.altKey = e.altKey;}function xPreventDefault(e){if (e && e.preventDefault) e.preventDefault();else if (window.event) window.event.returnValue = false;}function xRemoveEventListener(e,eT,eL,cap){if(!(e=xGetElementById(e))) return;eT=eT.toLowerCase();if((!xIE4Up && !xOp7Up) && e==window) {if(eT=='resize') { window.xREL=null; return; }if(eT=='scroll') { window.xSEL=null; return; }}var eh='e.on'+eT+'=null';if(e.removeEventListener) e.removeEventListener(eT,eL,cap);else if(e.detachEvent) e.detachEvent('on'+eT,eL);else eval(eh);}function xStopPropagation(evt){if (evt && evt.stopPropagation) evt.stopPropagation();else if (window.event) window.event.cancelBubble = true;}

View File

@ -0,0 +1,2 @@
/* x_slide.js compiled from X 4.0 with XC 0.27b. Distributed by GNU LGPL. For copyrights, license, documentation and more visit Cross-Browser.com */
function xSlideTo(e, x, y, uTime){if (!(e=xGetElementById(e))) return;if (!e.timeout) e.timeout = 25;e.xTarget = x; e.yTarget = y; e.slideTime = uTime; e.stop = false;e.yA = e.yTarget - xTop(e); e.xA = e.xTarget - xLeft(e); if (e.slideLinear) e.B = 1/e.slideTime;else e.B = Math.PI / (2 * e.slideTime); e.yD = xTop(e); e.xD = xLeft(e); var d = new Date(); e.C = d.getTime();if (!e.moving) _xSlideTo(e);}function _xSlideTo(e){if (!(e=xGetElementById(e))) return;var now, s, t, newY, newX;now = new Date();t = now.getTime() - e.C;if (e.stop) { e.moving = false; }else if (t < e.slideTime) {setTimeout("_xSlideTo('"+e.id+"')", e.timeout);if (e.slideLinear) s = e.B * t;else s = Math.sin(e.B * t);newX = Math.round(e.xA * s + e.xD);newY = Math.round(e.yA * s + e.yD);xMoveTo(e, newX, newY);e.moving = true;} else {xMoveTo(e, e.xTarget, e.yTarget);e.moving = false;} }

View File

@ -5,10 +5,8 @@
// Main PHP/SQL code development and project architecture and management
// Copyright (c) 2004-2007 Raul Mateos Martin, raulofpandora@gmail.com
// CSS and some PHP additions
// Copyright (c) 2006-2007 Jonathan Barajas, jonathan.barajas[AT]gmail[DOT]com
// Javascript Active Console code.
// Copyright (c) 2006 Jose Navarro <contacto@indiseg.net>
// Additions to Pandora FMS 1.2 graph code and new XML reporting template management
// Additions to Pandora FMS 1.2 graph code
// Copyright (c) 2005-2007 Artica Soluciones Tecnologicas, info@artica.es
//
// This program is free software; you can redistribute it and/or
@ -21,6 +19,7 @@
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
$lang_label["view_agents"]="View Agents";
$lang_label["manage_incidents"]="Manage Incidents";
$lang_label["view_users"]= "View Users";
@ -660,7 +659,6 @@ $lang_label["no_monitors_g"]="This group doesn't have any monitor";
$lang_label["reporting"]="Reporting";
$lang_label["agent_general_reporting"]="Agent overview";
$lang_label["active_console"]="Active console";
$lang_label["validate_event_failed"]="Event validation failed";
$lang_label["load"]="Load";
$lang_label["information"]="General information";
@ -783,6 +781,16 @@ $lang_label["friday"]="Friday";
$lang_label["saturday"]="Saturday";
$lang_label["hr"]="Hr";
$lang_label["get_file"]="Download file";
// 19 May
$lang_label["visual_console"]="Visual console";
$lang_label["elements"]="Elements";
$lang_label["minutes"]="minutes";
$lang_label["avg_only"]="Avg.Only";
$lang_label["avg_value"]="Avg. Value";
$lang_label["auto_refresh_time"]="Autorefresh time";
$lang_label["refresh"]="Refresh";
global $lang_label;
global $help_label;
?>

View File

@ -313,7 +313,7 @@ td.datos_jus, td.datos2_jus {
text-align: center;
}
.f9, .f9i, .f9b, td.f9, td.f9i, td.datosf9, td.datos2f9 {
font-size: 9px;
font-size: 8px;
}
.f9i, .redi {
font-style: italic;
@ -548,6 +548,7 @@ span.master, span.snmp, span.binary, span.recon {
}
.databox_color {
border-left: 4px solid #778855;
}
#head_l {
float: left;

View File

@ -70,15 +70,20 @@ require "include/functions_db.php";
<head>
<?php
// Refresh page
if (isset ($_GET["refr"])){
if ( (isset ($_GET["refr"])) || (isset($_POST["refr"])) ){
if (isset ($_GET["refr"]))
$intervalo = entrada_limpia ($_GET["refr"]);
if (isset ($_POST["refr"]))
$intervalo = entrada_limpia ($_POST["refr"]);
if ($intervalo > 0){
// Agent selection filters and refresh
$query = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'] . '&refr=' . $intervalo;
if (isset ($_POST["ag_group"])) {
$ag_group = $_POST["ag_group"];
$query = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'] . '&ag_group_refresh=' . $ag_group;
echo '<meta http-equiv="refresh" content="' . $intervalo . '; URL=' . $query . '">';
} else
echo '<meta http-equiv="refresh" content="' . $intervalo . '">';
echo '<meta http-equiv="refresh" content="' . $intervalo . '; URL=' . $query . '">';
}
}
?>
<title>Pandora FMS - <?php echo $lang_label["header_title"]; ?></title>
@ -92,7 +97,8 @@ if (isset ($_GET["refr"])){
<meta name="robots" content="index, follow">
<link rel="icon" href="images/pandora.ico" type="image/ico">
<link rel="stylesheet" href="include/styles/pandora.css" type="text/css">
<script type='text/JavaScript' src='include/calendar.js'></script>
<script type='text/JavaScript' src='include/javascript/calendar.js'></script>
<script type="text/javascript" src="include/javascript/wz_jsgraphics.js"></script>
</head>
<?php
@ -136,9 +142,6 @@ if (isset ($_GET["refr"])){
$pass = $primera . "****" . $ultima;
audit_db ($nick, $REMOTE_ADDR, "Logon Failed",
"Incorrect password: " . $nick . " / " . $pass);
echo '<div id="foot">';
include "general/footer.php";
echo '</div>';
exit;
}
}
@ -151,9 +154,6 @@ if (isset ($_GET["refr"])){
$pass = $primera . "****" . $ultima;
audit_db ($nick, $REMOTE_ADDR, "Logon Failed",
"Invalid username: " . $nick . " / " . $pass);
echo '<div id="foot">';
include "general/footer.php";
echo '</div>';
exit;
}
} elseif (! isset ($_SESSION['id_usuario'])) {

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

Some files were not shown because too many files have changed in this diff Show More