Exemplo n.º 1
0
function DisplayDeviceType()
{
    global $deviceForm;
    $deviceForm->setCols(2);
    $device_type_id = $_GET[devtype_id];
    if (empty($device_type_id)) {
        print "Sorry invalid device type<br>";
        return;
    }
    $devType = new Device_type($device_type_id);
    $content = "<h1>" . $devType->get_name() . "</h1>";
    // Tools menu
    $tool = new EdittingTools();
    if ($_SESSION['access'] >= 50) {
        $toolNames = array("Edit", "Delete");
        $toolIcons = array("edit", "delete");
        $toolHandlers = array("window.location.href='devices.php?action=edit_device_type&devtype_id={$device_type_id}'", "window.location.href='devices.php?action=archive_device_type&devtype_id={$device_type_id}'");
        $content .= $tool->createNewTools($toolNames, $toolIcons, $toolHandlers);
    }
    $content .= " <div style=\"clear:both;\"></div><br> ";
    $form = new Form("auto", 2);
    $handler = array();
    $values = array();
    $titles = array();
    $postkeys = array();
    $heading = array("Device Type Details");
    array_push($postkeys, "Name", "Description", "Vendor", "Class");
    array_push($titles, "Name.tip.Short descriptive name for device type", "Description.tip.Device Type description", "Vendor", "Class.tip.This specifies the device type class and is used to group types by function<br>\n\t\t\tTwo examples are console_server and power_control, these two will be availble as control devices");
    array_push($values, $devType->get_name(), $devType->get_description(), $devType->get_vendor(), $devType->get_device_class());
    $deviceForm->setSortable(false);
    $deviceForm->setHeadings($heading);
    $deviceForm->setTitles($titles);
    $deviceForm->setDatabase($postkeys);
    $deviceForm->setData($values);
    $deviceForm->setTableWidth("60%");
    $content .= $deviceForm->showForm();
    #return $content;
    print $content;
}
Exemplo n.º 2
0
 private function list_secret_data()
 {
     $content = '';
     $modal_forms;
     $tool = new EdittingTools();
     $content .= $tool->createNewFilters();
     $content .= "<a name='modal' href='#Add_privatedata_modal'><img src='icons/Add.png' height=18>Add Private Data</a><br><br>";
     // We need to know all groups this user is in:
     $user = new User($_SESSION['userid']);
     $user_groups = $user->get_groups();
     $data = array();
     // Create modal for adding a new Private data entry
     // This modal should ask for which group to add it as and the password
     // We need to know all groups this user is in:
     $user = new User($_SESSION['userid']);
     $user_groups = $user->get_groups();
     if (sizeof($user_groups) == 1) {
         foreach ($user_groups as $gid => $gname) {
             $group_data = $gname;
         }
     } else {
         $group_data = "";
     }
     $modalForm = new Form("auto", 2);
     $modalForm->setHeadings(array("For which group would you like to add private"));
     $modalForm->setTitles(array("Group", "Group Password.tip.This is the shared secret for the group you selected above.", "Fill in Private Data Details below:", "Description", "Private Data <br><small><i>Stored encrypted</i></small>.tip.This data will be AES encrypted", "Type <br><small><a name='modal' href='#add_pdtype_modal'>Add Private data type</a></small>", "Notes <br><small><i>Stored encrypted</i></small>.tip.This data will be AES encrypted", "device_id"));
     $modalForm->setData(array("{$group_data}", "", "", "", "", "", "", $_GET['ID']));
     $modalForm->setDatabase(array("group_id", "group_pass", "dummy", "private_data_desc", "private_data_password", "private_data_type", "private_data_notes", "device_id"));
     $modalForm->setFieldType(array(0 => 'drop_down', 1 => 'password_autocomplete_off', 2 => 'static', 5 => 'drop_down', 6 => 'text_area', 7 => 'hidden'));
     // Drop down
     // We need to know all groups this user is in:
     $modalForm->setType($user_groups);
     $dataTypes = PrivateDataType::get_private_data_types();
     $modalForm->setType($dataTypes);
     //End Dropdown
     // Change button text
     $modalForm->setUpdateValue("add_private_data_for_group");
     $modalForm->setUpdateValue("add_private_data_for_group");
     $modalForm->setUpdateText("Add");
     $modalForm->setModalID("Add_privatedata_modal");
     $modal_forms .= $modalForm->modalForm();
     unset($modalForm);
     // End modal
     // Create modal forms
     // Add Modal for adding Private data types
     $modalForm = new Form("auto", 2);
     $modalForm->setHeadings(array("<br><br>Add Private Data Type"));
     $modalForm->setTitles(array("Name.tip.Descriptive String for this type", "Description"));
     $modalForm->setData(array("", ""));
     $modalForm->setDatabase(array("pdtype_name", "pdtype_desc"));
     // Change button text
     $modalForm->setUpdateValue("add_private_data_type");
     $modalForm->setUpdateText("Add Private Data Type");
     $modalForm->setModalID("add_pdtype_modal");
     $modal_forms .= $modalForm->modalForm();
     unset($modalForm);
     // End Modal for adding Private data types
     foreach ($user_groups as $gid => $gname) {
         // Create a modal per group, that asks for the group password
         // We only need one per group, as passwords are unqiue per group
         $modalForm = new Form("auto", 2);
         $modalForm->setHeadings(array("Please provide group password for {$gname}"));
         $modalForm->setTitles(array("Password", "group_id"));
         $modalForm->setData(array("", $gid));
         $modalForm->setDatabase(array('group_pass', 'group_id'));
         $modalForm->setFieldType(array(0 => 'password_autocomplete_off', 1 => 'hidden'));
         $myModalID = "modal_group_pass_" . $gid;
         // Change button text
         $modalForm->setUpdateValue("Decrypt_Private_Data");
         $modalForm->setUpdateText("Submit");
         $modalForm->setModalID($myModalID);
         $modal_forms .= $modalForm->modalForm();
         unset($modalForm);
         // End modal
         $group_private_data = PrivateData::get_private_data_by_group($gid);
         if ($group_private_data) {
             foreach ($group_private_data as $id => $pdname) {
                 $privDataObj = new PrivateData($id);
                 if (is_numeric($privDataObj->get_device_id())) {
                     // Means device assocication
                     continue;
                 }
                 // Here we check if the user submitted a group password
                 // Only for the group for which the pasword has been provided
                 $password = "******";
                 $actions = "<a name='modal' href='#modal_group_pass_" . $gid . "'>Unlock Private Data</a>";
                 if (isset($_POST['group_pass']) && $_POST['group_pass'] != '' && $privDataObj->get_group_id() == $_POST['group_id']) {
                     // now get private data (password)
                     $password = $privDataObj->get_private_data($_POST['group_pass']);
                     if ($password != false) {
                         // Decrypted successful!
                         // Get historical data, and create modal
                         $modalForm = new Form("auto", 2);
                         $modalForm->setHeadings(array("Changed (exipred) at:", "Private Data"));
                         // Loop through old data and fill arrays for form
                         $Htitles = array();
                         $Hdata = array();
                         $HfieldType = array();
                         $historical_passwords = $privDataObj->get_history($_POST['group_pass']);
                         if ($historical_passwords) {
                             foreach ($historical_passwords as $old_date => $old_data) {
                                 array_push($Htitles, $old_date);
                                 array_push($Hdata, $old_data);
                                 array_push($HfieldType, "static");
                             }
                         }
                         $modalForm->setTitles($Htitles);
                         $modalForm->setData($Hdata);
                         $modalForm->setFieldType($HfieldType);
                         unset($Htitles);
                         unset($Hdata);
                         unset($HfieldType);
                         $modalForm->setTitleWidth("40%");
                         $modalForm->setDatabase(array('date', 'old_data'));
                         $myHistoryModalID = "modal_old_pass_" . $id;
                         // Change button text
                         $modalForm->setUpdateValue("close");
                         $modalForm->setUpdateText("Press cancel");
                         $modalForm->setModalID($myHistoryModalID);
                         $modal_forms .= $modalForm->modalForm();
                         unset($modalForm);
                         // End modal
                         if ($privDataObj->get_notes($_POST['group_pass']) != '') {
                             $name_tooltip = ".tip.<b>Notes:</b><br>" . nl2br($privDataObj->get_notes($_POST['group_pass']));
                         }
                         // Now create a modal that allows us to update the private data object
                         // Start Update Modal
                         $PdataModal = new Form("auto", 2);
                         $PdataModal->setHeadings(array("Update Private Data"));
                         $PdataModal->setTitles(array("Description", "Private Data <br><small><i>Stored encrypted</i></small>.tip.This data will be AES encrypted", "Type <br><small><a name='modal' href='#add_pdtype_modal'>\n\t\t\t\t\t\t\tAdd Private data type</a></small>", "Notes<br><small><i>Stored encrypted</i></small>.tip.This data will be AES encrypted", "PDid", "", ""));
                         $PdataModal->setData(array($privDataObj->get_name(), $password, $privDataObj->get_type_name(), $privDataObj->get_notes($_POST['group_pass']), $id, $_POST['group_id'], $_POST['group_pass']));
                         $PdataModal->setDatabase(array('private_data_desc', 'private_data_password', 'private_data_type', 'private_data_notes', 'private_data_id', 'group_id', 'group_pass'));
                         $PdataModal->setFieldType(array(2 => 'drop_down', 3 => 'text_area', 4 => 'hidden', 5 => 'hidden', 6 => 'hidden'));
                         // Creat dropdown
                         $dataTypes = PrivateDataType::get_private_data_types();
                         $PdataModal->setType($dataTypes);
                         $PdataModal->setUpdateValue('update_private_data');
                         $PdataModalID = "modal_private_data_id" . $id;
                         // Change button text
                         $PdataModal->setModalID($PdataModalID);
                         $modalForms .= $PdataModal->modalForm();
                         // End Update modal
                         // Now a Modal to Delete an Entry
                         // We'll ask for the password again.
                         $modalFormDelete = new Form("auto", 2);
                         $modalFormDelete->setHeadings(array("Delete " . $privDataObj->get_name() . "<br>Please provide group password for " . $privDataObj->get_group_name()));
                         $modalFormDelete->setTitles(array("Password", "group_id", ""));
                         $modalFormDelete->setData(array("", $privDataObj->get_group_id(), $id));
                         $modalFormDelete->setDatabase(array('group_pass', 'group_id', 'private_data_id'));
                         $modalFormDelete->setFieldType(array(0 => 'password_autocomplete_off', 1 => 'hidden', 2 => 'hidden'));
                         $myDeleteModalID = "modal_delete_pass_" . $id;
                         // Change button text
                         $modalFormDelete->setUpdateValue("delete_private_data");
                         $modalFormDelete->setUpdateText("Delete");
                         $modalFormDelete->setModalID($myDeleteModalID);
                         $modalForms .= $modalFormDelete->modalForm();
                         // End Delete modal
                         if (count($historical_passwords) > 0) {
                             $history_string = "<a name='modal' href='#" . $myHistoryModalID . "'>History</a>";
                         } else {
                             $history_string = "<i>No History</i>";
                         }
                         $actions = "<a name='modal' href='#" . $PdataModalID . "'>Edit</a> &nbsp&nbsp&nbsp &nbsp&nbsp&nbsp\n                                              \t\t<a name='modal' href='#" . $myDeleteModalID . "'>Delete</a> &nbsp&nbsp&nbsp &nbsp&nbsp&nbsp\n\t\t\t\t\t\t\t{$history_string}";
                     } else {
                         $form = new Form();
                         $content .= $form->error("Warning: " . $privDataObj->get_error());
                     }
                 }
                 if (count($historical_passwords) > 0) {
                     $history_string = "<a name='modal' href='#" . $myHistoryModalID . "'>History</a>";
                 } else {
                     $history_string = "<i>No History</i>";
                 }
                 array_push($data, $privDataObj->get_type_desc() . $type_tooltip, $privDataObj->get_name() . $name_tooltip, $password, $privDataObj->get_group_name(), $actions);
             }
         }
     }
     $heading = array("Type", "Description", "Private Data", "Group", "Actions");
     $pdata_form = new Form("auto", 5);
     $pdata_form->setSortable(true);
     $pdata_form->setHeadings($heading);
     $pdata_form->setData($data);
     $pdata_form->setTableWidth("800px");
     $content .= $pdata_form->showForm();
     $content .= $modalForms;
     return "{$content} {$modal_forms} {$private_data_type_modal}";
 }
