public function manage_actions()
 {
     if (isset($_GET['forcestop']) && isset($_GET['id']) && isset($_GET['exp_type'])) {
         require_once NELIOAB_ADMIN_DIR . '/experiments-page-controller.php';
         NelioABExperimentsPageController::stop_experiment($_GET['id'], $_GET['exp_type']);
         echo '[SUCCESS]' . admin_url(sprintf('admin.php?page=nelioab-experiments&action=progress&id=%s&exp_type=%s', $_GET['id'], $_GET['exp_type']));
         die;
     }
     if (isset($_POST['apply_alternative'])) {
         $this->apply_alternative();
         return;
     }
 }
 public static function generate_html_content()
 {
     // Before rendering content we check whether an action was required
     if (isset($_REQUEST['GET_action']) && isset($_REQUEST['exp_id']) && isset($_REQUEST['exp_type'])) {
         switch ($_REQUEST['GET_action']) {
             case 'schedule':
                 NelioABExperimentsPageController::schedule_experiment($_REQUEST['exp_id'], $_REQUEST['exp_type'], $_REQUEST['schedule_date']);
                 break;
             case 'cancel-schedule':
                 NelioABExperimentsPageController::cancel_scheduling_of_experiment($_REQUEST['exp_id'], $_REQUEST['exp_type']);
                 break;
             case 'start':
                 NelioABExperimentsPageController::start_experiment($_REQUEST['exp_id'], $_REQUEST['exp_type']);
                 break;
             case 'duplicate':
                 $new_name = 'New Experiment';
                 if (isset($_REQUEST['name']) && !empty($_REQUEST['name'])) {
                     $new_name = $_REQUEST['name'];
                 }
                 NelioABExperimentsPageController::duplicate_experiment($new_name, $_REQUEST['exp_id'], $_REQUEST['exp_type']);
                 break;
             case 'stop':
                 NelioABExperimentsPageController::stop_experiment($_REQUEST['exp_id'], $_REQUEST['exp_type']);
                 break;
             case 'trash':
                 NelioABExperimentsPageController::trash_experiment($_REQUEST['exp_id'], $_REQUEST['exp_type']);
                 break;
             case 'restore':
                 NelioABExperimentsPageController::untrash_experiment($_REQUEST['exp_id'], $_REQUEST['exp_type']);
                 break;
             case 'delete':
                 NelioABExperimentsPageController::remove_experiment($_REQUEST['exp_id'], $_REQUEST['exp_type']);
                 break;
             default:
                 // Nothing to be done by default
                 // REMEMBER: if something has to be done "by default", YOU must pay
                 // attention to the IF checking of ISSET variables...
         }
     }
     // Obtain DATA from APPSPOT
     $experiments = array();
     try {
         $experiments = NelioABExperimentsManager::get_experiments();
     } catch (Exception $e) {
         require_once NELIOAB_ADMIN_DIR . '/error-controller.php';
         NelioABErrorController::build($e);
     }
     // Clean inconsistent data
     self::clean_inconsistent_data($experiments);
     // Render content
     $title = __('Experiments', 'nelioab');
     $view = new NelioABExperimentsPage($title);
     $view->set_experiments($experiments);
     if (isset($_REQUEST['status'])) {
         $view->filter_by_status($_REQUEST['status']);
     }
     $view->render_content();
     // Update cache
     NelioABExperimentsManager::update_running_experiments_cache();
     die;
 }