public function __construct(CronkGridTemplateXmlParser $template, AgaviContext $context, $connection = "icinga") { $this->setTemplate($template); $this->setContext($context); $this->user = $context->getUser()->getNsmUser(); $this->connection = $connection; $view = $this->readDataSourceDefinition(); $source = $template->getSection("datasource"); $this->parser = $context->getModel("Views.ApiDQLView", "Api", array("view" => $view, "parameters" => isset($source["parameters"]) ? $source["parameters"] : array(), "connection" => $connection)); /** * @var IcingaDoctrine_Query */ $this->query = $this->parser->getQuery(); // Allow setting filterPresets if (isset($source["filterPresets"])) { try { $filter = json_decode($source["filterPresets"], true); $filterObj = new IcingaDQLViewFilter(); $query = $filterObj->getDQLFromFilterArray($filter, $this); $this->query->addWhere($query[0], $query[1]); } catch (Exception $e) { AppKitLogger::warn("Ignoring filterpreset : %s", $source["filterPresets"]); } } }