[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Phpgroupware-cvs] tasks/class.base.php, 1.1.2.1
From: |
nomail |
Subject: |
[Phpgroupware-cvs] tasks/class.base.php, 1.1.2.1 |
Date: |
Thu, 20 May 2004 19:43:17 -0000 |
Update of /tasks
Added Files:
Branch: proposal-branch
class.base.php
date: 2004/04/17 06:24:31; author: jengo; state: Exp; lines: +475 -0
Log Message:
Merged this over from the temp CVS server
=====================================================================
No syntax errors detected in -
=====================================================================
<?php
/**************************************************************************\
* phpGroupWare
*
* http://www.phpgroupware.org
*
* This file written by Joseph Engo <address@hidden> *
* Copyright (C) 2003-2004 Joseph Engo
*
*
-------------------------------------------------------------------------*
* This program is free software; you can redistribute it and/or modify
it *
* under the terms of the GNU General Public License as published by the
*
* Free Software Foundation; either version 2 of the License, or (at
your *
* option) any later version.
*
\**************************************************************************/
/* $Id: class.base.php,v 1.1.2.1 2004/04/17 06:24:31 jengo Exp $ */
/* $Source: /cvsroot/phpgroupware/tasks/Attic/class.base.php,v $ */
$functions = array();
$functions['tasks_base'] = array
(
'type' => 'public',
'abstract' => 'add something here',
'discussion' => 'add something here'
);
$functions['start'] = array
(
'type' => 'public',
'title' => 'Tasks',
'abstract' => 'List of tasks',
'discussion' => 'List of tasks'
);
$functions['create'] = array
(
'type' => 'public',
'title' => 'Create Task',
'abstract' => 'Create task entry',
'params' => array
(
'type' => array('type' => 'any', 'default'
=> NOTSET, 'desc' => 'Type'),
'subject' => array('type' => 'any', 'default'
=> NOTSET, 'desc' => 'Subject'),
'description' => array('type' => 'any', 'default'
=> NOTSET, 'desc' => 'Description'),
'category' => array('type' => 'any', 'default'
=> NOTSET, 'desc' => 'Category'),
'priority' => array('type' => 'any', 'default'
=> NOTSET, 'desc' => 'Priority'),
'start_date' => array('type' => 'any', 'default'
=> NOTSET, 'desc' => 'Start date'),
'start_time' => array('type' => 'any', 'default'
=> NOTSET, 'desc' => 'start time'),
'end_date' => array('type' => 'any', 'default'
=> NOTSET, 'desc' => 'End date'),
'end_time' => array('type' => 'any', 'default'
=> NOTSET, 'desc' => 'End time'),
'status' => array('type' => 'any', 'default'
=> NOTSET, 'desc' => 'Status'),
)
);
$functions['view'] = array
(
'type' => 'public',
'title' => 'View Task',
'abstract' => 'View Task',
'params' => array
(
'task_id' => array('type' => 'number', 'default' =>
REQUIRED, 'desc' => 'Task ID number')
)
);
$GLOBALS['docs']['tasks']['classes']['tasks_base'] = array
(
'abstract' => 'Default class for task manager',
'functions' => $functions
);
class tasks_base
{
var $history;
function tasks_base()
{
$GLOBALS['phpgw']->add_xsl('tasks.base');
$GLOBALS['phpgw']->add_xsl('api.widgets');
// The no_app_menu is *ONLY* a temp workaround for not
showing the app menu
// durring _datamine_get(), I am currently working on
another solution to it
if (! $GLOBALS['tasks_menus_loaded'] && !
$GLOBALS['no_app_menu'])
{
$GLOBALS['phpgw']->add_appmenu('Task manager
menu','Add task','tasks.base.create');
$GLOBALS['tasks_menus_loaded'] = true;
}
}
// This is only until categorys is done
function _temp_cat()
{
return '-';
}
function _convert_status($status_id)
{
// TODO: These should be loaded from the database, for
custom values
switch ($status_id)
{
case 1:
return lang('Ongoing');
break;
case 2:
return lang('Done');
break;
case 3:
return lang('Hold');
break;
case 4:
return lang('Canceled');
break;
default:
return '-';
}
}
function _convert_priority($priority_id)
{
// TODO: These should be loaded from the database, for
custom values
switch ($priority_id)
{
case 1:
return lang('Low');
break;
case 2:
return lang('Normal');
break;
case 3:
return lang('High');
break;
case 4:
return lang('Urgent');
break;
default:
return '-';
}
}
function __get_record(&$dbresult)
{
return array
(
'id' =>
$dbresult->fields['task_id'],
'owner' =>
$GLOBALS['phpgw']->accounts->cross_reference((int)$dbresult->fields['task_owner']),
'owner_id' =>
$dbresult->fields['task_owner'],
'responsible' =>
$GLOBALS['phpgw']->accounts->cross_reference((int)$dbresult->fields['task_responsible']),
'responsible_id' =>
$dbresult->fields['task_responsible'],
'category' =>
$this->_temp_cat($dbresult->fields['task_category']),
'category_id' =>
$dbresult->fields['task_category'],
'access' =>
$dbresult->fields['task_access'],
'status' =>
$this->_convert_status($dbresult->fields['task_status']),
'status_id' =>
$dbresult->fields['task_status'],
'subject' =>
$dbresult->fields['task_subject'],
'description' =>
$dbresult->fields['task_description'],
'priority' =>
$this->_convert_priority($dbresult->fields['task_priority']),
'priority_id' =>
$dbresult->fields['task_priority'],
'start' =>
strftime('%x',$dbresult->unixtimestamp($dbresult->fields['task_start'])) .
date(' h:i:s a',$dbresult->unixtimestamp($dbresult->fields['task_start'])),
'end' =>
strftime('%x',$dbresult->unixtimestamp($dbresult->fields['task_end'])) . date('
h:i:s a',$dbresult->unixtimestamp($dbresult->fields['task_end'])),
'modified' =>
strftime('%x',$dbresult->unixtimestamp($dbresult->fields['task_modified'])) .
date(' h:i:s a',$dbresult->unixtimestamp($dbresult->fields['task_modified'])),
'created' =>
strftime('%x',$dbresult->unixtimestamp($dbresult->fields['task_created'])) .
date(' h:i:s a',$dbresult->unixtimestamp($dbresult->fields['task_created']))
);
}
function start()
{
$result['task_data'] = array();
$result['action_type'] = 'task_start';
$dbresult = $GLOBALS['phpgw']->db->execute("SELECT *
from phpgw_tasks WHERE task_owner="
. $GLOBALS['phpgw_data']['user']['id'] . " AND
task_dm_type='N'");
while (! $dbresult->EOF)
{
$result['tasks_data'][] =
$this->__get_record(&$dbresult);
$dbresult->movenext();
}
return $result;
}
function set_cache_value($key,$value)
{
if (strlen($value[$key]))
{
$GLOBALS['phpgw_session']['phpgw_data']['statecache']['tasks.base.create'][$key]
= $value[$key];
}
}
function __set_history_fields()
{
$this->history->field_desc = array
(
'task_owner' => lang('Owner'),
'task_subject' => lang('Subject'),
'task_category' => lang('Category'),
'task_description' => lang('Description'),
'task_priority' => lang('Priority'),
'task_start' => lang('Start date'),
'task_end' => lang('End date'),
'task_status' => lang('Status')
);
}
function create()
{
$args = new safe_args();
$args->set('select_tab',1,'number');
$args->set('form_submit',NOTSET,'any');
$args->set('type',NOTSET,'any');
$args->set('subject',NOTSET,'any');
$args->set('category',NOTSET,'any');
$args->set('description',NOTSET,'any');
$args->set('priority',0,'any');
$args->set('start_date',NOTSET,'any');
$args->set('start_time',NOTSET,'any');
$args->set('end_date',NOTSET,'any');
$args->set('end_time',NOTSET,'any');
$args->set('status',NOTSET,'any');
$args->set('access',array('private','public'),'enum');
$args->set('dm_type','N','string');
$args = $args->get(func_get_args());
/*
$result['task'] = array
(
//'task_owner' => $args['task_owner'],
'task_subject' => $args['subject'],
'task_category' => $args['category'],
'task_description' => $args['description'],
'task_priority' => $args['priority'],
'task_start' => $args['start'],
'task_end' => $args['end'],
'task_status' => $args['status']
);
*/
if ($args['form_submit'] == 'True')
{
if (! strlen($args['subject']))
{
$result['missing_fields']['subject'] =
true;
$missing_fields =
true;
}
if (! strlen($args['description']))
{
$result['missing_fields']['description'] = true;
$missing_fields
= true;
}
if (! strlen($args['priority']))
{
//$result['missing_fields']['priority']
= true;
//$missing_fields
= true;
}
if ($missing_fields)
{
$GLOBALS['msgbox']->add(lang('You
forgot to enter some of the required fields. The missing fields have been
marked with a *'), 'notice');
//$GLOBALS['phpgw']->form_lock();
}
else
{
$args['start'] =
$GLOBALS['phpgw']->db->dbtimestamp(time());
$args['end'] =
$GLOBALS['phpgw']->db->dbtimestamp(time());
$args['status'] = 0;
$dbresult =
$GLOBALS['phpgw']->db->execute("
INSERT INTO phpgw_tasks
(task_owner,
task_responsible,
task_subject,
task_category,
task_description,
task_priority,
task_start,
task_end,
task_status,
task_access,
task_dm_type,
task_modified,
task_created)
VALUES
(" .
$GLOBALS['phpgw_data']['user']['id'] . ",
0,
'" . $args['subject'] .
"',
" . $args['category'] .
",
'" .
$args['description'] . "',
" . $args['priority'] .
",
" . $args['start'] . ",
" . $args['end'] . ",
'" . $args['status'] .
"',
'" .
$args['task_access'] . "',
'N',
now(),
now())");
$dbresult =
$GLOBALS['phpgw']->db->execute("SELECT * FROM phpgw_tasks "
. "WHERE task_subject='" .
$args['subject'] . "' and task_description='" . $args['description']
. "' ORDER BY task_created
desc");
$task_id =
$dbresult->fields['task_id'];
if ($task_id)
{
$history_data = array
(
'task_owner' =>
$dbresult->fields['task_owner'],
'task_subject' =>
$dbresult->fields['task_subject'],
'task_category' =>
$dbresult->fields['task_category'],
'task_description' =>
$dbresult->fields['task_description'],
'task_priority' =>
$dbresult->fields['task_priority'],
'task_start' =>
$dbresult->fields['task_start'],
'task_end' =>
$dbresult->fields['task_end'],
'task_status' =>
$dbresult->fields['task_status']
);
$this->history =
createObject('api_history');
$this->history->set('tasks.' .
$task_id,$history_data,array());
$GLOBALS['msgbox']->add(lang('Task has been successfully created'),'notice');
if ($args['dm_type'] == 'D')
{
execMethod('api.datamine._set',array('location_from' =>
$args['datamine_location'], 'location_to' => 'tasks.base.' . $task_id));
}
return $this->view($task_id);
}
}
}
else
{
$this->set_cache_value('subject',$args);
$this->set_cache_value('description',$args);
$this->set_cache_value('priority',$args);
$this->set_cache_value('start_date',$args);
$this->set_cache_value('start_time',$args);
$this->set_cache_value('end_date',$args);
$this->set_cache_value('end_time',$args);
$this->set_cache_value('status',$args);
$GLOBALS['phpgw_session']['phpgw_data']['statecache']['tasks.base.create'] =
array
(
'subject' => $args['subject'],
'description' => $args['description'],
'category' => $args['category'],
'priority' => $args['priority'],
'start_date' => $args['start_date'],
'start_time' => $args['start_time'],
'end_date' => $args['end_date'],
'end_time' => $args['end_time'],
'status' => $args['status']
);
$result['task_data'] =
$GLOBALS['phpgw_session']['phpgw_data']['statecache']['tasks.base.create'];
//$GLOBALS['phpgw']->form_lock();
}
$selected_tab[$args['select_tab'] - 1] = 1;
$result['tab_widget'] = array(
0 => array
(
'title' => lang('Description'),
'op' =>
'tasks.base.create&select_tab=1',
'current' => ($selected_tab[0] ?
$selected_tab[0] : 0)
),
1 => array
(
'title' => lang('Delegation'),
'op' =>
'tasks.base.create&select_tab=2',
'current' => ($selected_tab[1] ?
$selected_tab[1] : 0)
),
2 => array
(
'title' => lang('ACL'),
'op' =>
'tasks.base.create&select_tab=3',
'current' => ($selected_tab[2] ?
$selected_tab[2] : 0)
)
);
//$GLOBALS['phpgw']->form_lock();
$result['current_tab_index'] = $args['select_tab'];
$result['action_type'] = 'task_create';
return $result;
}
function view()
{
$args = new safe_args();
$args->set('task_id',REQUIRED,'number');
$args->set('select_tab',1,'number');
$args = $args->get(func_get_args());
$dbresult = $GLOBALS['phpgw']->db->execute("SELECT *
from phpgw_tasks WHERE task_owner="
. $GLOBALS['phpgw_data']['user']['id'] . " AND
task_id=" . $args['task_id']);
if (! $GLOBALS['phpgw']->acl->check('tasks.' .
$args['task_id'],PHPGW_ACL_READ))
{
$GLOBALS['phpgw']->interface->access_denied('this record');
return array();
}
else if ($db->EOF)
{
$GLOBALS['msgbox']->add(lang('Record not
found'),'notice');
return array();
}
$GLOBALS['phpgw']->add_appmenu('Task manager
menu','Edit task','tasks.base.edit&task_id=' . $args['task_id']);
$GLOBALS['phpgw']->add_appmenu('Task manager
menu','Delete task','tasks.base.delete&task_id=' . $args['task_id']);
$result['action_type'] = 'task_view';
$result['task_data'] =
$this->__get_record(&$dbresult);
$this->history =
createObject('api_history');
$this->__set_history_fields();
$this->history->field_execMethod['task_category'] =
'tasks.base._temp_cat';
$this->history->field_execMethod['task_status'] =
'tasks.base._convert_status';
$this->history->field_execMethod['task_priority'] =
'tasks.base._convert_priority';
//$this->history->field_execMethod['task_owner'] =
'api.accounts.id2name';
//echo "TASK: " . $args['task_id'];
$result['history_data'] = $this->history->get('tasks.'
. $args['task_id']);
if (! $args['select_tab'])
{
$args['select_tab'] = 1;
}
$selected_tab[$args['select_tab'] - 1] = 1;
$result['tab_widget'] = array
(
0 => array
(
'title' => lang('Description'),
'op' =>
'tasks.base.view&select_tab=1&task_id=' . $args['task_id'],
'current' => ($selected_tab[0] ?
$selected_tab[0] : 0)
),
1 => array
(
'title' => lang('Delegation'),
'op' =>
'tasks.base.view&select_tab=2&task_id=' . $args['task_id'],
'current' => ($selected_tab[1] ?
$selected_tab[1] : 0)
),
2 => array
(
'title' => lang('ACL'),
'op' =>
'tasks.base.view&select_tab=3&task_id=' . $args['task_id'],
'current' => ($selected_tab[2] ?
$selected_tab[2] : 0)
)
);
$result['current_tab_index'] = $args['select_tab'];
$result['datamine'] =
execMethod('api.datamine._get','tasks.base.' . $args['task_id']);
return $result;
}
function _datamine_get()
{
$args = new safe_args();
$args->set('task_id',REQUIRED,'number');
$args = $args->get(func_get_args());
$GLOBALS['phpgw']->add_xsl('tasks.widgets');
// FIXME: This needs ACL check and it needs to check
for task_dm_type of D
$dbresult = $GLOBALS['phpgw']->db->execute("SELECT *
from phpgw_tasks WHERE task_owner="
. $GLOBALS['phpgw_data']['user']['id']);
return $this->__get_record(&$dbresult);
}
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Phpgroupware-cvs] tasks/class.base.php, 1.1.2.1,
nomail <=