public function save($resource)
{
if ($resource->getId()) {
- $query = 'UPDATE kronolith_resources SET resource_name = ?, resource_calendar = ?, resource_category = ? , resource_description = ?, resource_response_type = ?, resource_max_reservations = ? WHERE resource_id = ?';
- $values = array($resource->get('name'), $resource->get('calendar'), $resource->get('category'), $resource->get('description'), $resource->get('response_type'), $resource->get('max_reservations'), $resource->getId());
+ $query = 'UPDATE kronolith_resources SET resource_name = ?, resource_calendar = ?, resource_category = ? , resource_description = ?, resource_response_type = ? WHERE resource_id = ?';
+ $values = array($resource->get('name'), $resource->get('calendar'), $resource->get('category'), $resource->get('description'), $resource->get('response_type'), $resource->getId());
$result = $this->_write_db->query($query, $values);
if ($result instanceof PEAR_Error) {
throw new Horde_Exception($result->getMessage());
}
} else {
- $query = 'INSERT INTO kronolith_resources (resource_id, resource_name, resource_calendar, resource_category, resource_description, resource_response_type, resource_max_reservations)';
- $cols_values = ' VALUES (?, ?, ?, ?, ?, ?, ?)';
+ $query = 'INSERT INTO kronolith_resources (resource_id, resource_name, resource_calendar, resource_category, resource_description, resource_response_type)';
+ $cols_values = ' VALUES (?, ?, ?, ?, ?, ?)';
$id = $this->_db->nextId('kronolith_resources');
- $values = array($id, $resource->get('name'), $resource->get('calendar'), $resource->get('category'), $resource->get('description'), $resource->get('response_type'), $resource->get('max_reservations'));
+ $values = array($id, $resource->get('name'), $resource->get('calendar'), $resource->get('category'), $resource->get('description'), $resource->get('response_type'));
$result = $this->_write_db->query($query . $cols_values, $values);
if (!($result instanceof PEAR_Error)) {
return true;
*/
public function getResource($id)
{
- $query = 'SELECT resource_id, resource_name, resource_calendar, resource_category, resource_description, resource_response_type, resource_max_reservations FROM kronolith_resources WHERE resource_id = ?';
+ $query = 'SELECT resource_id, resource_name, resource_calendar, resource_category, resource_description, resource_response_type FROM kronolith_resources WHERE resource_id = ?';
$results = $this->_db->getRow($query, array($id), DB_FETCHMODE_ASSOC);
if ($results instanceof PEAR_Error) {
* This method will likely be a moving target as group resources are
* fleshed out.
*
+ * @param array $filter A hash of field/values to filter on.
*/
- public function listResources($params = array())
+ public function listResources($filter = array())
{
- $query = 'SELECT resource_id, resource_name, resource_calendar, resource_category, resource_description, resource_response_type, resource_max_reservations FROM kronolith_resources';
- $results = $this->_db->getAssoc($query, true, array(), DB_FETCHMODE_ASSOC, false);
+ $query = 'SELECT resource_id, resource_name, resource_calendar, resource_category, resource_description, resource_response_type FROM kronolith_resources';
+ if (count($filter)) {
+ $clause = ' WHERE ';
+ $i = 0;
+ $c = count($filter);
+ foreach ($filter as $field => $value) {
+ $clause .= 'resource_' . $field . ' = ?' . (($i++ < ($c - 1)) ? ' AND ' : '');
+ }
+ $query .= $clause;
+ }
+
+ $results = $this->_db->getAssoc($query, true, $filter, DB_FETCHMODE_ASSOC, false);
if ($results instanceof PEAR_Error) {
throw new Horde_Exception($results->getMessage());
}
return $return;
}
+ /**
+ *
+ * @param $params
+ * @return unknown_type
+ */
protected function _fromDriver($params)
{
$return = array();
$this->addVariable(_("Name"), 'name', 'text', true);
$this->addVariable(_("Description"), 'description', 'longtext', false, false, null, array(4, 60));
$this->addVariable(_("Response type"), 'responsetype', 'enum', true, false, null, array('enum' => $responses));
- $this->addVariable(_("Maximum number of overlapping reservations"), 'maxreservations', 'number', true);
$this->addVariable(_("Category"), 'category', 'text', false);
$this->setButtons(array(_("Create")));
}
$new = array('name' => $this->_vars->get('name'),
'category' => $this->_vars->get('category'),
'description' => $this->_vars->get('description'),
- 'response_type' => $this->_vars->get('response_type'),
- 'max_reservations' => $this->_vars->get('max_reservations'));
+ 'response_type' => $this->_vars->get('response_type'));
$resource = new Kronolith_Resource_Single($new);
return $results = Kronolith_Resource::addResource($resource);
$this->addVariable(_("Name"), 'name', 'text', true);
$this->addVariable(_("Description"), 'description', 'longtext', false, false, null, array(4, 60));
$this->addVariable(_("Response type"), 'responsetype', 'enum', true, false, null, array('enum' => $responses));
- $this->addVariable(_("Maximum number of overlapping reservations"), 'maxreservations', 'number', true);
$this->addVariable(_("Category"), 'category', 'text', false);
$this->setButtons(array(_("Save")));
}
$this->_resource->set('description', $this->_vars->get('description'));
$this->_resource->set('category', $this->_vars->get('category'));
$this->_resource->set('response_type', $this->_vars->get('responsetype'));
- $this->_resource->set('max_reservations', $this->_vars->get('maxreservations'));
if ($original_name != $new_name) {
$result = Kronolith::getDriver()->rename($original_name, $new_name);
if (is_a($result, 'PEAR_Error')) {