Example #1
0
 /**
  * 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));
 }