Exemplo n.º 3
0
function renderCreateMultipeReports()
{
    global $tool, $form, $report_types;
    // Menu bar
    $content .= '<h2>Create Report</h2>';
    if ($_POST[step] != "2") {
        $headings = array("Please provide reporting information ");
        $postKeys = array("action", "step", "name", "date1", "date2");
        $keyTitle = array("action", "step", "Report Name", "Start Date", "End Date");
        $keyData = array("renderCheckReport", "2", "{$profile_id}", "", "");
        $form->setCols(2);
        $form->setData($keyData);
        $form->setTitles($keyTitle);
        $form->setDatabase($postKeys);
        $form->setTableWidth("auto");
        $fieldType[0] = "hidden";
        $fieldType[1] = "hidden";
        $fieldType[3] = "date_picker";
        $fieldType[4] = "date_picker";
        $form->setFieldType($fieldType);
        $form->setHeadings($headings);
        $form->setSortable(false);
        $form->setUpdateValue("");
        $form->setUpdateText("Continue to Select Profiles");
        $content .= $form->editForm();
    } elseif ($_POST[step] == "2") {
        $filter .= "<p>";
        $tool = new EdittingTools();
        $filter .= $tool->createNewFilters();
        $filter .= "<div style=\"clear:both;\"></div> </p>";
        $content .= $filter;
        // Fil array
        $keyData = array();
        foreach (CheckReportProfile::get_profiles() as $id => $name) {
            $profile = new CheckReportProfile($id);
            array_push($keyData, "<input type='checkbox' name='profile_id[]' value='{$id}'>", $profile->get_name());
        }
        $headings = array("Select All<input name='all' type='checkbox' value='Select All' onclick=\"checkAll(document.dataForm['profile_id[]'],this)\" ", "Profile");
        $form->setCols(2);
        $form->setTableWidth("auto");
        $form->setData($keyData);
        $form->setHeadings($headings);
        $form->setSortable(true);
        // manually create form
        $content .= "<p><b>Select the profiles you'd like to add to this report.</b></p>";
        $content .= "<form action='' id='dataForm' method='POST' name='dataForm'>";
        $content .= $form->showForm();
        $content .= "<div style='clear:both'></div>\n\t\t\t<INPUT TYPE=SUBMIT VALUE='Add Selected Checks' name='insert_multiple_reports'>\n\t\t\t<INPUT TYPE=hidden NAME=action VALUE='insert_multiple_reports'>\n\t\t\t<INPUT TYPE=hidden NAME=date1 VALUE='" . $_POST['date1'] . "'>\n\t\t\t<INPUT TYPE=hidden NAME=date2 VALUE='" . $_POST['date2'] . "'>\n\t\t\t<INPUT TYPE=hidden NAME=name VALUE='" . $_POST['name'] . "'>\n\t\t</form>";
    }
    echo $content;
}
Exemplo n.º 4
0
            $names = array("Add New VLAN", "Search", "Show All VLANs");
            $icons = array("add", "search", "icons/vlan-01.png");
            $handlers = array("window.location.href='" . $_SERVER['SCRIPT_NAME'] . "?tab=" . $_GET['tab'] . "&pluginID=" . $_GET['pluginID'] . "&className=" . $_GET['className'] . "&family=vlan&action=add'", "window.location.href='" . $_SERVER['SCRIPT_NAME'] . "?tab=" . $_GET['tab'] . "&pluginID=" . $_GET['pluginID'] . "&className=" . $_GET['className'] . "&family=vlan&action=search'", "window.location.href='" . $_SERVER['SCRIPT_NAME'] . "?tab=" . $_GET['tab'] . "&pluginID=" . $_GET['pluginID'] . "&className=" . $_GET['className'] . "&family=vlan&action=showAll'");
        }
        echo EdittingTools::createNewTools($names, $icons, $handlers, "VLAN Tool");
    } else {
        echo EdittingTools::createNewModal($names, $icons, $modalID, "IP Tool");
    }
} else {
    echo EdittingTools::createNewModal($names, $icons, $modalID, "IP Tool");
}
//If it's the vlan overview, create filters
if (isset($_GET['family'])) {
    if ($_GET['family'] == 'vlan' && !isset($_GET['action']) && !isset($_GET['v_id'])) {
        $listFilter = array("FREE" => "FREE", "RESERVED" => "RESERVED", "ASSIGNED" => "ASSIGNED");
        echo EdittingTools::createNewFilters($listFilter);
    }
}
//CRUD detection for networks
if (!empty($_POST)) {
    //Check the network
    if (isset($_POST['ipv6'])) {
        $ip = $_POST['ipv6'] . "/" . $_POST['netmask6'];
    } else {
        if (isset($_POST['ip1'])) {
            $ip = $_POST['ip1'] . "." . $_POST['ip2'] . "." . $_POST['ip3'] . "." . $_POST['ip4'] . "/" . $_POST['netmask'];
        } else {
            $ip = "";
        }
    }
    //If nothing is entered, a warning is issued
Exemplo n.º 5
0
 function render_show_accounting_profile()
 {
     if (isset($_GET['pid']) && is_numeric($_GET['pid'])) {
         $pid = $_GET['pid'];
     } else {
         return "<b>Sorry invalid profile id " . $_GET['pid'] . "</b>";
     }
     $content = "";
     $profile_name = $this->get_accounting_profile_name($pid);
     // Menu bar
     $content .= "<div style='font-size:10px; font-weight:100px;'>\n\t\t\t<a href='{$this->url}'>Accounting</a> >> {$profile_name}</div><br>";
     /*
      Get all SCU-DCU sources for this profile
     */
     $query = "SELECT accounting_source from accounting_profiles_files\n\t\t\tWHERE profile_id = '{$pid}'";
     $result = mysql_query($query);
     $sources = '';
     while ($obj = mysql_fetch_object($result)) {
         $sources .= "graph_profile_id[]=" . $obj->accounting_source . "&";
     }
     // Remove last &
     $sources = substr($sources, 0, -1);
     /*
      End Get all SCU-DCU sources for this profile
     */
     // Tools menu
     $tool = new EdittingTools();
     if ($_SESSION['access'] >= 50) {
         $toolNames = array("Edit", "Delete", "Saved Reports", "New Report", "Quick Report");
         $toolIcons = array("edit", "delete", "stat", "line", "graph");
         $toolHandlers = array("window.location.href='{$this->url}&action=edit_accounting_profile&pid={$pid}'", "window.location.href='{$this->url}&action=del_accounting_profile&pid={$pid}'", "window.location.href='{$this->url}&pid={$pid}&action=show_reports'", "window.location.href='{$this->url}&action=create_report&pid={$pid}'", "window.location.href='{$this->url}&action=graph_profiles&{$sources}&pid={$pid}'");
         $content .= $tool->createNewTools($toolNames, $toolIcons, $toolHandlers);
     }
     $content .= "<p>";
     $query = "Select title, client_id, notes, traffic_cap\n\t\t\tFROM accounting_profiles\n\t\t\tWHERE profile_id = '{$pid}'";
     $result = mysql_query($query);
     if (!$result) {
         return "<b>Sorry something went wrong</b>" . mysql_error() . $query;
     }
     $obj = mysql_fetch_object($result);
     $contact = new Contact($obj->client_id);
     $contact_name = $contact->get_name();
     if ($contact_name == '') {
         $contact_name = "n/a";
     }
     $values = array($obj->title, $contact_name, $this->int_to_si($obj->traffic_cap), $obj->notes);
     $form = new Form("auto", 2);
     $heading = array("Edit Accounting Profile");
     $titles = array("Name", "Client", "Traffic Cap.tip.Configured cap or Contracted rate.", "Notes");
     $form->setSortable(false);
     $form->setHeadings($heading);
     $form->setTitles($titles);
     $form->setDatabase($titles);
     $form->setData($values);
     //set the table size
     $form->setTableWidth("1024px");
     $form->setTitleWidth("20%");
     $content .= $form->ShowForm(1);
     $content .= "<div style=\"clear:both;\"></div> </p>";
     $content .= "</p><p><h2>RRD files</h2>";
     $tool2 = new EdittingTools();
     if ($_SESSION['access'] >= 50) {
         $toolNames = array("Add RRD file");
         $toolIcons = array("add");
         #$formType = array("newDialog");
         #$tool2->createNewModal($toolNames, $toolIcons, $formType);
         $toolHandlers = array("window.location.href='{$this->url}&action=show_add_rrd_to_profile&pid={$pid}'");
         $content .= $tool2->createNewTools($toolNames, $toolIcons, $toolHandlers);
     }
     $form = new Form("auto", 3);
     $heading = array("Delete", "Device", "SCU-DCU source");
     $data = array();
     $title = array();
     $handler = array();
     #$content .=  "<table><tr><th>Delete</th><th>Device</th><th>SCU-DCU sources</th>";
     $query = "SELECT accounting_profiles_files.accounting_source,\n\t\t\t\taccounting_sources.title, accounting_sources.device_id,\n\t\t\t\tDevices.name as device_name\n\t\t\tFROM accounting_profiles_files, accounting_sources, Devices\n\t\t\tWHERE profile_id = '{$pid}'\n\t\t\tAND accounting_sources.device_id = Devices.device_id\n\t\t\tAND accounting_profiles_files.accounting_source = accounting_sources.id";
     $result = mysql_query($query);
     if (!$result) {
         $content .= "<b>No Files found</b>";
     }
     while ($obj = mysql_fetch_object($result)) {
         #$content .=  "<tr><td><a href = '$this->url&action=del_accounting_source_from_profile&pid=$pid&asrc=$obj->accounting_source'><img src='icons/Delete.png' height=20></a></td> <td>$obj->device_name</td><td>$obj->title</td></tr>";
         array_push($title, "<a href='{$this->url}&action=del_accounting_source_from_profile&pid={$pid}&asrc={$obj->accounting_source}'><img src='icons/Delete.png' height=20></a>");
         array_push($data, $obj->device_name, $obj->title);
     }
     #$content .=  "</table>";
     $form->setSortable(true);
     // or false for not sortable
     $form->setHeadings($heading);
     $form->setTitles($title);
     $form->setTitleWidth("50px");
     $form->setData($data);
     $form->setTableWidth("500px");
     $content .= $form->showForm();
     // This is to add normal Interface RRD files
     // AT, remove this link as it's not fully implemented
     //$content .= "<a href='$this->url&action=add_device_interface_to_profile&pid=$pid'>Add interface to accounting profile</a>";
     // Done
     return $content;
 }
Exemplo n.º 6
0
<!--<script type='text/javascript' src='js/sorttable.js'></script>-->
<script type='text/javascript' src='js/mouseClicks.js'></script>

<?php 
/*Database coding: this checks for multiple different actions made by users and responds accordingly.*/
include_once 'classes/EdittingTools.php';
include_once 'classes/Property.php';
include_once 'classes/PropertyForm.php';
include_once 'classes/AAA.php';
include_once 'classes/Widgets.php';
include_once 'classes/Plugins.php';
// Report all PHP errors (see changelog)
//error_reporting(E_ALL);
//Make a new contact, a new tool bar, and a new form
$tool = new EdittingTools();
$properties = Property::get_properties();
$keys = array();
$propertyForm = new PropertyForm('auto', 2);
foreach ($properties as $id => $value) {
    $id = str_replace(" ", "_", $id);
    array_push($keys, $id);
}
if (!isset($_GET['mode'])) {
    if ($_GET['tab'] == 1 || isset($_POST['addUser']) || isset($_POST['delUser']) || isset($_POST['updateUser']) || isset($_POST['userToGroup'])) {
        $name = array("LDAP", "User Management.first.", "Group Management", "Dashboard Widgets", "Plugins", "Paths");
    } else {
        if ($_GET['tab'] == 2 || isset($_POST['addGroup']) || isset($_POST['delGroup']) || isset($_POST['updateGroup']) || isset($_POST['delUserFromGroup']) || isset($_POST['update_group_key'])) {
            $name = array("LDAP", "User Management", "Group Management.first.", "Dashboard Widgets", "Plugins", "Paths");
        } else {
            if ($_GET['tab'] == 3 || isset($_POST['saveDashboard'])) {
Exemplo n.º 7
0
 function render_show_change()
 {
     // First determine change id
     // If not a;ready defined. then check GET
     if (isset($_GET[cid]) && is_numeric($_GET[cid])) {
         $cid = mysql_real_escape_string($_GET[cid]);
     } else {
         return "<b>Sorry change not found<br></b>";
     }
     //$content = "<h1>Change Details (#$cid) </h1>";
     // Tools menu
     $tool = new EdittingTools();
     if ($_SESSION['access'] >= 50) {
         $toolNames = array("Edit", "Add Device", "Delete Change");
         $toolIcons = array("edit", "add", "delete");
         $toolHandlers = array("window.location.href='{$this->url}&action=edit_change&cid={$cid}'", "window.location.href='{$this->url}&action=edit_change&cid={$cid}&add_device#new_device'", "window.location.href='{$this->url}&action=delete_change&cid={$cid}&return=show_change'");
         $contentH .= $tool->createNewTools($toolNames, $toolIcons, $toolHandlers);
     }
     $contentH .= " <div style=\"clear:both;\"></div><br> ";
     /*
     	First Generic change info
     */
     $query = "SELECT change_id, title, notes, record_date, planned_change_date,change_date,\n\t\t\t\t\tchange_contact_1, change_contact_2, impact, status\n\t\t\t\t\tFROM plugin_ChangeManager_Changes\n\t\t\t\t\tWHERE change_id = '{$cid}'";
     $result = mysql_query($query);
     if (!$result) {
         return "<b>Oops something went wrong, unable to select changes </b>";
     }
     $values = array();
     while ($obj = mysql_fetch_object($result)) {
         $notes = nl2br($obj->notes);
         $user1 = new User($obj->change_contact_1);
         $contact_name1 = $user1->get_full_name();
         $user2 = new User($obj->change_contact_2);
         $contact_name2 = $user2->get_full_name();
         $impact_name = $this->impact_values[$obj->impact];
         $status_name = $this->status_values[$obj->status];
         if (is_null($obj->planned_change_date)) {
             $planned_change_date = 'Not Specified';
         } else {
             $planned_change_date = $obj->planned_change_date;
         }
         if (is_null($obj->change_date)) {
             $change_date = 'Not Specified';
         } else {
             $change_date = $obj->change_date;
         }
         array_push($values, $obj->title, $planned_change_date, $change_date, $contact_name1, $contact_name2, $impact_name, $status_name, $notes);
         $title = $obj->title;
     }
     $content = "<hr align=\"left\" style=\"width:94%;border:1px solid #C0C0C0;\">\n\t\t\t\t\t<h2>CHANGE (#{$cid}): {$title}</h2>\n\t\t\t\t\t<hr align=\"left\" style=\"width:94%;border:1px solid #C0C0C0;\">" . $contentH;
     $form = new Form("auto", 2);
     $heading = array("Change Details");
     $titles = array("Summary", "Planned Date", "Completion Date", "Primary Contact", "Secondary Contact", "Impact", "Status", "Change Description");
     #$fieldType = array(1=>"text_area");
     #$form->setFieldType($fieldType);
     $form->setSortable(false);
     $form->setHeadings($heading);
     $form->setTitles($titles);
     $form->setDatabase($titles);
     $form->setData($values);
     //set the table size
     $form->setTableWidth("94%");
     $form->setTitleWidth("20%");
     $content .= $form->ShowForm(1);
     /*
     	Device specific change info
     */
     $query2 = "SELECT device_id, impact, effects, chgby_id, change_date, description,\n\t\t\t\t\tback_out, status, id\n\t\t\t\t\tFROM plugin_ChangeManager_Components\n\t\t\t\t\tWHERE change_id = '{$cid}'";
     $result2 = mysql_query($query2);
     if (!$result2) {
         return "<b>Oops something went wrong, unable to select changes </b>";
     }
     $content .= "<table style='width:94%; clear:left;' id=\"sortDataTable\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\"><tr></tr><td><h2>Device Changes</h2></td></tr></table>";
     while ($obj = mysql_fetch_object($result2)) {
         $dvalues = array();
         // Determine device name
         $device = new Device($obj->device_id);
         $device_name = $device->get_name();
         // Determine device name
         $user = new User($obj->chgby_id);
         $fullname = $user->get_full_name();
         $effects = stripslashes(nl2br($obj->effects));
         $description = stripslashes(nl2br(htmlentities($obj->description)));
         // For Juniper code we need to keep the indents in place. so replace white spaces as well
         $description = str_replace("  ", "&nbsp;&nbsp;", $description);
         $back_out = stripslashes(nl2br($obj->back_out));
         array_push($dvalues, $device_name, $fullname, $description, $effects, $back_out);
         $heading = array("Device Details: {$device_name} <div style='text-align: right;'> \n<a href='{$this->url}&action=delete_device_component&cid={$cid}&component_id={$obj->id}&return=show_change' style='color:#FFFFFF'>\nDelete <img src='icons/Delete.png' height=20></a></div>");
         $titles = array("Device", "Changed By", "Change Details", "Change Effects", "Backout Procedure");
         #$fieldType = array(4=>"text_area");
         #$fieldType = array(4=>"text_area.height:60px");
         $dform = new Form("auto", 2);
         $dform->setHeadings($heading);
         $dform->setFieldType($fieldType);
         $dform->setTitles($titles);
         $dform->setDatabase($titles);
         $dform->setData($dvalues);
         //set the table size
         $dform->setTableWidth("94%");
         $dform->setTitleWidth("20%");
         $content .= $dform->ShowForm(1);
     }
     return $content;
 }