Overview

Packages

  • Kronolith
  • None

Classes

  • Kronolith
  • Kronolith_Ajax_Application
  • Kronolith_Ajax_Imple_ContactAutoCompleter
  • Kronolith_Ajax_Imple_Embed
  • Kronolith_Ajax_Imple_TagActions
  • Kronolith_Ajax_Imple_TagAutoCompleter
  • Kronolith_Api
  • Kronolith_Calendar
  • Kronolith_Calendar_External
  • Kronolith_Calendar_External_Tasks
  • Kronolith_Calendar_Holiday
  • Kronolith_Calendar_Internal
  • Kronolith_Calendar_Remote
  • Kronolith_Calendar_Resource
  • Kronolith_Calendars_Base
  • Kronolith_Calendars_Default
  • Kronolith_Calendars_Kolab
  • Kronolith_Day
  • Kronolith_Driver
  • Kronolith_Driver_Holidays
  • Kronolith_Driver_Horde
  • Kronolith_Driver_Ical
  • Kronolith_Driver_Kolab
  • Kronolith_Driver_Mock
  • Kronolith_Driver_Resource
  • Kronolith_Driver_Sql
  • Kronolith_Event
  • Kronolith_Event_Holidays
  • Kronolith_Event_Horde
  • Kronolith_Event_Ical
  • Kronolith_Event_Kolab
  • Kronolith_Event_Resource
  • Kronolith_Event_Sql
  • Kronolith_Exception
  • Kronolith_Factory_Calendars
  • Kronolith_Factory_Geo
  • Kronolith_Form_CreateCalendar
  • Kronolith_Form_CreateResource
  • Kronolith_Form_CreateResourceGroup
  • Kronolith_Form_DeleteCalendar
  • Kronolith_Form_DeleteResource
  • Kronolith_Form_DeleteResourceGroup
  • Kronolith_Form_EditCalendar
  • Kronolith_Form_EditRemoteCalendar
  • Kronolith_Form_EditResource
  • Kronolith_Form_EditResourceGroup
  • Kronolith_Form_SubscribeRemoteCalendar
  • Kronolith_Form_UnsubscribeRemoteCalendar
  • Kronolith_FreeBusy
  • Kronolith_FreeBusy_View
  • Kronolith_FreeBusy_View_Day
  • Kronolith_FreeBusy_View_Month
  • Kronolith_FreeBusy_View_Week
  • Kronolith_FreeBusy_View_Workweek
  • Kronolith_Geo_Base
  • Kronolith_Geo_Mysql
  • Kronolith_Geo_Sql
  • Kronolith_LoginTasks_SystemTask_Upgrade
  • Kronolith_LoginTasks_Task_PurgeEvents
  • Kronolith_Notification_Listener_AjaxStatus
  • Kronolith_Resource
  • Kronolith_Resource_Base
  • Kronolith_Resource_Group
  • Kronolith_Resource_Single
  • Kronolith_Storage
  • Kronolith_Storage_Kolab
  • Kronolith_Storage_Sql
  • Kronolith_Tagger
  • Kronolith_Test
  • Kronolith_View_Day
  • Kronolith_View_DeleteEvent
  • Kronolith_View_EditEvent
  • Kronolith_View_Event
  • Kronolith_View_ExportEvent
  • Kronolith_View_Month
  • Kronolith_View_Week
  • Kronolith_View_WorkWeek
  • Kronolith_View_Year
  • Overview
  • Package
  • Class
  • Tree
 1: <?php
 2: /**
 3:  * Horde_Form for creating resources.
 4:  *
 5:  * See the enclosed file COPYING for license information (GPL). If you
 6:  * did not receive this file, see http://www.horde.org/licenses/gpl.
 7:  *
 8:  * @package Kronolith
 9:  */
10: 
11: /**
12:  * The Kronolith_Form_CreateResource class provides the form for creating a
13:  * resource.
14:  *
15:  * @author  Chuck Hagenbuch <chuck@horde.org>
16:  * @author  Michael J. Rubinsky <mrubinsk@horde.org>
17:  * @package Kronolith
18:  */
19: class Kronolith_Form_CreateResource extends Horde_Form
20: {
21:     /**
22:      * @throws Kronolith_Exception
23:      */
24:     public function __construct($vars)
25:     {
26:         parent::__construct($vars, _("Create Resource"));
27: 
28:         $responses =  array(Kronolith_Resource::RESPONSETYPE_ALWAYS_ACCEPT => _("Always Accept"),
29:                             Kronolith_Resource::RESPONSETYPE_ALWAYS_DECLINE => _("Always Decline"),
30:                             Kronolith_Resource::RESPONSETYPE_AUTO => _("Automatically"),
31:                             Kronolith_Resource::RESPONSETYPE_MANUAL => _("Manual"),
32:                             Kronolith_Resource::RESPONSETYPE_NONE => _("None"));
33: 
34:         /* Get a list of available resource groups */
35:         $groups = Kronolith::getDriver('Resource')
36:             ->listResources(Horde_Perms::READ,
37:                             array('type' => Kronolith_Resource::TYPE_GROUP));
38:         $enum = array();
39:         foreach ($groups as $id => $group) {
40:             $enum[$id] = $group->get('name');
41:         }
42: 
43:         $this->addVariable(_("Name"), 'name', 'text', true);
44:         $this->addVariable(_("Description"), 'description', 'longtext', false, false, null, array(4, 60));
45:         $this->addVariable(_("Email"), 'email', 'email', false);
46:         $v = $this->addVariable(_("Response type"), 'responsetype', 'enum', true, false, null, array('enum' => $responses));
47:         $v->setDefault(Kronolith_Resource::RESPONSETYPE_AUTO);
48:         $this->addVariable(_("Groups"), 'category', 'multienum', false, false, null, array('enum' => $enum));
49:         $this->setButtons(array(_("Create")));
50:     }
51: 
52:     /**
53:      * @throws Kronolith_Exception
54:      */
55:     public function execute()
56:     {
57:         $new = array('name' => $this->_vars->get('name'),
58:                      'description' => $this->_vars->get('description'),
59:                      'response_type' => $this->_vars->get('responsetype'),
60:                      'email' => $this->_vars->get('email'));
61:         $resource = Kronolith_Resource::addResource(new Kronolith_Resource_Single($new));
62: 
63:         /* Do we need to add this to any groups? */
64:         $groups = $this->_vars->get('category');
65:         if (!empty($groups)) {
66:             foreach ($groups as $group_id) {
67:                 $group = Kronolith::getDriver('Resource')->getResource($group_id);
68:                 $members = $group->get('members');
69:                 $members[] = $resource->getId();
70:                 $group->set('members', $members);
71:                 $group->save();
72:             }
73:         }
74:     }
75: 
76: }
77: 
API documentation generated by ApiGen