public function prepareViewForColumnTime(\Nethgui\Controller\Table\Read $action, \Nethgui\View\ViewInterface $view, $key, $values, &$rowMetadata) { if (!isset($values['Time'])) { return $view->translate('always_label'); } return $this->formatObject($view, $values['Time'], 'always_label'); }
private function getGroupsViewValue(\Nethgui\View\ViewInterface $view) { static $groupsState; if (isset($groupsState)) { return $groupsState; } $groupsState = array(); foreach (iterator_to_array($this->getAdapter()) as $id => $yumGroup) { if ($yumGroup['status'] === 'available') { continue; // skip installed groups } if (isset($this->parameters['groups'][$id])) { $groupsState[$id] = $this->parameters['groups'][$id]; } else { $groupsState[$id]['opackages_selected'] = array(); } $groupsState[$id]['id'] = $yumGroup['id']; $groupsState[$id]['name'] = $yumGroup['name']; $groupsState[$id]['description'] = $yumGroup['description']; $groupsState[$id]['Edit'] = array($view->getModuleUrl('../../EditModule/' . $id), $view->translate('Edit_label')); $groupsState[$id]['Remove'] = array($view->getModuleUrl('../../Review?removeGroup=' . $id), $view->translate('Remove_label')); } foreach ($this->getCategories($view) as $category) { foreach ($category['groups'] as $id) { if (isset($groupsState[$id])) { $groupsState[$id]['categories'][] = $category['name']; } } } usort($groupsState, function ($a, $b) { return strcasecmp($a['name'], $b['name']); }); return $groupsState; }
private function formatObject(\Nethgui\View\ViewInterface $view, $val, $default = 'any_label') { if (!$val) { return $view->translate($default); } $tmp = explode(';', $val); return $view->translate($tmp[0] . '_label') . ": " . $tmp[1]; }
public function prepareViewForColumnRecipients(\Nethgui\Controller\Table\Read $action, \Nethgui\View\ViewInterface $view, $key, $values, &$rowMetadata) { $recipients = $values['Recipients']; if (count($recipients) <= 3) { return implode(', ', $recipients); } return implode(', ', array_merge(array_slice($recipients, 0, 2), array($view->translate('AndXMore', array(count($recipients) - 2))))); }
private function getMessageText(\Nethgui\View\ViewInterface $view) { if (in_array($this->parameters['role'], array('bridged', 'slave', 'pppoe'))) { $msgTemplate = sprintf("ReleasePhysicalInterface_%s_message", $this->parameters['role']); } else { $msgTemplate = "ReleasePhysicalInterface_roled_message"; } return $view->translate($msgTemplate, \iterator_to_array($this->parameters)); }
public function prepareViewForColumnMailSpamRetentionTime(\Nethgui\Controller\Table\Read $action, \Nethgui\View\ViewInterface $view, $key, $values, &$rowMetadata) { if ($values['MailSpamRetentionStatus'] == 'enabled') { if ($values['MailSpamRetentionTime'] == 'infinite') { return $view->translate('ever'); } else { return $view->translate('${0} days', array(substr($values['MailSpamRetentionTime'], 0, -1))); } } return '-'; }
public static function getConfigForView(\Nethgui\View\ViewInterface $view, $record) { $tcpPorts = implode(', ', array_filter(array_merge(explode(',', $record['TCPPort']), explode(',', $record['TCPPorts'])))); $udpPorts = implode(', ', array_filter(array_merge(explode(',', $record['UDPPort']), explode(',', $record['UDPPorts'])))); $ports = array($view->translate(sprintf('ServiceStatus_%s_label', $record['status'] === 'enabled' ? 'enabled' : 'disabled'))); if ($tcpPorts) { $ports[] = $view->translate('TCP_ports_label', array($tcpPorts)); } if ($udpPorts) { $ports[] = $view->translate('UDP_ports_label', array($udpPorts)); } return $ports; }
public function prepareView(\Nethgui\View\ViewInterface $view) { if (!$this->getRequest()->isValidated()) { $this->getAdapter()->setLoader(NULL); } else { $view->getCommandList()->show(); } if ($this->getRequest()->hasParameter('installSuccess')) { $this->getAction('AdminTodo')->emitNotifications = TRUE; $this->notifications->message($view->translate('package_success')); } parent::prepareView($view); }
public function prepareView(\Nethgui\View\ViewInterface $view) { $sz = array('10' => '10 MB', '20' => '20 MB', '50' => '50 MB', '100' => '100 MB', '200' => '200 MB', '500' => '500 MB', '1000' => '1 GB', $this->parameters['MessageSizeMax'] => sprintf('%s MB', $this->parameters['MessageSizeMax'])); ksort($sz, SORT_NUMERIC); $view['MessageSizeMaxDatasource'] = \Nethgui\Renderer\AbstractRenderer::hashToDatasource($sz); $lt = array('1' => $view->translate('${0} day', array(1)), '2' => $view->translate('${0} days', array(2)), '4' => $view->translate('${0} days', array(4)), '7' => $view->translate('${0} days', array(7)), '15' => $view->translate('${0} days', array(15)), '30' => $view->translate('${0} days', array(30)), $this->parameters['MessageQueueLifetime'] => $view->translate('${0} days', array($this->parameters['MessageQueueLifetime']))); ksort($lt, SORT_NUMERIC); $view['MessageQueueLifetimeDatasource'] = \Nethgui\Renderer\AbstractRenderer::hashToDatasource($lt); parent::prepareView($view); }
public function prepareView(\Nethgui\View\ViewInterface $view) { $module = $this->getTargetModule(); if (is_null($module)) { $view->setTemplate(FALSE); return; } $moduleView = $view->spawnView($module); $module->prepareView($moduleView); $renderer = new \Nethgui\Module\Help\Renderer($moduleView, $this->getFileNameResolver(), 0); echo $renderer->render(); exit(0); // FIXME not so correct, but works.. }
private function getActionsText(\Nethgui\View\ViewInterface $view) { $data = $this->parameters->getArrayCopy(); if ($data['type'] == 'bridge') { $data['parts'] = str_replace(',', ', ', $data['bridge']); } elseif ($data['type'] == 'bond') { $data['parts'] = str_replace(',', ', ', $data['bond']); $data['bondMode'] = $view->translate("BondMode_{$data['bondMode']}_label"); } elseif ($data['type'] == 'vlan') { $data['parts'] = $data['vlan']; } else { $data['parts'] = ''; } $actions = array(); $actions[] = $view->translate("Action_create_{$data['type']}", $data); if ($data['bootproto'] === 'dhcp') { $actions[] = $view->translate('Action_use_dhcp', $data); } elseif ($data['bootproto'] === 'none') { $actions[] = $view->translate('Action_set_static_ip', $data); if ($data['gateway']) { $actions[] = $view->translate('Action_use_gateway', $data); } else { $actions[] = $view->translate('Action_use_no_gateway', $data); } } $actions[] = $view->translate("Action_create_role", $data); return $actions; }
public function prepareView(\Nethgui\View\ViewInterface $view) { if ($this->getRequest()->isMutation()) { $this->getPlatform()->setDetachedProcessCondition('success', array('location' => array('url' => $view->getModuleUrl('/Account/DomainController?installSuccess'), 'freeze' => TRUE))); } parent::prepareView($view); $view['NetbiosDomain'] = $this->getPlatform()->getDatabase('configuration')->getProp('smb', 'Workgroup'); if (!$view['NetbiosDomain']) { $domainName = $this->getPlatform()->getDatabase('configuration')->getType('DomainName'); $view['NetbiosDomain'] = \Nethgui\array_head(explode('.', $domainName)); } $view['NetbiosDomain'] = strtoupper(substr($view['NetbiosDomain'], 0, 15)); if ($this->getRequest()->hasParameter('installSuccess')) { $view->getCommandList('/Main')->sendQuery($view->getModuleUrl('/Account')); } }
public function getRoleText(\Nethgui\View\ViewInterface $view, $key, $values = NULL) { if (is_null($values)) { $values = $this->getAdapter()->offsetGet($key); } if (!isset($values['role']) || !$values['role']) { return ''; } $roleLabel = $view->translate($values['role'] . "_label"); if ($values['role'] === 'slave') { return $roleLabel . " (" . $values['master'] . ")"; } elseif ($values['role'] === 'bridged') { return $roleLabel . " (" . $values['bridge'] . ")"; } return $roleLabel; }
private function getAccounts(\Nethgui\View\ViewInterface $view) { static $ds; if (isset($ds)) { return $ds; } $data = json_decode($this->getPlatform()->exec("/usr/bin/sudo /usr/libexec/nethserver/read-mail-accounts")->getOutput(), TRUE); $users = \Nethgui\Widget\XhtmlWidget::hashToDatasource($data['users'], TRUE); $groups = \Nethgui\Widget\XhtmlWidget::hashToDatasource($data['groups'], TRUE); $ds = array(); if ($users) { $ds[] = array($users, $view->translate('Users_label')); } if ($groups) { $ds[] = array($groups, $view->translate('Groups_label')); } return $ds; }
/** * For each known format extension adds a subview that renders into an html * fragment that include the required resources. * * @param \Nethgui\View\ViewInterface $view * @return void */ public function prepareViewXhtml(\Nethgui\View\ViewInterface $view) { $fragments = array('js' => "<script src='%URI'></script>", 'css' => "<link rel='stylesheet' type='text/css' href='%URI' />"); foreach (array_keys($fragments) as $ext) { $view[$ext] = $view->spawnView($this); $thisModule = $this; $templateClosure = function (\Nethgui\Renderer\AbstractRenderer $renderer) use($ext, $thisModule, $fragments) { $uriList = $thisModule->getUseList($ext); $cachedFile = $thisModule->getFileName($ext); if ($cachedFile !== FALSE) { $uriList[] = $renderer->getModuleUrl('/Resource/' . $cachedFile); } $output = ''; foreach ($uriList as $uri) { $output .= strtr($fragments[$ext], array('%URI' => $uri)); } return $output; }; $view[$ext]->setTemplate($templateClosure); } $view->setTemplate(FALSE); }
private function getNicInfo(\Nethgui\View\ViewInterface $view) { $v = array(); $nicInfo = array(); if ($this->getAdapter()->offsetGet('type') === 'ethernet') { // Array of informations about NIC. // Fields: name, hwaddr, bus, model, driver, speed, link // Eg: green,08:00:27:77:fd:be,pci,Intel Corporation 82540EM Gigabit Ethernet Controller (rev 02),e1000,1000,1 $nicInfo = str_getcsv($this->getPlatform()->exec('/usr/bin/sudo -n /usr/libexec/nethserver/nic-info ${1}', array($this->parameters['device']))->getOutput()); } $v['dev'] = isset($this->parameters['device']) ? $this->parameters['device'] : ''; $v['mac'] = \strtolower(isset($nicInfo[1]) ? $nicInfo[1] : ''); $v['bus'] = \strtolower(isset($nicInfo[2]) ? $nicInfo[2] : ""); $v['model'] = isset($nicInfo[3]) ? $nicInfo[3] : ""; $v['driver'] = isset($nicInfo[4]) ? $nicInfo[4] : ""; $v['speed'] = isset($nicInfo[5]) && $nicInfo[5] ? $nicInfo[5] : "0"; if (!isset($nicInfo[6]) || intval($nicInfo[6]) < 0) { $v['link'] = $view->translate('Link_status_na'); } else { $v['link'] = $nicInfo[6] ? $view->translate('Link_status_up') : $view->translate('Link_status_down'); } return $v; }
/** * * @param \Nethgui\Controller\Table\Read $action * @param \Nethgui\View\ViewInterface $view * @param string $key The data row key * @param array $values The data row values * @return string|\Nethgui\View\ViewInterface */ public function prepareViewForColumnPorts(\Nethgui\Controller\Table\Read $action, \Nethgui\View\ViewInterface $view, $key, $values, &$rowMetadata) { $ret = " "; $tcp = isset($values['TCPPort']) ? $values['TCPPort'] : ""; if ($tcp == "" && isset($values['TCPPorts'])) { $tcp = $values['TCPPorts']; } $udp = isset($values['UDPPort']) ? $values['UDPPort'] : ""; if ($udp == "" && isset($values['UDPPorts'])) { $udp = $values['UDPPorts']; } if ($tcp !== "") { $ret .= $view->translate("TCPPorts_label") . ": {$tcp} "; } if ($udp !== "") { $ret .= " " . $view->translate("UDPPorts_label") . ": {$udp} "; } return $ret; }
public function getLog() { return $this->view->getLog(); }
private function getCategoriesViewValue(\Nethgui\View\ViewInterface $view) { $groups = array(); $categories = $this->getParent()->getYumCategories(); if (count($categories) === 0) { return array(); } foreach ($this->getAdapter() as $group) { $groups[] = $group['id']; } $everything = array('id' => 'everything', 'name' => $view->translate('Everything_category_label'), 'description' => $view->translate('Everything_category_description'), 'display_order' => 0, 'groups' => array_unique($groups), 'selected' => TRUE); return array_merge(array($everything), $categories); }
public function prepareView(\Nethgui\View\ViewInterface $view) { if (!$this->getRequest()->isValidated()) { $this->getAdapter()->setLoader(NULL); } else { $view->getCommandList()->show(); } if ($this->getRequest()->hasParameter('installSuccess')) { $this->getAction('AdminTodo')->emitNotifications = TRUE; $this->notifications->yumSuccess(array('message' => $view->translate('YumSuccess_message'), 'description' => $view->translate('YumSuccess_description'), 'buttonLabel' => $view->translate('YumSuccess_button_label'), 'action' => $view->getModuleUrl('..'))); } elseif ($this->getRequest()->hasParameter('installFailure')) { $taskStatus = $this->systemTasks->getTaskStatus($this->getRequest()->getParameter('taskId')); if (isset($taskStatus['children'][0]['message'])) { $message = $taskStatus['children'][0]['message']; } else { $message = $view->translate('An unknown installation error has occurred'); } $this->notifications->yumError(array('message' => $message, 'description' => $view->translate('ClearYumCache_description'), 'buttonLabel' => $view->translate('ClearYumCache_label'), 'action' => $view->getModuleUrl('../ClearYumCache'))); } parent::prepareView($view); if (isset($this->yumError)) { $this->notifications->yumError(array('message' => $this->yumError, 'description' => $view->translate('ClearYumCache_description'), 'buttonLabel' => $view->translate('ClearYumCache_label'), 'action' => $view->getModuleUrl('../ClearYumCache'))); } }
/** * XXX: experimental -> CSS injection **/ public function prepareView(\Nethgui\View\ViewInterface $view) { $cssCode = "\n tr.running td:nth-child(3) { color: green }\n tr.stopped td:nth-child(3) { color: red }\n "; $view->getCommandList('/Resource/css')->appendCode($cssCode, 'css'); $moduleUrl = json_encode($view->getModuleUrl("/Dashboard/Services")); $jsCode = "\n(function ( \$ ) {\n \$(document).ready(function() {\n \$.Nethgui.Server.ajaxMessage({\n isMutation: false,\n url: {$moduleUrl}\n });\n });\n} ( jQuery ));\n "; $view->getCommandList('/Resource/js')->appendCode($jsCode, 'js'); parent::prepareView($view); }
public function hasCommandList($selector = '') { return $this->view->hasCommandList($selector); }
public function getSteps(\Nethgui\View\ViewInterface $view, $currentModuleIdentifier) { $steps = array(); foreach ($this->getStepList() as $child) { $steps[] = array('target' => $view->getUniqueId($child->getIdentifier()), 'title' => $view->getTranslator()->translate($child, $child->getAttributesProvider()->getTitle()), 'description' => $view->getTranslator()->translate($child, $child->getAttributesProvider()->getDescription()), 'current?' => $child->getIdentifier() === $currentModuleIdentifier); } return $steps; }
private function readDomainAddressDatasource(\Nethgui\View\ViewInterface $view) { $domains = array(array('', $view->translate('ANY_DOMAIN'))); foreach ($this->getPlatform()->getDatabase('domains')->getAll('domain') as $key => $prop) { $domains[] = array($key, $key); } return $domains; }
public function prepareViewForColumnNoKeep(\Nethgui\Controller\Table\Read $action, \Nethgui\View\ViewInterface $view, $key, $values, &$rowMetadata) { return $view->translate($values['nokeep'] . "_label"); }
public function prepareView(\Nethgui\View\ViewInterface $view) { if ($this->getRequest()->isMutation()) { $this->getPlatform()->setDetachedProcessCondition('success', array('location' => array('url' => $view->getModuleUrl('Modules?installSuccess'), 'freeze' => TRUE))); $this->getPlatform()->setDetachedProcessCondition('failure', array('location' => array('url' => $view->getModuleUrl('Modules?installFailure&taskId={taskId}'), 'freeze' => TRUE))); } parent::prepareView($view); }
public function prepareView(\Nethgui\View\ViewInterface $view) { $view['download'] = $view->translate("see_log_label"); }
public function prepareView(\Nethgui\View\ViewInterface $view) { if ($view->getTargetFormat() === $view::TARGET_JSON) { if ($this->getRequest()->isEmpty()) { return; } $view['tags'] = $this->searchTags($view, $this->parameters['search']); return; } parent::prepareView($view); $view->setTemplate(array($this, 'renderModuleMenu')); $categories = array(); $translator = $view->getTranslator(); if (defined('NETHGUI_MENU_CATEGORIES')) { $categoryOrder = array_flip(array_map('trim', explode(',', NETHGUI_MENU_CATEGORIES))); } else { $categoryOrder = array(); } foreach ($this->moduleSet as $moduleIdentifier => $moduleInstance) { if (!$moduleInstance instanceof \Nethgui\Module\ModuleInterface) { continue; } $attributes = $moduleInstance->getAttributesProvider(); $category = $attributes->getCategory(); $title = $translator->translate($moduleInstance, $attributes->getTitle()); $tags = $translator->translate($moduleInstance, $attributes->getTags()); $description = $translator->translate($moduleInstance, $attributes->getDescription()); $href = $view->spawnView($moduleInstance)->getModuleUrl(); $position = $attributes->getMenuPosition(); // skip elements without any category if (is_null($category)) { continue; } // initialize category: if (!isset($categories[$category])) { $categories[$category] = array('key' => $category, 'title' => $translator->translate($moduleInstance, $category), 'items' => array()); } // add item to category if (!isset($categories[$category]['items'][$moduleIdentifier])) { $categories[$category]['items'][$moduleIdentifier] = array('identifier' => $moduleIdentifier, 'title' => $title, 'description' => $description, 'href' => $href, 'tags' => $tags, 'position' => $position); } } foreach ($categories as &$category) { usort($category['items'], array($this, 'sortItems')); } usort($categories, function ($c, $d) use($categoryOrder) { if (isset($categoryOrder[$c['key']], $categoryOrder[$d['key']])) { return $categoryOrder[$c['key']] - $categoryOrder[$d['key']]; } return strcmp($c['title'], $d['title']); }); $view['categories'] = $categories; }
/** * * @param \Nethgui\View\ViewInterface $view * @param string $key The data row key * @param array $values The data row values * @param array &$rowMetadata The metadadata row values, like css classes * @return \Nethgui\View\ViewInterface */ public function prepareViewForColumnActions(\Nethgui\View\ViewInterface $view, $key, $values, &$rowMetadata) { $cellView = $view->spawnView($this->getParent()); $cellView->setTemplate(array($this, 'renderColumnActions')); foreach ($this->getParent()->getRowActions() as $action) { $actionId = $action->getIdentifier(); $actionInfo = array(); $actionInfo[] = $cellView->translate($actionId . '_label'); $actionInfo[] = $cellView->getModuleUrl(sprintf('%s/%s', $action->getIdentifier(), $key)); $cellView[$actionId] = $actionInfo; } return $cellView; }
public function prepareView(\Nethgui\View\ViewInterface $view) { $template = $this->getViewTemplate(); if (!is_null($template)) { $view->setTemplate($template); } }