in app/libraries/ExperimentUtilities.php [808:937]
public static function create_inputs($id, $experimentInputs, $allowedFileSize)
{
$inputs = AppUtilities::get_application_inputs($id);
// require if existing input has no value (check $experimentInputs) or file doesn't exist
$required = ' required';
//var_dump( $inputs); echo "<br/>after sort<br/>";
//arranging inputs in ascending order.
foreach ($inputs as $index => $input) {
$order[$index] = $input->inputOrder;
}
if($inputs != null){
array_multisort($order, SORT_ASC, $inputs);
}
// var_dump( $inputs); exit;
foreach ($inputs as $input) {
$disabled = "";
if($input->isReadOnly)
$disabled = "disabled";
if ($experimentInputs !== null) {
foreach ($experimentInputs as $experimentInput) {
if ($input->name === $experimentInput->name && $experimentInput->value !== null) {
if ($experimentInput->type === DataType::URI) {
$path = ExperimentUtilities::get_data_product_path($experimentInput);
// Don't require the input file if there is already an existing value
if ($path !== null && file_exists($path)) {
$required = '';
}
}
}
}
}
switch ($input->type) {
case DataType::STRING:
echo '<div class="form-group">
<label for="experiment-input">' . $input->name . '</label>';
if(!empty($input->value) && count(explode(",", $input->value)) > 1){
echo '<select class="form-control" name="' . $input->sanitizedFormName .
'" id="' . $input->sanitizedFormName . '">';
$vals = explode(",", $input->value);
echo '<option value="'.$vals[0].'" selected>'.$vals[0] .'</option>';
for($i=1; $i<count(explode(",", $input->value)); $i++){
echo '<option value="'.$vals[$i].'">'.$vals[$i] .'</option>';
}
echo '</select></div>';
}else{
echo '<input '.$disabled . ' value="' . $input->value . '" type="text" class="form-control" name="' . $input->sanitizedFormName .
'" id="' . $input->sanitizedFormName .
'" placeholder="' . $input->userFriendlyDescription . '"' . $required . '>
</div>';
}
break;
case DataType::INTEGER:
echo '<div class="form-group">
<label for="experiment-input">' . $input->name . '</label>';
if(!empty($input->value) && count(explode(",", $input->value)) > 1){
echo '<select class="form-control" name="' . $input->sanitizedFormName .
'" id="' . $input->sanitizedFormName . '">';
$vals = explode(",", $input->value);
echo '<option value="'.$vals[0].'" selected>'.$vals[0] .'</option>';
for($i=1; $i<count(explode(",", $input->value)); $i++){
echo '<option value="'.$vals[$i].'">'.$vals[$i] .'</option>';
}
echo '</select>';
}else{
echo '<input '.$disabled . ' value="' . $input->value . '" type="number" class="form-control" name="' . $input->sanitizedFormName .
'" id="' . $input->sanitizedFormName .
'" placeholder="' . $input->userFriendlyDescription . '"' . $required . '>
</div>';
}
break;
case DataType::FLOAT:
echo '<div class="form-group">
<label for="experiment-input">' . $input->name . '</label>';
if(!empty($input->value) && count(explode(",", $input->value)) > 1){
echo '<select class="form-control" name="' . $input->sanitizedFormName .
'" id="' . $input->sanitizedFormName . '">';
$vals = explode(",", $input->value);
echo '<option value="'.$vals[0].'" selected>'.$vals[0] .'</option>';
for($i=1; $i<count(explode(",", $input->value)); $i++){
echo '<option value="'.$vals[$i].'">'.$vals[$i] .'</option>';
}
echo '</select>';
}else{
echo '<input '.$disabled . ' value="' . $input->value . '" type="number" step="0.01" class="form-control" name="' . $input->sanitizedFormName .
'" id="' . $input->sanitizedFormName .
'" placeholder="' . $input->userFriendlyDescription . '"' . $required . '>
</div>';
}
break;
case DataType::URI:
echo '<div class="form-group">
<label for="experiment-input">' . $input->name . '</label>
<div data-file-id="' . $input->sanitizedFormName . '" class="readBytesButtons btn btn-default btn-xs"
data-toggle="modal" style="float: right">view file</div>
<div class="file-upload-container">
<input class="file-input" type="file" name="' . $input->sanitizedFormName .
'" id="' . $input->sanitizedFormName . '" ' . $required . '>
<div class="file-upload-max-size">Max Upload Size: ' . $allowedFileSize .'M</div>
</div>
<p class="help-block">' . $input->userFriendlyDescription . '</p>
</div>';
break;
case DataType::URI_COLLECTION:
// Support for URI_COLLECTION is not implemented in PGA, just ignore
break;
default:
CommonUtilities::print_error_message('Input data type not supported!
Please file a bug report using the link in the Help menu.');
break;
}
}
$appInterface = AppUtilities::get_application_interface($id);
if($appInterface->hasOptionalFileInputs){
echo '<div>
<label>Optional Input Files</label>
<div class="file-upload-container">
<input type="file" class="file-input" id="optInputFiles" name="optInputFiles[]" multiple onchange="javascript:updateList()" >
<div class="file-upload-max-size">Max Upload Size: ' . $allowedFileSize .'M</div>
</div>
<div id="optFileList"></div>
</div>';
}
}