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