[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Phpgroupware-cvs] [21005] Improvement: local oci8-support for testing,
From: |
Sigurd Nes |
Subject: |
[Phpgroupware-cvs] [21005] Improvement: local oci8-support for testing, filter on location lookup and some new fields in helpdesk 4565:4680 |
Date: |
Sat, 30 Jan 2010 17:03:40 +0000 |
Revision: 21005
http://svn.sv.gnu.org/viewvc/?view=rev&root=phpgroupware&revision=21005
Author: sigurdne
Date: 2010-01-30 17:03:40 +0000 (Sat, 30 Jan 2010)
Log Message:
-----------
Improvement: local oci8-support for testing, filter on location lookup and some
new fields in helpdesk 4565:4680
Modified Paths:
--------------
people/sigurdne/modules/property/trunk/inc/class.bocommon.inc.php
people/sigurdne/modules/property/trunk/inc/class.bolocation.inc.php
people/sigurdne/modules/property/trunk/inc/class.bolookup.inc.php
people/sigurdne/modules/property/trunk/inc/class.sotts.inc.php
people/sigurdne/modules/property/trunk/inc/class.uilookup.inc.php
people/sigurdne/modules/property/trunk/inc/class.uitts.inc.php
people/sigurdne/modules/property/trunk/setup/default_records.inc.php
people/sigurdne/modules/property/trunk/templates/base/tts.xsl
Added Paths:
-----------
people/sigurdne/modules/property/trunk/inc/class.db_oci8.inc.php
Modified: people/sigurdne/modules/property/trunk/inc/class.bocommon.inc.php
===================================================================
--- people/sigurdne/modules/property/trunk/inc/class.bocommon.inc.php
2010-01-30 17:00:26 UTC (rev 21004)
+++ people/sigurdne/modules/property/trunk/inc/class.bocommon.inc.php
2010-01-30 17:03:40 UTC (rev 21005)
@@ -2011,11 +2011,6 @@
$values['location_name'] =
phpgw::get_var('loc' . (count($values['location'])).'_name', 'string', 'POST');
// if not address - get the parent name as address
}
- if(isset($values['location']) && $values['location'])
- {
- phpgwapi_cache::session_set('property',
'filter_location', implode('-', $values['location']));
- }
-
return $values;
}
Modified: people/sigurdne/modules/property/trunk/inc/class.bolocation.inc.php
===================================================================
--- people/sigurdne/modules/property/trunk/inc/class.bolocation.inc.php
2010-01-30 17:00:26 UTC (rev 21004)
+++ people/sigurdne/modules/property/trunk/inc/class.bolocation.inc.php
2010-01-30 17:03:40 UTC (rev 21005)
@@ -280,13 +280,8 @@
}
$filter_location =
isset($data['filter_location']) ? $data['filter_location'] : '';
- if(!$filter_location)
- {
- $filter_location =
phpgwapi_cache::session_get('property', 'filter_location');
- phpgwapi_cache::session_clear('property',
'filter_location');
- }
$block_query = !!$filter_location;
- $location_link =
"menuaction:'property.uilocation.index',lookup:1,location_code:'{$filter_location}',block_query:'{$block_query}'";
+ $location_link =
"menuaction:'property.uilocation.index',lookup:1";
$config = $this->soadmin_location->read_config('');
@@ -354,6 +349,7 @@
$lookup_functions[] = array
(
'name'
=> 'lookup_loc' . ($i+1) . '()',
+ 'filter_level'
=> $i,
'link'
=> $location_link .',type_id:' . ($i+1) . ',lookup_name:' . $i,
'action'
=>
'Window1=window.open(strURL,"Search","width=1000,height=700,toolbar=no,scrollbars=yes,resizable=yes");'
);
@@ -443,6 +439,7 @@
$lookup_functions[] = array
(
'name'
=> 'lookup_loc' . ($m+1) . '()',
+ 'filter_level'
=> $m,
'link'
=> $location_link .',lookup_tenant:1,type_id:' .
$config[$j]['location_type'] . ',lookup_name:' . $i,
'action'
=>
'Window1=window.open(strURL,"Search","width=1600,height=700,toolbar=no,scrollbars=yes,resizable=yes");'
);
@@ -583,10 +580,51 @@
if(isset($lookup_functions) &&
is_array($lookup_functions))
{
$location['lookup_functions'] = '';
+ $filter_level = 0;
for ($j=0;$j<count($lookup_functions);$j++)
{
+ if(isset(
$lookup_functions[$j]['filter_level']) && $lookup_functions[$j]['filter_level']
> 0)
+ {
+ $lookup_functions[$j]['link']
.= ",block_query:block,location_code:filter";
+ $_filter = array();
+ for
($i=1;$i<=$lookup_functions[$j]['filter_level'];$i++)
+ {
+ $_filter[] =
"document.form.loc{$i}.value";
+ }
+ $filter_level =
$lookup_functions[$j]['filter_level'];
+ }
+ else
+ {
+ $lookup_functions[$j]['link']
.= ",location_code:'{$filter_location}',block_query:'{$block_query}'";
+ }
+
$location['lookup_functions'] .=
"\t".'function ' . $lookup_functions[$j]['name'] ."\n";
$location['lookup_functions'] .=
"\t".'{'."\n";
+ if($filter_level)
+ {
+ $location['lookup_functions']
.= "
+ var block = '';
+ var filter = '';
+ var filter_level =
{$filter_level};
+ if (filter_level)
+ {
+
for(i=1;i<=filter_level;i++)
+ {
+
if(eval('document.form.loc'+i+'.value'))
+ {
+ block =
true;
+
if(!filter)
+ {
+
filter = eval('document.form.loc'+i+'.value');
+ }
+ else
+ {
+
filter = filter + '-' + eval('document.form.loc'+i+'.value');
+ }
+ }
+ }
+ }";
+ }
$location['lookup_functions'] .=
"\t\tvar oArgs = {" . $lookup_functions[$j]['link'] ."};" . "\n";
$location['lookup_functions'] .=
"\t\tvar strURL = phpGWLink('index.php', oArgs);\n";
$location['lookup_functions'] .=
"\t\t".$lookup_functions[$j]['action'] ."\n";
Modified: people/sigurdne/modules/property/trunk/inc/class.bolookup.inc.php
===================================================================
--- people/sigurdne/modules/property/trunk/inc/class.bolookup.inc.php
2010-01-30 17:00:26 UTC (rev 21004)
+++ people/sigurdne/modules/property/trunk/inc/class.bolookup.inc.php
2010-01-30 17:03:40 UTC (rev 21005)
@@ -108,13 +108,14 @@
if($GLOBALS['phpgw_info']['user']['preferences']['common']['maxmatchs'] &&
$GLOBALS['phpgw_info']['user']['preferences']['common']['maxmatchs'] > 0)
{
- $this->limit =
$GLOBALS['phpgw_info']['user']['preferences']['common']['maxmatchs'];
+ $limit =
$GLOBALS['phpgw_info']['user']['preferences']['common']['maxmatchs'];
}
else
{
- $this->limit = 15;
+ $limit = 15;
}
+ $limit = $this->allrows ? 0 : $limit;
$fields[0] = 'per_first_name';
$fields[1] = 'per_last_name';
$fields[2] = 'per_department';
@@ -138,7 +139,7 @@
$criteria = $addressbook->criteria_contacts(1,
$category_filter, 'person', $this->query, $fields_search);
$this->total_records =
$addressbook->get_count_persons($criteria);
- $contacts = $addressbook->get_persons($fields,
$this->limit, $this->start, $this->order, $this->sort, '', $criteria);
+ $contacts = $addressbook->get_persons($fields,
$this->start, $limit, $this->order, $this->sort, '', $criteria);
$accounts = $GLOBALS['phpgw']->accounts->get_list();
$user_contacts = array();
Added: people/sigurdne/modules/property/trunk/inc/class.db_oci8.inc.php
===================================================================
--- people/sigurdne/modules/property/trunk/inc/class.db_oci8.inc.php
(rev 0)
+++ people/sigurdne/modules/property/trunk/inc/class.db_oci8.inc.php
2010-01-30 17:03:40 UTC (rev 21005)
@@ -0,0 +1,864 @@
+<?php
+ /*
+ * Oracle/OCI8 accessor based on Session Management for PHP3
+ *
+ * (C) Copyright 1999-2000 Stefan Sels address@hidden
+ *
+ * based on db_oracle.inc by Luis Francisco Gonzalez Hernandez
+ * contains metadata() from db_oracle.inc 1.10
+ *
+ * $Id$
+ *
+ */
+
+ class DB_OCI8
+ {
+ var $Debug = 0;
+ var $sqoe = 1; // show query on error
+ var $Halt_On_Error = "yes"; ## "yes" (halt with message), "no"
(ignore errors quietly), "report" (ignore errror, but spit a warning)
+
+ var $Host = "";
+ var $Port = "1521";
+ /* traditionally the full TNS name is placed in $Database; if
having trouble with TNS resolution (and desiring a more legible configuration),
place the host IP address in $Host and the Oracle SID in $Database as a
shortcut - connect() will build a valid connection string using
$full_connection_string */
+ var $Database = "";
+ var $User = "";
+ var $Password = "";
+ var $full_connection_string =
"(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=%s)(PORT=%s)))(CONNECT_DATA=(SID=%s)))";
+
+ var $Link_ID = 0;
+ var $Query_ID = 0;
+ var $Record = array();
+ var $Row;
+ var $Parse;
+ var $Error = "";
+ var $autoCommit = 1; // Commit on successful query
+ var $autoCount = 1; // Count num_rows on select
+
+ var $share_connections = false;
+ var $share_connection_name = "";
+ // Defaults to the class name - set to another class name to
share connections among different class extensions
+
+ var $last_query_text = "";
+
+ var $num_rows; // Used to store the total of rows returned by a
SELECT statement.
+ var $auto_stripslashes = false;
+
+ /* public: constructor */
+ function DB_OCI8($query = "")
+ {
+ if($query)
+ {
+ $this->query($query);
+ }
+ }
+
+ function link_id()
+ {
+ return $this->Link_ID;
+ }
+
+ function query_id()
+ {
+ return $this->Query_ID;
+ }
+
+ function connect()
+ {
+ if ( 0 == $this->Link_ID )
+ {
+ if ($this->Debug)
+ {
+ printf("<br>Connecting to
$this->Database%s...<br>\n", (($this->Host) ? " ($this->Host)" : ""));
+ }
+ if($this->share_connections)
+ {
+ if(!$this->share_connection_name)
+ {
+ $this->share_connection_name =
get_class($this) . "_Link_ID";
+ }
+ else
+ {
+ $this->share_connection_name .=
"_Link_ID";
+ }
+ global ${$this->share_connection_name};
+ if(${$this->share_connection_name})
+ {
+ $this->Link_ID =
${$this->share_connection_name};
+ return true;
+ }
+ }
+ $this->Link_ID = OCIPLogon($this->User,
$this->Password, (($this->Host) ? sprintf($this->full_connection_string,
$this->Host, $this->Port, $this->Database) : $this->Database), 'AL32UTF8');
+
+ if (!$this->Link_ID)
+ {
+ $this->connect_failed();
+ return false;
+ }
+ if($this->share_connections)
+ {
+ ${$this->share_connection_name} =
$this->Link_ID;
+ }
+ if ($this->Debug)
+ {
+ printf("<br>Obtained the Link_ID:
$this->Link_ID<br>\n");
+ }
+ }
+ }
+
+ function connect_failed()
+ {
+ $this->Halt_On_Error = "yes";
+ $this->halt(sprintf("connect ($this->User, \$Password,
$this->Database%s) failed", (($this->Host) ? ", $this->Host" : "")));
+ }
+
+ function free()
+ {
+ if ($this->Parse)
+ {
+ if ($this->Debug)
+ {
+ printf("<br>Freeing the statement:
$this->Parse<br>\n");
+ }
+ $result = @OCIFreeStatement($this->Parse);
+ if (!$result)
+ {
+ $this->Error = OCIError($this->Link_ID);
+ if ($this->Debug)
+ {
+ printf("<br>Error: %s<br>",
$this->Error["message"]);
+ }
+ }
+ }
+ }
+
+ function query($Query_String)
+ {
+ $this->connect();
+ $this->free();
+
+ $this->Parse = OCIParse($this->Link_ID, $Query_String);
+ if (!$this->Parse)
+ {
+ $this->Error = OCIError($this->Parse);
+ }
+ else
+ {
+ if ($this->autoCommit)
+ {
+ OCIExecute($this->Parse,
OCI_COMMIT_ON_SUCCESS);
+ }
+ else
+ {
+ OCIExecute($this->Parse, OCI_DEFAULT);
+ }
+ if ($this->autoCount)
+ {
+ /* need to repeat the query to count
the returned rows from a "select" statement. */
+ if (eregi("SELECT", $Query_String))
+ {
+ /* On $this->num_rows I'm
storing the returned rows of the query. */
+ $this->num_rows =
OCIFetchStatement($this->Parse, $aux);
+ OCIExecute($this->Parse,
OCI_DEFAULT);
+ }
+ }
+ $this->Error = OCIError($this->Parse);
+ }
+
+ $this->Row = 0;
+
+ if ($this->Debug)
+ {
+ printf("Debug: query = %s<br>\n",
$Query_String);
+ }
+
+ if ((1403 != $this->Error["code"]) and (0 !=
$this->Error["code"]) and $this->sqoe)
+ {
+ echo "<BR><FONT
color=red><B>".$this->Error["message"]."<BR>Query
:\"$Query_String\"</B></FONT>";
+ }
+ $this->last_query_text = $Query_String;
+ return $this->Parse;
+ }
+
+
+ /**
+ * Execute a query with limited result set
+ *
+ * @param string $Query_String the query to be executed
+ * @param integer $offset row to start from
+ * @param integer $line the line method was called from - use
__LINE__
+ * @param string $file the file method was called from - use
__FILE__
+ * @param integer $num_rows number of rows to return (optional),
if unset will use
$GLOBALS['phpgw_info']['user']['preferences']['common']['maxmatchs']
+ * @return integer current query id if sucesful and null if fails
+ */
+ public function limit_query($sql, $offset = -1, $line = '',
$file = '', $nrows = -1)
+ {
+ $this->connect();
+ $this->free();
+
+ $this->Parse = OCIParse($this->Link_ID, $sql);
+ if (!$this->Parse)
+ {
+ $this->Error = OCIError($this->Parse);
+ }
+
+ OCIExecute($this->Parse, OCI_DEFAULT);
+
+ if ( (int) $nrows <= 0 )
+ {
+ $nrows =
$GLOBALS['phpgw_info']['user']['preferences']['common']['maxmatchs'];
+ }
+
+ $this->firstrows = true;
+ if ($this->firstrows)
+ {
+ if (strpos($sql,'/*+') !== false)
+ {
+ $sql = str_replace('/*+
','/*+FIRST_ROWS ',$sql);
+ }
+ else
+ {
+ $sql = preg_replace('/^[
\t\n]*select/i','SELECT /*+FIRST_ROWS*/',$sql);
+ }
+ }
+
+ // Algorithm by Tomas V V Cox, from PEAR DB oci8.php
+
+ // Let Oracle return the name of the columns
+ $q_fields = "SELECT * FROM (".$sql.") WHERE NULL =
NULL";
+
+/*
+ $false = false;
+ if (! $stmt_arr = $this->Prepare($q_fields)) {
+ return $false;
+ }
+ $stmt = $stmt_arr[1];
+
+
+ if (is_array($inputarr)) {
+ foreach($inputarr as $k => $v) {
+ if (is_array($v)) {
+ if (sizeof($v) == 2) //
suggested by address@hidden
+
OCIBindByName($stmt,":$k",$inputarr[$k][0],$v[1]);
+ else
+
OCIBindByName($stmt,":$k",$inputarr[$k][0],$v[1],$v[2]);
+ } else {
+ $len = -1;
+ if ($v === ' ') $len = 1;
+ if (isset($bindarr)) { // is
prepared sql, so no need to ocibindbyname again
+ $bindarr[$k] = $v;
+ } else {
// dynamic sql, so rebind every time
+
OCIBindByName($stmt,":$k",$inputarr[$k],$len);
+
+ }
+ }
+ }
+ }
+
+ if (!OCIExecute($stmt, OCI_DEFAULT)) {
+ OCIFreeStatement($stmt);
+ return $false;
+ }
+
+ $ncols = OCINumCols($stmt);
+ for ( $i = 1; $i <= $ncols; $i++ ) {
+ $cols[] = '"'.OCIColumnName($stmt, $i).'"';
+ }
+
+*/
+
+ $totalReg = OCINumcols($this->Parse);
+ for ($ix = 1; $ix <= $totalReg; $ix++)
+ {
+ $cols[] =
strtoupper(OCIColumnname($this->Parse, $ix));
+// $colreturn = strtolower($col);
+ }
+
+
+ OCIFreeStatement($this->Parse);
+ $fields = implode(',', $cols);
+ if ($nrows <= 0) $nrows = 999999999999;
+ else $nrows += $offset;
+ $offset += 1; // in Oracle rownum starts at 1
+
+ $sql = "SELECT /*+ FIRST_ROWS */ $fields FROM".
+ "(SELECT rownum as adodb_rownum, $fields FROM".
+ " ($sql) WHERE rownum <= $nrows".
+ ") WHERE adodb_rownum >= $offset";
+//_debug_array($sql);die();
+ return $this->query($sql);
+ }
+
+
+ function commit()
+ {
+ if ($this->autoCommit) {
+ $this->halt("Nothing to commit because AUTO
COMMIT is on.");
+ }
+ return(OCICommit($this->Link_ID));
+ }
+
+ function rollback()
+ {
+ if ($this->autoCommit)
+ {
+ $this->halt("Nothing to rollback because AUTO
COMMIT is on.");
+ }
+ return(OCIRollback($this->Link_ID));
+ }
+
+ /* This is requeried in some application. It emulates the
mysql_insert_id() function. */
+ /* Note: this function was copied from phpBB. */
+ function insert_id($query_id = 0)
+ {
+ if (!$query_id)
+ {
+ $query_id = $this->Parse;
+ }
+ if ($query_id && $this->last_query_text != "")
+ {
+ if (eregi("^(INSERT{1}|^INSERT
INTO{1})[[:space:]][\"]?([a-zA-Z0-9\_\-]+)[\"]?",
$this->last_query_text[$query_id], $tablename))
+ {
+ $query = "SELECT
".$tablename[2]."_id_seq.CURRVAL FROM DUAL";
+ $temp_q_id = @OCIParse($this->db,
$query);
+ @OCIExecute($temp_q_id, OCI_DEFAULT);
+ @OCIFetchInto($temp_q_id, $temp_result,
OCI_ASSOC+OCI_RETURN_NULLS);
+ if ($temp_result)
+ {
+ return $temp_result["CURRVAL"];
+ }
+ else
+ {
+ return false;
+ }
+ }
+ else
+ {
+ return false;
+ }
+ }
+ else
+ {
+ return false;
+ }
+ }
+
+ function next_record()
+ {
+ /* IF clause added to prevent a error when tried to
read an empty "$this->Parse". */
+ if ($this->autoCount and ($this->num_rows() ==
$this->Row))
+ {
+ return 0;
+ }
+ if (0 == OCIFetchInto($this->Parse, $result,
OCI_ASSOC+OCI_RETURN_NULLS))
+ {
+ if ($this->Debug)
+ {
+ printf("<br>ID: %d, Rows: %d<br>\n",
$this->Link_ID, $this->num_rows());
+ }
+ $this->Row += 1;
+
+ $errno = OCIError($this->Parse);
+ if (1403 == $errno)
+ { # 1043 means no more records found
+ $this->Error = false;
+ $this->disconnect();
+ $stat = 0;
+ }
+ else
+ {
+ $this->Error = OCIError($this->Parse);
+ if ($errno && ($this->Debug))
+ {
+ printf("<br>Error: %s, %s<br>",
+ $errno,
+ $this->Error["message"]);
+ }
+ $stat = 0;
+ }
+ }
+ else
+ {
+ $this->Record = array();
+ $totalReg = OCINumcols($this->Parse);
+ for ($ix = 1; $ix <= $totalReg; $ix++)
+ {
+ $col =
strtoupper(OCIColumnname($this->Parse, $ix));
+ $colreturn = strtolower($col);
+ $this->Record[$colreturn] =
+ (is_object($result[$col])) ?
$result[$col]->load() : $result[$col];
+ if ($this->Debug)
+ {
+ echo
"<b>[$col]</b>:".$result[$col]."<br>\n";
+ }
+ }
+ $stat = 1;
+ }
+
+ return $stat;
+ }
+
+ function seek($pos)
+ {
+ $this->Row = $pos;
+ }
+
+ function metadata($table, $full = false)
+ {
+ $count = 0;
+ $id = 0;
+ $res = array();
+
+ /*
+ * Due to compatibility problems with Table we changed
the behavior
+ * of metadata();
+ * depending on $full, metadata returns the following
values:
+ *
+ * - full is false (default):
+ * $result[]:
+ * [0]["table"] table name
+ * [0]["name"] field name
+ * [0]["type"] field type
+ * [0]["len"] field length
+ * [0]["flags"] field flags ("NOT NULL", "INDEX")
+ * [0]["format"] precision and scale of number (eg.
"10,2") or empty
+ * [0]["index"] name of index (if has one)
+ * [0]["chars"] number of chars (if any char-type)
+ *
+ * - full is true
+ * $result[]:
+ * ["num_fields"] number of metadata records
+ * [0]["table"] table name
+ * [0]["name"] field name
+ * [0]["type"] field type
+ * [0]["len"] field length
+ * [0]["flags"] field flags ("NOT NULL", "INDEX")
+ * [0]["format"] precision and scale of number (eg.
"10,2") or empty
+ * [0]["index"] name of index (if has one)
+ * [0]["chars"] number of chars (if any char-type)
+ * ["meta"][field name] index of field named "field
name"
+ * The last one is used, if you have a field name,
but no index.
+ * Test: if (isset($result['meta']['myfield'])) {}
...
+ */
+
+ $this->connect();
+
+ ## This is a RIGHT OUTER JOIN: "(+)", if you
want to see, what
+ ## this query results try the following:
+ ## $table = new Table; $db = new my_DB_Sql; #
you have to make
+ ## #
your own class
+ ## $table->show_results($db->query(see query
vvvvvv))
+ ##
+ $this->query("SELECT
T.table_name,T.column_name,T.data_type,".
+
"T.data_length,T.data_precision,T.data_scale,T.nullable,".
+
"T.char_col_decl_length,I.index_name".
+ " FROM ALL_TAB_COLUMNS
T,ALL_IND_COLUMNS I".
+ " WHERE
T.column_name=I.column_name (+)".
+ " AND
T.table_name=I.table_name (+)".
+ " AND
T.table_name=UPPER('$table') ORDER BY T.column_id");
+
+ $i = 0;
+ while ($this->next_record())
+ {
+ $res[$i]["table"] =
$this->Record["table_name"];
+ $res[$i]["name"] =
strtolower($this->Record["column_name"]);
+ $res[$i]["type"] =
$this->Record["data_type"];
+ $res[$i]["len"] =
$this->Record["data_length"];
+ if ($this->Record["index_name"])
+ {
+ $res[$i]["flags"] = "INDEX ";
+ }
+ $res[$i]["flags"] .= (
$this->Record["nullable"] == 'N') ? '' : 'NOT NULL';
+ $res[$i]["format"]=
(int)$this->Record["data_precision"].",".
+
(int)$this->Record["data_scale"];
+ if ("0,0" == $res[$i]["format"])
+ {
+ $res[$i]["format"] = '';
+ }
+ $res[$i]["index"] =
$this->Record["index_name"];
+ $res[$i]["chars"] =
$this->Record["char_col_decl_length"];
+ if ($full)
+ {
+ $j = $res[$i]["name"];
+ $res["meta"][$j] = $i;
+ $res["meta"][strtoupper($j)] =
$i;
+ }
+ if ($full)
+ {
+ $res["meta"][$res[$i]["name"]]
= $i;
+ }
+ $i++;
+ }
+ if ($full)
+ {
+ $res["num_fields"] = $i;
+ }
+# $this->disconnect();
+ return $res;
+ }
+
+
+ function affected_rows()
+ {
+ return OCIRowCount($this->Parse);
+ }
+
+ function num_rows()
+ {
+ return $this->num_rows;
+ }
+
+ function num_fields()
+ {
+ return OCINumcols($this->Parse);
+ }
+
+ function nf()
+ {
+ return $this->num_rows();
+ }
+
+ function np()
+ {
+ print $this->num_rows();
+ }
+
+ function f($Name, $strip_slashes = false)
+ {
+ if( isset($this->Record[$Name])
+ {
+ if ($strip_slashes || ($this->auto_stripslashes
&& ! $strip_slashes))
+ {
+ return
stripslashes($this->Record[$Name]);
+ }
+ else
+ {
+ return $this->Record[$Name];
+ }
+ }
+
+ return '';
+ }
+
+ function p($Name)
+ {
+ print $this->f($Name);
+ }
+
+ function nextid($seqname)
+ {
+ $this->connect();
+
+ $Query_ID = @OCIParse($this->Link_ID, "SELECT
$seqname.NEXTVAL FROM DUAL");
+
+ if (address@hidden($Query_ID))
+ {
+ $this->Error = @OCIError($Query_ID);
+ if (2289 == $this->Error["code"])
+ {
+ $Query_ID = OCIParse($this->Link_ID,
"CREATE SEQUENCE $seqname");
+ if (!OCIExecute($Query_ID))
+ {
+ $this->Error =
OCIError($Query_ID);
+ $this->halt("<BR> nextid()
function - unable to create sequence<br>".$this->Error["message"]);
+ }
+ else
+ {
+ $Query_ID =
OCIParse($this->Link_ID, "SELECT $seqname.NEXTVAL FROM DUAL");
+ OCIExecute($Query_ID);
+ }
+ }
+ }
+
+ if (OCIFetch($Query_ID))
+ {
+ $next_id = OCIResult($Query_ID, "NEXTVAL");
+ }
+ else
+ {
+ $next_id = 0;
+ }
+ OCIFreeStatement($Query_ID);
+ return $next_id;
+ }
+
+ function disconnect()
+ {
+ if ($this->Debug)
+ {
+ printf("Disconnecting...<br>\n");
+ }
+ OCILogoff($this->Link_ID);
+ }
+
+ function halt($msg)
+ {
+ if ($this->Halt_On_Error == "no")
+ return;
+
+ $this->haltmsg($msg);
+
+ if ($this->Halt_On_Error != "report")
+ {
+ die("Session halted.</body></html>");
+ }
+ }
+
+ function haltmsg($msg)
+ {
+ printf("<p><b>Database error:</b> %s<br>\n", $msg);
+ printf("<b>Oracle Error</b>: %s</p>\n",
$this->Error["message"]);
+ }
+
+ function lock($table, $mode = "write")
+ {
+ $this->connect();
+ if ($mode == "write")
+ {
+ $Parse = OCIParse($this->Link_ID, "lock table
$table in row exclusive mode");
+ OCIExecute($Parse);
+ } else {
+ $result = 1;
+ }
+ return $result;
+ }
+
+ function unlock()
+ {
+ return $this->query("commit");
+ }
+
+ function table_names()
+ {
+ $this->connect();
+ $this->query("SELECT table_name,tablespace_name FROM
user_tables");
+ $i = 0;
+ while ($this->next_record())
+ {
+ $info[$i]["table_name"] = $this->Record["table_name"];
+ $info[$i]["tablespace_name"] =
$this->Record["tablespace_name"];
+ $i++;
+ }
+ return $info;
+ }
+
+ function add_specialcharacters($query)
+ {
+ return str_replace("'", "''", $query);
+ }
+
+ function split_specialcharacters($query)
+ {
+ return str_replace("''", "'", $query);
+ }
+
+ /* This new function is needed to write a valid db dependant
date string. */
+ function now()
+ {
+ return "SYSDATE";
+ }
+
+ function db_addslashes($str)
+ {
+ if (!IsSet($str) || $str == '')
+ {
+ return '';
+ }
+ return str_replace("'", "''", $str);
+ }
+
+
+ /**
+ * Prepare the VALUES component of an INSERT sql statement by
guessing data types
+ *
+ * It is not a good idea to rely on the data types determined
by this method if
+ * you are inserting numeric data into varchar/text fields,
such as street numbers
+ *
+ * @param array $value_set array of values to insert into the
database
+ * @return string the prepared sql, empty string for invalid
input
+ */
+ public function validate_insert($values)
+ {
+ if ( !is_array($values) || !count($values) )
+ {
+ return '';
+ }
+
+ $insert_value = array();
+ foreach ( $values as $value )
+ {
+ if($value || (is_numeric($value) && $value ==
0) )
+ {
+ if ( is_numeric($value) )
+ {
+ $insert_value[] = "'$value'";
+ }
+ else
+ {
+ $insert_value[] = "'" .
$this->db_addslashes(stripslashes($value)) . "'"; //in case slashes are already
added.
+ }
+ }
+ else
+ {
+ $insert_value[] = 'NULL';
+ }
+ }
+ return implode(",", $insert_value);
+ }
+
+ /**
+ * Prepare the SET component of an UPDATE sql statement
+ *
+ * @param array $value_set associative array of values to
update the database with
+ * @return string the prepared sql, empty string for invalid
input
+ */
+ public function validate_update($value_set)
+ {
+ if ( !is_array($value_set) || !count($value_set) )
+ {
+ return '';
+ }
+
+ $value_entry = array();
+ foreach ( $value_set as $field => $value )
+ {
+ if($value || (is_numeric($value) && $value ==
0) )
+ {
+ if ( is_numeric($value) )
+ {
+ if((strlen($value) > 1 &&
strpos($value,'0') === 0))
+ {
+ $value_entry[]=
"{$field}='{$value}'";
+ }
+ else
+ {
+ $value_entry[]=
"{$field}={$value}";
+ }
+ }
+ else
+ {
+ $value_entry[]=
"{$field}='{$value}'";
+ }
+ }
+ else
+ {
+ $value_entry[]= "{$field}=NULL";
+ }
+ }
+ return implode(',', $value_entry);
+ }
+
+
+ /**
+ * Get the correct date format for DATE field for a particular
RDBMS
+ *
+ * @internal the string is compatiable with PHP's date()
+ * @return string the date format string
+ */
+ public static function date_format()
+ {
+ static $date_format = null;
+ if ( is_null($date_format) )
+ {
+
switch($GLOBALS['phpgw_info']['server']['db_type'])
+ {
+ case 'mssql':
+ $date_format = 'M d
Y';
+ break;
+ case 'mysql':
+ case 'pgsql':
+ case 'postgres':
+ default:
+ $date_format =
'Y-m-d';
+ }
+ }
+ return $date_format;
+ }
+
+ /**
+ * Get the correct datetime format for DATETIME field for a
particular RDBMS
+ *
+ * @internal the string is compatiable with PHP's date()
+ * @return string the date format string
+ */
+ public static function datetime_format()
+ {
+ static $datetime_format = null;
+ if ( is_null($datetime_format) )
+ {
+
switch($GLOBALS['phpgw_info']['server']['db_type'])
+ {
+ case 'mssql':
+ $datetime_format
= 'M d Y g:iA';
+ break;
+ case 'mysql':
+ case 'pgsql':
+ case 'postgres':
+ default:
+ $datetime_format
= 'Y-m-d G:i:s';
+ }
+ }
+ return $datetime_format;
+ }
+
+ /**
+ * Get the correct datetime format for MONEY field for a
particular RDBMS
+ *
+ * @return string the formatted string
+ */
+ public static function money_format($amount)
+ {
+ if
($GLOBALS['phpgw_info']['server']['db_type']=='mssql')
+ {
+ return "CONVERT(MONEY,'{$amount}',0)";
+ }
+ else
+ {
+ return "'{$amount}'";
+ }
+ }
+
+ /**
+ * Finds the next ID for a record at a table
+ *
+ * @param string $table tablename in question
+ * @param array $key conditions
+ * @return int the next id
+ */
+ public function next_id($table='',$key='')
+ {
+ $where = '';
+ $condition = array();
+ if(is_array($key))
+ {
+ foreach ($key as $column => $value)
+ {
+ if($value)
+ {
+ $condition[] = $column . "='" .
$value;
+ }
+ }
+
+ if( $condition )
+ {
+ $where='WHERE ' . implode("' AND ",
$condition) . "'";
+ }
+ }
+
+ $this->query("SELECT max(id) as maximum FROM $table
$where",__LINE__,__FILE__);
+ $this->next_record();
+ $next_id = $this->f('maximum')+1;
+ return $next_id;
+ }
+
+ }
+
+ if( !class_exists("DB_Sql"))
+ {
+ class DB_Sql extends DB_OCI8
+ {
+ function DB_Sql($query = "")
+ {
+ $this->DB_OCI8($query);
+ }
+ }
+ }
Modified: people/sigurdne/modules/property/trunk/inc/class.sotts.inc.php
===================================================================
--- people/sigurdne/modules/property/trunk/inc/class.sotts.inc.php
2010-01-30 17:00:26 UTC (rev 21004)
+++ people/sigurdne/modules/property/trunk/inc/class.sotts.inc.php
2010-01-30 17:03:40 UTC (rev 21005)
@@ -447,7 +447,7 @@
$ticket['group_id'],
$this->db->db_addslashes($ticket['subject']),
$ticket['cat_id'],
- 'O',
+ $ticket['status'],
$this->db->db_addslashes($ticket['details']),
$ticket['location_code'],
$address,
Modified: people/sigurdne/modules/property/trunk/inc/class.uilookup.inc.php
===================================================================
--- people/sigurdne/modules/property/trunk/inc/class.uilookup.inc.php
2010-01-30 17:00:26 UTC (rev 21004)
+++ people/sigurdne/modules/property/trunk/inc/class.uilookup.inc.php
2010-01-30 17:03:40 UTC (rev 21005)
@@ -153,7 +153,7 @@
$datatable['config']['allow_allrows'] = true;
$datatable['config']['base_java_url'] =
"menuaction:'property.uilookup.addressbook',"
-
."second_display:'{true}',"
+
."second_display:true,"
."cat_id:'{$this->cat_id}',"
."query:'{$this->query}',"
."filter:'{$this->filter}',"
@@ -406,7 +406,7 @@
$datatable['config']['allow_allrows'] = true;
$datatable['config']['base_java_url'] =
"menuaction:'property.uilookup.vendor',"
-
."second_display:'{true}',"
+
."second_display:true,"
."cat_id:'{$this->cat_id}',"
."query:'{$this->query}',"
."filter:'{$this->filter}',"
@@ -632,7 +632,7 @@
$datatable['config']['allow_allrows'] = true;
$datatable['config']['base_java_url'] =
"menuaction:'property.uilookup.b_account',"
-
."second_display:'{true}',"
+
."second_display:true,"
."cat_id:'{$this->cat_id}',"
."query:'{$this->query}',"
."filter:'{$this->filter}'";
@@ -832,7 +832,7 @@
$datatable['config']['allow_allrows'] = true;
$datatable['config']['base_java_url'] =
"menuaction:'property.uilookup.street',"
-
."second_display:'{true}',"
+
."second_display:true,"
."cat_id:'{$this->cat_id}',"
."query:'{$this->query}',"
."filter:'{$this->filter}'";
@@ -1043,7 +1043,7 @@
$datatable['config']['allow_allrows'] = true;
$datatable['config']['base_java_url'] =
"menuaction:'property.uilookup.tenant',"
-
."second_display:'{true}',"
+
."second_display:true,"
."cat_id:'{$this->cat_id}',"
."query:'{$this->query}',"
."filter:'{$this->filter}'";
@@ -1244,7 +1244,7 @@
$datatable['config']['allow_allrows'] = true;
$datatable['config']['base_java_url'] =
"menuaction:'property.uilookup.ns3420',"
-
."second_display:'{true}',"
+
."second_display:true,"
."cat_id:'{$this->cat_id}',"
."query:'{$this->query}',"
."filter:'{$this->filter}'";
@@ -1758,7 +1758,7 @@
$datatable['config']['allow_allrows'] = true;
$datatable['config']['base_java_url'] =
"menuaction:'property.uilookup.phpgw_user',"
-
."second_display:'{true}',"
+
."second_display:true,"
."cat_id:'{$this->cat_id}',"
."query:'{$this->query}',"
."filter:'{$this->filter}',"
@@ -1980,7 +1980,7 @@
$datatable['config']['allow_allrows'] = true;
$datatable['config']['base_java_url'] =
"menuaction:'property.uilookup.project_group',"
-
."second_display:'{true}',"
+
."second_display:true,"
."cat_id:'{$this->cat_id}',"
."query:'{$this->query}',"
."filter:'{$this->filter}'";
@@ -2179,7 +2179,7 @@
$datatable['config']['allow_allrows'] = true;
$datatable['config']['base_java_url'] =
"menuaction:'property.uilookup.ecodimb',"
-
."second_display:'{true}',"
+
."second_display:true,"
."cat_id:'{$this->cat_id}',"
."query:'{$this->query}',"
."filter:'{$this->filter}'";
Modified: people/sigurdne/modules/property/trunk/inc/class.uitts.inc.php
===================================================================
--- people/sigurdne/modules/property/trunk/inc/class.uitts.inc.php
2010-01-30 17:00:26 UTC (rev 21004)
+++ people/sigurdne/modules/property/trunk/inc/class.uitts.inc.php
2010-01-30 17:03:40 UTC (rev 21005)
@@ -58,6 +58,8 @@
protected $_show_finnish_date = false;
var $part_of_town_id;
var $status;
+ var $filter;
+ var $user_filter;
public function __construct()
{
@@ -650,7 +652,7 @@
(
'bgcolor' =>
'#5EFB6E',
'status' =>
lang('closed'),
- 'text_edit_status' => lang('Open'),
+ 'text_edit_status' =>
isset($this->bo->config->config_data['tts_lang_open']) &&
$this->bo->config->config_data['tts_lang_open'] ?
$this->bo->config->config_data['tts_lang_open'] : lang('Open'),
'new_status' => 'O'
);
@@ -674,7 +676,7 @@
if($uicols['name'][$k] ==
'status' && $ticket[$uicols['name'][$k]]=='O')
{
$datatable['rows']['row'][$j]['column'][$k]['name'] =
$uicols['name'][$k];
-
$datatable['rows']['row'][$j]['column'][$k]['value'] = lang('Open');
+
$datatable['rows']['row'][$j]['column'][$k]['value'] =
isset($this->bo->config->config_data['tts_lang_open']) &&
$this->bo->config->config_data['tts_lang_open'] ?
$this->bo->config->config_data['tts_lang_open'] : lang('Open');
}
else if($uicols['name'][$k] ==
'status' && $ticket[$uicols['name'][$k]]=='C')
{
@@ -887,7 +889,7 @@
$json_row = array();
foreach( $row['column'] as $column)
{
- if(isset($column['format']) &&
$column['format']== "link" && $column['java_link']==true)
+ if(isset($column['format']) &&
$column['format']== "link" && isset($column['java_link']) &&
$column['java_link']==true)
{
$json_row[$column['name']] = "<a href='#' id='".$column['link']."'
onclick='javascript:filter_data(this.id);'>" .$column['value']."</a>";
}
@@ -1008,7 +1010,7 @@
{
if ($ticket['status']=='O')
{
- $status = lang('Open');
+ $status =
isset($this->bo->config->config_data['tts_lang_open']) &&
$this->bo->config->config_data['tts_lang_open'] ?
$this->bo->config->config_data['tts_lang_open'] : lang('Open');
}
else
{
@@ -1262,7 +1264,7 @@
'select_action'
=> $GLOBALS['phpgw']->link('/index.php',$link_data),
'filter_name'
=> 'filter',
'filter_list'
=> $this->bo->filter(array('format' => 'filter', 'filter'=>
$this->status_id,'default' => 'open')),
- 'lang_show_all'
=> lang('Open'),
+ 'lang_show_all'
=> isset($this->bo->config->config_data['tts_lang_open']) &&
$this->bo->config->config_data['tts_lang_open'] ?
$this->bo->config->config_data['tts_lang_open'] : lang('Open'),
'lang_filter_statustext' =>
lang('Select the filter. To show all entries select SHOW ALL'),
'lang_searchfield_statustext' => lang('Enter
the search string. To show all entries, empty this field and press the SUBMIT
button again'),
'lang_searchbutton_statustext' => lang('Submit
the search string'),
@@ -1554,6 +1556,8 @@
'select_priority_name' =>
'values[priority]',
'priority_list' =>
$this->bo->get_priority_list((isset($values['priority'])?$values['priority']:'')),
+ 'status_list' =>
$this->bo->get_status_list('O'),
+
'form_action' =>
$GLOBALS['phpgw']->link('/index.php',$link_data),
'lang_subject' =>
lang('Subject'),
'lang_subject_statustext' =>
lang('Enter the subject of this ticket'),
Modified: people/sigurdne/modules/property/trunk/setup/default_records.inc.php
===================================================================
--- people/sigurdne/modules/property/trunk/setup/default_records.inc.php
2010-01-30 17:00:26 UTC (rev 21004)
+++ people/sigurdne/modules/property/trunk/setup/default_records.inc.php
2010-01-30 17:03:40 UTC (rev 21005)
@@ -23,26 +23,6 @@
$GLOBALS['phpgw_setup']->oProc->next_record();
$app_id = $GLOBALS['phpgw_setup']->oProc->f('app_id');
-$GLOBALS['phpgw_setup']->oProc->query("SELECT location_id FROM phpgw_locations
WHERE app_id = {$app_id} AND name != 'run'");
-
-$locations = array();
-while ($GLOBALS['phpgw_setup']->oProc->next_record())
-{
- $locations[] = $GLOBALS['phpgw_setup']->oProc->f('location_id');
-}
-
-if(count($locations))
-{
- $GLOBALS['phpgw_setup']->oProc->query('DELETE FROM phpgw_cust_choice
WHERE location_id IN ('. implode (',',$locations) . ')');
- $GLOBALS['phpgw_setup']->oProc->query('DELETE FROM phpgw_cust_attribute
WHERE location_id IN ('. implode (',',$locations). ')');
- $GLOBALS['phpgw_setup']->oProc->query('DELETE FROM phpgw_acl WHERE
location_id IN ('. implode (',',$locations) . ')');
-}
-
-$GLOBALS['phpgw_setup']->oProc->query("DELETE FROM phpgw_locations WHERE
app_id = {$app_id} AND name != 'run'");
-
-
-unset($locations);
-
#
# phpgw_locations
#
Modified: people/sigurdne/modules/property/trunk/templates/base/tts.xsl
===================================================================
--- people/sigurdne/modules/property/trunk/templates/base/tts.xsl
2010-01-30 17:00:26 UTC (rev 21004)
+++ people/sigurdne/modules/property/trunk/templates/base/tts.xsl
2010-01-30 17:03:40 UTC (rev 21005)
@@ -388,7 +388,7 @@
<!-- add -->
- <xsl:template match="add">
+ <xsl:template match="add" xmlns:php="http://php.net/xsl">
<xsl:choose>
<xsl:when test="msgbox_data != ''">
<tr>
@@ -441,98 +441,96 @@
<xsl:choose>
<xsl:when test="simple !='1'">
- <tr>
- <td valign="top">
- <xsl:value-of select="lang_group"/>
- </td>
- <td>
- <xsl:call-template name="group_select"/>
- </td>
- </tr>
- <tr>
- <td valign="top">
- <xsl:value-of select="lang_assign_to"/>
- </td>
- <td>
- <xsl:call-template
name="user_id_select"/>
- </td>
- </tr>
- <xsl:call-template name="contact_form"/>
- <xsl:choose>
- <xsl:when test="mailnotification != ''">
<tr>
+ <td valign="top">
+ <xsl:value-of
select="lang_group"/>
+ </td>
<td>
- <xsl:value-of
select="lang_mailnotification"/>
+ <xsl:call-template
name="group_select"/>
</td>
+ </tr>
+ <tr>
+ <td valign="top">
+ <xsl:value-of
select="lang_assign_to"/>
+ </td>
<td>
- <xsl:choose>
-
<xsl:when test="pref_send_mail = 1">
-
<input type="checkbox" name="values[send_mail]" value="1" checked="checked"
onMouseout="window.status='';return true;">
-
<xsl:attribute name="onMouseover">
-
<xsl:text>window.status='</xsl:text>
-
<xsl:value-of
select="lang_mailnotification_statustext"/>
-
<xsl:text>'; return true;</xsl:text>
+ <xsl:call-template
name="user_id_select"/>
+ </td>
+ </tr>
+ <xsl:call-template
name="contact_form"/>
+ <xsl:choose>
+ <xsl:when
test="mailnotification != ''">
+ <tr>
+ <td>
+
<xsl:value-of select="lang_mailnotification"/>
+ </td>
+ <td>
+ <input
type="checkbox" name="values[send_mail]" value="1" >
+
<xsl:attribute name="title">
+
<xsl:value-of select="php:function('lang', 'Choose to send
mailnotification')" />
+
</xsl:attribute>
+
<xsl:if test="pref_send_mail = '1'">
+
<xsl:attribute name="checked">
+
<xsl:text>checked</xsl:text>
</xsl:attribute>
-
</input>
-
</xsl:when>
-
<xsl:otherwise>
-
<input type="checkbox" name="values[send_mail]" value="1"
onMouseout="window.status='';return true;">
-
<xsl:attribute name="onMouseover">
-
<xsl:text>window.status='</xsl:text>
-
<xsl:value-of
select="lang_mailnotification_statustext"/>
-
<xsl:text>'; return true;</xsl:text>
-
</xsl:attribute>
-
</input>
-
</xsl:otherwise>
- </xsl:choose>
+
</xsl:if>
+ </input>
+ </td>
+ </tr>
+ </xsl:when>
+ </xsl:choose>
+ <tr>
+ <td valign="top">
+ <xsl:value-of
select="lang_priority"/>
</td>
+ <td>
+ <xsl:variable
name="lang_priority_statustext"><xsl:value-of
select="lang_priority_statustext"/></xsl:variable>
+ <xsl:variable
name="select_priority_name"><xsl:value-of
select="select_priority_name"/></xsl:variable>
+ <select
name="{$select_priority_name}"
onMouseover="window.status='{$lang_priority_statustext}'; return true;"
onMouseout="window.status='';return true;">
+
<xsl:apply-templates select="priority_list"/>
+ </select>
+ </td>
</tr>
+ <tr>
+ <td valign="top">
+ <xsl:value-of
select="php:function('lang', 'status')" />
+ </td>
+ <td>
+ <select
name="values[status]" >
+ <xsl:attribute
name="title">
+
<xsl:value-of select="php:function('lang', 'Set the status of the ticket')" />
+ </xsl:attribute>
+
<xsl:apply-templates select="status_list"/>
+ </select>
+ </td>
+ </tr>
+ <xsl:choose>
+ <xsl:when
test="show_finnish_date ='1'">
+ <tr>
+ <td>
+
<xsl:value-of select="lang_finnish_date"/>
+ </td>
+ <td>
+ <input
type="text" id="values_finnish_date" name="values[finnish_date]" size="10"
value="{value_finnish_date}" readonly="readonly"
onMouseout="window.status='';return true;" >
+
<xsl:attribute name="title">
+
<xsl:value-of select="lang_finnish_date_statustext"/>
+
</xsl:attribute>
+ </input>
+ <img
id="values_finnish_date-trigger" src="{img_cal}" alt="{lang_datetitle}"
title="{lang_datetitle}" style="cursor:pointer; cursor:hand;" />
+ </td>
+ </tr>
+ </xsl:when>
+ </xsl:choose>
</xsl:when>
</xsl:choose>
-
-
<tr>
<td valign="top">
- <xsl:value-of select="lang_priority"/>
+ <xsl:value-of
select="php:function('lang', 'subject')" />
</td>
<td>
- <xsl:variable
name="lang_priority_statustext"><xsl:value-of
select="lang_priority_statustext"/></xsl:variable>
- <xsl:variable
name="select_priority_name"><xsl:value-of
select="select_priority_name"/></xsl:variable>
- <select name="{$select_priority_name}"
onMouseover="window.status='{$lang_priority_statustext}'; return true;"
onMouseout="window.status='';return true;">
- <xsl:apply-templates
select="priority_list"/>
- </select>
- </td>
- </tr>
- <xsl:choose>
- <xsl:when test="show_finnish_date ='1'">
- <tr>
- <td>
- <xsl:value-of
select="lang_finnish_date"/>
- </td>
- <td>
- <input type="text"
id="values_finnish_date" name="values[finnish_date]" size="10"
value="{value_finnish_date}" readonly="readonly"
onMouseout="window.status='';return true;" >
- <xsl:attribute name="title">
- <xsl:value-of
select="lang_finnish_date_statustext"/>
- </xsl:attribute>
- </input>
- <img id="values_finnish_date-trigger"
src="{img_cal}" alt="{lang_datetitle}" title="{lang_datetitle}"
style="cursor:pointer; cursor:hand;" />
- </td>
- </tr>
- </xsl:when>
- </xsl:choose>
-
- </xsl:when>
- </xsl:choose>
-
-
- <tr>
- <td valign="top">
- <xsl:value-of select="lang_subject"/>
- </td>
- <td>
<input type="text"
name="values[subject]" value="{value_subject}"
onMouseout="window.status='';return true;">
<xsl:attribute name="title">
- <xsl:value-of
select="lang_subject_statustext"/>
+ <xsl:value-of
select="lang_subject_statustext"/>
</xsl:attribute>
</input>
@@ -587,7 +585,7 @@
<td>
<input type="submit"
name="values[apply]" value="{lang_save}">
<xsl:attribute name="title">
- <xsl:value-of
select="lang_save_statustext"/>
+ <xsl:value-of
select="lang_save_statustext"/>
</xsl:attribute>
</input>
</td>
@@ -595,8 +593,8 @@
<input type="submit"
name="values[cancel]" value="{lang_cancel}">
<xsl:attribute name="title">
<xsl:value-of
select="lang_cancel_statustext"/>
- </xsl:attribute>
- </input>
+ </xsl:attribute>
+ </input>
</td>
</tr>
</table>
@@ -630,7 +628,7 @@
<td>
<input type="text"
name="values[extra][contact_phone]" value="{value_contact_phone}"
onMouseout="window.status='';return true;">
<xsl:attribute name="title">
- <xsl:value-of
select="lang_contact_phone_statustext"/>
+ <xsl:value-of
select="lang_contact_phone_statustext"/>
</xsl:attribute>
</input>
</td>
@@ -642,7 +640,7 @@
<td>
<input type="text"
name="values[extra][contact_email]" value="{value_contact_email}"
onMouseout="window.status='';return true;">
<xsl:attribute name="title">
- <xsl:value-of
select="lang_contact_email_statustext"/>
+ <xsl:value-of
select="lang_contact_email_statustext"/>
</xsl:attribute>
</input>
</td>
@@ -805,7 +803,7 @@
</xsl:for-each>
<xsl:choose>
<xsl:when test="lookup_type ='view'">
- <xsl:call-template name="location_view"/>
+ <xsl:call-template
name="location_view"/>
</xsl:when>
<xsl:otherwise>
<xsl:call-template
name="location_form"/>
@@ -920,18 +918,18 @@
</tr>
<xsl:choose>
<xsl:when test="lang_takeover != ''">
- <tr>
- <td valign="top">
+ <tr>
+ <td valign="top">
<xsl:value-of
select="lang_takeover"/>
- </td>
- <td>
+ </td>
+ <td>
<input type="checkbox"
name="values[takeover]" value="1">
<xsl:attribute
name="title">
<xsl:value-of select="php:function('lang', 'Take over the assignment for this
ticket')" />
</xsl:attribute>
</input>
- </td>
- </tr>
+ </td>
+ </tr>
</xsl:when>
</xsl:choose>
@@ -942,22 +940,16 @@
<xsl:value-of
select="php:function('lang', 'Send e-mail')" />
</td>
<td>
- <xsl:choose>
-
<xsl:when test="pref_send_mail = 1">
-
<input type="checkbox" name="values[send_mail]" value="1" checked="checked">
-
<xsl:attribute name="title">
-
<xsl:value-of select="php:function('lang', 'Choose to send
mailnotification')" />
-
</xsl:attribute>
-
</input>
-
</xsl:when>
-
<xsl:otherwise>
-
<input type="checkbox" name="values[send_mail]" value="1">
-
<xsl:attribute name="title">
-
<xsl:value-of select="php:function('lang', 'Choose to send
mailnotification')" />
-
</xsl:attribute>
-
</input>
-
</xsl:otherwise>
- </xsl:choose>
+ <input type="checkbox"
name="values[send_mail]" value="1" >
+ <xsl:attribute
name="title">
+
<xsl:value-of select="php:function('lang', 'Choose to send mailnotification')"
/>
+ </xsl:attribute>
+ <xsl:if
test="pref_send_mail = '1'">
+
<xsl:attribute name="checked">
+
<xsl:text>checked</xsl:text>
+
</xsl:attribute>
+ </xsl:if>
+ </input>
</td>
</tr>
</xsl:when>
@@ -977,20 +969,20 @@
</tr>
<xsl:choose>
<xsl:when test="value_order_id=''">
- <tr>
- <td valign="top">
+ <tr>
+ <td valign="top">
<xsl:value-of
select="php:function('lang', 'status')" />
- </td>
- <td>
- <xsl:variable name="status_name"><xsl:value-of
select="status_name"/></xsl:variable>
+ </td>
+ <td>
+ <xsl:variable
name="status_name"><xsl:value-of select="status_name"/></xsl:variable>
<select
name="{$status_name}" class="forms">
<xsl:attribute
name="title">
<xsl:value-of select="php:function('lang', 'Set the status of the ticket')" />
</xsl:attribute>
- <xsl:apply-templates
select="status_list"/>
- </select>
- </td>
- </tr>
+
<xsl:apply-templates select="status_list"/>
+ </select>
+ </td>
+ </tr>
</xsl:when>
</xsl:choose>
<tr>
@@ -1003,19 +995,19 @@
</tr>
<xsl:choose>
<xsl:when test="show_finnish_date ='1'">
- <tr>
- <td>
+ <tr>
+ <td>
<xsl:value-of
select="php:function('lang', 'finnish date')" />
- </td>
- <td>
- <input type="text"
id="values_finnish_date" name="values[finnish_date]" size="10"
value="{value_finnish_date}" readonly="readonly"
onMouseout="window.status='';return true;" >
- <xsl:attribute name="title">
+ </td>
+ <td>
+ <input type="text"
id="values_finnish_date" name="values[finnish_date]" size="10"
value="{value_finnish_date}" readonly="readonly"
onMouseout="window.status='';return true;" >
+ <xsl:attribute
name="title">
<xsl:value-of
select="php:function('lang', 'select the estimated date for closing the task')"
/>
- </xsl:attribute>
- </input>
- <img id="values_finnish_date-trigger"
src="{img_cal}" alt="{lang_datetitle}" title="{lang_datetitle}"
style="cursor:pointer; cursor:hand;" />
- </td>
- </tr>
+ </xsl:attribute>
+ </input>
+ <img
id="values_finnish_date-trigger" src="{img_cal}" alt="{lang_datetitle}"
title="{lang_datetitle}" style="cursor:pointer; cursor:hand;" />
+ </td>
+ </tr>
</xsl:when>
</xsl:choose>
@@ -1097,6 +1089,7 @@
<xsl:call-template
name="vendor_form"/>
<xsl:call-template
name="ecodimb_form"/>
<xsl:call-template
name="b_account_form"/>
+<!--
<tr>
<td>
<xsl:value-of
select="php:function('lang', 'order category')" />
@@ -1111,7 +1104,7 @@
</select>
</td>
</tr>
-
+-->
<tr>
<td valign="top">
<xsl:value-of
select="php:function('lang', 'cost estimate')" />
@@ -1320,7 +1313,7 @@
<xsl:variable
name="name"><xsl:value-of select="name"/></xsl:variable>
<input type="submit"
name="location" value="{$name}" onMouseout="window.status='';return true;">
<xsl:attribute
name="title">
-
<xsl:value-of select="lang_start_statustext"/>
+
<xsl:value-of select="lang_start_statustext"/>
</xsl:attribute>
</input>
</form>
@@ -1729,29 +1722,24 @@
<xsl:template match="priority_list">
- <xsl:variable name="id"><xsl:value-of select="id"/></xsl:variable>
- <xsl:choose>
- <xsl:when test="selected">
- <option value="{$id}"
selected="selected"><xsl:value-of disable-output-escaping="yes"
select="name"/></option>
- </xsl:when>
- <xsl:otherwise>
- <option value="{$id}"><xsl:value-of
disable-output-escaping="yes" select="name"/></option>
- </xsl:otherwise>
- </xsl:choose>
+ <option value="{id}">
+ <xsl:if test="selected != 0">
+ <xsl:attribute name="selected" value="selected"
/>
+ </xsl:if>
+ <xsl:value-of disable-output-escaping="yes"
select="name"/>
+ </option>
</xsl:template>
<xsl:template match="status_list">
- <xsl:variable name="id"><xsl:value-of select="id"/></xsl:variable>
- <xsl:choose>
- <xsl:when test="selected">
- <option value="{$id}"
selected="selected"><xsl:value-of disable-output-escaping="yes"
select="name"/></option>
- </xsl:when>
- <xsl:otherwise>
- <option value="{$id}"><xsl:value-of
disable-output-escaping="yes" select="name"/></option>
- </xsl:otherwise>
- </xsl:choose>
+ <option value="{id}">
+ <xsl:if test="selected != 0">
+ <xsl:attribute name="selected" value="selected"
/>
+ </xsl:if>
+ <xsl:value-of disable-output-escaping="yes"
select="name"/>
+ </option>
</xsl:template>
+
<xsl:template match="vendor_email">
<xsl:variable name="email"><xsl:value-of select="email"/></xsl:variable>
<xsl:choose>
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Phpgroupware-cvs] [21005] Improvement: local oci8-support for testing, filter on location lookup and some new fields in helpdesk 4565:4680,
Sigurd Nes <=