/** * Get results of the user's search of experiments with pagination * @return array|null */ public static function get_expsearch_results_with_pagination($inputs, $limit, $offset) { $experiments = array(); try { $filters = array(); if (!empty($inputs["status-type"])) { if ($inputs["status-type"] != "ALL") { $filters[\Airavata\Model\Experiment\ExperimentSearchFields::STATUS] = $inputs["status-type"]; } } if (!empty($inputs["search-key"])) { switch ($inputs["search-key"]) { case 'experiment-name': $filters[\Airavata\Model\Experiment\ExperimentSearchFields::EXPERIMENT_NAME] = $inputs["search-value"]; break; case 'experiment-description': $filters[\Airavata\Model\Experiment\ExperimentSearchFields::EXPERIMENT_DESC] = $inputs["search-value"]; break; case 'application': $filters[\Airavata\Model\Experiment\ExperimentSearchFields::APPLICATION_ID] = $inputs["search-value"]; break; case 'creation-time': $filters[\Airavata\Model\Experiment\ExperimentSearchFields::FROM_DATE] = strtotime($inputs["from-date"]) * 1000; $filters[\Airavata\Model\Experiment\ExperimentSearchFields::TO_DATE] = strtotime($inputs["to-date"]) * 1000; break; case '': } } $experiments = Airavata::searchExperiments(Session::get('authz-token'), Session::get('gateway_id'), Session::get('username'), $filters, $limit, $offset); } catch (InvalidRequestException $ire) { CommonUtilities::print_error_message('InvalidRequestException!<br><br>' . $ire->getMessage()); } catch (AiravataClientException $ace) { CommonUtilities::print_error_message('AiravataClientException!<br><br>' . $ace->getMessage()); } catch (AiravataSystemException $ase) { if ($ase->airavataErrorType == 2) { CommonUtilities::print_info_message('<p>You have not created any experiments yet, so no results will be returned!</p> <p>Click <a href="create_experiment.php">here</a> to create an experiment, or <a href="create_project.php">here</a> to create a new project.</p>'); } else { CommonUtilities::print_error_message('There was a problem with Airavata. Please try again later or report a bug using the link in the Help menu.'); //print_error_message('AiravataSystemException!<br><br>' . $ase->airavataErrorType . ': ' . $ase->getMessage()); } } catch (TTransportException $tte) { CommonUtilities::print_error_message('TTransportException!<br><br>' . $tte->getMessage()); } //get values of all experiments $expContainer = array(); $expNum = 0; foreach ($experiments as $experiment) { $expValue = ExperimentUtilities::get_experiment_summary_values($experiment, true); $expContainer[$expNum]['experiment'] = $experiment; if ($expValue["experimentStatusString"] == "FAILED") { $expValue["editable"] = false; } $expContainer[$expNum]['expValue'] = $expValue; $expNum++; } return $expContainer; }