Author: jfthomps
Date: Wed Nov 14 18:29:33 2012
New Revision: 1409286

URL: http://svn.apache.org/viewvc?rev=1409286&view=rev
Log:
VCL-451
Cannot add deleted computers

computers.php: modified submitDeleteComputer - when deleting a computer, change 
hostname to be current hostname with "-DELETED-<compid>" appended to it; when 
undeleting, remove "-DELETED-<compid>" from the hostname, and if this would 
cause a conflict with an existing computer, append "-UNDELETED-<compid>" to it

utils.php:
-modified getComputers - if deleted computers are included and the computer has 
been deleted, remove the "-DELETED-<compid>" part from the hostname
-modified sortComputers - remove "-(UN)DELETED-<num>" from the hostnames before 
comparing them

Modified:
    vcl/trunk/web/.ht-inc/computers.php
    vcl/trunk/web/.ht-inc/utils.php

Modified: vcl/trunk/web/.ht-inc/computers.php
URL: 
http://svn.apache.org/viewvc/vcl/trunk/web/.ht-inc/computers.php?rev=1409286&r1=1409285&r2=1409286&view=diff
==============================================================================
--- vcl/trunk/web/.ht-inc/computers.php (original)
+++ vcl/trunk/web/.ht-inc/computers.php Wed Nov 14 18:29:33 2012
@@ -1695,17 +1695,34 @@ function confirmDeleteComputer() {
 function submitDeleteComputer() {
        $compid = getContinuationVar("compid");
        $deleted = getContinuationVar("deleted");
+       $compdata = getComputers(0, 1, $compid);
        if($deleted) {
+               $newhostname = preg_replace('/-DELETED-[0-9]+$/', '', 
$compdata[$compid]['hostname']);
+               $newhostname = mysql_real_escape_string($newhostname);
+               $query = "SELECT id "
+                      . "FROM computer "
+                      . "WHERE hostname = '$newhostname' AND "
+                      .       "id != $compid";
+               $qh = doQuery($query);
+               if(mysql_num_rows($qh))
+                       $newhostname = "$newhostname-UNDELETED-$compid";
                $query = "UPDATE computer "
-                                . "SET deleted = 0 "
-                                . "WHERE id = $compid";
+                      . "SET deleted = 0, "
+                      .     "hostname = '$newhostname' ";
+               if($compdata[$compid]['type'] == 'virtualmachine')
+                       $query .= ", stateid = 10 ";
+               $query .= "WHERE id = $compid";
                $qh = doQuery($query, 190);
        }
        else {
+               $newhostname = preg_replace('/-(UN)?DELETED-[0-9]+$/', '', 
$compdata[$compid]['hostname']);
+               $newhostname = "$newhostname-DELETED-$compid";
+               $newhostname = mysql_real_escape_string($newhostname);
                $query = "UPDATE computer "
-                                . "SET deleted = 1, "
-                                .     "vmhostid = NULL "
-                                . "WHERE id = $compid";
+                      . "SET deleted = 1, "
+                      .     "vmhostid = NULL, "
+                      .     "hostname = '$newhostname' "
+                      . "WHERE id = $compid";
                $qh = doQuery($query, 191);
        }
        $_SESSION['userresources'] = array();

Modified: vcl/trunk/web/.ht-inc/utils.php
URL: 
http://svn.apache.org/viewvc/vcl/trunk/web/.ht-inc/utils.php?rev=1409286&r1=1409285&r2=1409286&view=diff
==============================================================================
--- vcl/trunk/web/.ht-inc/utils.php (original)
+++ vcl/trunk/web/.ht-inc/utils.php Wed Nov 14 18:29:33 2012
@@ -7301,6 +7301,8 @@ function getComputers($sort=0, $included
        $query .= "ORDER BY c.hostname";
        $qh = doQuery($query, 180);
        while($row = mysql_fetch_assoc($qh)) {
+               if($includedeleted && $row['deleted'] == 1)
+                       $row['hostname']= preg_replace('/-DELETED-[0-9]+$/', 
'', $row['hostname']);
                $return[$row['id']] = $row;
        }
        if($sort) {
@@ -7576,6 +7578,9 @@ function sortComputers($a, $b) {
                return -1;
        }
 
+       $a['hostname'] = preg_replace('/-(UN)?DELETED-[0-9]+$/', '', 
$a['hostname']);
+       $b['hostname'] = preg_replace('/-(UN)?DELETED-[0-9]+$/', '', 
$b['hostname']);
+
        # get hostname and first part of domain name
        $tmp = explode('.', $a["hostname"]);
        $h1 = array_shift($tmp);


Reply via email to