Move resources to new API

This commit is contained in:
Nathan Gray 2016-05-05 20:22:04 +00:00
parent ded2edee17
commit cedab0ab00
19 changed files with 189 additions and 347 deletions

View File

@ -2,12 +2,15 @@
/**
* EGroupWare - resources
*
* @license http://www.gnu.org/licenses/gpl.html GNU General Public License
* @license http://www.gnu.org/licenses/gpl.Api\Html GNU General Public License
* @package resources
* @link http://www.egroupware.org
* @version $Id$
*/
use EGroupware\Api;
use EGroupware\Api\Acl;
/**
* ACL business object for resources
*
@ -30,7 +33,7 @@ class bo_acl
/**
* Instance of categories class for resources
*
* @var categories
* @var egw_cats
*/
var $egw_cats;
@ -46,7 +49,7 @@ class bo_acl
define('EGW_ACL_DIRECT_BOOKING',128);
define('EGW_ACL_CALREAD',256);
$this->egw_cats = new categories($user, 'resources');
$this->egw_cats = new Api\Categories($user, 'resources');
$this->debug = False;
//all this is only needed when called from uiacl.
@ -86,7 +89,7 @@ class bo_acl
* get list of cats where current user has given rights
*
* @author Cornelius Weiss <egw@von-und-zu-weiss.de>
* @param int $perm_type one of EGW_ACL_READ, EGW_ACL_ADD, EGW_ACL_EDIT, EGW_ACL_DELETE, EGW_ACL_DIRECT_BOOKING
* @param int $perm_type one of Acl::READ, Acl::ADD, Acl::EDIT, Acl::DELETE, EGW_ACL_DIRECT_BOOKING
* @param int $parent_id=0 cat_id of parent to return only children of that category
* @return array cat_id => cat_name
* TODO mark subcats and so on!
@ -186,7 +189,7 @@ class bo_acl
/**
* checks one of the following rights for current user:
*
* EGW_ACL_READ, EGW_ACL_ADD, EGW_ACL_EDIT, EGW_ACL_DELETE, EGW_ACL_DIRECT_BOOKING
* Acl::READ, Acl::ADD, Acl::EDIT, Acl::DELETE, EGW_ACL_DIRECT_BOOKING
*
* @param int $cat_id
* @param int $right
@ -226,12 +229,12 @@ class bo_acl
'limit' => $this->limit,
);
if($this->debug) { echo '<br>Read:'; _debug_array($data); }
$GLOBALS['egw']->session->appsession('session_data','resources_acl',$data);
Api\Cache::setSession('resources_acl', 'session_data', $data);
}
function read_sessiondata()
{
$data = $GLOBALS['egw']->session->appsession('session_data','resources_acl');
$data = Api\Cache::getSession('resources_acl', 'session_data');
if($this->debug) { echo '<br>Read:'; _debug_array($data); }
$this->start = $data['start'];
@ -258,8 +261,8 @@ class bo_acl
{
$account_id = $account['account_id'];
$rights = false;
$rights = in_array($account_id,$readcat) ? ($rights | EGW_ACL_READ) : false;
$rights = in_array($account_id,$writecat) ? ($rights | EGW_ACL_READ | EGW_ACL_ADD | EGW_ACL_EDIT | EGW_ACL_DELETE): $rights;
$rights = in_array($account_id,$readcat) ? ($rights | Acl::READ) : false;
$rights = in_array($account_id,$writecat) ? ($rights | Acl::READ | Acl::ADD | Acl::EDIT | Acl::DELETE): $rights;
$rights = in_array($account_id,$calreadcat) ? ($rights | EGW_ACL_CALREAD) : $rights;
$rights = in_array($account_id,$calbookcat) ? ($rights | EGW_ACL_DIRECT_BOOKING | EGW_ACL_CALREAD) : $rights;
$rights = in_array($account_id,$admincat) ? ($rights = 511) : $rights;

View File

@ -10,6 +10,11 @@
* @version $Id$
*/
use EGroupware\Api;
use EGroupware\Api\Link;
use EGroupware\Api\Egw;
use EGroupware\Api\Acl;
use EGroupware\Api\Vfs;
/**
* General business object for resources
@ -29,13 +34,13 @@ class resources_bo
*/
var $so;
/**
* Instance of resources acl class
* Instance of resources Acl class
*
* @var bo_acl
*/
var $acl;
/**
* Instance of categories class for resources
* Instance of Api\Categories class for resources
*/
var $cats;
@ -69,7 +74,7 @@ class resources_bo
/**
* Constructor
*
* @param int $user=null account_id of user to use for acl, default current user
* @param int $user=null account_id of user to use for Acl, default current user
*/
function __construct($user=null)
{
@ -78,9 +83,9 @@ class resources_bo
$this->cats = $this->acl->egw_cats;
$this->cal_right_transform = array(
EGW_ACL_CALREAD => EGW_ACL_READ,
EGW_ACL_DIRECT_BOOKING => EGW_ACL_READ | EGW_ACL_ADD | EGW_ACL_EDIT | EGW_ACL_DELETE,
EGW_ACL_CAT_ADMIN => EGW_ACL_READ | EGW_ACL_ADD | EGW_ACL_EDIT | EGW_ACL_DELETE,
EGW_ACL_CALREAD => Acl::READ,
EGW_ACL_DIRECT_BOOKING => Acl::READ | Acl::ADD | Acl::EDIT | Acl::DELETE,
EGW_ACL_CAT_ADMIN => Acl::READ | Acl::ADD | Acl::EDIT | Acl::DELETE,
);
}
@ -93,11 +98,11 @@ class resources_bo
{
if(!$query['csv_export'])
{
$GLOBALS['egw']->session->appsession('session_data','resources_index_nm',$query);
Api\Cache::setSession('resources', 'index_nm', $query);
}
if ($query['store_state']) // request to store state in session and filter in prefs?
{
egw_cache::setSession('resources',$query['store_state'],$query);
Api\Cache::setSession('resources',$query['store_state'],$query);
//echo "<p>".__METHOD__."() query[filter]=$query[filter], prefs[resources][filter]={$GLOBALS['egw_info']['user']['preferences']['resources']['filter']}</p>\n";
if ($query['filter'] != $GLOBALS['egw_info']['user']['preferences']['resources']['filter'])
{
@ -147,7 +152,7 @@ class resources_bo
if ($query['filter'])
{
if (($children = $this->acl->get_cats(EGW_ACL_READ,$query['filter'])))
if (($children = $this->acl->get_cats(Acl::READ,$query['filter'])))
{
$filter['cat_id'] = array_keys($children);
$filter['cat_id'][] = $query['filter'];
@ -157,7 +162,7 @@ class resources_bo
$filter['cat_id'] = $query['filter'];
}
}
elseif (($readcats = $this->acl->get_cats(EGW_ACL_READ)))
elseif (($readcats = $this->acl->get_cats(Acl::READ)))
{
$filter['cat_id'] = array_keys($readcats);
}
@ -189,10 +194,10 @@ class resources_bo
return $nr;
}
$config = config::read('resources');
$config = Api\Config::read('resources');
foreach($rows as $num => &$resource)
{
if (!$this->acl->is_permitted($resource['cat_id'],EGW_ACL_EDIT))
if (!$this->acl->is_permitted($resource['cat_id'],Acl::EDIT))
{
$readonlys["edit[$resource[res_id]]"] = true;
}
@ -200,14 +205,14 @@ class resources_bo
{
$resource['class'] .= 'deleted ';
}
if (!$this->acl->is_permitted($resource['cat_id'],EGW_ACL_DELETE) ||
if (!$this->acl->is_permitted($resource['cat_id'],Acl::DELETE) ||
($resource['deleted'] && !$GLOBALS['egw_info']['user']['apps']['admin'] && $config['history'] == 'history')
)
{
$readonlys["delete[$resource[res_id]]"] = true;
$resource['class'] .= 'no_delete ';
}
if ((!$this->acl->is_permitted($resource['cat_id'],EGW_ACL_ADD)) ||
if ((!$this->acl->is_permitted($resource['cat_id'],Acl::ADD)) ||
// Allow new accessory action when viewing accessories of a certain resource
$query['filter2'] <= 0 && $resource['accessory_of'] != -1)
{
@ -266,7 +271,7 @@ class resources_bo
$rows[$num]['admin'] = $this->acl->get_cat_admin($resource['cat_id']);
}
if(!config::get_customfields('resources'))
if(!Api\Storage\Customfields::get('resources'))
{
$rows['no_customfields'] = true;
}
@ -286,7 +291,7 @@ class resources_bo
{
return null; // not found
}
if (!$this->acl->is_permitted($data['cat_id'],EGW_ACL_READ))
if (!$this->acl->is_permitted($data['cat_id'],Acl::READ))
{
return false; // permission denied
}
@ -302,7 +307,7 @@ class resources_bo
*/
function save($resource)
{
if(!$this->acl->is_permitted($resource['cat_id'],EGW_ACL_EDIT))
if(!$this->acl->is_permitted($resource['cat_id'],Acl::EDIT))
{
return lang('You are not permitted to edit this resource!');
}
@ -311,13 +316,13 @@ class resources_bo
if(!$resource['res_id'])
{
$resource['res_owner'] = $GLOBALS['egw_info']['user']['account_id'];
$resource['res_created'] = egw_time::server2user(time(),'ts');
$resource['res_created'] = Api\DateTime::server2user(time(),'ts');
$resource['res_id'] = $this->so->save($resource);
}
else
{
$resource['res_modifier'] = $GLOBALS['egw_info']['user']['account_id'];
$resource['res_modified'] = egw_time::server2user(time(),'ts');
$resource['res_modified'] = Api\DateTime::server2user(time(),'ts');
$old = $this->read($resource['res_id']);
}
@ -360,7 +365,7 @@ class resources_bo
// Check for restore of deleted, restore held links
if($old && $old['deleted'] && !$resource['deleted'])
{
egw_link::restore('resources', $resource['res_id']);
Link::restore('resources', $resource['res_id']);
}
// delete old pictures
@ -370,22 +375,22 @@ class resources_bo
}
// Update link title
egw_link::notify_update('resources',$resource['res_id'], $resource);
Link::notify_update('resources',$resource['res_id'], $resource);
// save links
if(is_array($resource['link_to']['to_id']))
{
egw_link::link('resources',$resource['res_id'],$resource['link_to']['to_id']);
Link::link('resources',$resource['res_id'],$resource['link_to']['to_id']);
}
if($resource['accessory_of'] != $old['accessory_of'])
{
egw_link::unlink(0,'resources',$resource['res_id'],'','resources',$old['accessory_of']);
Link::unlink(0,'resources',$resource['res_id'],'','resources',$old['accessory_of']);
// Check for resource changing to accessory - move its accessories to resource
if($old['accessory_of'] == -1 && $accessories = $this->get_acc_list($resource['res_id']))
{
foreach($accessories as $accessory => $name)
{
egw_link::unlink(0,'resources',$accessory,'','resources',$resource['res_id']);
Link::unlink(0,'resources',$accessory,'','resources',$resource['res_id']);
$acc = $this->read($accessory);
$acc['accessory_of'] = -1;
$this->so->save($acc);
@ -394,7 +399,7 @@ class resources_bo
}
if($resource['accessory_of'] != -1)
{
egw_link::link('resources',$resource['res_id'],'resources',$resource['accessory_of']);
Link::link('resources',$resource['res_id'],'resources',$resource['accessory_of']);
}
if(!empty($resource['res_id']) && $this->so->get_value("cat_id",$resource['res_id']) != $resource['cat_id'] && $resource['accessory_of'] == -1)
@ -432,19 +437,19 @@ class resources_bo
*/
function delete($res_id)
{
if(!$this->acl->is_permitted($this->so->get_value('cat_id',$res_id),EGW_ACL_DELETE))
if(!$this->acl->is_permitted($this->so->get_value('cat_id',$res_id),Acl::DELETE))
{
return lang('You are not permitted to delete this resource!');
}
// check if we only mark resources as deleted, or really delete them
$old = $this->read($res_id);
$config = config::read('resources');
$config = Api\Config::read('resources');
if ($config['history'] != '' && $old['deleted'] == null)
{
$old['deleted'] = time();
$this->save($old);
egw_link::unlink(0,'resources',$res_id,'','','',true);
Link::unlink(0,'resources',$res_id,'','','',true);
$accessories = $this->get_acc_list($res_id);
foreach($accessories as $acc_id => $name)
{
@ -454,7 +459,7 @@ class resources_bo
{
$acc['deleted'] = time();
$this->save($acc);
egw_link::unlink(0,'resources',$acc_id,'','','',true);
Link::unlink(0,'resources',$acc_id,'','','',true);
}
}
return false;
@ -472,7 +477,7 @@ class resources_bo
}
};
$this->remove_picture($res_id);
egw_link::unlink(0,'resources',$res_id);
Link::unlink(0,'resources',$res_id);
// delete the resource from the calendar
ExecMethod('calendar.calendar_so.deleteaccount','r'.$res_id);
return false;
@ -533,7 +538,7 @@ class resources_bo
$resource['responsible'] = $this->acl->get_cat_admin($resource['cat_id']);
// preseed the cache
egw_link::set_cache('resources',$resource['res_id'],$t=$this->link_title($resource));
Link::set_cache('resources',$resource['res_id'],$t=$this->link_title($resource));
}
return $data;
}
@ -577,13 +582,13 @@ class resources_bo
$only_keys = 'res_id,name,short_description,bookable,useable';
// If no read access to any category, just stop
if(!$this->acl->get_cats(EGW_ACL_READ))
if(!$this->acl->get_cats(Acl::READ))
{
$options['total'] = 0;
return array();
}
$filter = array(
'cat_id' => array_flip((array)$this->acl->get_cats(EGW_ACL_READ)),
'cat_id' => array_flip((array)$this->acl->get_cats(Acl::READ)),
//'accessory_of' => '-1'
'deleted' => null
);
@ -610,11 +615,11 @@ class resources_bo
{
$this->bocal = new calendar_bo();
}
$start = new egw_time($cal_info['start']);
$start = new Api\DateTime($cal_info['start']);
$startarr= getdate($start->format('ts'));
if (isset($cal_info['whole_day']) && $cal_info['whole_day']) {
$startarr['hour'] = $startarr['minute'] = 0;
$start = new egw_time($startarr);
$start = new Api\DateTime($startarr);
$end = $start->format('ts') + 86399;
} else {
$start = $start->format('ts');
@ -717,7 +722,7 @@ class resources_bo
{
if (!($resource = $this->read(array('res_id' => $resource)))) return $resource;
}
elseif (!$this->acl->is_permitted($resource['cat_id'],EGW_ACL_READ))
elseif (!$this->acl->is_permitted($resource['cat_id'],Acl::READ))
{
return false;
}
@ -748,7 +753,7 @@ class resources_bo
$titles[$resource['res_id']] = $this->link_title($resource);
}
}
// we assume all not returned contacts are not readable for the user (as we report all deleted contacts to egw_link)
// we assume all not returned contacts are not readable for the user (as we report all deleted contacts to Link)
foreach($ids as $id)
{
if (!isset($titles[$id]))
@ -790,7 +795,7 @@ class resources_bo
imagejpeg($src_img,$tmp_name);
imagedestroy($src_img);
egw_link::attach_file('resources',$resouce_id,array(
Link::attach_file('resources',$resouce_id,array(
'tmp_name' => $tmp_name,
'name' => self::PICTURE_NAME,
'type' => 'image/jpeg',
@ -811,22 +816,21 @@ class resources_bo
switch($resource['picture_src'])
{
case 'own_src':
$picture = egw_link::vfs_path('resources',$resource['res_id'],self::PICTURE_NAME,true); // vfs path
$picture = Link::vfs_path('resources',$resource['res_id'],self::PICTURE_NAME,true); // vfs path
if ($fullsize)
{
$picture = egw::link(egw_vfs::download_url($picture));
$picture = Egw::link(Vfs::download_url($picture));
}
else
{
$picture = egw::link('/etemplate/thumbnail.php', array(
$picture = Egw::link('/api/thumbnail.php', array(
'path' => $picture
),false);
}
break;
case 'cat_src':
list($picture) = $this->cats->return_single($resource['cat_id']);
$picture = unserialize($picture['data']);
$picture = Api\Categories::id2name($resource['cat_id'], 'data');
if($picture['icon'])
{
$picture = !$fullsize?$GLOBALS['egw_info']['server']['webserver_url'].'/phpgwapi/images/'.$picture['icon']:'/phpgwapi/images/'.$picture['icon'];
@ -851,7 +855,7 @@ class resources_bo
*/
function remove_picture($res_id)
{
if (($arr = egw_link::delete_attached('resources',$res_id,self::PICTURE_NAME)) && is_array($arr))
if (($arr = Link::delete_attached('resources',$res_id,self::PICTURE_NAME)) && is_array($arr))
{
return array_shift($arr); // $arr = array($path => (bool)$ok);
}

View File

@ -22,8 +22,8 @@ class resources_egw_record implements importexport_iface_egw_record
private $record = array();
static $types = array(
'date-time' => array(),
'select-cat' => array('cat_id'),
'date-time' => array(),
'select-cat' => array('cat_id'),
'select-bool' => array('bookable'),
// Links is field name => app name
'links' => array('accessory_of' => 'resources')

View File

@ -11,6 +11,9 @@
* @version $Id$
*/
use EGroupware\Api;
use EGroupware\Api\Acl;
/**
* export resources to CSV
*/
@ -34,7 +37,7 @@ class resources_export_csv implements importexport_iface_export_plugin {
$selection = array();
if ($options['selection'] == 'search') {
// ui selection with checkbox 'selected'
$query = egw_cache::getSession('resources', 'get_rows');
$query = Api\Cache::getSession('resources', 'get_rows');
$query['num_rows'] = -1; // all
unset($query['store_state']);
$query['csv_export'] = true; // so get_rows method _can_ produce different content or not store state in the session
@ -83,7 +86,7 @@ class resources_export_csv implements importexport_iface_export_plugin {
// Check if we need to load the custom fields
$need_custom = false;
foreach(config::get_customfields('resources') as $field => $settings) {
foreach(Api\Storage\Customfields::get('resources') as $field => $settings) {
if($options['mapping']['#'.$field]) {
$need_custom = true;
break;
@ -179,7 +182,7 @@ class resources_export_csv implements importexport_iface_export_plugin {
// In resources, not all categories are used
$filters['cat_id']['type'] = 'select';
$filters['cat_id']['name'] = 'filter';
$filters['cat_id']['values']= (array)$this->bo->acl->get_cats(EGW_ACL_READ);
$filters['cat_id']['values']= (array)$this->bo->acl->get_cats(Acl::READ);
// Add in resources / accessories
$filters['filter2'] = array(

View File

@ -10,6 +10,11 @@
* @version $Id$
*/
use EGroupware\Api;
use EGroupware\Api\Framework;
use EGroupware\Api\Egw;
use EGroupware\Api\Acl;
/**
* General hook object for resources
* It encapsulats all the diffent hook methods
@ -27,17 +32,17 @@ class resources_hooks
if ($location == 'sidebox_menu')
{
// Magic etemplate2 favorites menu (from nextmatch widget)
display_sidebox($appname, lang('Favorites'), egw_framework::favorite_list($appname, 'nextmatch-resources.show.rows-favorite'));
display_sidebox($appname, lang('Favorites'), Framework\Favorites::list_favorites($appname, 'nextmatch-resources.show.rows-favorite'));
$title = $GLOBALS['egw_info']['apps']['resources']['title'].' '.lang('Menu');
$file = array(
'Resources list' => egw::link('/index.php',array(
'Resources list' => Egw::link('/index.php',array(
'menuaction' => 'resources.resources_ui.index',
'ajax' => 'true')),
);
if($this->acl->get_cats(EGW_ACL_ADD))
if($this->acl->get_cats(Acl::ADD))
{
$file['Add resource'] = "javascript:egw_openWindowCentered2('".egw::link('/index.php',array(
$file['Add resource'] = "javascript:egw_openWindowCentered2('".Egw::link('/index.php',array(
'menuaction' => 'resources.resources_ui.edit',
'accessory_of' => -1
),false)."','_blank',800,600,'yes')";
@ -48,12 +53,12 @@ class resources_hooks
if ($GLOBALS['egw_info']['user']['apps']['admin'])
{
$file = Array(
'Site Configuration' => egw::link('/index.php','menuaction=admin.admin_config.index&appname=' . $appname.'&ajax=true'),
'Global Categories' => egw::link('/index.php',array(
'Site Configuration' => Egw::link('/index.php','menuaction=admin.admin_config.index&appname=' . $appname.'&ajax=true'),
'Global Categories' => Egw::link('/index.php',array(
'menuaction' => 'admin.admin_categories.index',
'appname' => $appname,
'global_cats'=> true)),
'Configure Access Permissions' => egw::link('/index.php',
'Configure Access Permissions' => Egw::link('/index.php',
'menuaction=resources.ui_acl.acllist'),
'Custom Fields'=>egw::link('/index.php',
'menuaction=admin.customfields.index&appname=resources'),
@ -112,14 +117,14 @@ class resources_hooks
*/
function delete_category($args)
{
$cat = categories::read($args['cat_id']);
$cat = Api\Categories::read($args['cat_id']);
if(!$cat) return; // Can't find current cat?
if($cat['parent'] == 0)
{
// No parent, try the default cat from setup
$categories = new categories('', 'resources');
$categories = new Api\Categories('', 'resources');
$default = $categories->name2id('General resources');
if($default)
{
@ -214,7 +219,7 @@ class resources_hooks
}
/**
* Hook to tell framework we use only global categories (return link data in that case and false otherwise)
* Hook to tell framework we use only global Api\Categories (return link data in that case and false otherwise)
*
* @param string|array $data hook-data or location
* @return boolean|array

View File

@ -11,6 +11,7 @@
* @version $Id$
*/
use EGroupware\Api;
/**
* class to import resources from CSV
@ -191,7 +192,7 @@ class resources_import_csv extends importexport_basic_import_csv {
}
}
default:
throw new egw_exception('Unsupported action');
throw new Api\Exception('Unsupported action');
}
}

View File

@ -10,6 +10,10 @@
* @version $Id$
*/
use EGroupware\Api;
use EGroupware\Api\Link;
use EGroupware\Api\Framework;
class resources_reserve {
public function __construct() {
@ -22,7 +26,7 @@ class resources_reserve {
*/
public function book($content = array(), $arguments = array())
{
egw_framework::validate_file('jscalendar','calendar');
Framework::includeJS('jscalendar','calendar');
$data = array();
$readonlys = array();
$display_days = $_GET['planner_days'] ? $_GET['planner_days'] : 3;
@ -32,11 +36,11 @@ class resources_reserve {
$register_code = ($_GET['confirm'] && preg_match('/^[0-9a-f]{32}$/',$_GET['confirm'])) ? $_GET['confirm'] : false;
if($register_code && $registration = registration_bo::confirm($register_code)) {
// Get calendar through link
$links = egw_link::get_links('registration', $registration['reg_id'],'calendar');
$links = Link::get_links('registration', $registration['reg_id'],'calendar');
$bo = new calendar_boupdate();
$data = $bo->read(current($links));
$addressbook = new addressbook_bo();
$addressbook = new Api\Contacts();
$data += $addressbook->read(key($data['participant_types']['c']));
// Show date of reservation, so they can see it blocked off
@ -50,7 +54,7 @@ class resources_reserve {
'quantity' => 0
);
calendar_so::split_status($data['participant_types']['r'][$content['resource']], $content['quantity'],$role);
$data['msg']= '<div class="confirm">'.lang('Registration confirmed %1', egw_time::to($data['start'])) .'</div>';
$data['msg']= '<div class="confirm">'.lang('Registration confirmed %1', Api\DateTime::to($data['start'])) .'</div>';
} else {
$data['msg']= '<div class="confirm">'.lang('Unable to process confirmation.').'</div>';
}
@ -83,7 +87,7 @@ class resources_reserve {
// Use sitemgr's default appointment length
if($GLOBALS['egw_info']['user']['account_lid'] != $GLOBALS['sitemgr_info']['anonymous_user'])
{
$preferences = new preferences($GLOBALS['egw']->accounts->name2id($GLOBALS['sitemgr_info']['anonymous_user']));
$preferences = new Api\Preferences($GLOBALS['egw']->accounts->name2id($GLOBALS['sitemgr_info']['anonymous_user']));
$preferences = $preferences->read_repository();
$duration = $preferences['calendar']['defaultlength'] * 60;
}
@ -93,7 +97,7 @@ class resources_reserve {
}
$end_time = $start_time + $duration;
$config = config::read('registration');
$config = Api\Config::read('registration');
// Not a user, need contact
if($GLOBALS['egw_info']['user']['account_lid'] == $GLOBALS['sitemgr_info']['anonymous_user'] && !$content['contact_id'])
@ -104,14 +108,14 @@ class resources_reserve {
$content['private'] = 0; // in case default_private is set
}
$addressbook = new addressbook_bo();
$addressbook = new Api\Contacts();
$contact_fields = $addressbook->contact_fields;
unset($contact_fields['email']); // Always present
unset($contact_fields['id']); // Address already there
if(array_intersect_key($contact_fields,$content)) {
$result = $addressbook->save($content);
if(!$result) {
throw new egw_exception_no_permission($addressbook->error);
throw new Api\Exception\NoPermission($addressbook->error);
return False;
}
@ -129,7 +133,7 @@ class resources_reserve {
if($contact) {
// Make event
$event = array(
'title' => egw_link::title('addressbook', $contact_id),
'title' => Link::title('addressbook', $contact_id),
'start' => $start_time,
'end' => $end_time,
'participants' => array(
@ -160,7 +164,7 @@ class resources_reserve {
$data += $content;
$data['msg'] = lang('Please choose a different time:')."\n";
foreach($freetime as $slot) {
$data['msg'] .= egw_time::to($slot['start']) . ' - ' . egw_time::to($slot['end'])."<br />\n";
$data['msg'] .= Api\DateTime::to($slot['start']) . ' - ' . Api\DateTime::to($slot['end'])."<br />\n";
}
}
elseif ($preserve['confirmation'] && $contact_id && $result)
@ -175,21 +179,21 @@ class resources_reserve {
if(is_numeric($reg_id))
{
// Link to event
egw_link::link('registration', $reg_id, 'calendar', $result);
Link::link('registration', $reg_id, 'calendar', $result);
$reg = registration_bo::read($reg_id);
// Send email
$email_info = $config + array(
'title' => $data['name'],
'subject' => $data['name'] . ' ' . egw_time::to($start_time),
'subject' => $data['name'] . ' ' . Api\DateTime::to($start_time),
'link' => $preserve['link'],
);
if($preserve['email_message'])
{
$email_info['message'] = lang($preserve['email_message'],
egw_time::to($start_time),
Api\DateTime::to($start_time),
$preserve['link'].'&confirm='.$reg['register_code'],
egw_time::to($reg['timestamp'])
Api\DateTime::to($reg['timestamp'])
);
}
$data['msg'] .= registration_bo::send_confirmation($email_info, $reg);
@ -219,7 +223,7 @@ class resources_reserve {
// Use sitemgr's default appointment length
if($GLOBALS['egw_info']['user']['account_lid'] != $GLOBALS['sitemgr_info']['anonymous_user'])
{
$preferences = new preferences($GLOBALS['egw']->accounts->name2id($GLOBALS['sitemgr_info']['anonymous_user']));
$preferences = new Api\Preferences($GLOBALS['egw']->accounts->name2id($GLOBALS['sitemgr_info']['anonymous_user']));
$preferences = $preferences->read_repository();
$data['duration'] = $preferences['calendar']['defaultlength'];
}
@ -263,7 +267,7 @@ class resources_reserve {
}
public function ajax_update_planner($resource_id, $date) {
$response = egw_json_response::get();
$response = Api\Json\Response::get();
$response->assign('exec[planner_div]','innerHTML',$this->get_planner(
$resource_id,
strtotime('yesterday',$date),
@ -314,7 +318,7 @@ class resources_reserve {
public function confirm($registration)
{
// Get calendar through link
$links = egw_link::get_links('registration', $registration['reg_id'],'calendar');
$links = Link::get_links('registration', $registration['reg_id'],'calendar');
$bo = new calendar_boupdate();
$event = $bo->read(current($links));
if($registration['status'] == registration_bo::CONFIRMED)

View File

@ -1,106 +0,0 @@
<?php
/**
* eGroupWare - eTemplate Extension - Resource Select Widgets
*
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
* @package resources
* @link http://www.egroupware.org
* @author RalfBecker-AT-outdoor-training.de
* @version $Id$
*/
/**
* eTemplate Extension: select a resource
*
* @package resources
*/
class resources_select_widget
{
/**
* exported methods of this class
* @var array
*/
var $public_functions = array(
'pre_process' => True,
);
/**
* availible extensions and there names for the editor
* @var array
*/
var $human_name = 'Select Resources';
/**
* Constructor of the extension
*
* @param string $ui '' for html
*/
function resources_select_widget($ui)
{
$this->ui = $ui;
}
/**
* pre-processing of the extension
*
* This function is called before the extension gets rendered
*
* @param string $name form-name of the control
* @param mixed &$value value / existing content, can be modified
* @param array &$cell array with the widget, can be modified for ui-independent widgets
* @param array &$readonlys names of widgets as key, to be made readonly
* @param mixed &$extension_data data the extension can store persisten between pre- and post-process
* @param object &$tmpl reference to the template we belong too
* @return boolean true if extra label is allowed, false otherwise
*/
function pre_process($name,&$value,&$cell,&$readonlys,&$extension_data,&$tmpl)
{
if ($cell['readonly'] && !is_array($value))
{
// no acl check here cause names are allways viewable
list($res_id,$quantity) = explode(':',$value);
$data = ExecMethod('resources.resources_bo.get_calendar_info',$res_id);
$cell['type'] = 'label';
$value = $data[0]['name']. ($data[0]['useable'] > 1 ? ' ['. ($quantity > 1 ? $quantity : 1). '/'. $data[0]['useable']. ']' : '');
return true;
}
if (!$GLOBALS['egw_info']['user']['apps']['resources'])
{
$cell = $tmpl->empty_cell();
$cell['label'] = 'no resources';
return false;
}
$tpl = new etemplate('resources.resource_selectbox');
// keep the editor away from the generated tmpls
$tpl->no_onclick = true;
if ($value)
{
$value = is_array($value) ? $value : explode(',',$value);
foreach((array)$value as $id)
{
list($res_id,$quantity) = explode(':',$id);
$data = ExecMethod('resources.resources_bo.get_calendar_info',$res_id);
$sel_options[$data[0]['res_id'].($quantity > 1 ? (':'.$quantity) : '')] =
$data[0]['name'].' ['.($quantity > 1 ? $quantity : 1).'/'.$data[0]['useable'].']';
}
$tpl->set_cell_attribute('resources','sel_options',$sel_options);
}
$tpl->set_cell_attribute('resources','size',(int)$cell['size'].'+');
$tpl->set_cell_attribute('resources','label',$cell['label']);
$tpl->set_cell_attribute('resources','id','resources_selectbox');
$tpl->set_cell_attribute('resources','name',$cell['name']);
if ($cell['help'])
{
$tpl->set_cell_attribute('resources','help',$cell['help']);
$tpl->set_cell_attribute('popup','label',$cell['help']);
}
$cell['type'] = 'template';
$cell['size'] = $cell['label'] = '';
$cell['name'] = 'resources.resource_selectbox';
$cell['obj'] =& $tpl;
return True; // extra Label Ok
}
}

View File

@ -10,13 +10,15 @@
* @version $Id$
*/
use EGroupware\Api;
/**
* General storage object for resources
*
* @author Cornelius Weiss <egw@von-und-zu-weiss.de>
* @package resources
*/
class resources_so extends so_sql_cf
class resources_so extends Api\Storage
{
function __construct()
{

View File

@ -6,17 +6,18 @@
* @copyright 2012 Nathan Gray
* @package resources
* @sub-package history
* @see bo_tracking
* @see Api\Storage\Tracking
*
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
* @version $Id$
*/
use EGroupware\Api;
/**
* Resources - tracking object for history
*/
class resources_tracking extends bo_tracking
class resources_tracking extends Api\Storage\Tracking
{

View File

@ -10,6 +10,12 @@
* @version $Id$
*/
use EGroupware\Api;
use EGroupware\Api\Link;
use EGroupware\Api\Framework;
use EGroupware\Api\Acl;
use EGroupware\Api\Etemplate;
/**
* General userinterface object for resources
*
@ -31,7 +37,7 @@ class resources_ui
function __construct()
{
// print_r($GLOBALS['egw_info']); die();
$this->tmpl = new etemplate_new('resources.show');
$this->tmpl = new Etemplate('resources.show');
$this->bo = new resources_bo();
// $this->calui = CreateObject('resources.ui_calviews');
}
@ -49,7 +55,7 @@ class resources_ui
{
$sessiondata = $content['nm'];
unset($sessiondata['rows']);
$GLOBALS['egw']->session->appsession('session_data','resources_index_nm',$sessiondata);
Api\Cache::setSession('resources', 'index_nm', $sessiondata);
if (isset($content['btn_delete_selected']))
{
@ -72,7 +78,7 @@ class resources_ui
if(isset($row['view_acc']))
{
$sessiondata['filter2'] = array_search('pressed',$row['view_acc']);
$GLOBALS['egw']->session->appsession('session_data','resources_index_nm',$sessiondata);
Api\Cache::setSession('resources', 'index_nm', $sessiondata);
return $this->index();
}
}
@ -116,19 +122,19 @@ class resources_ui
$content['nm']['row_id'] = 'res_id';
$content['nm']['favorites'] = true;
$nm_session_data = $GLOBALS['egw']->session->appsession('session_data','resources_index_nm');
$nm_session_data = Api\Cache::getSession('resources', 'index_nm');
if($nm_session_data)
{
$content['nm'] = $nm_session_data;
}
$content['nm']['options-filter']= array(''=>lang('all categories'))+(array)$this->bo->acl->get_cats(EGW_ACL_READ);
$content['nm']['options-filter']= array(''=>lang('all categories'))+(array)$this->bo->acl->get_cats(Acl::READ);
$content['nm']['options-filter2'] = resources_bo::$filter_options;
if(!$content['nm']['filter2'])
{
$content['nm']['filter2'] = key(resources_bo::$filter_options);
}
$config = config::read('resources');
$config = Api\Config::read('resources');
if($config['history'])
{
$content['nm']['options-filter2'][resources_bo::DELETED] = lang('Deleted');
@ -146,14 +152,14 @@ class resources_ui
// check if user is permitted to add resources
// If they can't read any categories, they won't be able to save it
if(!$this->bo->acl->get_cats(EGW_ACL_ADD) || !$this->bo->acl->get_cats(EGW_ACL_READ))
if(!$this->bo->acl->get_cats(Acl::ADD) || !$this->bo->acl->get_cats(Acl::READ))
{
$no_button['add'] = $no_button['nm']['add'] = true;
}
$no_button['back'] = true;
$GLOBALS['egw_info']['flags']['app_header'] = lang('resources');
egw_framework::validate_file('.','resources','resources');
Framework::includeJS('.','resources','resources');
if($content['nm']['filter2'] > 0)
{
@ -169,7 +175,7 @@ class resources_ui
$options = array();
$GLOBALS['egw']->session->appsession('session_data','resources_index_nm',$content['nm']);
Api\Cache::setSession('resources', 'index_nm', $content['nm']);
$this->tmpl->read('resources.show');
return $this->tmpl->exec('resources.resources_ui.index',$content,$sel_options,$no_button,$preserv);
}
@ -187,14 +193,14 @@ class resources_ui
'caption' => 'open',
'allowOnMultiple' => false,
'url' => 'menuaction=resources.resources_ui.edit&res_id=$id',
'popup' => egw_link::get_registry('resources', 'add_popup'),
'popup' => Link::get_registry('resources', 'add_popup'),
'group' => $group=1,
'disableClass' => 'rowNoEdit',
),
'add' => array(
'caption' => 'New resource',
'url' => 'menuaction=resources.resources_ui.edit&accessory_of=-1',
'popup' => egw_link::get_registry('resources', 'add_popup'),
'popup' => Link::get_registry('resources', 'add_popup'),
'group' => $group,
'hideOnMobile' => true
),
@ -211,7 +217,7 @@ class resources_ui
'icon' => 'new',
'group' => $group,
'url' => 'menuaction=resources.resources_ui.edit&res_id=0&accessory_of=$id',
'popup' => egw_link::get_registry('resources', 'add_popup'),
'popup' => Link::get_registry('resources', 'add_popup'),
'disableClass' => 'no_new_accessory',
'allowOnMultiple' => false
),
@ -458,16 +464,16 @@ class resources_ui
break;
}
}
egw_framework::refresh_opener($msg, 'resources',$content['res_id'],($button == 'delete'?'delete':'edit'));
Framework::refresh_opener($msg, 'resources',$content['res_id'],($button == 'delete'?'delete':'edit'));
if($button != 'apply')
{
egw_framework::window_close();
Framework::window_close();
}
}
$nm_session_data = $GLOBALS['egw']->session->appsession('session_data','resources_index_nm');
$nm_session_data = Api\Cache::getSession('resources', 'index_nm');
$res_id = is_numeric($content) ? (int)$content : $content['res_id'];
if (isset($_GET['res_id'])) $res_id = $_GET['res_id'];
if (isset($nm_session_data['filter2']) && $nm_session_data['filter2'] > 0) $accessory_of = $nm_session_data['filter2'];
@ -520,7 +526,7 @@ class resources_ui
$sel_options['status'] = resources_bo::$field2label;
//$sel_options['gen_src_list'] = $this->bo->get_genpicturelist();
$sel_options['cat_id'] = $this->bo->acl->get_cats(EGW_ACL_ADD);
$sel_options['cat_id'] = $this->bo->acl->get_cats(Acl::ADD);
$sel_options['cat_id'] = count($sel_options['cat_id']) == 1 ? $sel_options['cat_id'] :
array('' => lang('select one')) + $sel_options['cat_id'];
if($accessory_of > 0 || $content['accessory_of'] > 0)
@ -545,12 +551,12 @@ class resources_ui
// Permissions
$read_only = array();
if($res_id && !$this->bo->acl->is_permitted($content['cat_id'],EGW_ACL_EDIT))
if($res_id && !$this->bo->acl->is_permitted($content['cat_id'],Acl::EDIT))
{
$read_only['__ALL__'] = true;
}
$config = config::read('resources');
if(!$this->bo->acl->is_permitted($content['cat_id'],EGW_ACL_DELETE) ||
$config = Api\Config::read('resources');
if(!$this->bo->acl->is_permitted($content['cat_id'],Acl::DELETE) ||
($content['deleted'] && !$GLOBALS['egw_info']['user']['apps']['admin'] && $config['history'] == 'history'))
{
$read_only['delete'] = true;
@ -564,7 +570,7 @@ class resources_ui
}
// Disable custom tab if there are no custom fields defined
$read_only['tabs']['custom'] = !(config::get_customfields('resources',true));
$read_only['tabs']['custom'] = !(Api\Storage\Customfields::get('resources',true));
$read_only['tabs']['history'] = ($content['history']['id'] != 0?false:true);
$preserv = $content;

View File

@ -10,6 +10,8 @@
* @version $Id$
*/
use EGroupware\Api;
class resources_wizard_export_csv extends importexport_wizard_basic_export_csv
{
public function __construct() {
@ -23,7 +25,7 @@ class resources_wizard_export_csv extends importexport_wizard_basic_export_csv
unset($this->export_fields['prize']);
// Custom fields
$custom = config::get_customfields('resources', true);
$custom = Api\Storage\Customfields::get('resources', true);
foreach($custom as $name => $data) {
$this->export_fields['#'.$name] = $data['label'];
}

View File

@ -10,6 +10,8 @@
* @version $Id$
*/
use EGroupware\Api;
class resources_wizard_import_csv extends importexport_wizard_basic_import_csv
{
@ -44,7 +46,7 @@ class resources_wizard_import_csv extends importexport_wizard_basic_import_csv
'accessory_of' => lang('Accessory of')
);
$custom = config::get_customfields('resources', true);
$custom = Api\Storage\Customfields::get('resources', true);
foreach($custom as $name => $data) {
$this->mapping_fields['#'.$name] = $data['label'];
}

View File

@ -2,12 +2,16 @@
/**
* eGroupWare - resources
*
* @license http://www.gnu.org/licenses/gpl.html GNU General Public License
* @license http://www.gnu.org/licenses/gpl.Api\Html GNU General Public License
* @package resources
* @link http://www.egroupware.org
* @version $Id$
*/
use EGroupware\Api;
use EGroupware\Api\Egw;
use EGroupware\Api\Acl;
/**
* ACL userinterface object for resources
*
@ -46,10 +50,10 @@ class ui_acl
if ($_POST['btnDone'])
{
egw::redirect_link('/admin/index.php');
Egw::redirect_link('/admin/index.php');
}
common::egw_header();
$GLOBALS['egw']->framework->header();
echo parse_navbar();
if ($_POST['btnSave'])
@ -59,7 +63,7 @@ class ui_acl
$this->bo->set_rights($cat_id,$_POST['inputread'][$cat_id],$_POST['inputwrite'][$cat_id],
$_POST['inputcalread'][$cat_id],$_POST['inputcalbook'][$cat_id],$_POST['inputadmin'][$cat_id]);
}
config::save_value('location_cats', implode(',', $_POST['location_cats']), 'resources');
Api\Config::save_value('location_cats', implode(',', $_POST['location_cats']), 'resources');
}
$template =& CreateObject('phpgwapi.Template',EGW_APP_TPL);
$template->set_file(array('acl' => 'acl.tpl'));
@ -95,7 +99,7 @@ class ui_acl
if ($this->bo->cats)
{
$config = config::read('resources');
$config = Api\Config::read('resources');
$location_cats = $config['location_cats'] ? explode(',', $config['location_cats']) : array();
foreach($this->bo->cats as $cat)
{
@ -106,11 +110,11 @@ class ui_acl
'tr_color' => $tr_color,
'catname' => $cat['name'],
'catid' => $cat['id'],
'read' => $this->selectlist(EGW_ACL_READ),
'write' => $this->selectlist(EGW_ACL_ADD),
'read' => $this->selectlist(Acl::READ),
'write' => $this->selectlist(Acl::ADD),
'calread' => $this->selectlist(EGW_ACL_CALREAD),
'calbook' =>$this->selectlist(EGW_ACL_DIRECT_BOOKING),
'admin' => '<option value="" selected="1">'.lang('choose categories admin').'</option>'.$this->selectlist(EGW_ACL_CAT_ADMIN,true),
'admin' => '<option value="" selected="1">'.lang('choose Api\Categories admin').'</option>'.$this->selectlist(EGW_ACL_CAT_ADMIN,true),
'location_checked' => in_array($cat['id'], $location_cats) ? 'checked="1"' : '',
));
$template->parse('Cblock','cat_list',True);
@ -167,7 +171,7 @@ class ui_acl
{
$selectlist .= ' selected="selected"';
}
$selectlist .= '>' . common::display_fullname($account['account_lid'],$account['account_firstname'],
$selectlist .= '>' . Api\Accounts::format_username($account['account_lid'],$account['account_firstname'],
$account['account_lastname'],$account['account_id']) . '</option>' . "\n";
}
return $selectlist;
@ -200,6 +204,6 @@ class ui_acl
function deny()
{
echo '<p><center><b>'.lang('Access not permitted').'</b></center>';
common::egw_exit(True);
exit(True);
}
}

View File

@ -9,14 +9,16 @@
* @version $Id$
*/
use EGroupware\Api;
$resources_table_prefix = 'egw_resources';
// Add a general category for resources
$GLOBALS['egw_setup']->db->insert($GLOBALS['egw_setup']->cats_table,array('cat_parent' => 0, 'cat_owner' => categories::GLOBAL_ACCOUNT,'cat_access' => 'public','cat_appname' => 'resources','cat_name' => 'General resources','cat_description' => 'This category has been added by setup','last_mod' => time()),false,__LINE__,__FILE__);
$GLOBALS['egw_setup']->db->insert($GLOBALS['egw_setup']->cats_table,array('cat_parent' => 0, 'cat_owner' => Api\Categories::GLOBAL_ACCOUNT,'cat_access' => 'public','cat_appname' => 'resources','cat_name' => 'General resources','cat_description' => 'This category has been added by setup','last_mod' => time()),false,__LINE__,__FILE__);
$cat_id = $GLOBALS['egw_setup']->db->get_last_insert_id($GLOBALS['egw_setup']->cats_table,'cat_id');
$GLOBALS['egw_setup']->db->insert($GLOBALS['egw_setup']->cats_table,array('cat_parent' => 0, 'cat_owner' => categories::GLOBAL_ACCOUNT,'cat_access' => 'public','cat_appname' => 'resources','cat_name' => 'Locations','cat_description' => 'This category has been added by setup','last_mod' => time()),false,__LINE__,__FILE__);
$GLOBALS['egw_setup']->db->insert($GLOBALS['egw_setup']->cats_table,array('cat_parent' => 0, 'cat_owner' => Api\Categories::GLOBAL_ACCOUNT,'cat_access' => 'public','cat_appname' => 'resources','cat_name' => 'Locations','cat_description' => 'This category has been added by setup','last_mod' => time()),false,__LINE__,__FILE__);
$locations_cat_id = $GLOBALS['egw_setup']->db->get_last_insert_id($GLOBALS['egw_setup']->cats_table,'cat_id');
config::save_value('location_cats', $locations_cat_id, 'resources');
Api\Config::save_value('location_cats', $locations_cat_id, 'resources');
// Give default group all rights to this general cat
$defaultgroup = $GLOBALS['egw_setup']->add_account('Default','Default','Group',False,False);

File diff suppressed because one or more lines are too long

View File

@ -13,7 +13,7 @@
$setup_info['resources']['name'] = 'resources';
$setup_info['resources']['title'] = 'Resources';
$setup_info['resources']['version'] = '14.1';
$setup_info['resources']['version'] = '16.1';
$setup_info['resources']['app_order'] = 5;
$setup_info['resources']['tables'] = array('egw_resources','egw_resources_extra');
$setup_info['resources']['enable'] = 1;
@ -37,12 +37,8 @@ $setup_info['resources']['hooks']['delete_category'] = 'resources.resources_hook
$setup_info['resources']['hooks']['settings'] = 'resources_hooks::settings';
$setup_info['resources']['depends'][] = array(
'appname' => 'phpgwapi',
'versions' => Array('14.1')
);
$setup_info['resources']['depends'][] = array( // cause eTemplates is not in the api yet
'appname' => 'etemplate',
'versions' => Array('14.1')
'appname' => 'api',
'versions' => Array('16.1')
);

View File

@ -11,6 +11,9 @@
* @version $Id$
*/
use EGroupware\Api;
use EGroupware\Api\Vfs;
function resources_upgrade0_0_1_008()
{
$GLOBALS['phpgw_setup']->oProc->AddColumn('egw_resources','picture_src',array(
@ -291,24 +294,24 @@ function resources_upgrade1_2()
*/
function resources_upgrade1_4()
{
egw_vfs::$is_root = true;
egw_vfs::load_wrapper('sqlfs');
if (egw_vfs::is_dir('/resources/pictures'))
Vfs::$is_root = true;
Vfs::load_wrapper('sqlfs');
if (Vfs::is_dir('/resources/pictures'))
{
egw_vfs::remove('/resources/pictures/thumbs'); // remove thumb dir incl. thumbnails
foreach(egw_vfs::find('sqlfs://default/resources/pictures',array('url' => true)) as $url)
Vfs::remove('/resources/pictures/thumbs'); // remove thumb dir incl. thumbnails
foreach(Vfs::find('sqlfs://default/resources/pictures',array('url' => true)) as $url)
{
if (is_numeric($id = basename($url,'.jpg')))
{
if (!egw_vfs::is_dir($dir = "/apps/resources/$id"))
if (!Vfs::is_dir($dir = "/apps/resources/$id"))
{
egw_vfs::mkdir($dir,0777,STREAM_MKDIR_RECURSIVE);
Vfs::mkdir($dir,0777,STREAM_MKDIR_RECURSIVE);
}
rename($url,'sqlfs://default'.$dir.'/.picture.jpg'); // we need to rename on the same wrapper!
}
}
egw_vfs::rmdir('/resources/pictures',0);
egw_vfs::rmdir('/resources',0);
Vfs::rmdir('/resources/pictures',0);
Vfs::rmdir('/resources',0);
}
return $GLOBALS['setup_info']['resources']['currentver'] = '1.6';
}
@ -323,9 +326,9 @@ function resources_upgrade1_6()
function resources_upgrade1_8()
{
// add location category required for CalDAV to distinguish between locations and resources
$GLOBALS['egw_setup']->db->insert($GLOBALS['egw_setup']->cats_table,array('cat_parent' => 0, 'cat_owner' => categories::GLOBAL_ACCOUNT,'cat_access' => 'public','cat_appname' => 'resources','cat_name' => 'Locations','cat_description' => 'This category has been added by setup','last_mod' => time()),false,__LINE__,__FILE__);
$GLOBALS['egw_setup']->db->insert($GLOBALS['egw_setup']->cats_table,array('cat_parent' => 0, 'cat_owner' => Api\Categories::GLOBAL_ACCOUNT,'cat_access' => 'public','cat_appname' => 'resources','cat_name' => 'Locations','cat_description' => 'This category has been added by setup','last_mod' => time()),false,__LINE__,__FILE__);
$locations_cat_id = $GLOBALS['egw_setup']->db->get_last_insert_id($GLOBALS['egw_setup']->cats_table,'cat_id');
config::save_value('location_cats', $locations_cat_id, 'resources');
Api\Config::save_value('location_cats', $locations_cat_id, 'resources');
// Give default group all rights to this general cat
$defaultgroup = $GLOBALS['egw_setup']->add_account('Default','Default','Group',False,False);
@ -384,3 +387,7 @@ function resources_upgrade1_9_004()
{
return $GLOBALS['setup_info']['resources']['currentver'] = '14.1';
}
function resources_upgrade14_1()
{
return $GLOBALS['setup_info']['resources']['currentver'] = '16.1';
}

View File

@ -9,6 +9,8 @@
* @version $Id$
*/
use EGroupware\Api;
/**
* Needs permission to resources to read the resource, calendar app to properly push everything through
*/
@ -21,7 +23,7 @@ class module_resources_reservation extends sitemgr_module
$this->description = lang('Simple reservation of a single item');
$this->etemplate_method = 'resources.resources_reserve.book';
$categories = new categories('', 'resources');
$categories = new Api\Categories('', 'resources');
$cat_list = $categories->return_sorted_array();
$cat_options = array();
foreach($cat_list as $category)
@ -101,12 +103,12 @@ class module_resources_reservation extends sitemgr_module
*
* @param array &$arguments $arguments['arg1']-$arguments['arg3'] will be passed for non-submitted forms (first call)
* @param array $properties
* @return string the html content
* @return string the Api\Html content
*/
function get_content(&$arguments,$properties)
{
list($app) = explode('.',$this->etemplate_method);
$GLOBALS['egw']->translation->add_app($app);
Api\Translation::add_app($app);
$extra = "<style type=\"text/css\">\n<!--\n@import url(".$GLOBALS['egw_info']['server']['webserver_url'].
"/etemplate/templates/default/app.css);\n";