/** * Task@setStatus */ public function setStatus() { $controller = new JsonController(); $task_name = Filter::get('task'); $task = $this->provider->getTask($task_name, false); $controller->restrictAccess(true && Auth::isAdmin() && $task); $status = Filter::getBool('status'); $res = array('task' => $task->getName(), 'error' => null); try { $this->provider->setTaskStatus($task, $status); $res['status'] = $status; Log::addConfigurationLog('Module ' . $this->module->getName() . ' : Admin Task "' . $task->getName() . '" has been ' . ($status ? 'enabled' : 'disabled') . '.'); } catch (\Exception $ex) { $res['error'] = $ex->getMessage(); Log::addErrorLog('Module ' . $this->module->getName() . ' : Admin Task "' . $task->getName() . '" could not be ' . ($status ? 'enabled' : 'disabled') . '. Error: ' . $ex->getMessage()); } $controller->pageHeader(); if ($res['error']) { http_response_code(500); } $controller->encode($res); }
/** * GeoAnalysis@dataTabs */ public function dataTabs() { global $WT_TREE; $controller = new JsonController(); $ga_id = Filter::getInteger('ga_id'); $ga = $this->provider->getGeoAnalysis($ga_id); $sosa_provider = new SosaProvider($WT_TREE, Auth::user()); $controller->restrictAccess($ga && $sosa_provider->isSetup())->pageHeader(); $jsonArray = array(); list($placesDispGeneral, $placesDispGenerations) = $ga->getAnalysisResults($sosa_provider->getAllSosaWithGenerations()); $flags = array(); if ($placesDispGeneral && $ga->getOptions() && $ga->getOptions()->isUsingFlags()) { $mapProvider = new GoogleMapsProvider(); foreach ($placesDispGeneral['places'] as $place => $count) { $flags[$place] = $mapProvider->getPlaceIcon(new Place($place, $WT_TREE)); } } $jsonArray['generaltab'] = $this->htmlPlacesAnalysisGeneralTab($ga, $placesDispGeneral, $flags); $jsonArray['generationstab'] = $this->htmlPlacesAnalysisGenerationsTab($ga, $placesDispGenerations, $flags); $controller->encode($jsonArray); }
/** * Certificate@autocomplete */ public function autocomplete() { global $WT_TREE; $controller = new JsonController(); $city = Filter::get('city'); $contains = Filter::get('term'); $controller->restrictAccess(Auth::isEditor($WT_TREE) && !empty($city) && !empty($contains))->pageHeader(); $listCert = $this->provider->getCertificatesListBeginWith($city, $contains); $controller->encode($listCert); }
/** * AdminConfig@jsonTasksList */ public function jsonTasksList() { global $WT_TREE; $controller = new JsonController(); $controller->restrictAccess(Auth::isAdmin()); // Generate an AJAX/JSON response for datatables to load a block of rows $search = Filter::postArray('search'); if ($search) { $search = $search['value']; } $start = Filter::postInteger('start'); $length = Filter::postInteger('length'); $order = Filter::postArray('order'); $order_by_name = false; foreach ($order as $key => &$value) { switch ($value['column']) { case 3: $order_by_name = true; unset($order[$key]); break; case 4: $value['column'] = 'majat_last_run'; break; case 4: $value['column'] = 'majat_last_result'; break; default: unset($order[$key]); } } $list = $this->provider->getFilteredTasksList($search, $order, $start, $length); if ($order_by_name) { usort($list, function (AbstractTask $a, AbstractTask $b) { return I18N::strcasecmp($a->getTitle(), $b->getTitle()); }); } $recordsFiltered = count($list); $recordsTotal = $this->provider->getTasksCount(); $data = array(); foreach ($list as $task) { $datum = array(); $datum[0] = ' <div class="btn-group"> <button type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown" aria-expanded="false"> <i class="fa fa-pencil"></i><span class="caret"></span> </button> <ul class="dropdown-menu" role="menu"> <li> <a href="#" onclick="return set_admintask_status(\'' . $task->getName() . '\', ' . ($task->isEnabled() ? 'false' : 'true') . ');"> <i class="fa fa-fw ' . ($task->isEnabled() ? 'fa-times' : 'fa-check') . '"></i> ' . ($task->isEnabled() ? I18N::translate('Disable') : I18N::translate('Enable')) . ' </a> </li> <li> <a href="module.php?mod=' . $this->module->getName() . '&mod_action=Task@edit&task=' . $task->getName() . '"> <i class="fa fa-fw fa-pencil"></i> ' . I18N::translate('Edit') . ' </a> </li> </ul> </div>'; $datum[1] = $task->getName(); $datum[2] = $task->isEnabled() ? '<i class="fa fa-check"></i><span class="sr-only">' . I18N::translate('Enabled') . '</span>' : '<i class="fa fa-times"></i><span class="sr-only">' . I18N::translate('Disabled') . '</span>'; $datum[3] = $task->getTitle(); $date_format = str_replace('%', '', I18N::dateFormat()) . ' H:i:s'; $datum[4] = $task->getLastUpdated()->format($date_format); $datum[5] = $task->isLastRunSuccess() ? '<i class="fa fa-check"></i><span class="sr-only">' . I18N::translate('Yes') . '</span>' : '<i class="fa fa-times"></i><span class="sr-only">' . I18N::translate('No') . '</span>'; $dtF = new \DateTime('@0'); $dtT = new \DateTime('@' . $task->getFrequency() * 60); $datum[6] = $dtF->diff($dtT)->format(I18N::translate('%a d %h h %i m')); $datum[7] = $task->getRemainingOccurrences() > 0 ? I18N::number($task->getRemainingOccurrences()) : I18N::translate('Unlimited'); $datum[8] = $task->isRunning() ? '<i class="fa fa-cog fa-spin fa-fw"></i><span class="sr-only">' . I18N::translate('Running') . '</span>' : '<i class="fa fa-times"></i><span class="sr-only">' . I18N::translate('Not running') . '</span>'; if ($task->isEnabled() && !$task->isRunning()) { $datum[9] = ' <button id="bt_runtask_' . $task->getName() . '" class="btn btn-primary" href="#" onclick="return run_admintask(\'' . $task->getName() . '\')"> <div id="bt_runtasktext_' . $task->getName() . '"><i class="fa fa-cog fa-fw" ></i>' . I18N::translate('Run') . '</div> </button>'; } else { $datum[9] = ''; } $data[] = $datum; } $controller->pageHeader(); $controller->encode(array('draw' => Filter::getInteger('draw'), 'recordsTotal' => $recordsTotal, 'recordsFiltered' => $recordsFiltered, 'data' => $data)); }
/** * AdminConfig@jsonGeoAnalysisList */ public function jsonGeoAnalysisList() { global $WT_TREE; $controller = new JsonController(); $controller->restrictAccess(Auth::isManager($WT_TREE)); // Generate an AJAX/JSON response for datatables to load a block of rows $search = Filter::postArray('search'); if ($search) { $search = $search['value']; } $start = Filter::postInteger('start'); $length = Filter::postInteger('length'); $order = Filter::postArray('order'); foreach ($order as $key => &$value) { switch ($value['column']) { case 3: $value['column'] = 'majgd_descr'; break; case 5: $value['column'] = 'majgd_sublevel'; break; default: unset($order[$key]); } } /** @var GeoAnalysisProvider $provider */ $provider = $this->module->getProvider(); $list = $provider->getFilteredGeoAnalysisList($search, $order, $start, $length); $recordsFiltered = count($list); $recordsTotal = $this->provider->getGeoAnalysisCount(); $data = array(); $place_hierarchy = $this->provider->getPlacesHierarchy(); foreach ($list as $ga) { /** @var GeoAnalysis $ga */ $datum = array(); $options = $ga->getOptions(); $datum[0] = ' <div class="btn-group"> <button type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown" aria-expanded="false"> <i class="fa fa-pencil"></i><span class="caret"></span> </button> <ul class="dropdown-menu" role="menu"> <li> <a href="#" onclick="return set_geoanalysis_status(' . $ga->getId() . ', ' . ($ga->isEnabled() ? 'false' : 'true') . ', \'' . Filter::escapeJs($WT_TREE->getName()) . '\');"> <i class="fa fa-fw ' . ($ga->isEnabled() ? 'fa-times' : 'fa-check') . '"></i> ' . ($ga->isEnabled() ? I18N::translate('Disable') : I18N::translate('Enable')) . ' </a> </li> <li> <a href="module.php?mod=' . $this->module->getName() . '&mod_action=AdminConfig@edit&ga_id=' . $ga->getId() . '&ged=' . $WT_TREE->getName() . '"> <i class="fa fa-fw fa-pencil"></i> ' . I18N::translate('Edit') . ' </a> </li> <li class="divider" /> <li> <a href="#" onclick="return delete_geoanalysis(' . $ga->getId() . ', \'' . Filter::escapeJs($WT_TREE->getName()) . '\');"> <i class="fa fa-fw fa-trash-o"></i> ' . I18N::translate('Delete') . ' </a> </li> </ul> </div>'; $datum[1] = $ga->getId(); $datum[2] = $ga->isEnabled() ? '<i class="fa fa-check"></i><span class="sr-only">' . I18N::translate('Enabled') . '</span>' : '<i class="fa fa-times"></i><span class="sr-only">' . I18N::translate('Disabled') . '</span>'; $datum[3] = $ga->getTitle(); $analysis_level = $ga->getAnalysisLevel(); if ($place_hierarchy['type'] == 'header') { $datum[4] = $place_hierarchy['hierarchy'][$analysis_level - 1]; } else { $datum[4] = $analysis_level . '(' . $place_hierarchy['hierarchy'][$analysis_level - 1] . ')'; } $datum[5] = $ga->getAnalysisLevel(); $datum[6] = '<i class="fa fa-times"></i><span class="sr-only">' . I18N::translate('None') . '</span>'; $datum[7] = '<i class="fa fa-times"></i><span class="sr-only">' . I18N::translate('None') . '</span>'; if ($ga->hasMap()) { $datum[6] = $options->getMap()->getDescription(); $datum[7] = '<span data-toggle="tooltip" title="' . $options->getMap()->getTopLevelName() . '" />'; $top_level = $options->getMapLevel(); if ($place_hierarchy['type'] == 'header') { $datum[7] .= $place_hierarchy['hierarchy'][$top_level - 1]; } else { $datum[7] .= $top_level . '(' . $place_hierarchy['hierarchy'][$top_level - 1] . ')'; } $datum[7] .= '</span>'; } $datum[8] = $options->isUsingFlags() ? '<i class="fa fa-check"></i><span class="sr-only">' . I18N::translate('Yes') . '</span>' : '<i class="fa fa-times"></i><span class="sr-only">' . I18N::translate('No') . '</span>'; $datum[9] = $options->getMaxDetailsInGen() > 0 ? $options->getMaxDetailsInGen() : I18N::translate('All'); $data[] = $datum; } $controller->pageHeader(); $controller->encode(array('draw' => Filter::getInteger('draw'), 'recordsTotal' => $recordsTotal, 'recordsFiltered' => $recordsFiltered, 'data' => $data)); }