public function viewdomainapplications($eventData) { $domainQuery = \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getDataAccess()->execute('SELECT * FROM domains WHERE id=' . $eventData['domainid']); $domainData = $domainQuery->getFields(); $applicationsQuery = \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getDataAccess()->execute('SELECT * FROM applications WHERE onlyextension <> ' . \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getDataAccess()->formatText(\Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getDataAccess()->fmttrue) . ' ORDER BY appid'); if ($applicationsQuery) { if ($applicationsQuery->getNumberRows()) { $headers[0]['label'] = $this->_localeCatalog->getStr('status_header'); $headers[1]['label'] = $this->_localeCatalog->getStr('applicationid_header'); $headers[2]['label'] = $this->_localeCatalog->getStr('modactivationdate_header'); $headers[4]['label'] = $this->_localeCatalog->getStr('appdeps_header'); $row = 0; $wuiDomainApplicationsTable = new WuiTable('domainapplicationstable', array('headers' => $headers)); while (!$applicationsQuery->eof) { $applicationsData = $applicationsQuery->getFields(); if ($applicationsData['appid'] != 'innomatic') { $actQuery = \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getDataAccess()->execute('SELECT * FROM applications_enabled WHERE domainid = ' . $eventData['domainid'] . ' AND applicationid = ' . $applicationsData['id']); $wuiEnGroup[$row] = new WuiVertgroup('enable'); $wuiDomainApplicationsToolbar[$row] = new WuiHorizgroup('domainapplicationstoolbar' . $row); $appDep = new \Innomatic\Application\ApplicationDependencies(); if ($actQuery->getNumberRows()) { // Application is enabled // $actData = $actQuery->getFields(); $wuiDomainApplicationsTable->addChild(new WuiImage('status' . $row, array('imageurl' => $this->wuiMainframe->mThemeHandler->mStyle['greenball'])), $row, 0); $wuiDomainApplicationsTable->addChild(new WuiLabel('appid' . $row, array('label' => $applicationsData['appid'], 'compact' => 'true')), $row, 1); $wuiDomainApplicationsTable->addChild(new WuiLabel('actdate' . $row, array('label' => $actData['activationdate'], 'compact' => 'true')), $row, 2); $domainDependingApplications = $appDep->checkDomainDependingApplications($applicationsData['appid'], $domainData['domainid']); $application = new \Innomatic\Application\Application(\Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getDataAccess(), $applicationsData['id']); $options = $application->getOptions(); if (!$domainDependingApplications) { // No applications depends on this one // $disableAction[$row] = new \Innomatic\Wui\Dispatch\WuiEventsCall(); $disableAction[$row]->addEvent(new \Innomatic\Wui\Dispatch\WuiEvent('view', 'domainapplications', array('domainid' => $eventData['domainid']))); $disableAction[$row]->addEvent(new \Innomatic\Wui\Dispatch\WuiEvent('action', 'deactivateapplication', array('domainid' => $eventData['domainid'], 'appid' => $applicationsData['id']))); $wuiSisableButton[$row] = new WuiButton('disablebutton' . $row, array('label' => $this->_localeCatalog->getStr('deactivateapplication_label'), 'horiz' => 'true', 'themeimage' => 'buttoncancel', 'action' => $disableAction[$row]->getEventsCallString())); $wuiDomainApplicationsToolbar[$row]->addChild($wuiSisableButton[$row]); $wuiEnGroup[$row]->addChild($wuiDomainApplicationsToolbar[$row]); } else { // At least one application depends on this one // $appDepListStr = ''; while (list(, $dep) = each($domainDependingApplications)) { $appDepListStr .= $dep . '<br>'; } $wuiDomainApplicationsTable->addChild(new WuiLabel('appdeps' . $row, array('label' => $appDepListStr)), $row, 4); } if (count($options)) { $toolbar = array(); while (list(, $name) = each($options)) { $enabled = $application->checkIfOptionEnabled($name, $eventData['domainid']); $toolbar['view']['enable'] = array('label' => sprintf($this->_localeCatalog->getStr(($enabled ? 'disable' : 'enable') . '_option.button'), ucfirst($name)), 'themeimage' => $enabled ? 'buttoncancel' : 'buttonok', 'compact' => 'true', 'themeimagetype' => 'mini', 'horiz' => 'true', 'action' => \Innomatic\Wui\Dispatch\WuiEventsCall::buildEventsCallString('', array(array('view', 'domainapplications', array('domainid' => $eventData['domainid'])), array('action', $enabled ? 'disableoption' : 'enableoption', array('applicationid' => $applicationsData['id'], 'domainid' => $eventData['domainid'], 'option' => $name))))); $wuiEnGroup[$row]->addChild(new WuiInnomaticToolBar('view', array('frame' => 'false', 'toolbars' => $toolbar))); } } $wuiDomainApplicationsTable->addChild($wuiEnGroup[$row], $row, 3); } else { // Application is not enabled // $wuiDomainApplicationsTable->addChild(new WuiImage('status' . $row, array('imageurl' => $this->wuiMainframe->mThemeHandler->mStyle['redball'])), $row, 0); $wuiDomainApplicationsTable->addChild(new WuiLabel('appid' . $row, array('label' => $applicationsData['appid'])), $row, 1); $domainApplicationDeps = $appDep->checkDomainApplicationDependencies($applicationsData['appid'], $domainData['domainid'], \Innomatic\Application\ApplicationDependencies::TYPE_DEPENDENCY); if (!is_array($domainApplicationDeps)) { // All application dependecies are met // $enableAction[$row] = new \Innomatic\Wui\Dispatch\WuiEventsCall(); $enableAction[$row]->addEvent(new \Innomatic\Wui\Dispatch\WuiEvent('view', 'domainapplications', array('domainid' => $eventData['domainid']))); $enableAction[$row]->addEvent(new \Innomatic\Wui\Dispatch\WuiEvent('action', 'activateapplication', array('domainid' => $eventData['domainid'], 'appid' => $applicationsData['id']))); $wuiEnableButton[$row] = new WuiButton('enablebutton' . $row, array('label' => $this->_localeCatalog->getStr('activateapplication_label'), 'horiz' => 'true', 'themeimage' => 'buttonok', 'action' => $enableAction[$row]->getEventsCallString())); $wuiDomainApplicationsToolbar[$row]->addChild($wuiEnableButton[$row]); } else { // At least one application dependency is not met // $appDepListStr = ''; while (list(, $dep) = each($domainApplicationDeps)) { $appDepListStr .= $dep . '<br>'; } $wuiDomainApplicationsTable->addChild(new WuiLabel('appdeps' . $row, array('label' => $appDepListStr)), $row, 4); } $wuiDomainApplicationsTable->addChild($wuiDomainApplicationsToolbar[$row], $row, 3); } $row++; } $applicationsQuery->moveNext(); } $xmlDef = '<horizgroup> <children> <button> <args> <themeimage>buttonok</themeimage> <label type="encoded">' . urlencode($this->_localeCatalog->getStr('enable_all_applications.button')) . '</label> <horiz>true</horiz> <action type="encoded">' . urlencode(\Innomatic\Wui\Dispatch\WuiEventsCall::buildEventsCallString('', array(array('view', 'domainapplications', array('domainid' => $eventData['domainid'])), array('action', 'activateallapplications', array('domainid' => $eventData['domainid']))))) . '</action> </args> </button> <button> <args> <themeimage>buttoncancel</themeimage> <label type="encoded">' . urlencode($this->_localeCatalog->getStr('disable_all_applications.button')) . '</label> <horiz>true</horiz> <needconfirm>true</needconfirm> <confirmmessage type="encoded">' . urlencode($this->_localeCatalog->getStr('disable_all_applications.confirm')) . '</confirmmessage> <action type="encoded">' . urlencode(\Innomatic\Wui\Dispatch\WuiEventsCall::buildEventsCallString('', array(array('view', 'domainapplications', array('domainid' => $eventData['domainid'])), array('action', 'deactivateallapplications', array('domainid' => $eventData['domainid']))))) . '</action> </args> </button> </children> </horizgroup>'; $wuiMainVGroup = new WuiVertgroup(''); $wuiMainVGroup->addChild($wuiDomainApplicationsTable); $wuiMainVGroup->addChild(new WuiHorizBar('')); $wuiMainVGroup->addChild(new WuiXml('', array('definition' => $xmlDef))); $this->wuiMainframe->addChild($wuiMainVGroup); } } $this->wuiTitlebar->mArgs['title'] .= ' - ' . $domainData['domainid'] . ' (' . $domainData['domainname'] . ') - ' . $this->_localeCatalog->getStr('domainapplications_title'); }