* @author Michael J. Rubinsky * @package Kronolith */ class Kronolith_Form_DeleteResource extends Horde_Form { /** * Resource being deleted. * * @var Kronolith_Resource_Single */ protected $_resource; public function __construct($vars, $resource) { $this->_resource = $resource; parent::__construct($vars, sprintf(_("Delete %s"), $resource->get('name'))); $this->addHidden('', 'c', 'text', true); $this->addVariable(sprintf(_("Really delete the resource \"%s\"? This cannot be undone and all data on this resource will be permanently removed."), htmlspecialchars($this->_resource->get('name'))), 'desc', 'description', false); $this->setButtons(array( array('class' => 'horde-delete', 'value' => _("Delete")), array('class' => 'horde-cancel', 'value' => _("Cancel")), )); } /** * @throws Kronolith_Exception */ public function execute() { // If cancel was clicked, return false. if ($this->_vars->get('submitbutton') == _("Cancel")) { Horde::url($GLOBALS['prefs']->getValue('defaultview') . '.php', true) ->redirect(); } if (!($this->_resource->hasPermission($GLOBALS['registry']->getAuth(), Horde_Perms::DELETE))) { throw new Kronolith_Exception(_("Permission denied")); } // Delete the resource. try { Kronolith::getDriver('Resource')->delete($this->_resource); } catch (Exception $e) { throw new Kronolith_Exception(sprintf(_("Unable to delete \"%s\": %s"), $this->_resource->get('name'), $e->getMessage())); } } }