public static function create_inputs()

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>';
        }
    }