mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-12-16 11:41:19 +01:00
136 lines
4.1 KiB
PHP
136 lines
4.1 KiB
PHP
<?php
|
|
/**
|
|
* Module for quick & easy resource reservation
|
|
*
|
|
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
|
|
* @package resources
|
|
* @author Nathan Gray
|
|
* @copyright (c) 2011 Nathan Gray
|
|
* @version $Id$
|
|
*/
|
|
|
|
use EGroupware\Api;
|
|
|
|
/**
|
|
* Needs permission to resources to read the resource, calendar app to properly push everything through
|
|
*/
|
|
class module_resources_reservation extends sitemgr_module
|
|
{
|
|
function __construct()
|
|
{
|
|
parent::__construct();
|
|
$this->title = lang('Reserve');
|
|
$this->description = lang('Simple reservation of a single item');
|
|
$this->etemplate_method = 'resources.resources_reserve.book';
|
|
|
|
$categories = new Api\Categories('', 'resources');
|
|
$cat_list = $categories->return_sorted_array();
|
|
$cat_options = array();
|
|
foreach($cat_list as $category)
|
|
{
|
|
$cat_options[$category['id']] = $category['name'];
|
|
}
|
|
$this->arguments = array(
|
|
'category' => array(
|
|
'type' => 'select',
|
|
'label' => lang('Category'),
|
|
'options' => $cat_options
|
|
),
|
|
'resource' => array(
|
|
'type' => 'select',
|
|
'label' => lang('Resource'),
|
|
'options' => array(
|
|
)
|
|
),
|
|
'contact_form' => array(
|
|
'type' => 'textfield',
|
|
'label' => lang('Custom eTemplate for the contactform'),
|
|
'params' => array('size' => 40),
|
|
),
|
|
'confirmation' => array(
|
|
'type' => 'checkbox',
|
|
'label' => lang('Require confirmation'),
|
|
),
|
|
'email_message' => array(
|
|
'type' => 'textarea',
|
|
'large' => true,
|
|
'label' => lang('Confirmation email text').'<br />%1 = ' . lang('Event start').'<br/>%2 = link<br />%3 = '.lang('expiry'),
|
|
'params' => array(
|
|
'rows' => 8,
|
|
'cols' => 110
|
|
)
|
|
),
|
|
'confirmed_addressbook' => array(
|
|
'type' => 'select',
|
|
'label' => lang('Confirmed addressbook.').' ('.lang('The anonymous user needs add rights for it!').')',
|
|
'options' => array(
|
|
'' => lang('None'),
|
|
)+registration_bo::get_allowed_addressbooks(registration_bo::CONFIRMED)
|
|
),
|
|
'include_group' => array(
|
|
'type' => 'select',
|
|
'label' => lang('Add group to event participants'),
|
|
'options' => array(
|
|
'' => lang('None'),
|
|
) + $GLOBALS['egw']->accounts->memberships($GLOBALS['egw_info']['user']['account_id'])
|
|
)
|
|
);
|
|
}
|
|
|
|
public function get_user_interface()
|
|
{
|
|
$query = array(
|
|
// Resources uses filter, not cat_id
|
|
'filter' => $this->block->arguments['category'],
|
|
'filter2' => -1,
|
|
'show_bookable' => true,
|
|
'csv_export' => true
|
|
);
|
|
|
|
// Add resources from selected category
|
|
$bo = new resources_bo();
|
|
$bo->get_rows($query, $list, $readonlys);
|
|
foreach($list as $resource)
|
|
{
|
|
$this->arguments['resource']['options'][$resource['res_id']] = $resource['name'];
|
|
}
|
|
return parent::get_user_interface();
|
|
}
|
|
|
|
/**
|
|
* generate the module content AND process submitted forms
|
|
* Overridden from parent to pass arguments
|
|
*
|
|
* @param array &$arguments $arguments['arg1']-$arguments['arg3'] will be passed for non-submitted forms (first call)
|
|
* @param array $properties
|
|
* @return string the Api\Html content
|
|
*/
|
|
function get_content(&$arguments,$properties)
|
|
{
|
|
list($app) = explode('.',$this->etemplate_method);
|
|
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";
|
|
|
|
if ($app != 'etemplate' && file_exists(EGW_SERVER_ROOT.'/'.$app.'/templates/default/app.css'))
|
|
{
|
|
$extra .= "@import url(".$GLOBALS['egw_info']['server']['webserver_url'].
|
|
'/'.$app."/templates/default/app.css);\n";
|
|
}
|
|
$extra .= '.calendar_plannerRowHeader > a { display: none; }';
|
|
$extra .= "-->\n</style>\n";
|
|
$extra .= '<script src="'.$GLOBALS['egw_info']['server']['webserver_url'].'/etemplate/js/etemplate.js" type="text/javascript"></script>'."\n";
|
|
$ret = false;
|
|
if($_POST['etemplate_exec_id'])
|
|
{
|
|
$ret = ExecMethod('etemplate.etemplate.process_exec');
|
|
}
|
|
if($_GET['date']) $arguments['date'] = strtotime($_GET['date']);
|
|
$arguments['link'] = $this->link();
|
|
$arguments['sitemgr_version'] = $this->block->version;
|
|
return $extra.($ret ? $ret : ExecMethod2($this->etemplate_method,null,$arguments));
|
|
}
|
|
|
|
}
|