- added percent, (date-)completed and location for better iCal / SyncML conformance
- remove a lot not needed images
@ -181,23 +181,26 @@ function cat_id($cats)
|
||||
|
||||
$info_names = array(
|
||||
'type' => 'Type: char(10) task,phone,note,confirm,reject,email,fax',
|
||||
'from' => 'From: text(64) free text if no Addressbook-entry assigned',
|
||||
'addr' => 'Addr: text(64) phone-nr/email-address',
|
||||
'subject' => 'Subject: text(64)',
|
||||
'from' => 'From: text(255) free text if no Addressbook-entry assigned',
|
||||
'addr' => 'Addr: text(255) phone-nr/email-address',
|
||||
'subject' => 'Subject: text(255)',
|
||||
'des' => 'Description: text long free text',
|
||||
'location' => 'Location: text(255)',
|
||||
'responsible' => 'Responsible: int(11) user-id or user-name',
|
||||
'owner' => 'Owner: int(11) user-id/-name of owner, if empty current user',
|
||||
'access' => 'Access: public,private',
|
||||
'cat' => 'Category: int(11) category-id or -name (new ones got created)',
|
||||
'startdate' => 'Start Date: DateTime: Timestamp or eg. YYYY-MM-DD hh:mm',
|
||||
'enddate' => 'End Date: DateTime',
|
||||
'datecompleted'=> 'Date completed: DateTime',
|
||||
'datemodified'=> 'Date Last Modified: DateTime, if empty = Date Created',
|
||||
'modifier' => 'Modifier: int(11) user-id, if empty current user',
|
||||
'priority' => 'Priority: 3=urgent, 2=high, 1=normal, 0=low',
|
||||
'planned_time'=> 'planned Time: int(11) time used in min',
|
||||
'used_time' => 'used Time: int(11) time used in min',
|
||||
'status' => 'Status: char(10) offer,ongoing,call,will-call,done,billed,xx%',
|
||||
'confirm' => 'Confirmation: char(10) not,accept,finish,both when to confirm',
|
||||
'status' => 'Status: char(10) offer,not-started,ongoing,call,will-call,done,billed,cancelled',
|
||||
'percent' => 'Percent completed: int',
|
||||
// 'confirm' => 'Confirmation: char(10) not,accept,finish,both when to confirm',
|
||||
'addr_id' => 'Addressbook id, to set use @addr_id(nlast,nfirst,org)'
|
||||
);
|
||||
|
||||
@ -427,7 +430,7 @@ function cat_id($cats)
|
||||
}
|
||||
|
||||
// convert dates to timestamps
|
||||
foreach(array('startdate','enddate','datemodified') as $date)
|
||||
foreach(array('startdate','enddate','datemodified','datecompleted') as $date)
|
||||
{
|
||||
if (isset($values[$date]) && !is_numeric($date))
|
||||
{
|
||||
@ -479,5 +482,3 @@ function cat_id($cats)
|
||||
$GLOBALS['egw']->template->set_var('hiddenvars',str_replace('{','{',$hiddenvars));
|
||||
$GLOBALS['egw']->template->pfp('phpgw_body','import');
|
||||
$GLOBALS['egw']->common->egw_footer();
|
||||
|
||||
?>
|
||||
|
@ -58,13 +58,17 @@
|
||||
);
|
||||
var $xmlrpc = False; // called via xmlrpc
|
||||
|
||||
var $tz_offset = 0;
|
||||
/**
|
||||
* @var int $tz_offset_s offset in secconds between user and server-time,
|
||||
* it need to be add to a server-time to get the user-time or substracted from a user-time to get the server-time
|
||||
*/
|
||||
var $tz_offset = 0;
|
||||
var $tz_offset_s = 0;
|
||||
var $user_time_now;
|
||||
/**
|
||||
* @var array $timestamps name of timestamps in an InfoLog entry
|
||||
*/
|
||||
var $timestamps = array('info_startdate','info_enddate','info_datemodified','info_datecompleted');
|
||||
/**
|
||||
* @var array $config infolog configuration
|
||||
*/
|
||||
@ -101,15 +105,20 @@
|
||||
'defaults' => array(
|
||||
'task' => 'ongoing', 'phone' => 'call', 'note' => 'done'),
|
||||
'task' => array(
|
||||
'offer' => 'offer','ongoing' => 'ongoing','done' => 'done',
|
||||
'0%' => '0%', '10%' => '10%', '20%' => '20%', '30%' => '30%', '40%' => '40%',
|
||||
'50%' => '50%', '60%' => '60%', '70%' => '70%', '80%' => '80%', '90%' => '90%',
|
||||
'billed' => 'billed' ),
|
||||
'offer' => 'offer', // --> NEEDS-ACTION
|
||||
'not-started' => 'not-started', // iCal NEEDS-ACTION
|
||||
'ongoing' => 'ongoing', // iCal IN-PROCESS
|
||||
'done' => 'done', // iCal COMPLETED
|
||||
'cancelled' => 'cancelled', // iCal CANCELLED
|
||||
'billed' => 'billed' ), // --> DONE
|
||||
'phone' => array(
|
||||
'call' => 'call','will-call' => 'will-call',
|
||||
'done' => 'done', 'billed' => 'billed' ),
|
||||
'call' => 'call', // --> NEEDS-ACTION
|
||||
'will-call' => 'will-call', // --> IN-PROCESS
|
||||
'done' => 'done', // iCal COMPLETED
|
||||
'billed' => 'billed' ), // --> DONE
|
||||
'note' => array(
|
||||
'ongoing' => 'ongoing', 'done' => 'done'
|
||||
'ongoing' => 'ongoing', // iCal has no status on notes
|
||||
'done' => 'done'
|
||||
));
|
||||
|
||||
$this->so =& new soinfolog();
|
||||
@ -120,7 +129,7 @@
|
||||
}
|
||||
$this->link =& $GLOBALS['egw']->link;
|
||||
|
||||
$this->config =& CreateObject('phpgwapi.config');
|
||||
$this->config =& CreateObject('phpgwapi.config','infolog');
|
||||
$this->config->read_repository();
|
||||
|
||||
$this->customfields = array();
|
||||
@ -310,7 +319,7 @@
|
||||
if ($run_link_id2from) $this->link_id2from($data);
|
||||
|
||||
// convert system- to user-time
|
||||
foreach(array('info_startdate','info_enddate','info_datemodified') as $time)
|
||||
foreach($this->timestamps as $time)
|
||||
{
|
||||
if ($data[$time]) $data[$time] += $this->tz_offset_s;
|
||||
}
|
||||
@ -416,32 +425,43 @@
|
||||
}
|
||||
if ($status_only) // make sure only status gets writen
|
||||
{
|
||||
$set_enddate = !$values['info_enddate'] && // set enddate of finished job, only if its not already set
|
||||
($values['info_status'] == 'done' || $values['info_status'] == 'billed');
|
||||
$set_completed = !$values['info_datecompleted'] && // set date completed of finished job, only if its not already set
|
||||
(in_array($values['info_status'],array('done','billed','cancelled')) || (int)$values['info_percent'] == 100);
|
||||
|
||||
$backup_values = $values; // to return the full values
|
||||
$values = array(
|
||||
'info_id' => $values['info_id'],
|
||||
'info_status' => $values['info_status'],
|
||||
'info_percent' => $values['info_percent'],
|
||||
'info_owner' => $values['info_owner'],
|
||||
'info_datemodified' => $values['info_datemodified'],
|
||||
);
|
||||
if ($set_enddate)
|
||||
if ($set_completed)
|
||||
{
|
||||
$values['info_enddate'] = $this->user_time_now;
|
||||
$values['info_datecompleted'] = $this->user_time_now;
|
||||
$values['info_percent'] = '100%';
|
||||
if (!in_array($values['info_status'],array('done','billed','cancelled'))) $values['info_status'] = 'done';
|
||||
}
|
||||
$check_defaults = False;
|
||||
}
|
||||
if ($check_defaults)
|
||||
{
|
||||
if (!$values['info_enddate'] &&
|
||||
($values['info_status'] == 'done' || $values['info_status'] == 'billed'))
|
||||
if (!$values['info_datecompleted'] &&
|
||||
(in_array($values['info_status'],array('done','billed')) || (int)$values['info_percent'] == 100))
|
||||
{
|
||||
$values['info_enddate'] = $this->user_time_now; // set enddate to today if status == done
|
||||
$values['info_datecompleted'] = $this->user_time_now; // set date completed to today if status == done
|
||||
}
|
||||
if (in_array($values['info_status'],array('done','billed')))
|
||||
{
|
||||
$values['info_percent'] == '100%';
|
||||
}
|
||||
if ((int)$values['info_percent'] == 100 && !in_array($values['info_status'],array('done','billed','cancelled')))
|
||||
{
|
||||
$values['info_status'] = 'done';
|
||||
}
|
||||
if (count($values['info_responsible']) && $values['info_status'] == 'offer')
|
||||
{
|
||||
$values['info_status'] = 'ongoing'; // have to match if not finished
|
||||
$values['info_status'] = 'not-started'; // have to match if not finished
|
||||
}
|
||||
if (isset($values['info_subject']) && empty($values['info_subject']))
|
||||
{
|
||||
@ -471,7 +491,7 @@
|
||||
$to_write = $values;
|
||||
if ($status_only) $values = array_merge($backup_values,$values);
|
||||
// convert user- to system-time
|
||||
foreach(array('info_startdate','info_enddate','info_datemodified') as $time)
|
||||
foreach($this->timestamps as $time)
|
||||
{
|
||||
if ($to_write[$time]) $to_write[$time] -= $this->tz_offset_s;
|
||||
}
|
||||
@ -541,7 +561,7 @@
|
||||
{
|
||||
foreach($ret as $id => $data)
|
||||
{
|
||||
foreach(array('info_startdate','info_enddate','info_datemodified') as $time)
|
||||
foreach($this->timestamps as $time)
|
||||
{
|
||||
if ($data[$time]) $ret[$id][$time] += $this->tz_offset_s;
|
||||
}
|
||||
@ -549,7 +569,8 @@
|
||||
}
|
||||
if ($this->xmlrpc && is_array($ret))
|
||||
{
|
||||
$infos = $ret;
|
||||
$infos =& $ret;
|
||||
unset($ret);
|
||||
$ret = array();
|
||||
foreach($infos as $id => $data)
|
||||
{
|
||||
@ -782,13 +803,15 @@
|
||||
|
||||
// translate timestamps
|
||||
if($data['info_enddate'] == 0) unset($data['info_enddate']);
|
||||
foreach(array('info_startdate','info_enddate','info_datemodified') as $name)
|
||||
foreach($this->timestamps as $name)
|
||||
{
|
||||
if (isset($data[$name]))
|
||||
{
|
||||
$data[$name] = $GLOBALS['server']->date2iso8601($data[$name]);
|
||||
}
|
||||
}
|
||||
$ret[$id]['info_percent'] = (int)$data['info_percent'].'%';
|
||||
|
||||
// translate cat_id
|
||||
if (isset($data['info_cat']))
|
||||
{
|
||||
@ -830,7 +853,7 @@
|
||||
}
|
||||
}
|
||||
// translate timestamps
|
||||
foreach(array('info_startdate','info_enddate','info_datemodified') as $name)
|
||||
foreach($this->timestamps as $name)
|
||||
{
|
||||
if (isset($data[$name]))
|
||||
{
|
||||
|
@ -38,7 +38,7 @@ class datasource_infolog extends datasource
|
||||
{
|
||||
$this->datasource('infolog');
|
||||
|
||||
$this->valid = PM_COMPLETION|PM_REAL_START|PM_REAL_END|PM_PLANNED_TIME|PM_USED_TIME|PM_RESOURCES;
|
||||
$this->valid = PM_COMPLETION|PM_PLANNED_START|PM_PLANNED_END|PM_REAL_END|PM_PLANNED_TIME|PM_USED_TIME|PM_RESOURCES;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -67,9 +67,10 @@ class datasource_infolog extends datasource
|
||||
}
|
||||
return array(
|
||||
'pe_title' => $GLOBALS['boinfolog']->link_title($data),
|
||||
'pe_completion' => $this->status2completion($data['info_status']).'%',
|
||||
'pe_real_start' => $data['info_startdate'] ? $data['info_startdate'] : null,
|
||||
'pe_real_end' => $data['info_enddate'] ? $data['info_enddate'] : null,
|
||||
'pe_completion' => $data['info_percent'],
|
||||
'pe_planned_start'=> $data['info_startdate'] ? $data['info_startdate'] : null,
|
||||
'pe_planned_end' => $data['info_enddate'] ? $data['info_enddate'] : null,
|
||||
'pe_real_end' => $data['info_datecompleted'] ? $data['info_datecompleted'] : null,
|
||||
'pe_planned_time' => $data['info_planned_time'],
|
||||
'pe_used_time' => $data['info_used_time'],
|
||||
'pe_resources' => count($data['info_responsible']) ? $data['info_responsible'] : array($data['info_owner']),
|
||||
@ -83,33 +84,6 @@ class datasource_infolog extends datasource
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* converts InfoLog status into a percentage completion
|
||||
*
|
||||
* percentages are just used, done&billed give 100, ongoing&will-call give 50, rest (incl. all custome status) give 0
|
||||
*
|
||||
* @param string $status
|
||||
* @return int completion in percent
|
||||
*/
|
||||
function status2completion($status)
|
||||
{
|
||||
if ((int) $status || substr($status,-1) == '%') return (int) $status; // allready a percentage
|
||||
|
||||
switch ($status)
|
||||
{
|
||||
case 'done':
|
||||
case 'billed':
|
||||
return 100;
|
||||
|
||||
case 'will-call':
|
||||
return 50;
|
||||
|
||||
case 'ongoing':
|
||||
return 10;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Copy the datasource of a projectelement (InfoLog entry) and re-link it with project $target
|
||||
*
|
||||
|
@ -183,8 +183,8 @@
|
||||
|
||||
switch ($filter)
|
||||
{
|
||||
case 'done': return " AND info_status IN ('done','billed')";
|
||||
case 'open': return " AND NOT (info_status IN ('done','billed'))";
|
||||
case 'done': return " AND info_status IN ('done','billed','cancelled')";
|
||||
case 'open': return " AND NOT (info_status IN ('done','billed','cancelled'))";
|
||||
case 'offer': return " AND info_status = 'offer'";
|
||||
}
|
||||
return '';
|
||||
@ -229,7 +229,7 @@
|
||||
}
|
||||
return " AND ($today <= info_startdate AND info_startdate < $tomorrow)";
|
||||
case 'limit':
|
||||
return " AND (info_modified >= '$today' OR NOT (info_status IN ('done','billed')))";
|
||||
return " AND (info_modified >= '$today' OR NOT (info_status IN ('done','billed','cancelled')))";
|
||||
}
|
||||
return '';
|
||||
}
|
||||
|
@ -125,6 +125,7 @@
|
||||
}
|
||||
if (!isset($info['info_anz_subs'])) $info['info_anz_subs'] = $this->bo->anzSubs($id);
|
||||
$this->bo->link_id2from($info,$action,$action_id); // unset from for $action:$action_id
|
||||
$info['info_percent'] = (int) $info['info_percent'].'%';
|
||||
|
||||
$readonlys["edit[$id]"] = !$this->bo->check_access($info,EGW_ACL_EDIT);
|
||||
$readonlys["close[$id]"] = $done || ($readonlys["edit_status[$id]"] = !($this->bo->check_access($info,EGW_ACL_EDIT) ||
|
||||
@ -336,6 +337,7 @@
|
||||
break;
|
||||
}
|
||||
$values['main'][1] = $this->get_info($action_id,$readonlys['main']);
|
||||
$values['main']['no_times'] = !$this->prefs['show_times'];
|
||||
break;
|
||||
}
|
||||
$readonlys['cancel'] = $action != 'sp';
|
||||
@ -628,9 +630,12 @@
|
||||
{
|
||||
$content['info_cat'] = (int) $_REQUEST['cat_id'];
|
||||
}
|
||||
$now = time() + 3600*$GLOBALS['egw_info']['user']['preferences']['common']['tz_offset']; // time() is server-time and we need a user-time
|
||||
$today = mktime(0,0,0,date('m',$now),date('d',$now),date('Y',$now)); // time=00:00
|
||||
|
||||
switch($this->prefs['set_start'])
|
||||
{
|
||||
case 'date': default: $set_startdate = mktime(0,0,0,date('m',$this->bo->user_time_now),date('d',$this->bo->user_time_now),date('Y',$this->bo->user_time_now)); break;
|
||||
case 'datetime': $set_startdate = $this->bo->user_time_now; break;
|
||||
case 'empty': $set_startdate = 0; break;
|
||||
}
|
||||
if (intval($content['info_link_id']) > 0 && !$this->link->get_link($content['info_link_id']))
|
||||
{
|
||||
$content['info_link_id'] = 0; // link has been deleted
|
||||
@ -655,13 +660,14 @@
|
||||
*/
|
||||
$content['info_type'] = $parent['info_type'];
|
||||
$content['info_status'] = $this->bo->status['defaults'][$content['info_type']];
|
||||
$content['info_percent'] = '0%';
|
||||
$content['info_confirm'] = 'not';
|
||||
$content['info_subject']=lang($this->messages['re']).' '.$parent['info_subject'];
|
||||
$content['info_des'] = '';
|
||||
$content['info_lastmodified'] = '';
|
||||
if ($content['info_startdate'] < $this->bo->user_time_now) // parent-startdate is in the past => today
|
||||
{
|
||||
$content['info_startdate'] = $today;
|
||||
$content['info_startdate'] = $set_startdate;
|
||||
}
|
||||
if ($content['info_enddate'] < $this->bo->user_time_now) // parent-enddate is in the past => empty
|
||||
{
|
||||
@ -738,7 +744,7 @@
|
||||
break; // normal edit
|
||||
}
|
||||
case 'new': // new entry
|
||||
$content['info_startdate'] = (int) $_GET['startdate'] ? (int) $_GET['startdate'] : $today;
|
||||
$content['info_startdate'] = (int) $_GET['startdate'] ? (int) $_GET['startdate'] : $set_startdate;
|
||||
$content['info_priority'] = 1; // normal
|
||||
$content['info_owner'] = $this->user;
|
||||
if ($type != '')
|
||||
@ -746,6 +752,7 @@
|
||||
$content['info_type'] = $type;
|
||||
}
|
||||
$content['info_status'] = $this->bo->status['defaults'][$content['info_type']];
|
||||
$content['info_percent'] = '0%';
|
||||
break;
|
||||
}
|
||||
if (!isset($this->bo->enums['type'][$content['info_type']]))
|
||||
|
@ -11,11 +11,27 @@
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
require_once PHPGW_SERVER_ROOT.'/infolog/inc/class.boinfolog.inc.php';
|
||||
require_once PHPGW_SERVER_ROOT.'/phpgwapi/inc/horde/Horde/iCalendar.php';
|
||||
require_once EGW_SERVER_ROOT.'/infolog/inc/class.boinfolog.inc.php';
|
||||
require_once EGW_SERVER_ROOT.'/phpgwapi/inc/horde/Horde/iCalendar.php';
|
||||
|
||||
class vcalinfolog extends boinfolog
|
||||
{
|
||||
var $status2vtodo = array(
|
||||
'offer' => 'NEEDS-ACTION',
|
||||
'not-started' => 'NEEDS-ACTION',
|
||||
'ongoing' => 'IN-PROCESS',
|
||||
'done' => 'COMPLETED',
|
||||
'cancelled' => 'CANCELLED',
|
||||
'billed' => 'DONE',
|
||||
'call' => 'NEEDS-ACTION',
|
||||
'will-call' => 'IN-PROCESS',
|
||||
);
|
||||
var $vtodo2status = array(
|
||||
'NEEDS-ACTION' => 'not-started',
|
||||
'IN-PROCESS' => 'ongoing',
|
||||
'COMPLETED' => 'done',
|
||||
'CANCELLED' => 'cancelled',
|
||||
);
|
||||
function exportVTODO($_taskID, $_version)
|
||||
{
|
||||
$taskData = $this->read($_taskID);
|
||||
@ -39,16 +55,20 @@
|
||||
|
||||
$vevent->setAttribute('SUMMARY',$taskData['info_subject']);
|
||||
$vevent->setAttribute('DESCRIPTION',$taskData['info_des']);
|
||||
$vevent->setAttribute('LOCATION',$taskData['info_location']);
|
||||
if($taskData['info_startdate'])
|
||||
$vevent->setAttribute('DTSTART',$taskData['info_startdate']);
|
||||
if($taskData['info_enddate'])
|
||||
$vevent->setAttribute('DUE',$taskData['info_enddate']);
|
||||
if($taskData['info_datecompleted'])
|
||||
$vevent->setAttribute('COMPLETED',$taskData['info_datecompleted']);
|
||||
$vevent->setAttribute('DTSTAMP',time());
|
||||
$vevent->setAttribute('CREATED',$GLOBALS['phpgw']->contenthistory->getTSforAction($eventGUID,'add'));
|
||||
$vevent->setAttribute('LAST-MODIFIED',$GLOBALS['phpgw']->contenthistory->getTSforAction($eventGUID,'modify'));
|
||||
$vevent->setAttribute('UID',$taskGUID);
|
||||
$vevent->setAttribute('CLASS',(($taskData['info_access'] == 'public')?'PUBLIC':'PRIVATE'));
|
||||
$vevent->setAttribute('STATUS',(($taskData['info_status'] == 'completed')?'COMPLETED':'NEEDS-ACTION'));
|
||||
$vevent->setAttribute('CLASS',$taskData['info_access'] == 'public' ? 'PUBLIC' : 'PRIVATE');
|
||||
$vevent->setAttribute('STATUS',isset($this->status2vtodo[$taskData['info_status']]) ?
|
||||
$this->status2vtodo[$taskData['info_status']] : 'NEEDS-ACTION');
|
||||
// 3=urgent => 1, 2=high => 2, 1=normal => 3, 0=low => 4
|
||||
$vevent->setAttribute('PRIORITY',4-$taskData['info_priority']);
|
||||
|
||||
@ -71,8 +91,6 @@
|
||||
|
||||
function importVTODO(&$_vcalData, $_taskID=-1)
|
||||
{
|
||||
$botranslation = CreateObject('phpgwapi.translation');
|
||||
|
||||
$vcal = &new Horde_iCalendar;
|
||||
if(!$vcal->parsevCalendar($_vcalData))
|
||||
{
|
||||
@ -86,11 +104,10 @@
|
||||
{
|
||||
if($_taskID>0)
|
||||
$taskData['info_id'] = $_taskID;
|
||||
|
||||
|
||||
foreach($component->_attributes as $attributes)
|
||||
{
|
||||
#print $attributes['name'].' - '.$attributes['value'].'<br>';
|
||||
#$attributes['value'] = $GLOBALS['egw']->translation->convert($attributes['value'],'UTF-8');
|
||||
switch($attributes['name'])
|
||||
{
|
||||
case 'CLASS':
|
||||
@ -99,9 +116,15 @@
|
||||
case 'DESCRIPTION':
|
||||
$taskData['info_des'] = $attributes['value'];
|
||||
break;
|
||||
case 'LOCATION':
|
||||
$taskData['info_location'] = $attributes['value'];
|
||||
break;
|
||||
case 'DUE':
|
||||
$taskData['info_enddate'] = $attributes['value'];
|
||||
break;
|
||||
case 'COMPLETED':
|
||||
$taskData['info_datecompleted'] = $attributes['value'];
|
||||
break;
|
||||
case 'DTSTART':
|
||||
$taskData['info_startdate'] = $attributes['value'];
|
||||
break;
|
||||
@ -117,21 +140,20 @@
|
||||
}
|
||||
break;
|
||||
case 'STATUS':
|
||||
$taskData['info_status'] = (strtolower($attributes['value']) == 'completed') ? 'done' : 'ongoing';
|
||||
$taskData['info_status'] = isset($this->vtodo2status[strtoupper($attributes['value'])]) ?
|
||||
$this->vtodo2status[strtoupper($attributes['value'])] : 'ongoing';
|
||||
break;
|
||||
case 'SUMMARY':
|
||||
$taskData['info_subject'] = $attributes['value'];
|
||||
break;
|
||||
}
|
||||
}
|
||||
$taskData = $GLOBALS['egw']->translation->convert($taskData,'UTF-8');
|
||||
|
||||
#_debug_array($eventData);exit;
|
||||
return $this->write($taskData);
|
||||
}
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
?>
|
||||
|
@ -71,15 +71,6 @@
|
||||
'xmlrpc' => True,
|
||||
'admin' => False
|
||||
),
|
||||
/* 'longNames' => array(
|
||||
'type' => 'check',
|
||||
'label' => 'Show full usernames',
|
||||
'name' => 'longNames',
|
||||
'help' => 'Should InfoLog use full names (surname and familyname) or just the loginnames.',
|
||||
'xmlrpc' => True,
|
||||
'admin' => False
|
||||
),
|
||||
*/
|
||||
'show_links' => array(
|
||||
'type' => 'select',
|
||||
'label' => 'Show in the InfoLog list',
|
||||
@ -105,6 +96,19 @@
|
||||
'xmlrpc' => True,
|
||||
'admin' => False
|
||||
),
|
||||
'set_start' => array(
|
||||
'type' => 'select',
|
||||
'label' => 'Startdate for new entries',
|
||||
'name' => 'set_start',
|
||||
'values' => array(
|
||||
'date' => lang('todays date'),
|
||||
'datetime' => lang('actual date and time'),
|
||||
'empty' => lang('leave it empty'),
|
||||
),
|
||||
'help' => 'To what should the startdate of new entries be set.',
|
||||
'xmlrpc' => True,
|
||||
'admin' => False
|
||||
),
|
||||
);
|
||||
|
||||
unset($show_entries);
|
||||
|
@ -3,6 +3,7 @@
|
||||
- subprojects from infolog de - Untereinträge von
|
||||
0% infolog de 0%
|
||||
10% infolog de 10%
|
||||
100% infolog de 100%
|
||||
20% infolog de 20%
|
||||
30% infolog de 30%
|
||||
40% infolog de 40%
|
||||
@ -16,6 +17,7 @@ a short subject for the entry infolog de einen kurzen Titel f
|
||||
abort without deleting infolog de Abruch ohne zu Löschen
|
||||
accept infolog de bei Annahme
|
||||
action infolog de Befehle
|
||||
actual date and time infolog de aktuelles Datum und Uhrzeit
|
||||
add infolog de Hinzufügen
|
||||
add a file infolog de Datei anhängen
|
||||
add a new entry infolog de einen neuen Eintrag anlegen
|
||||
@ -38,6 +40,7 @@ billed infolog de abgerechnet
|
||||
both infolog de Annahme+erledigt
|
||||
call infolog de anrufen
|
||||
cancel infolog de Abbruch
|
||||
cancelled infolog de Abgesagt
|
||||
categories infolog de Kategorien
|
||||
category infolog de Kategorie
|
||||
change the status of an entry, eg. close it infolog de Status eines Eintrags ändern, zB. ihn als erledigt markieren
|
||||
@ -47,6 +50,7 @@ click here to create the link infolog de hier klicken um die Verkn
|
||||
click here to start the search infolog de hier klicken um die Suche zu starten
|
||||
close infolog de Schließen
|
||||
comment infolog de Kommentar
|
||||
completed infolog de Erledigt
|
||||
configuration infolog de Konfiguration
|
||||
confirm infolog de Bestätigung
|
||||
contact infolog de Kontakt
|
||||
@ -67,6 +71,8 @@ custom fields, typ and status common de Benutzerdefinierte Felder, Typen und Sta
|
||||
custom regarding infolog de Benutzerdefinierter Bezug
|
||||
custom status for typ infolog de Benutzerdefinierter Status für Typ
|
||||
customfields infolog de Benutzerdefinierte Felder
|
||||
date completed infolog de Erledigt am
|
||||
date completed (leave it empty to have it automatic set if status is done or billed) infolog de Fertigstellungsdatum (leer lassen um es automatisch zu setzen wenn der Status erledigt oder abgerechnet ist)
|
||||
datecreated infolog de Erstellt am
|
||||
dates, status, access infolog de Daten, Status, Zugriff
|
||||
days infolog de Tage
|
||||
@ -110,6 +116,7 @@ fieldseparator infolog de Feldbegrenzer
|
||||
finish infolog de wenn erledigt
|
||||
for which types should this field be used infolog de für welche Typen soll dieses Feld benutzt werden
|
||||
from infolog de Von
|
||||
general infolog de Allgemein
|
||||
high infolog de hoch
|
||||
id infolog de Id
|
||||
if not set, the line with search and filters is hidden for less entries then "max matches per page" (as defined in your common preferences). infolog de Falls nicht gesetzt, wird die Suche und die Filter ausgeblendet für weniger Einträge als "maximale Treffer pro Seite" (in ihren allg. Einstellungen definiert).
|
||||
@ -132,14 +139,16 @@ invalid filename infolog de Ung
|
||||
label<br>helptext infolog de Beschriftung<br>Hilfetext
|
||||
last changed infolog de letzte Änderung
|
||||
last modified infolog de zuletzt geändert
|
||||
leave it empty infolog de leer lassen
|
||||
leave without saveing the entry infolog de Abbruch ohne den Eintrag zu speichern
|
||||
leaves without saveing infolog de Abbroch ohne speichern
|
||||
length<br>rows infolog de Länge<br>Zeilen
|
||||
length<br>rows infolog de Länge<br />Zeilen
|
||||
link infolog de Verknüpfung
|
||||
links infolog de Verknüpfungen
|
||||
links of this entry infolog de Verknüpfungen dieses Eintrags
|
||||
list all categories infolog de Alle Kathegorien anzeigen
|
||||
list no subs/childs infolog de Untereinträge nicht anzeigen
|
||||
location infolog de Ort
|
||||
longer textual description infolog de längere textliche Beschreibung
|
||||
low infolog de niedrig
|
||||
max length of the input [, length of the inputfield (optional)] infolog de max. Länge der Eingabe [, Länge des Eingabefeldes (optional)]
|
||||
@ -159,6 +168,7 @@ none infolog de keine
|
||||
normal infolog de normal
|
||||
not infolog de nicht
|
||||
not assigned infolog de nicht zugewiesen
|
||||
not-started infolog de nicht gestartet
|
||||
note infolog de Notiz
|
||||
number of records to read (%1) infolog de Anzahl Datensätze lesen (%1)
|
||||
number of row for a multiline inputfield or line of a multi-select-box infolog de Anzahl Zeilen für ein mehrzeiliges Eingabefeld oder eines mehrfachen Auswahlfeldes
|
||||
@ -179,6 +189,7 @@ path on (web-)serverside<br>eg. /var/samba/share infolog de Pfad auf (Web-)Serve
|
||||
path to user and group files has to be outside of the webservers document-root!!! infolog de Pfad zu Benutzer- und Gruppen-Dateien MUSS AUSSERHALB des Wurzelverzeichnisses des Webservers (document-root) liegen!!!
|
||||
pattern for search in addressbook infolog de Muster für Suche im Adressbuch
|
||||
pattern for search in projects infolog de Muster für Suche des Projekts
|
||||
percent completed infolog de Prozent erledigt
|
||||
permission denied infolog de Zugriff verweigert
|
||||
phone infolog de Anruf
|
||||
phone/email infolog de Telefon/Email
|
||||
@ -233,10 +244,11 @@ small view infolog de schmale Ansicht
|
||||
start a new search, cancel this link infolog de eine neue Suche starten, diese Verknüpfung abbrechen
|
||||
startdate infolog de Startdatum
|
||||
startdate enddate infolog de Startdatum Endedatum
|
||||
startdate for new entries infolog de Startdatum für neue Einträge
|
||||
startrecord infolog de Startdatensatz
|
||||
status infolog de Status
|
||||
status ... infolog de Status ...
|
||||
sub infolog de Unter-<br>einträge
|
||||
sub infolog de Unter-<br />einträge
|
||||
sub-entries become subs of the parent or main entries, if there's no parent infolog de Untereinträge gehören dann zum übergeordneten Eintrag oder werden Haupteinträge wenn es keinen übergeordneten gibt.
|
||||
subject infolog de Titel
|
||||
task infolog de Aufgabe
|
||||
@ -248,7 +260,9 @@ this is the filter infolog uses when you enter the application. filters limit th
|
||||
til when should the todo or phonecall be finished infolog de bis wann soll der Auftrag oder Anruf erledigt sein
|
||||
times infolog de Zeiten
|
||||
to many might exceed your execution-time-limit infolog de zu viel können Ihre Laufzeitbeschränkung überschreiten
|
||||
to what should the startdate of new entries be set. infolog de Auf was soll das Startdatum von neuen Einträgen gesetzt werden.
|
||||
today infolog de Heute
|
||||
todays date infolog de heutiges Datum
|
||||
todo infolog de Aufgabe
|
||||
translation infolog de Translation
|
||||
typ infolog de Typ
|
||||
|
@ -3,6 +3,7 @@
|
||||
- subprojects from infolog en - Subprojects from
|
||||
0% infolog en 0%
|
||||
10% infolog en 10%
|
||||
100% infolog en 100%
|
||||
20% infolog en 20%
|
||||
30% infolog en 30%
|
||||
40% infolog en 40%
|
||||
@ -16,6 +17,7 @@ a short subject for the entry infolog en a short subject for the entry
|
||||
abort without deleting infolog en Abort without deleting
|
||||
accept infolog en accept
|
||||
action infolog en Action
|
||||
actual date and time infolog en actual date and time
|
||||
add infolog en Add
|
||||
add a file infolog en Add a file
|
||||
add a new entry infolog en Add a new Entry
|
||||
@ -38,6 +40,7 @@ billed infolog en billed
|
||||
both infolog en both
|
||||
call infolog en call
|
||||
cancel infolog en Cancel
|
||||
cancelled infolog en cancelled
|
||||
categories infolog en Categories
|
||||
category infolog en Category
|
||||
change the status of an entry, eg. close it infolog en Change the status of an entry, eg. close it
|
||||
@ -47,6 +50,7 @@ click here to create the link infolog en click here to create the Link
|
||||
click here to start the search infolog en click here to start the search
|
||||
close infolog en Close
|
||||
comment infolog en Comment
|
||||
completed infolog en Completed
|
||||
configuration infolog en Configuration
|
||||
confirm infolog en Confirm
|
||||
contact infolog en Contact
|
||||
@ -67,6 +71,8 @@ custom fields, typ and status common en Custom fields, type and status
|
||||
custom regarding infolog en Custom regarding
|
||||
custom status for typ infolog en Custom status for type
|
||||
customfields infolog en Customfields
|
||||
date completed infolog en Date completed
|
||||
date completed (leave it empty to have it automatic set if status is done or billed) infolog en Date completed (leave it empty to have it automatic set if status is done or billed)
|
||||
datecreated infolog en date created
|
||||
dates, status, access infolog en Dates, Status, Access
|
||||
days infolog en days
|
||||
@ -110,6 +116,7 @@ fieldseparator infolog en Fieldseparator
|
||||
finish infolog en finish
|
||||
for which types should this field be used infolog en for which types should this field be used
|
||||
from infolog en From
|
||||
general infolog en General
|
||||
high infolog en high
|
||||
id infolog en Id
|
||||
if not set, the line with search and filters is hidden for less entries then "max matches per page" (as defined in your common preferences). infolog en If not set, the line with search and filters is hidden for less entries then "max matches per page" (as defined in your common preferences).
|
||||
@ -132,6 +139,7 @@ invalid filename infolog en Invalid filename
|
||||
label<br>helptext infolog en Label<br>Helptext
|
||||
last changed infolog en Last changed
|
||||
last modified infolog en Last modified
|
||||
leave it empty infolog en leave it empty
|
||||
leave without saveing the entry infolog en leave without saveing the entry
|
||||
leaves without saveing infolog en leaves without saveing
|
||||
length<br>rows infolog en Length<br>Rows
|
||||
@ -140,6 +148,7 @@ links infolog en Links
|
||||
links of this entry infolog en Links of this entry
|
||||
list all categories infolog en List all categories
|
||||
list no subs/childs infolog en List no Subs/Childs
|
||||
location infolog en Location
|
||||
longer textual description infolog en longer textual description
|
||||
low infolog en low
|
||||
max length of the input [, length of the inputfield (optional)] infolog en max length of the input [, length of the inputfield (optional)]
|
||||
@ -159,6 +168,7 @@ none infolog en None
|
||||
normal infolog en normal
|
||||
not infolog en not
|
||||
not assigned infolog en not assigned
|
||||
not-started infolog en not started
|
||||
note infolog en Note
|
||||
number of records to read (%1) infolog en Number of records to read (%1)
|
||||
number of row for a multiline inputfield or line of a multi-select-box infolog en number of row for a multiline inputfield or line of a multi-select-box
|
||||
@ -179,6 +189,7 @@ path on (web-)serverside<br>eg. /var/samba/share infolog en path on (web-)server
|
||||
path to user and group files has to be outside of the webservers document-root!!! infolog en Path to user and group files HAS TO BE OUTSIDE of the webservers document-root!!!
|
||||
pattern for search in addressbook infolog en pattern for search in Addressbook
|
||||
pattern for search in projects infolog en pattern for search in Projects
|
||||
percent completed infolog en Percent completed
|
||||
permission denied infolog en Permission denied
|
||||
phone infolog en Phone Call
|
||||
phone/email infolog en Phone/Email
|
||||
@ -233,6 +244,7 @@ small view infolog en small view
|
||||
start a new search, cancel this link infolog en start a new search, cancel this link
|
||||
startdate infolog en Start Date
|
||||
startdate enddate infolog en Start Date End Date
|
||||
startdate for new entries infolog en Startdate for new entries
|
||||
startrecord infolog en Startrecord
|
||||
status infolog en Status
|
||||
status ... infolog en Status ...
|
||||
@ -248,7 +260,9 @@ this is the filter infolog uses when you enter the application. filters limit th
|
||||
til when should the todo or phonecall be finished infolog en til when should the ToDo or Phone call be finished
|
||||
times infolog en Times
|
||||
to many might exceed your execution-time-limit infolog en to many might exceed your execution-time-limit
|
||||
to what should the startdate of new entries be set. infolog en To what should the startdate of new entries be set.
|
||||
today infolog en Today
|
||||
todays date infolog en todays date
|
||||
todo infolog en ToDo
|
||||
translation infolog en Translation
|
||||
typ infolog en Type
|
||||
|
@ -12,7 +12,7 @@
|
||||
/* $Id$ */
|
||||
|
||||
$setup_info['infolog']['name'] = 'infolog';
|
||||
$setup_info['infolog']['version'] = '1.2.001';
|
||||
$setup_info['infolog']['version'] = '1.2.002';
|
||||
$setup_info['infolog']['app_order'] = 5;
|
||||
$setup_info['infolog']['tables'] = array('egw_infolog','egw_infolog_extra');
|
||||
$setup_info['infolog']['enable'] = 1;
|
||||
@ -73,3 +73,5 @@
|
||||
);
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -36,7 +36,10 @@
|
||||
'info_link_id' => array('type' => 'int','precision' => '4','nullable' => False,'default' => '0'),
|
||||
'info_priority' => array('type' => 'int','precision' => '2','default' => '1'),
|
||||
'pl_id' => array('type' => 'int','precision' => '4'),
|
||||
'info_price' => array('type' => 'float','precision' => '8')
|
||||
'info_price' => array('type' => 'float','precision' => '8'),
|
||||
'info_percent' => array('type' => 'int','precision' => '2','default' => '0'),
|
||||
'info_datecompleted' => array('type' => 'int','precision' => '8'),
|
||||
'info_location' => array('type' => 'varchar','precision' => '255')
|
||||
),
|
||||
'pk' => array('info_id'),
|
||||
'fk' => array(),
|
||||
|
@ -484,4 +484,45 @@
|
||||
|
||||
return $GLOBALS['setup_info']['infolog']['currentver'] = '1.2.001';
|
||||
}
|
||||
|
||||
|
||||
$test[] = '1.2.001';
|
||||
function infolog_upgrade1_2_001()
|
||||
{
|
||||
$GLOBALS['egw_setup']->oProc->AddColumn('egw_infolog','info_percent',array(
|
||||
'type' => 'int',
|
||||
'precision' => '2',
|
||||
'default' => '0'
|
||||
));
|
||||
$GLOBALS['egw_setup']->oProc->AddColumn('egw_infolog','info_datecompleted',array(
|
||||
'type' => 'int',
|
||||
'precision' => '8'
|
||||
));
|
||||
$GLOBALS['egw_setup']->oProc->AddColumn('egw_infolog','info_location',array(
|
||||
'type' => 'varchar',
|
||||
'precision' => '255'
|
||||
));
|
||||
|
||||
// all not explicit named stati have the default percent 0
|
||||
$GLOBALS['egw_setup']->oProc->query("UPDATE egw_infolog SET info_percent=10 WHERE info_status='ongoing'",__LINE__,__FILE__);
|
||||
$GLOBALS['egw_setup']->oProc->query("UPDATE egw_infolog SET info_percent=50 WHERE info_status='will-call'",__LINE__,__FILE__);
|
||||
|
||||
for($p = 0; $p <= 90; $p += 10)
|
||||
{
|
||||
$GLOBALS['egw_setup']->oProc->query("UPDATE egw_infolog SET info_percent=$p,info_status='".(!$p ? 'not-started' : 'ongoing').
|
||||
"' WHERE info_status = '$p%'",__LINE__,__FILE__);
|
||||
}
|
||||
$GLOBALS['egw_setup']->oProc->query("UPDATE egw_infolog SET info_datecompleted=info_datemodified,info_percent=100 WHERE info_status IN ('done','billed','100%')",__LINE__,__FILE__);
|
||||
|
||||
// remove the percentages from the custom stati, if they exist
|
||||
$config =& CreateObject('phpgwapi.config','infolog');
|
||||
$config->read_repository();
|
||||
if (is_array($config->config_data['status']['task']))
|
||||
{
|
||||
$config->config_data['status']['task'] = array_diff($config->config_data['status']['task'],
|
||||
array('0%','10%','20%','30%','40%','50%','60%','70%','80%','90%','100%'));
|
||||
$config->save_repository();
|
||||
}
|
||||
return $GLOBALS['setup_info']['infolog']['currentver'] = '1.2.002';
|
||||
}
|
||||
?>
|
||||
|
@ -13,7 +13,7 @@
|
||||
</row>
|
||||
<row class="row" valign="top">
|
||||
<description/>
|
||||
<textbox multiline="true" rows="14" cols="80" no_lang="1" id="info_des" statustext="enter a textual description of the log-entry"/>
|
||||
<textbox multiline="true" rows="13" cols="75" no_lang="1" id="info_des" statustext="enter a textual description of the log-entry"/>
|
||||
</row>
|
||||
</rows>
|
||||
</grid>
|
||||
@ -40,7 +40,7 @@
|
||||
</rows>
|
||||
</grid>
|
||||
</template>
|
||||
<template id="infolog.edit.delegation" template="" lang="" group="0" version="1.2.001">
|
||||
<template id="infolog.edit.delegation" template="" lang="" group="0" version="1.2.002">
|
||||
<grid width="100%" height="245">
|
||||
<columns>
|
||||
<column width="100"/>
|
||||
@ -48,7 +48,7 @@
|
||||
</columns>
|
||||
<rows>
|
||||
<row class="th">
|
||||
<description span="all" value="Priority"/>
|
||||
<description span="all" value="General"/>
|
||||
</row>
|
||||
<row class="row">
|
||||
<description value="Priority" options=",,,info_priority"/>
|
||||
@ -56,6 +56,10 @@
|
||||
<menupopup id="info_priority" statustext="select a priority for this task"/>
|
||||
</menulist>
|
||||
</row>
|
||||
<row class="row">
|
||||
<description options=",,,info_location" value="Location"/>
|
||||
<textbox id="info_location" size="80" maxlength="255"/>
|
||||
</row>
|
||||
<row class="th">
|
||||
<description span="all" value="Delegation"/>
|
||||
</row>
|
||||
@ -119,12 +123,12 @@
|
||||
</rows>
|
||||
</grid>
|
||||
</template>
|
||||
<template id="infolog.edit" template="" lang="" group="0" version="1.2.001">
|
||||
<template id="infolog.edit" template="" lang="" group="0" version="1.2.002">
|
||||
<grid width="100%">
|
||||
<columns>
|
||||
<column width="103"/>
|
||||
<column width="260"/>
|
||||
<column width="120"/>
|
||||
<column width="140"/>
|
||||
<column/>
|
||||
</columns>
|
||||
<rows>
|
||||
@ -148,13 +152,13 @@
|
||||
</row>
|
||||
<row class="row">
|
||||
<description value="Contact" options=",,,info_from"/>
|
||||
<textbox size="35" maxlength="64" id="info_from" statustext="Custom contact-information, leave emtpy to use information from most recent link" blur="@blur_title"/>
|
||||
<textbox size="36" maxlength="255" id="info_from" statustext="Custom contact-information, leave emtpy to use information from most recent link" blur="@blur_title"/>
|
||||
<description value="Phone/Email" options=",,,_info_addr"/>
|
||||
<textbox size="35" maxlength="64" id="info_addr" statustext="Custom contact-address, leave empty to use information from most recent link"/>
|
||||
<textbox size="30" maxlength="255" id="info_addr" statustext="Custom contact-address, leave empty to use information from most recent link"/>
|
||||
</row>
|
||||
<row class="row">
|
||||
<description value="Subject" options=",,,info_subject"/>
|
||||
<textbox size="64" maxlength="64" span="all" id="info_subject" needed="1" statustext="a short subject for the entry"/>
|
||||
<textbox size="80" maxlength="255" span="all" id="info_subject" needed="1" statustext="a short subject for the entry"/>
|
||||
</row>
|
||||
<row valign="top" height="250">
|
||||
<tabbox span="all">
|
||||
@ -186,8 +190,16 @@
|
||||
<row class="row">
|
||||
<description value="Status" options=",,,info_status"/>
|
||||
<menulist>
|
||||
<menupopup id="info_status" statustext="@status_help"/>
|
||||
<menupopup id="info_status" statustext="@status_help" onchange="if (this.value=='done' || this.value=='billed') this.form['exec[info_percent]'].value=100; else if (this.value=='not-started') this.form['exec[info_percent]'].value=0;"/>
|
||||
</menulist>
|
||||
<description value="Completed" options=",,,info_percent"/>
|
||||
<menulist>
|
||||
<menupopup type="select-percent" id="info_percent" statustext="Percent completed" onchange="if (this.value==100 && this.form['exec[info_status]'].value != 'done' && this.form['exec[info_status]'].value != 'billed' && this.form['exec[info_status]'].value != 'cancelled') this.form['exec[info_status]'].value='done'; else if (this.value != 100 && this.form['exec[info_status]'].value != 'cancelled') this.form['exec[info_status]'].value=this.value != 0 ? 'ongoing' : 'not-started'; else if (this.value==0 && this.form['exec[info_status]'].value != 'cancelled' && this.form['exec[info_status]'].value != 'offer') this.form['exec[info_status]'].value='not-started'; "/>
|
||||
</menulist>
|
||||
</row>
|
||||
<row class="row">
|
||||
<description options=",,,info_datecompleted" value="Completed"/>
|
||||
<date-time id="info_datecompleted" statustext="Date completed (leave it empty to have it automatic set if status is done or billed)"/>
|
||||
<description value="Private" options=",,,info_access"/>
|
||||
<checkbox options="private,public" id="info_access" statustext="should this entry only be visible to you and people you grant privat access via the ACL"/>
|
||||
</row>
|
||||
|
Before Width: | Height: | Size: 193 B |
Before Width: | Height: | Size: 257 B |
Before Width: | Height: | Size: 963 B After Width: | Height: | Size: 963 B |
Before Width: | Height: | Size: 150 B |
Before Width: | Height: | Size: 275 B |
Before Width: | Height: | Size: 202 B |
Before Width: | Height: | Size: 332 B |
BIN
infolog/templates/default/images/not-started.png
Normal file
After Width: | Height: | Size: 750 B |
Before Width: | Height: | Size: 155 B |
Before Width: | Height: | Size: 283 B |
@ -5,20 +5,20 @@
|
||||
<description class="headertext bold" value="InfoLog"/>
|
||||
<styles>.bold { font-weight: bold; }</styles>
|
||||
</template>
|
||||
<template id="infolog.index.header_right" template="" lang="" group="0" version="1.0.1.001">
|
||||
<template id="infolog.index.header_right" template="" lang="" group="0" version="1.2.002">
|
||||
<hbox>
|
||||
<description class="headertext" value="Add:"/>
|
||||
<button image="task" label="ToDo" id="add[task]" statustext="Add a new ToDo" onclick="window.open(egw::link('/index.php','menuaction=infolog.uiinfolog.edit&type=task&action=$cont[action]&action_id=$cont[action_id]'),'_blank','dependent=yes,width=750,height=550,scrollbars=yes,status=yes'); return false;"/>
|
||||
<button image="phone" label="Phonecall" id="add[phone]" statustext="Add a new Phonecall" onclick="window.open(egw::link('/index.php','menuaction=infolog.uiinfolog.edit&type=phone&action=$cont[action]&action_id=$cont[action_id]'),'_blank','dependent=yes,width=750,height=550,scrollbars=yes,status=yes'); return false;"/>
|
||||
<button image="note" label="Note" id="add[note]" statustext="Add a new Note" onclick="window.open(egw::link('/index.php','menuaction=infolog.uiinfolog.edit&type=note&action=$cont[action]&action_id=$cont[action_id]'),'_blank','dependent=yes,width=750,height=550,scrollbars=yes,status=yes'); return false;"/>
|
||||
<button image="task" label="ToDo" id="add[task]" statustext="Add a new ToDo" onclick="window.open(egw::link('/index.php','menuaction=infolog.uiinfolog.edit&type=task&action=$cont[action]&action_id=$cont[action_id]'),'_blank','dependent=yes,width=750,height=600,scrollbars=yes,status=yes'); return false;"/>
|
||||
<button image="phone" label="Phonecall" id="add[phone]" statustext="Add a new Phonecall" onclick="window.open(egw::link('/index.php','menuaction=infolog.uiinfolog.edit&type=phone&action=$cont[action]&action_id=$cont[action_id]'),'_blank','dependent=yes,width=750,height=600,scrollbars=yes,status=yes'); return false;"/>
|
||||
<button image="note" label="Note" id="add[note]" statustext="Add a new Note" onclick="window.open(egw::link('/index.php','menuaction=infolog.uiinfolog.edit&type=note&action=$cont[action]&action_id=$cont[action_id]'),'_blank','dependent=yes,width=750,height=600,scrollbars=yes,status=yes'); return false;"/>
|
||||
</hbox>
|
||||
</template>
|
||||
<template id="infolog.index.rows-noheader" template="" lang="" group="0" version="1.0.1.002">
|
||||
<template id="infolog.index.rows-noheader" template="" lang="" group="0" version="1.2.002">
|
||||
<grid>
|
||||
<columns>
|
||||
<column width="5%"/>
|
||||
<column width="2%"/>
|
||||
<column/>
|
||||
<column width="8%"/>
|
||||
<column width="120"/>
|
||||
<column disabled="@no_times"/>
|
||||
<column width="8%"/>
|
||||
<column width="12%"/>
|
||||
@ -27,17 +27,19 @@
|
||||
</columns>
|
||||
<rows>
|
||||
<row class="th">
|
||||
<vbox>
|
||||
<vbox orient="0,0">
|
||||
<description value="Type"/>
|
||||
<description value="Status"/>
|
||||
<description value="Status" align="center"/>
|
||||
<description value="Completed" align="right"/>
|
||||
</vbox>
|
||||
<vbox>
|
||||
<vbox data="" rows="2" cols="1" options="2">
|
||||
<description value="Subject"/>
|
||||
<description value="Description"/>
|
||||
</vbox>
|
||||
<vbox>
|
||||
<description value="Startdate"/>
|
||||
<description value="Enddate"/>
|
||||
<description value="Date completed"/>
|
||||
</vbox>
|
||||
<vbox>
|
||||
<description value="Times"/>
|
||||
@ -52,19 +54,21 @@
|
||||
<description value="Action"/>
|
||||
</row>
|
||||
<row class="row" valign="top">
|
||||
<hbox align="center" orient="2,2">
|
||||
<hbox align="center" orient=",5">
|
||||
<image label="$row_cont[info_type]" src="${row}[info_type]"/>
|
||||
<button image="$row_cont[info_status]" ro_image="$row_cont[info_status]" label="$row_cont[info_status]" id="edit_status[$row_cont[info_id]]" statustext="Change the status of an entry, eg. close it" onclick="window.open(egw::link('/index.php','menuaction=infolog.uiinfolog.edit&info_id=$row_cont[info_id]'),'_blank','dependent=yes,width=750,height=550,scrollbars=yes,status=yes'); return false;"/>
|
||||
<button image="$row_cont[info_status]" ro_image="$row_cont[info_status]" label="$row_cont[info_status]" id="edit_status[$row_cont[info_id]]" statustext="Change the status of an entry, eg. close it" onclick="window.open(egw::link('/index.php','menuaction=infolog.uiinfolog.edit&info_id=$row_cont[info_id]'),'_blank','dependent=yes,width=750,height=600,scrollbars=yes,status=yes'); return false;"/>
|
||||
<button image="$row_cont[info_percent]" ro_image="$row_cont[info_percent]" label="$row_cont[info_percent]" id="edit_status[$row_cont[info_id]]" statustext="Change the status of an entry, eg. close it" onclick="window.open(egw::link('/index.php','menuaction=infolog.uiinfolog.edit&info_id=$row_cont[info_id]'),'_blank','dependent=yes,width=750,height=600,scrollbars=yes,status=yes'); return false;"/>
|
||||
</hbox>
|
||||
<vbox orient="0,0">
|
||||
<link label="%s $row_cont[info_addr]" id="${row}[info_link]"/>
|
||||
<link label="%s $row_cont[info_addr]" id="${row}[info_link]" options="b"/>
|
||||
<description class="$row_cont[sub_class]" no_lang="1" id="${row}[info_subject]"/>
|
||||
<description options=",,1" no_lang="1" id="${row}[info_des]"/>
|
||||
<link-string id="${row}[filelinks]"/>
|
||||
</vbox>
|
||||
<vbox orient="0,0">
|
||||
<date id="${row}[info_startdate]" readonly="true"/>
|
||||
<date-time options=",8" id="${row}[info_startdate]" readonly="true"/>
|
||||
<date class="$row_cont[end_class]" id="${row}[info_enddate]" readonly="true"/>
|
||||
<date-time id="${row}[info_datecompleted]" readonly="true"/>
|
||||
</vbox>
|
||||
<vbox>
|
||||
<date-duration id="${row}[info_used_time]" readonly="true" options=",,,,1"/>
|
||||
@ -83,12 +87,12 @@
|
||||
</menulist>
|
||||
</vbox>
|
||||
<vbox align="center" orient="0,0">
|
||||
<button image="new" label="Add sub" align="center" id="sp[$row_cont[info_id]]" statustext="Add a new sub-task, -note, -call to this entry" onclick="window.open(egw::link('/index.php','menuaction=infolog.uiinfolog.edit&action=sp&action_id=$row_cont[info_id]'),'_blank','dependent=yes,width=750,height=550,scrollbars=yes,status=yes'); return false;"/>
|
||||
<button image="new" label="Add sub" align="center" id="sp[$row_cont[info_id]]" statustext="Add a new sub-task, -note, -call to this entry" onclick="window.open(egw::link('/index.php','menuaction=infolog.uiinfolog.edit&action=sp&action_id=$row_cont[info_id]'),'_blank','dependent=yes,width=750,height=600,scrollbars=yes,status=yes'); return false;"/>
|
||||
<button image="view.gif" label="View subs" align="center" id="view[$row_cont[info_id]]" statustext="View all subs of this entry"/>
|
||||
<button image="parent.gif" label="View parent" align="center" id="view[$row_cont[info_id_parent]]" statustext="View the parent of this entry and all his subs"/>
|
||||
</vbox>
|
||||
<hbox>
|
||||
<button image="edit" label="Edit" id="edit[$row_cont[info_id]]" statustext="Edit this entry" onclick="window.open(egw::link('/index.php','menuaction=infolog.uiinfolog.edit&info_id=$row_cont[info_id]'),'_blank','dependent=yes,width=750,height=550,scrollbars=yes,status=yes'); return false;"/>
|
||||
<button image="edit" label="Edit" id="edit[$row_cont[info_id]]" statustext="Edit this entry" onclick="window.open(egw::link('/index.php','menuaction=infolog.uiinfolog.edit&info_id=$row_cont[info_id]'),'_blank','dependent=yes,width=750,height=600,scrollbars=yes,status=yes'); return false;"/>
|
||||
<button image="delete" label="Delete" id="delete[$row_cont[info_id]]" statustext="Delete this entry" onclick="return $row_cont[info_anz_subs] || confirm('Delete this entry');"/>
|
||||
<button image="done" label="Close" id="close[$row_cont[info_id]]" statustext="Sets the status of this entry and its subs to done"/>
|
||||
</hbox>
|
||||
@ -96,12 +100,12 @@
|
||||
</rows>
|
||||
</grid>
|
||||
</template>
|
||||
<template id="infolog.index.rows" template="" lang="" group="0" version="1.0.1.003">
|
||||
<template id="infolog.index.rows" template="" lang="" group="0" version="1.2.002">
|
||||
<grid>
|
||||
<columns>
|
||||
<column width="2%"/>
|
||||
<column/>
|
||||
<column width="8%"/>
|
||||
<column width="120"/>
|
||||
<column disabled="@no_times"/>
|
||||
<column width="8%"/>
|
||||
<column width="12%"/>
|
||||
@ -113,6 +117,7 @@
|
||||
<vbox orient="0,0">
|
||||
<nextmatch-filterheader options="Type ..." id="info_type"/>
|
||||
<nextmatch-filterheader options="Status ..." id="info_status"/>
|
||||
<nextmatch-sortheader label="Completed" id="info_percent" align="right"/>
|
||||
</vbox>
|
||||
<grid width="100%" spacing="0" padding="0">
|
||||
<columns>
|
||||
@ -133,6 +138,7 @@
|
||||
<vbox>
|
||||
<nextmatch-sortheader label="Startdate" id="info_startdate"/>
|
||||
<nextmatch-sortheader label="Enddate" id="info_enddate"/>
|
||||
<nextmatch-sortheader id="info_datecompleted" label="Date completed"/>
|
||||
</vbox>
|
||||
<vbox>
|
||||
<nextmatch-sortheader label="Times" id="info_used_time"/>
|
||||
@ -149,7 +155,8 @@
|
||||
<row class="row" valign="top">
|
||||
<hbox align="center" orient=",5">
|
||||
<image label="$row_cont[info_type]" src="${row}[info_type]"/>
|
||||
<button image="$row_cont[info_status]" ro_image="$row_cont[info_status]" label="$row_cont[info_status]" id="edit_status[$row_cont[info_id]]" statustext="Change the status of an entry, eg. close it" onclick="window.open(egw::link('/index.php','menuaction=infolog.uiinfolog.edit&info_id=$row_cont[info_id]'),'_blank','dependent=yes,width=750,height=550,scrollbars=yes,status=yes'); return false;"/>
|
||||
<button image="$row_cont[info_status]" ro_image="$row_cont[info_status]" label="$row_cont[info_status]" id="edit_status[$row_cont[info_id]]" statustext="Change the status of an entry, eg. close it" onclick="window.open(egw::link('/index.php','menuaction=infolog.uiinfolog.edit&info_id=$row_cont[info_id]'),'_blank','dependent=yes,width=750,height=600,scrollbars=yes,status=yes'); return false;"/>
|
||||
<button image="$row_cont[info_percent]" ro_image="$row_cont[info_percent]" label="$row_cont[info_percent]" id="edit_status[$row_cont[info_id]]" statustext="Change the status of an entry, eg. close it" onclick="window.open(egw::link('/index.php','menuaction=infolog.uiinfolog.edit&info_id=$row_cont[info_id]'),'_blank','dependent=yes,width=750,height=600,scrollbars=yes,status=yes'); return false;"/>
|
||||
</hbox>
|
||||
<vbox orient="0,0">
|
||||
<link label="%s $row_cont[info_addr]" id="${row}[info_link]" options="b"/>
|
||||
@ -160,6 +167,7 @@
|
||||
<vbox orient="0,0">
|
||||
<date-time options=",8" id="${row}[info_startdate]" readonly="true"/>
|
||||
<date class="$row_cont[end_class]" id="${row}[info_enddate]" readonly="true"/>
|
||||
<date-time id="${row}[info_datecompleted]" readonly="true"/>
|
||||
</vbox>
|
||||
<vbox>
|
||||
<date-duration id="${row}[info_used_time]" readonly="true" options=",,,,1"/>
|
||||
@ -178,12 +186,12 @@
|
||||
</menulist>
|
||||
</vbox>
|
||||
<vbox align="center" orient="0,0">
|
||||
<button image="new" label="Add sub" align="center" id="sp[$row_cont[info_id]]" statustext="Add a new sub-task, -note, -call to this entry" onclick="window.open(egw::link('/index.php','menuaction=infolog.uiinfolog.edit&action=sp&action_id=$row_cont[info_id]'),'_blank','dependent=yes,width=750,height=550,scrollbars=yes,status=yes'); return false;"/>
|
||||
<button image="new" label="Add sub" align="center" id="sp[$row_cont[info_id]]" statustext="Add a new sub-task, -note, -call to this entry" onclick="window.open(egw::link('/index.php','menuaction=infolog.uiinfolog.edit&action=sp&action_id=$row_cont[info_id]'),'_blank','dependent=yes,width=750,height=600,scrollbars=yes,status=yes'); return false;"/>
|
||||
<button image="view.gif" label="View subs" align="center" id="view[$row_cont[info_id]]" statustext="View all subs of this entry"/>
|
||||
<button image="parent.gif" label="View parent" align="center" id="view[$row_cont[info_id_parent]]" statustext="View the parent of this entry and all his subs"/>
|
||||
</vbox>
|
||||
<hbox>
|
||||
<button image="edit" label="Edit" id="edit[$row_cont[info_id]]" statustext="Edit this entry" onclick="window.open(egw::link('/index.php','menuaction=infolog.uiinfolog.edit&info_id=$row_cont[info_id]'),'_blank','dependent=yes,width=750,height=550,scrollbars=yes,status=yes'); return false;"/>
|
||||
<button image="edit" label="Edit" id="edit[$row_cont[info_id]]" statustext="Edit this entry" onclick="window.open(egw::link('/index.php','menuaction=infolog.uiinfolog.edit&info_id=$row_cont[info_id]'),'_blank','dependent=yes,width=750,height=600,scrollbars=yes,status=yes'); return false;"/>
|
||||
<button image="delete" label="Delete" id="delete[$row_cont[info_id]]" statustext="Delete this entry" onclick="return $row_cont[info_anz_subs] || confirm('Delete this entry');"/>
|
||||
<button image="done" label="Close" id="close[$row_cont[info_id]]" statustext="Sets the status of this entry and its subs to done"/>
|
||||
</hbox>
|
||||
@ -214,7 +222,7 @@
|
||||
</row>
|
||||
<row>
|
||||
<hbox span="all">
|
||||
<button label="Add" id="add[note]" statustext="Add a new Entry" onclick="window.open(egw::link('/index.php','menuaction=infolog.uiinfolog.edit&type=note&action=$cont[action]&action_id=$cont[action_id]'),'_blank','dependent=yes,width=750,height=550,scrollbars=yes,status=yes'); return false;"/>
|
||||
<button label="Add" id="add[note]" statustext="Add a new Entry" onclick="window.open(egw::link('/index.php','menuaction=infolog.uiinfolog.edit&type=note&action=$cont[action]&action_id=$cont[action_id]'),'_blank','dependent=yes,width=750,height=600,scrollbars=yes,status=yes'); return false;"/>
|
||||
<button label="Cancel" id="cancel" statustext="Back to main list"/>
|
||||
</hbox>
|
||||
</row>
|
||||
|
Before Width: | Height: | Size: 661 B |
Before Width: | Height: | Size: 193 B |
Before Width: | Height: | Size: 257 B |
Before Width: | Height: | Size: 157 B |
Before Width: | Height: | Size: 303 B |
Before Width: | Height: | Size: 198 B |
Before Width: | Height: | Size: 336 B |
Before Width: | Height: | Size: 150 B |
Before Width: | Height: | Size: 275 B |
Before Width: | Height: | Size: 153 B |
Before Width: | Height: | Size: 295 B |
Before Width: | Height: | Size: 133 B |
Before Width: | Height: | Size: 275 B |
Before Width: | Height: | Size: 159 B |
Before Width: | Height: | Size: 290 B |
Before Width: | Height: | Size: 202 B |
Before Width: | Height: | Size: 332 B |
@ -1,34 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<title>eGroupWare Info Log Icons</title>
|
||||
</head>
|
||||
|
||||
<body bgcolor=Silver>
|
||||
Types:<br>
|
||||
<img src="phone.gif" width="20" height="20" alt="Telefon" border="0">
|
||||
<img src="task.gif" width="20" height="20" alt="Aufgabe" border="0">
|
||||
<img src="note.gif" width="20" height="20" alt="Notiz" border="0">
|
||||
<img src="confirm.gif" width="20" height="20" alt="Bestätigung" border="0">
|
||||
<img src="reject.gif" width="20" height="20" alt="Absage" border="0">
|
||||
<p>
|
||||
Status:<br>
|
||||
<img src="offer.gif" width="20" height="20" alt="Angebot" border="0">
|
||||
<img src="ongoing.gif" width="20" height="20" alt="läuft" border="0">
|
||||
<img src="call.gif" width="20" height="20" alt="anrufen" border="0">
|
||||
<img src="will-call.gif" width="20" height="20" alt="ruft zurück" border="0">
|
||||
|
||||
<img src="done.gif" width="20" height="20" alt="erledigt" border="0">
|
||||
<img src="billed.gif" width="20" height="20" alt="abgerechnet" border="0">
|
||||
<p>
|
||||
Actions:<br>
|
||||
<img src="new.gif" width="20" height="20" alt="neue Teilaufgabe" border="0">
|
||||
|
||||
<img src="view.gif" width="20" height="20" alt="Teilaufgagen anzeigen"
|
||||
border="0">
|
||||
<img src="edit.gif" width="20" height="20" alt="bearbeiten" border="0">
|
||||
<img src="delete.gif" width="20" height="20" alt="löschen" border="0">
|
||||
</body>
|
||||
</html>
|
||||
|
Before Width: | Height: | Size: 141 B |
Before Width: | Height: | Size: 249 B |
Before Width: | Height: | Size: 134 B |
Before Width: | Height: | Size: 235 B |
Before Width: | Height: | Size: 137 B |
Before Width: | Height: | Size: 281 B |
Before Width: | Height: | Size: 160 B |
Before Width: | Height: | Size: 292 B |
Before Width: | Height: | Size: 156 B |
Before Width: | Height: | Size: 286 B |
Before Width: | Height: | Size: 159 B |
Before Width: | Height: | Size: 293 B |
Before Width: | Height: | Size: 155 B |
Before Width: | Height: | Size: 283 B |
Before Width: | Height: | Size: 137 B |
Before Width: | Height: | Size: 284 B |
Before Width: | Height: | Size: 145 B |
Before Width: | Height: | Size: 235 B |
Before Width: | Height: | Size: 152 B |
Before Width: | Height: | Size: 282 B |
Before Width: | Height: | Size: 661 B |
Before Width: | Height: | Size: 1001 B |
Before Width: | Height: | Size: 963 B |