[Added updateRange in ngnpro client library Adrian Georgescu **20071106121854] hunk ./provisioning/ngnpro_client_lib.phtml 2810 + var $FieldsReadOnly=array( + 'reseller' + ); + var $Fields=array( + 'customer' => array('type'=>'integer'), + 'info' => array('type'=>'string'), + 'ttl' => array('type'=>'integer') + ); hunk ./provisioning/ngnpro_client_lib.phtml 3091 - $this->showPagination($maxrows); + if ($this->rows == 1 && $this->version > 1) { + $this->showRecord($range); + } else { + $this->showPagination($maxrows); + } hunk ./provisioning/ngnpro_client_lib.phtml 3322 + + function showRecord($range) { + + print ""; + print " + +
+ "; + printf ("",$_SERVER['PHP_SELF']); + print ""; + + print " + "; + + printf ("", + $this->tel2enum($range->id->prefix,$range->id->tld)); + + foreach (array_keys($this->Fields) as $item) { + if ($this->Fields[$item]['name']) { + $item_name=$this->Fields[$item]['name']; + } else { + $item_name=ucfirst($item); + } + + if ($this->Fields[$item]['type'] == 'text') { + printf (" + + + ", + $item_name, + $item, + $range->$item + ); + } else { + printf (" + + + ", + $item_name, + $item, + $range->$item + ); + } + } + + printf ("id->tld); + printf ("id->prefix); + $this->printFiltersToForm(); + $this->printHiddenFormElements(); + + print ""; + print " +
+
DNS name%s
%s
%s
+ "; + } + + function updateRecord () { + //print "

Updating rage ..."; + + if (!$_REQUEST['prefix_filter'] || !$_REQUEST['prefix_filter']) return; + + $rangeid=array('prefix' => $_REQUEST['prefix_filter'], + 'tld' => $_REQUEST['tld_filter'] + ); + + if (!$range = $this->getRecord($enumid)) { + return false; + } + + $range_old=$range; + + foreach (array_keys($this->Fields) as $item) { + $var_name=$item.'_form'; + printf ("
%s=%s",$var_name,$_REQUEST[$var_name]); + if ($this->Fields[$item]['type'] == 'integer') { + $range->$item = intval($_REQUEST[$var_name]); + } else { + $range->$item = trim($_REQUEST[$var_name]); + } + } + + //dprint_r($range); + //return true; + $function=array('commit' => array('name' => 'updateRange', + 'parameters' => array($range), + 'logs' => array('success' => sprintf('

ENUM range +%s under %s has been updated',$rangeid['prefix'],$rangeid['tld']))), + 'rollback' => array('name' => 'updateRange', + 'parameters' => array($range_old)) + ); + + return $this->SOAPEngine->execute($function); + + } + + function getRecord($rangeid) { + // Filter + $filter=array('prefix' => $rnageid['prefix'], + 'tld' => $rangeid['tld'] + ); + + // Range + $range=array('start' => 0, + 'count' => 1 + ); + + // Order + $orderBy = array('attribute' => 'changeDate', + 'direction' => 'DESC' + ); + + // Compose query + $Query=array('filter' => $filter, + 'orderBy' => $orderBy, + 'range' => $range + ); + + $this->SOAPEngine->soapclient->addHeader($this->SOAPEngine->SoapAuth); + $result = $this->SOAPEngine->soapclient->getRanges($Query); + + if (PEAR::isError($result)) { + $error_msg = $result->getMessage(); + $error_fault= $result->getFault(); + $error_code = $result->getCode(); + printf ("

Error from %s: %s (%s): %s",$this->SOAPEngine->SOAPurl,$error_msg, $error_fault->detail->exception->errorcode,$error_fault->detail->exception->errorstring); + return false; + } else { + if ($result->ranges[0]){ + return $result->ranges[0]; + } else { + return false; + } + } + } +