/** * init page * @return object xajax response object */ function init() { global $locate, $config, $db; $objResponse = new xajaxResponse(); $check_interval = 2000; if (is_numeric($config['system']['status_check_interval'])) { $check_interval = $config['system']['status_check_interval'] * 1000; } $objResponse->addAssign("checkInterval", "value", $check_interval); if ($_SESSION['curuser']['usertype'] == 'agent') { $noticeInterval = Customer::getNoticeInterval($_SESSION['curuser']['groupid']); $_SESSION['ticketNoticeTime'] = '0000-00-00 00:00:00'; $_SESSION['noticeInterval'] = $noticeInterval; } else { unset($_SESSION['ticketNoticeTime']); unset($_SESSION['noticeInterval']); } $html = $locate->Translate("welcome") . ':' . $_SESSION['curuser']['username'] . ','; $html .= $locate->Translate("extension") . $_SESSION['curuser']['extension']; $objResponse->addAssign("divUserMsg", "innerHTML", $html); $objResponse->addAssign("username", "value", $_SESSION['curuser']['username']); $objResponse->addAssign("extension", "value", $_SESSION['curuser']['extension']); $objResponse->addAssign("myevents", "innerHTML", $locate->Translate("waiting")); // $objResponse->addAssign("status","innerHTML", $locate->Translate("listening") ); $objResponse->addAssign("extensionStatus", "value", 'idle'); $objResponse->addAssign("processingContent", "innerHTML", $locate->Translate("processing_please_wait")); if ($_SESSION['asterisk']['paramdelimiter'] == '|') { $objResponse->addAssign("spanAttendtran", "style.display", "none"); } $objResponse->addAssign("spanMonitorStatus", "innerHTML", $locate->Translate("idle")); $objResponse->addAssign("btnMonitorStatus", "value", "idle"); $objResponse->addAssign("btnMonitor", "value", $locate->Translate("start_record")); if ($_SESSION['curuser']['WorkStatus'] == '') { $objResponse->addAssign("btnWork", "value", $locate->Translate("Start work")); $objResponse->addAssign("btnWorkStatus", "value", ""); $objResponse->addEvent("btnWork", "onclick", "workctrl('start');"); } else { $objResponse->addAssign("btnWork", "value", $locate->Translate("Stop work")); $objResponse->addAssign("btnWorkStatus", "value", "working"); $objResponse->addEvent("btnWork", "onclick", "workctrl('stop');"); $interval = $_SESSION['curuser']['dialinterval']; $objResponse->addScript("autoDial('{$interval}');"); } $objResponse->addAssign("btnMonitor", "disabled", true); $objResponse->addAssign("divCopyright", "innerHTML", Common::generateCopyright($skin)); if ($_SESSION['curuser']['group']['firstring'] == 'caller') { $objResponse->addAssign("inviteFlag", "innerHTML", '<-'); } else { $objResponse->addAssign("inviteFlag", "innerHTML", '->'); } //$objResponse->addAssign("divCopyright","innerHTML",Common::generateCopyright($skin)); if (strtoupper($config['system']['transfer_pannel']) == 'OFF') { $objResponse->addAssign("spanTransfer", "style.display", "none"); } else { $objResponse->addAssign("btnTransfer", "disabled", true); } if (strtoupper($config['system']['dial_pannel']) == 'OFF') { $objResponse->addAssign("divInvite", "style.display", "none"); } if (strtoupper($config['system']['monitor_pannel']) == 'OFF') { $objResponse->addAssign("divMonitor", "style.display", "none"); $objResponse->addAssign("monitorTitle", "style.display", "none"); } if ($_SESSION['curuser']['agent'] != '') { } if (strtoupper($config['system']['mission_pannel']) == 'OFF') { $objResponse->addAssign("spanDialList", "style.display", "none"); $objResponse->addAssign("misson", "style.display", "none"); } else { $objResponse->loadXML(getPrivateDialListNumber($_SESSION['curuser']['extension'])); } if (strtoupper($config['system']['diallist_pannel']) != 'OFF') { $objResponse->addAssign("sptAddDiallist", "style.display", ""); $objResponse->addAssign("dpnShow", "value", "1"); $objResponse->addScript("showDiallist('" . $_SESSION['curuser']['extension'] . "',0,0,5,'','','','formDiallistPannel','','');"); //$objResponse->addAssign("formDiallistPannel", "style.visibility", "visible"); } foreach ($_SESSION['curuser']['extensions'] as $extension) { $extension = trim($extension); $row = astercrm::getRecordByField('username', $extension, 'astercrm_account'); $objResponse->addScript("addOption('sltExten','" . $row['extension'] . "','{$extension}');"); } $speeddial =& Customer::getAllSpeedDialRecords(); $speednumber['0']['number'] = $_SESSION['curuser']['extension']; $speednumber['0']['description'] = $_SESSION['curuser']['username']; $n = 1; while ($speeddial->fetchInto($row)) { // Change here by the name of fields of its database table $speednumber[$n]['description'] = $row['description']; $speednumber[$n]['number'] = $row['number']; $n++; } $n = count($speednumber); for ($i = 0; $i < $n; ++$i) { $objResponse->addScript("addOption('iptDestNumber','" . $speednumber[$i]['number'] . "','" . $speednumber[$i]['description'] . "-" . $speednumber[$i]['number'] . "');"); } $curmsg = Customer::getTicketInWork(); $panelHTML = '<a href=? onclick="showMyTickets(\'\',\'agent_tickets\');return false;">' . $locate->Translate("MyTickets") . "</a><span id='curticketMsg'>" . $curmsg . '</span><br/>'; if ($config['system']['display_recent_cdr'] == true && $_SESSION['curuser']['usertype'] == "agent") { } else { $panelHTML .= '<a href=? onclick="showRecentCdr(\'\',\'recent\');return false;">' . $locate->Translate("recentCDR") . '</a><br/>'; } $panelHTML .= "<a href=? onclick=\"document.getElementById('dpnShow').value = 1;showDiallist('',0,0,5,'','','','formDiallistPannel','','');return false;\">" . $locate->Translate("My Diallist") . "</a><br/>"; //<span id=\"sptAddDiallist\" style=\"display:none\"> $panelHTML .= "<a href=? id=\"agentWorkstat\" name=\"agentWorkstat\" onclick=\"document.getElementById('awsShow').value = 1;agentWorkstat();return false;\">" . $locate->Translate("work stat") . "</a><br/>"; $panelHTML .= "<a href=? id=\"knowledge\" name=\"knowledge\" onclick=\"setKnowledge();return false;\">" . $locate->Translate("viewknowledge") . "</a><br/>"; $panelHTML .= '<a href=? id="sendSMS" name="sendSMS" onclick="SendSmsForm(\'' . $config['system']['enable_sms'] . '\');return false;">' . $locate->Translate("Send SMS") . '</a><br/>'; if (!empty($_SESSION['curuser']['privileges']) || $_SESSION['curuser']['usertype'] == "admin" || $_SESSION['curuser']['usertype'] == "groupadmin") { $panelHTML .= '<a href=# onclick="this.href=\'managerportal.php\'">' . $locate->Translate("manager") . '</a><br/>'; } $panelHTML .= "<a href='login.php'>" . $locate->Translate("logout") . "</a><br />"; $objResponse->addAssign("divPanel", "innerHTML", $panelHTML); if ($config['system']['enable_external_crm'] == false) { //use internal crm $objResponse->addIncludeScript("js/astercrm.js"); $objResponse->addIncludeScript("js/ajax.js"); $objResponse->addIncludeScript("js/ajax-dynamic-list.js"); $objResponse->addScript("xajax_showGrid(0," . ROWSXPAGE . ",'','','')"); $objResponse->addAssign("divSearchContact", "style.visibility", "visible"); } else { $objResponse->addIncludeScript("js/extercrm.js"); if ($config['system']['open_new_window'] == 'internal') { $mycrm = '<iframe id="mycrm" name="mycrm" src="' . $config['system']['external_crm_default_url'] . '?curid=0" width="100%" frameBorder=0 scrolling=auto height="600"></iframe>'; $objResponse->addAssign("divCrm", "innerHTML", $mycrm); } else { if ($config['system']['open_new_window'] == 'external') { //$mycrm = '<iframe id="mycrm" name="mycrm" src="'.$config['system']['external_crm_default_url'].'?curid=0" width="100%" frameBorder=0 scrolling=auto height="600"></iframe>'; //$objResponse->addAssign("divCrm","innerHTML", $mycrm ); $mycrm = '<form id="external_crm_form" action="' . $config['system']['external_crm_default_url'] . '?curid=0" target="mycrm" method="post"></form>'; $objResponse->addAssign("external_crm_openNewDiv", "innerHTML", $mycrm); $objResponse->addScript('document.getElementById("external_crm_form").submit();'); } else { $mycrm = '<form id="external_crm_form" action="' . $config['system']['external_crm_default_url'] . '?curid=0" target="mycrm" method="post"></form>'; $objResponse->addAssign("external_crm_openNewDiv", "innerHTML", $mycrm); $objResponse->addScript('document.getElementById("external_crm_form").submit();'); $mycrm = '<iframe id="mycrm" name="mycrm" src="' . $config['system']['external_crm_default_url'] . '?curid=0" width="100%" frameBorder=0 scrolling=auto height="600"></iframe>'; $objResponse->addAssign("divCrm", "innerHTML", $mycrm); } } /*if ($config['system']['open_new_window'] == false){ $mycrm = '<iframe id="mycrm" name="mycrm" src="'.$config['system']['external_crm_default_url'].'?curid=0" width="100%" frameBorder=0 scrolling=auto height="600"></iframe>'; $objResponse->addAssign("divCrm","innerHTML", $mycrm ); }else{ $mycrm = '<iframe id="mycrm" name="mycrm" src="'.$config['system']['external_crm_default_url'].'?curid=0" width="100%" frameBorder=0 scrolling=auto height="600"></iframe>'; $objResponse->addAssign("divCrm","innerHTML", $mycrm ); $javascript = "openwindow('".$config['system']['external_crm_default_url']."?curid=0')"; $objResponse->addScript("document.getElementById('external_crm_form').submit();"); }*/ } $monitorstatus = astercrm::getRecordByID($_SESSION['curuser']['groupid'], 'astercrm_accountgroup'); if ($monitorstatus['monitorforce']) { $objResponse->addAssign("chkMonitor", "checked", 'true'); $objResponse->addAssign("chkMonitor", "style.visibility", 'hidden'); $objResponse->addAssign("btnMonitor", "disabled", 'true'); } $objResponse->addAssign("clear_popup", "value", $monitorstatus['clear_popup']); //for clear popup after ($clear_popup) seconds $objResponse->addScript("clearSettimePopup();"); if ($_SESSION['curuser']['group']['allowloginqueue'] == 'yes' && is_array($_SESSION['curuser']['campaign_queue'])) { //print_r($_SESSION['curuser']['campaign_queue']);exit; $objResponse->addScript("getMsgInCampaign();"); } else { $objResponse->addAssign("divGetMsgInCampaignP", "style.visibility", 'hidden'); } //if enabled monitor by astercctools $configstatus = Common::read_ini_file($config['system']['astercc_path'] . '/astercc.conf', $asterccConfig); if ($configstatus == -2) { $objResponse->addAlert("fail to read " . $config['system']['astercc_path'] . '/astercc.conf'); } else { if ($asterccConfig['system']['force_record'] == 1) { //echo $asterccConfig['system']['force_record'];exit; $objResponse->addAssign("chkMonitor", "checked", false); $objResponse->addAssign("chkMonitor", "style.visibility", 'hidden'); $objResponse->addAssign("btnMonitor", "disabled", 'true'); } } return $objResponse; }
function ws_display($window_name, $form = '') { global $conf, $self, $ona; global $images, $color, $style; $html = ''; $js = ''; // If the user supplied an array in a string, build the array and store it in $form $form = parse_options_string($form); // Build $ip from $form['ip_block_start'] $form['ip_block_start'] = ip_complete($form['ip_block_start'], '0'); // Since we currently only display /24 (C) class networks, the //GD Need to call ip_mangle() so we can use is_ipv4() // last quad needs to be a .0. $ip = ip_mangle($form['ip_block_start'], 'numeric'); if (is_ipv4($ip)) { $end = '\\.\\d+$'; $replace_end_by = '.0'; $version = 4; } else { $end = ':[0-9A-F]{0,4}$'; // $replace_end_by = ':0000'; $replace_end_by = ':'; $version = 6; } $ip = $form['ip_block_start'] = preg_replace("/{$end}/", $replace_end_by, $form['ip_block_start']); // Find out if $ip is valid $ip = ip_mangle($ip, 'numeric'); if ($ip == -1) { $js .= "alert('The IP address specified is invalid!');"; } // Update History Title $history = array_pop($_SESSION['ona']['work_space']['history']); $js .= "xajax_window_submit('work_space', ' ', 'rewrite_history');"; if ($history['title'] == $window_name) { $history['title'] = 'Map: ' . ip_mangle($ip, 'dotted'); array_push($_SESSION['ona']['work_space']['history'], $history); } // Create some javascript to refresh the current page $refresh = htmlentities(str_replace(array("'", '"'), array("\\'", '\\"'), $history['url']), ENT_QUOTES, $conf['php_charset']); $refresh = "xajax_window_submit('work_space', '{$refresh}');"; // Define the window's inner html $html .= <<<EOL <div id="{$window_name}_content" style="padding: 2px 4px;"> <form id="block_search_form" onsubmit="el('zoom_block_button').onclick(); return false;"> <div id="{$window_name}_tools"> <b>IP Address</b> <input type="hidden" id="{$window_name}_zoom" name="zoom" value="8"> <input id="{$window_name}_ip_block_start" name="{$window_name}_ip_block_start" value="{$form['ip_block_start']}" class="edit" type="text" size="15" /> <a id="zoom_block_button" title="Zoom block" class="act" onClick="xajax_window_submit('work_space', 'xajax_window_submit(\\'{$window_name}\\', \\'ip_block_start=>' + el('{$window_name}_ip_block_start').value + ',zoom=>' + el('{$window_name}_zoom').value + '\\', \\'display\\');');" ><img src="{$images}/silk/bullet_go.png" border="0"></a> <br><br> </div> </form> <div id="{$window_name}_portal"> <span id="{$window_name}_substrate"></span> </div> </div> EOL; // Position/size the portal ourselves $js .= <<<EOL var _el = el('{$window_name}_portal'); /* Now calculate where we will sit */ var my_height = el('work_space_content').offsetHeight - el('{$window_name}_tools').offsetHeight - 40; var my_width = el('{$window_name}_tools').offsetWidth - 10; /* Finally reposition/resize the window */ _el.style.position = 'relative'; _el.style.height = my_height + 'px'; EOL; // Get javascript to setup the map portal $js .= get_portal_js($window_name, $ip, $version); //*** Send a fake mouseup event to draw the initial map view *** $js .= "el('{$window_name}_portal').myonmouseup('fake event');"; // Insert the new html into the window // Instantiate the xajaxResponse object $response = new xajaxResponse(); // GDO need to use Big Int JS $response->addIncludeScript('include/js/bignumber.js'); $response->addAssign("work_space_content", "innerHTML", $html); if ($js) { $response->addScript($js); } return $response->getXML(); }
function includeScript($sFilename) { $objResponse = new xajaxResponse(); $objResponse->addIncludeScript($sFilename); return $objResponse->getXML(); }
/** * init page * @return object xajax response object */ function init($username = "", $passwd = "", $lang = 'en_US') { global $config, $db; //echo $username.$passwd.$lang;exit; //if($_SESSION['curuser']['username'] != $username){ $row = astercrm::getRecordByField("username", $username, "astercrm_account"); if ($row['id'] != '') { if (md5($row['password']) == $passwd) { $_SESSION = array(); $_SESSION['curuser']['username'] = trim($username); $_SESSION['curuser']['extension'] = $row['extension']; $_SESSION['curuser']['usertype'] = $row['usertype']; $_SESSION['curuser']['accountcode'] = $row['accountcode']; $_SESSION['curuser']['agent'] = $row['agent']; $_SESSION['curuser']['extensions'] = array(); // added by solo 2007-10-90 $_SESSION['curuser']['channel'] = $row['channel']; $_SESSION['curuser']['groupid'] = $row['groupid']; if ($row['extensions'] != '') { $_SESSION['curuser']['extensions'] = split(',', $row['extensions']); } } } //} //echo $lang;exit; list($_SESSION['curuser']['country'], $_SESSION['curuser']['language']) = split("_", $lang); //echo $_SESSION['curuser']['language'];exit; $locate = new Localization($_SESSION['curuser']['country'], $_SESSION['curuser']['language'], 'portal'); //echo $locate->Translate("Search");exit; $objResponse = new xajaxResponse(); $objResponse->addAssign("username", "value", $_SESSION['curuser']['username']); $objResponse->addAssign("extension", "value", $_SESSION['curuser']['extension']); $objResponse->addAssign("myevents", "innerHTML", $locate->Translate("extension") . $_SESSION['curuser']['extension'] . "-" . $locate->Translate("waiting")); $objResponse->addAssign("btnShowPortal", "value", $locate->Translate("portal")); $objResponse->addAssign("btnTransfer", "value", $locate->Translate("Transfer")); $objResponse->addAssign("btnSearchContact", "value", $locate->Translate("Search")); $objResponse->addAssign("spanMonitor", "innerHTML", $locate->Translate("monitor")); $objResponse->addAssign("extensionStatus", "value", 'idle'); $objResponse->addAssign("spanMonitorStatus", "innerHTML", $locate->Translate("idle")); $objResponse->addAssign("btnMonitorStatus", "value", "idle"); $objResponse->addAssign("btnMonitor", "value", $locate->Translate("start_record")); $objResponse->addAssign("btnMonitor", "disabled", true); $objResponse->addAssign("btnCallCtrl", "value", $locate->Translate("Dial")); $objResponse->addAssign("btnTransfer", "disabled", true); foreach ($_SESSION['curuser']['extensions'] as $extension) { $extension = trim($extension); $row = astercrm::getRecordByField('username', $extension, 'astercrm_account'); $objResponse->addScript("addOption('sltExten','" . $row['extension'] . "','{$extension}');"); } $speeddial =& astercrm::getAllSpeedDialRecords(); $speednumber['0']['number'] = $_SESSION['curuser']['extension']; $speednumber['0']['description'] = $_SESSION['curuser']['username']; $n = 1; while ($speeddial->fetchInto($row)) { // Change here by the name of fields of its database table $speednumber[$n]['description'] = $row['description']; $speednumber[$n]['number'] = $row['number']; $n++; } $n = count($speednumber); for ($i = 0; $i < $n; ++$i) { $objResponse->addScript("addOption('iptDestNumber','" . $speednumber[$i]['number'] . "','" . $speednumber[$i]['description'] . "');"); } $panelHTML = '<a href=? onclick="xajax_showRecentCdr(\'\',\'recent\');return false;">' . $locate->Translate("recentCDR") . '</a> '; if ($_SESSION['curuser']['usertype'] != "agent") { $panelHTML .= '<a href=# onclick="this.href=\'managerportal.php\'">' . $locate->Translate("manager") . '</a> '; } if ($config['system']['enable_external_crm'] == false) { //use internal crm $objResponse->addIncludeScript("js/astercrm.js"); $objResponse->addIncludeScript("js/ajax.js"); $objResponse->addIncludeScript("js/ajax-dynamic-list.js"); $objResponse->addAssign("divSearchContact", "style.visibility", "visible"); } else { $objResponse->addIncludeScript("js/extercrm.js"); if ($config['system']['open_new_window'] == false) { $mycrm = '<iframe id="mycrm" name="mycrm" src="' . $config['system']['external_crm_default_url'] . '" width="100%" frameBorder=0 scrolling=auto height="100%"></iframe>'; $objResponse->addAssign("divCrm", "innerHTML", $mycrm); } else { $javascript = "openwindow('" . $config['system']['external_crm_default_url'] . "')"; $objResponse->addScript($javascript); } } $monitorstatus = astercrm::getRecordByID($_SESSION['curuser']['groupid'], 'astercrm_accountgroup'); if ($monitorstatus['monitorforce']) { $objResponse->addAssign("chkMonitor", "checked", 'true'); $objResponse->addAssign("chkMonitor", "style.visibility", 'hidden'); $objResponse->addAssign("btnMonitor", "disabled", 'true'); } $objResponse->addAssign("divSearchContact", "style.visibility", "visible"); //if enabled monitor by astercctools Common::read_ini_file($config['system']['astercc_path'] . '/astercc.conf', $asterccConfig); if ($asterccConfig['system']['force_record'] == 1) { $objResponse->addAssign("chkMonitor", "checked", 'false'); $objResponse->addAssign("chkMonitor", "style.visibility", 'hidden'); $objResponse->addAssign("btnMonitor", "disabled", 'true'); } return $objResponse; }
function ws_display($window_name, $form = '') { global $conf, $self, $onadb; global $images, $color, $style; $html = ''; $js = ''; $debug_val = 3; // used in the auth() calls to supress logging // If the user supplied an array in a string, build the array and store it in $form $form = parse_options_string($form); // Load the host record list($status, $rows, $record) = ona_get_block_record(array('id' => $form['block_id'])); if ($status or !$rows) { array_pop($_SESSION['ona']['work_space']['history']); $html .= "<br><center><font color=\"red\"><b>Block doesn't exist!</b></font></center>"; $response = new xajaxResponse(); $response->addAssign("work_space_content", "innerHTML", $html); return $response->getXML(); } // Update History Title $history = array_pop($_SESSION['ona']['work_space']['history']); $js .= "xajax_window_submit('work_space', ' ', 'rewrite_history');"; if ($history['title'] == $window_name) { $history['title'] = $record['name']; array_push($_SESSION['ona']['work_space']['history'], $history); } // Create some javascript to refresh the current page $refresh = htmlentities(str_replace(array("'", '"'), array("\\'", '\\"'), $history['url']), ENT_QUOTES, $conf['php_charset']); $refresh = "xajax_window_submit('work_space', '{$refresh}');"; $record['ip_addr_start'] = ip_mangle($record['ip_addr_start'], 'dotted'); $record['ip_addr_end'] = ip_mangle($record['ip_addr_end'], 'dotted'); $style['content_box'] = <<<EOL margin: 10px 20px; padding: 2px 4px; background-color: #FFFFFF; vertical-align: top; EOL; $style['label_box'] = <<<EOL font-weight: bold; padding: 2px 4px; border: solid 1px {$color['border']}; background-color: {$color['window_content_bg']}; EOL; // Escape data for display in html foreach (array_keys($record) as $key) { $record[$key] = htmlentities($record[$key], ENT_QUOTES, $conf['php_charset']); } $html .= <<<EOL <!-- FORMATTING TABLE --> <div style="{$style['content_box']}"> <table cellspacing="0" border="0" cellpadding="0"><tr> <!-- START OF FIRST COLUMN OF SMALL BOXES --> <td nowrap="true" valign="top" style="padding-right: 15px;"> EOL; // BLOCK INFORMATION $html .= <<<EOL <table width=100% cellspacing="0" border="0" cellpadding="0" style="margin-bottom: 8px;"> <tr><td colspan="99" nowrap="true" style="{$style['label_box']}"> <!-- LABEL --> <form id="form_block_{$record['id']}" ><input type="hidden" name="block_id" value="{$record['id']}" ><input type="hidden" name="js" value="{$refresh}" ></form> EOL; if (auth('advanced', $debug_val)) { $html .= <<<EOL <a title="Edit block" class="act" onClick="xajax_window_submit('edit_block', xajax.getFormValues('form_block_{$record['id']}'), 'editor');" ><img src="{$images}/silk/page_edit.png" border="0"></a> <a title="Delete block" class="act" onClick="var doit=confirm('Are you sure you want to delete this block?'); if (doit == true) xajax_window_submit('edit_block', xajax.getFormValues('form_block_{$record['id']}'), 'delete');" ><img src="{$images}/silk/delete.png" border="0"></a> EOL; } $html .= <<<EOL {$record['name']} <a href="?work_space={$window_name}&block_id={$record['id']}"><img title="Direct link to {$record['name']}" src="{$images}/silk/application_link.png" border="0"></a> </td> </tr> <tr> <td align="right" nowrap="true"><b>Name</b> </td> <td class="padding" align="left">{$record['name']} </td> </tr> <tr> <td align="right" nowrap="true"><b>IP start</b> </td> <td class="padding" align="left"> {$record['ip_addr_start']} </td> </tr> <tr> <td align="right" nowrap="true"><b>IP end</b> </td> <td class="padding" align="left"> {$record['ip_addr_end']} </td> </tr> <tr> <td align="right" nowrap="true"><b>Notes</b> </td> <td class="padding" align="left"> {$record['notes']} </td> </tr> </table> EOL; // END BLOCK INFORMATION $html .= <<<EOL <!-- END OF FIRST COLUMN OF SMALL BOXES --> </td> <!-- START OF SECOND COLUMN OF SMALL BOXES --> <td valign="top" style="padding-right: 15px;"> EOL; // SMALL SUBNET MAP // Get the numeric IP address of our subnet (we replace the last quad with a .0) $ip_subnet = ip_mangle($record['ip_addr_start'], 'numeric'); if (is_ipv4($ip_subnet)) { $end = '\\.\\d+$'; $replace_end_by = '.0'; $version = 4; } else { $end = ':[0-9A-F]{0,4}$'; // $replace_end_by = ':0000'; $replace_end_by = ':'; $version = 6; } $ip = ip_mangle(preg_replace("/{$end}/", $replace_end_by, $record['ip_addr_start']), 'numeric'); $html .= <<<EOL <table width=100% cellspacing="0" border="0" cellpadding="0" style="margin-bottom: 8px;"> <tr><td colspan="99" nowrap="true"> <!-- LABEL --> <div style="{$style['label_box']}"> <a title="Display full sized subnet map" class="act" onClick="xajax_window_submit('work_space', 'xajax_window_submit(\\'display_block_map\\', \\'ip_block_start=>{$record['ip_addr_start']},ip_block_end=>{$record['ip_addr_end']},id=>{$record['id']}\\', \\'display\\');');" ><img src="{$images}/silk/shape_align_left.png" border="0"></a> <a title="Highlight start of block" class="act" onClick=" var _el = el('{$ip_subnet}_row_label'); if (_el) { if (_el.style.isHighlighted) { _el.style.backgroundColor = '#000000'; _el.style.isHighlighted = false; } else { _el.style.backgroundColor = '{$color['bgcolor_map_selected']}'; _el.style.isHighlighted = true; } } " ><img src="{$images}/silk/paintbrush.png" border="0"></a> <b>Block Map</b> </div> </td></tr> <tr><td colspan="99" nowrap="true"> <input type="hidden" id="{$window_name}_zoom" name="zoom" value="7"> <div id="{$window_name}_portal" style="position: relative; height: 150px; width: 355px;"> <span id="{$window_name}_substrate"></span> </div> </td></tr> </table> EOL; // Get javascript to setup the map portal mouse handlers // Force ip end to be less than ip start to prevent Block highlighting $portal_js .= get_portal_js($window_name, $ip, $version); //*** Send a fake mouseup event to draw the initial map view *** $portal_js .= "el('{$window_name}_portal').myonmouseup('fake event');"; // END SMALL SUBNET MAP $html .= <<<EOL <!-- END OF SECOND COLUMN OF SMALL BOXES --> </td> <!-- START OF THIRD COLUMN OF SMALL BOXES --> <td valign="top" style="padding-right: 15px;"> EOL; $html .= <<<EOL </td> <!-- END OF THIRD COLUMN OF SMALL BOXES --> </tr></table> </div> <!-- END OF TOP SECTION --> EOL; // SUBNET LIST $tab = 'subnets'; $submit_window = "list_{$tab}"; $form_id = "{$submit_window}_filter_form"; $_SESSION['ona'][$form_id]['tab'] = $tab; $content_id = "{$window_name}_{$submit_window}"; $html .= <<<EOL <!-- SUBNET LIST --> <div style="border: 1px solid {$color['border']}; margin: 10px 20px;"> <!-- Tab & Quick Filter --> <table id="{$form_id}_table" cellspacing="0" border="0" cellpadding="0"> <tr> <td id="{$form_id}_subnets_tab" class="table-tab-active"> Associated {$tab} <span id="{$form_id}_{$tab}_count"></span> </td> <td id="{$form_id}_quick_filter" class="padding" align="right" width="100%"> <form id="{$form_id}" onSubmit="return false;"> <input id="{$form_id}_page" name="page" value="1" type="hidden"> <input name="content_id" value="{$content_id}" type="hidden"> <input name="form_id" value="{$form_id}" type="hidden"> <input name="ip_subnet" value="{$record['ip_addr_start']}" type="hidden"> <input name="ip_subnet_thru" value="{$record['ip_addr_end']}" type="hidden"> <div id="{$form_id}_filter_overlay" title="Filter" style="position: relative; display: inline; color: #CACACA; cursor: text;" onClick="this.style.display = 'none'; el('{$form_id}_filter').focus();" >Name</div> <input id="{$form_id}_filter" name="filter" class="filter" type="text" value="" size="10" maxlength="20" alt="Quick Filter" onFocus="el('{$form_id}_filter_overlay').style.display = 'none';" onBlur="if (this.value == '') el('{$form_id}_filter_overlay').style.display = 'inline';" onKeyUp=" if (typeof(timer) != 'undefined') clearTimeout(timer); code = 'if ({$form_id}_last_search != el(\\'{$form_id}_filter\\').value) {' + ' {$form_id}_last_search = el(\\'{$form_id}_filter\\').value;' + ' document.getElementById(\\'{$form_id}_page\\').value = 1;' + ' xajax_window_submit(\\'{$submit_window}\\', xajax.getFormValues(\\'{$form_id}\\'), \\'display_list\\');' + '}'; timer = setTimeout(code, 700);" > </form> </td> </tr> </table> <div id='{$content_id}'> {$conf['loading_icon']} </div> </div> EOL; $js .= <<<EOL /* Setup the quick filter */ el('{$form_id}_filter_overlay').style.left = (el('{$form_id}_filter_overlay').offsetWidth + 10) + 'px'; {$form_id}_last_search = ''; /* Tell the browser to load/display the list */ xajax_window_submit('{$submit_window}', xajax.getFormValues('{$form_id}'), 'display_list'); EOL; // Insert the new html into the window // Instantiate the xajaxResponse object $response = new xajaxResponse(); // GDO need to use Big Int JS $response->addIncludeScript('include/js/bignumber.js'); $response->addAssign("work_space_content", "innerHTML", $html); if ($js) { $response->addScript($js . $portal_js); } return $response->getXML(); }