summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xdownload.inc12
-rw-r--r--experiments_list.inc455
-rwxr-xr-xlab_details.inc10
-rwxr-xr-xlab_migration.module32
-rwxr-xr-xmanage_proposal.inc141
-rwxr-xr-xproposal.inc82
-rwxr-xr-xrun.inc172
-rwxr-xr-xsettings.inc36
-rwxr-xr-xsolution_proposal.inc8
-rwxr-xr-xupload_code.inc49
10 files changed, 769 insertions, 228 deletions
diff --git a/download.inc b/download.inc
index f16cf0f..821025b 100755
--- a/download.inc
+++ b/download.inc
@@ -18,6 +18,18 @@ function lab_migration_download_solution_file()
header('Content-Length: ' . filesize($root_path . $solution_file_data->directory_name . '/' . $solution_file_data->filepath));
readfile($root_path . $solution_file_data->directory_name . '/' . $solution_file_data->filepath);
}
+ function lab_migration_download_problem_statement()
+ {
+ $proposal_id = arg(3);
+ $root_path = lab_migration_path();
+ $proposal_q = db_query("SELECT lmp.* FROM lab_migration_proposal lmp WHERE lmp.id = :proposal_id LIMIT 1", array(':proposal_id' => $proposal_id));
+ $proposal_data = $proposal_q->fetchObject();
+ header('Content-Type: doc');
+ //header('Content-Type: application/octet-stram');
+ header('Content-disposition: attachment; filename="' . str_replace(' ', '_', ($proposal_data->problem_statement_file)) . '"');
+ header('Content-Length: ' . filesize($root_path . $proposal_data->directory_name . '/' . $proposal_data->problem_statement_file));
+ readfile($root_path . $proposal_data->directory_name . '/' . $proposal_data->problem_statement_file);
+ }
function lab_migration_download_dependency_file()
{
$dependency_file_id = arg(3);
diff --git a/experiments_list.inc b/experiments_list.inc
new file mode 100644
index 0000000..7d63fea
--- /dev/null
+++ b/experiments_list.inc
@@ -0,0 +1,455 @@
+<?php
+function lab_migration_experiments_list($form, &$form_state)
+ {
+ $options_first = _list_of_labs();
+ $options_two = _ajax_get_experiments_list();
+ $select_two = isset($form_state['values']['lab_experiment_list']) ? $form_state['values']['lab_experiment_list'] : key($options_two);
+ $url_lab_id = (int) arg(2);
+ if (!$url_lab_id)
+ {
+ $selected = isset($form_state['values']['lab']) ? $form_state['values']['lab'] : key($options_first);
+ }
+ elseif ($url_lab_id == '')
+ {
+ $selected = 0;
+ }
+ else
+ {
+ $selected = $url_lab_id;
+ ;
+ }
+ $form = array();
+ $form['lab'] = array(
+ '#type' => 'select',
+ '#title' => t('Title of the lab'),
+ '#options' => _list_of_labs(),
+ '#default_value' => $selected,
+ '#ajax' => array(
+ 'callback' => 'ajax_experiments_list_callback'
+ )
+ );
+ if (!$url_lab_id)
+ {
+ $form['selected_lab'] = array(
+ '#type' => 'item',
+ '#markup' => '<div id="ajax_selected_lab"></div>'
+ );
+ $form['selected_lab_cfd'] = array(
+ '#type' => 'item',
+ '#markup' => '<div id="ajax_selected_lab_cfd"></div>'
+ );
+ $form['selected_lab_pdf'] = array(
+ '#type' => 'item',
+ '#markup' => '<div id="ajax_selected_lab_pdf"></div>'
+ );
+ /* $form['lab_details'] = array(
+ '#type' => 'item',
+ '#markup' => '<div id="ajax_lab_details"></div>'
+ );*/
+ $form['lab_experiment_list'] = array(
+ '#type' => 'item',
+ '#title' => t('Title of the experiment'),
+ '#markup' => _ajax_get_experiments_list($selected),
+ //'#default_value' => isset($form_state['values']['lab_experiment_list']) ? $form_state['values']['lab_experiment_list'] : '',s
+ '#prefix' => '<div id="ajax_selected_experiment">',
+ '#suffix' => '</div>',
+ '#states' => array(
+ 'invisible' => array(
+ ':input[name="lab"]' => array(
+ 'value' => 0
+ )
+ )
+ )
+ );
+ }
+ else
+ {
+ $lab_default_value = $url_lab_id;
+ $form['selected_lab'] = array(
+ '#type' => 'item',
+ '#markup' => '<div id="ajax_selected_lab">' . l('Download Lab Solutions', 'lab-migration/download/lab/' . $lab_default_value) . '</div>'
+ );
+ /* $form['selected_lab_pdf'] = array(
+ '#type' => 'item',
+ '#markup' => '<div id="ajax_selected_lab_pdf">'. l('Download PDF of Lab Solutions', 'lab-migration/generate-lab/' . $lab_default_value . '/1') .'</div>',
+
+ );*/
+ if ($lab_default_value == '2')
+ {
+ $form['selected_lab_cfd'] = array(
+ '#type' => 'item',
+ '#markup' => '<div id="ajax_selected_lab_cfd">' . l('Download Lab Solutions (OpenFOAM Version)', 'lab-migration-uploads/OpenFOAM_Version.zip') . '</div>'
+ );
+ }
+ /* $form['lab_details'] = array(
+ '#type' => 'item',
+ '#markup' => '<div id="ajax_lab_details">' . _lab_details($lab_default_value) . '</div>'
+ );*/
+ $form['lab_experiment_list'] = array(
+ '#type' => 'item',
+ '#title' => t('Titile of the experiment'),
+ //'#options' => _ajax_get_experiments_list($selected),
+ '#markup' => _ajax_get_experiments_list($lab_default_value),
+ // '#default_value' => isset($form_state['values']['lab_experiment_list']) ? //$form_state['values']['lab_experiment_list'] : '',
+ '#prefix' => '<div id="ajax_selected_experiment">',
+ '#suffix' => '</div>',
+ '#states' => array(
+ 'invisible' => array(
+ ':input[name="lab"]' => array(
+ 'value' => 0
+ )
+ )
+ )
+ );
+ }
+ /*
+ $form['message'] = array(
+ '#type' => 'textarea',
+ '#title' => t('If Dis-Approved please specify reason for Dis-Approval'),
+ '#prefix' => '<div id= "message_submit">',
+ '#states' => array('invisible' => array(':input[name="lab"]' => array('value' => 0,),),),
+
+ );
+
+ $form['submit'] = array(
+ '#type' => 'submit',
+ '#value' => t('Submit'),
+ '#suffix' => '</div>',
+ '#states' => array('invisible' => array(':input[name="lab"]' => array('value' => 0,),),),
+
+ );*/
+ return $form;
+ }
+function ajax_experiments_list_callback($form, $form_state)
+ {
+ $commands = array();
+ $lab_default_value = $form_state['values']['lab'];
+ if ($lab_default_value != 0)
+ {
+ $form['lab_details']['#markup'] = _lab_details($lab_default_value);
+ $lab_details = _lab_information($lab_default_value);
+ $user_solution_provider = user_load($lab_details->solution_provider_uid);
+ //var_dump($lab_details->solution_provider_uid);
+ if ($lab_details->solution_provider_uid > 0)
+ {
+ $commands[] = ajax_command_html('#ajax_selected_lab', l('Download Lab Solutions', 'lab-migration/download/lab/' . $lab_default_value));
+ if ($lab_default_value == '2')
+ {
+ $commands[] = ajax_command_html('#ajax_selected_lab_cfd', l('Download Lab Solutions (OpenFOAM Version)', 'lab-migration_uploads/OpenFOAM_Version.zip'));
+ }
+ /* $commands[] = ajax_command_html('#ajax_selected_lab_pdf', l('Download PDF of Lab Solutions', 'lab-migration/generate-lab/' . $lab_default_value . '/1'));*/
+ }
+ else
+ {
+ $commands[] = ajax_command_html('#ajax_selected_lab', '');
+ $commands[] = ajax_command_html('#ajax_selected_lab_pdf', '');
+ $commands[] = ajax_command_html('#ajax_selected_lab_cfd', '');
+ }
+ $commands[] = ajax_command_html('#ajax_lab_details', _lab_details($lab_default_value));
+ $form['lab_experiment_list']['#markup'] = _ajax_get_experiments_list($lab_default_value);
+ $commands[] = ajax_command_replace('#ajax_selected_experiment', drupal_render($form['lab_experiment_list']));
+ }
+ else
+ {
+ $form['lab_experiment_list']['#markup'] = _ajax_get_experiments_list();
+ $commands[] = ajax_command_replace('#ajax_selected_experiment', drupal_render($form['lab_experiment_list']));
+ $commands[] = ajax_command_html('#ajax_lab_details', '');
+ $commands[] = ajax_command_html('#ajax_selected_lab', '');
+ $commands[] = ajax_command_html('#ajax_selected_lab_cfd', '');
+ $commands[] = ajax_command_html('#ajax_selected_lab_pdf', '');
+ $commands[] = ajax_command_data('#ajax_selected_lab', 'form_state_value_select', $form_state['values']['lab']);
+ $commands[] = ajax_command_html('#ajax_selected_experiment', '');
+ $commands[] = ajax_command_html('#ajax_download_experiments', '');
+ $commands[] = ajax_command_html('#ajax_selected_solution', '');
+ $commands[] = ajax_command_html('#ajax_solution_files', '');
+ $commands[] = ajax_command_html('#ajax_download_experiment_solution', '');
+ $commands[] = ajax_command_html('#ajax_edit_experiment_solution', '');
+ }
+ return array(
+ '#type' => 'ajax',
+ '#commands' => $commands
+ );
+ }
+function ajax_solution_list_callback($form, $form_state)
+ {
+ $commands = array();
+ $experiment_list_default_value = $form_state['values']['lab_experiment_list'];
+ //var_dump($lab_default_value);
+ if ($experiment_list_default_value != 0)
+ {
+ $form['lab_solution_list']['#options'] = _ajax_get_solution_list($experiment_list_default_value);
+ $commands[] = ajax_command_html('#ajax_download_experiments', l('Download Experiment', 'lab-migration/download/experiment/' . $experiment_list_default_value));
+ $commands[] = ajax_command_html('#ajax_selected_experiment', drupal_render($form['lab_experiment_list']));
+ $commands[] = ajax_command_html('#ajax_selected_solution', drupal_render($form['lab_solution_list']));
+ // $commands[] = ajax_command_html('#ajax_solution_files', '');
+ // $commands[] = ajax_command_html('#ajax_download_experiment_solution', '');
+ // $commands[] = ajax_command_html('#ajax_edit_experiment_solution', '');
+ }
+ else
+ {
+ $form['lab_solution_list']['#options'] = _ajax_get_solution_list();
+ $commands[] = ajax_command_html('#ajax_selected_solution', drupal_render($form['lab_solution_list']));
+ $commands[] = ajax_command_html('#ajax_download_experiments', '');
+ $commands[] = ajax_command_html('#ajax_selected_solution', '');
+ $commands[] = ajax_command_html('#ajax_solution_files', '');
+ $commands[] = ajax_command_html('#ajax_download_experiment_solution', '');
+ $commands[] = ajax_command_html('#ajax_edit_experiment_solution', '');
+ // $commands[] = ajax_command_replace('#ajax_selected_experiment',drupal_render($form['lab_experiment_list']));
+ }
+ return array(
+ '#type' => 'ajax',
+ '#commands' => $commands
+ );
+ }
+function ajax_solution_files_callback($form, $form_state)
+ {
+ $commands = array();
+ $solution_list_default_value = $form_state['values']['lab_solution_list'];
+ //var_dump($lab_default_value);
+ if ($solution_list_default_value != 0)
+ {
+ $commands[] = ajax_command_html('#ajax_selected_lab_experiment_solution_action', drupal_render($form['lab_experiment_solution_actions']));
+ /*************************************************************************************/
+ //$solution_list_q = db_query("SELECT * FROM {lab_migration_solution_files} WHERE solution_id = %d", $form_state['values']['solution']);
+ $query = db_select('lab_migration_solution_files');
+ $query->fields('lab_migration_solution_files');
+ $query->condition('solution_id', $solution_list_default_value);
+ $solution_list_q = $query->execute();
+ if ($solution_list_q)
+ {
+ $solution_files_rows = array();
+ while ($solution_list_data = $solution_list_q->fetchObject())
+ {
+ $solution_file_type = '';
+ switch ($solution_list_data->filetype)
+ {
+ case 'S':
+ $solution_file_type = 'Source or Main file';
+ break;
+ case 'R':
+ $solution_file_type = 'Result file';
+ break;
+ case 'X':
+ $solution_file_type = 'xcos file';
+ break;
+ default:
+ $solution_file_type = 'Unknown';
+ break;
+ }
+ $solution_files_rows[] = array(
+ l($solution_list_data->filename, 'lab-migration/download/file/' . $solution_list_data->id),
+ $solution_file_type
+ );
+ }
+ /* dependency files */
+ //$dependency_q = db_query("SELECT * FROM {lab_migration_solution_dependency} WHERE solution_id = %d", $form_state['values']['solution']);
+ $query = db_select('lab_migration_solution_dependency');
+ $query->fields('lab_migration_solution_dependency');
+ $query->condition('solution_id', $solution_list_default_value);
+ $dependency_q = $query->execute();
+ while ($dependency_data = $dependency_q->fetchObject())
+ {
+ //$dependency_files_q = db_query("SELECT * FROM {lab_migration_dependency_files} WHERE id = %d", $dependency_data->dependency_id);
+ $query = db_select('lab_migration_dependency_files');
+ $query->fields('lab_migration_dependency_files');
+ $query->condition('id', $dependency_data->dependency_id);
+ $dependency_files_q = $query->execute();
+ $dependency_files_data = $dependency_files_q->fetchObject();
+ $solution_file_type = 'Dependency file';
+ $solution_files_rows[] = array(
+ l($dependency_files_data->filename, 'lab-migration/download/dependency/' . $dependency_files_data->id),
+ $solution_file_type
+ );
+ }
+ /* creating list of files table */
+ $solution_files_header = array(
+ 'Filename',
+ 'Type'
+ );
+ $solution_files = theme('table', array(
+ 'header' => $solution_files_header,
+ 'rows' => $solution_files_rows
+ ));
+ }
+ $form['solution_files']['#title'] = 'List of solution files';
+ $form['solution_files']['#markup'] = $solution_files;
+ $commands[] = ajax_command_html('#ajax_download_experiment_solution', l('Download Solution', 'lab-migration/download/solution/' . $solution_list_default_value));
+ // $commands[] = ajax_command_html('#ajax_edit_experiment_solution', l('Edit Solution', 'code_approval/editcode/' . $solution_list_default_value));
+ // $commands[] = ajax_command_html('#ajax_solution_files', $solution_files);
+ $commands[] = ajax_command_html('#ajax_solution_files', drupal_render($form['solution_files']));
+ }
+ else
+ {
+ $commands[] = ajax_command_html('#ajax_selected_lab_experiment_solution_action', '');
+ $commands[] = ajax_command_html('#ajax_download_experiment_solution', '');
+ $commands[] = ajax_command_html('#ajax_edit_experiment_solution', '');
+ $commands[] = ajax_command_html('#ajax_solution_files', '');
+ }
+ return array(
+ '#type' => 'ajax',
+ '#commands' => $commands
+ );
+ }
+function bootstrap_table_format($headers, $rows)
+ {
+ $thead = "";
+ $tbody = "";
+ foreach ($headers as $header)
+ {
+ $thead .= "<th>{$header}</th>";
+ }
+ foreach ($rows as $row)
+ {
+ $tbody .= "<tr>";
+ foreach ($row as $data)
+ {
+ $tbody .= "<td>{$data}</td>";
+ }
+ $tbody .= "</tr>";
+ }
+ $table = "
+ <table class='table table-bordered table-hover' style='margin-left:-140px'>
+ <thead>{$thead}</thead>
+ <tbody>{$tbody}</tbody>
+ </table>
+ ";
+ return $table;
+ }
+/*****************************************************/
+function _list_of_labs()
+ {
+ $lab_titles = array(
+ '0' => 'Please select...'
+ );
+ //$lab_titles_q = db_query("SELECT * FROM {lab_migration_proposal} WHERE solution_display = 1 ORDER BY lab_title ASC");
+ $query = db_select('lab_migration_proposal');
+ $query->fields('lab_migration_proposal');
+ $query->condition('solution_display', 1);
+ $query->condition('approval_status', 3);
+ $query->orderBy('lab_title', 'ASC');
+ $lab_titles_q = $query->execute();
+ while ($lab_titles_data = $lab_titles_q->fetchObject())
+ {
+ $lab_titles[$lab_titles_data->id] = $lab_titles_data->lab_title . ' (Proposed by ' . $lab_titles_data->name_title .' '.$lab_titles_data->name . ')';
+ }
+ return $lab_titles;
+ }
+function _ajax_get_experiments_list($lab_default_value = '')
+ {
+ $experiments = array(
+ '0' => 'Please select...'
+ );
+ $query = db_select('lab_migration_proposal');
+ $query->fields('lab_migration_proposal');
+ $query->condition('id', $lab_default_value);
+ $query->orderBy('lab_title', 'ASC');
+ $lab_titles_q = $query->execute();
+ $lab_titles_data = $lab_titles_q->fetchObject();
+ //$experiments_q = db_query("SELECT * FROM {lab_migration_experiment} WHERE proposal_id = %d ORDER BY number ASC", $proposal_id);
+ $query = db_select('lab_migration_experiment');
+ $query->fields('lab_migration_experiment');
+ $query->condition('proposal_id', $lab_default_value);
+ $query->orderBy('number', 'ASC');
+ $experiments_q = $query->execute();
+ $solution_provider_user_name = '';
+ $user_data = user_load($proposal_data->solution_provider_uid);
+ if ($user_data)
+ {
+ $solution_provider_user_name = $user_data->name;
+ }
+ else
+ {
+ $solution_provider_user_name = $lab_titles_data->name;
+ }
+ while ($experiments_data = $experiments_q->fetchObject())
+ {
+ $pending_solution_rows[] = array(
+ $lab_titles_data->lab_title,
+ $experiments_data->title,
+ l('View Solution', 'lab-migration/lab-migration-run/' . $lab_titles_data->id . '/' . $experiments_data->id)
+ );
+ }
+ $header = array(
+ 'Title of the Lab',
+ 'Experiment',
+ 'Actions'
+ );
+ //$output = theme_table($header, $pending_solution_rows);
+ $output = theme('table', array(
+ 'header' => $header,
+ 'rows' => $pending_solution_rows
+ ));
+ return $output;
+ }
+function _ajax_get_solution_list($lab_experiment_list = '')
+ {
+ $solutions = array(
+ '0' => 'Please select...'
+ );
+ // $solutions_q = db_query("SELECT * FROM {lab_migration_solution} WHERE experiment_id = %d ORDER BY
+ // CAST(SUBSTRING_INDEX(code_number, '.', 1) AS BINARY) ASC,
+ // CAST(SUBSTRING_INDEX(SUBSTRING_INDEX(code_number , '.', 2), '.', -1) AS UNSIGNED) ASC,
+ // CAST(SUBSTRING_INDEX(SUBSTRING_INDEX(code_number , '.', -1), '.', 1) AS UNSIGNED) ASC", $experiment_id);
+ $query = db_select('lab_migration_solution');
+ $query->fields('lab_migration_solution');
+ $query->condition('experiment_id', $lab_experiment_list);
+ //$query->orderBy("CAST(SUBSTRING_INDEX(code_number, '.', 1) AS BINARY", "ASC");
+ // $query->orderBy("CAST(SUBSTRING_INDEX(SUBSTRING_INDEX(code_number , '.', 2), '.', -1) AS UNSIGNED", "ASC");
+ // $query->orderBy("CAST(SUBSTRING_INDEX(SUBSTRING_INDEX(code_number , '.', -1), '.', 1) AS UNSIGNED", "ASC");
+ $solutions_q = $query->execute();
+ while ($solutions_data = $solutions_q->fetchObject())
+ {
+ $solutions[$solutions_data->id] = $solutions_data->code_number . ' (' . $solutions_data->caption . ')';
+ }
+ return $solutions;
+ }
+function _lab_information($proposal_id)
+ {
+ //$lab_q = db_query("SELECT * FROM {lab_migration_proposal} WHERE id = %d", $proposal_id);
+ $query = db_select('lab_migration_proposal');
+ $query->fields('lab_migration_proposal');
+ $query->condition('id', $proposal_id);
+ $query->condition('approval_status', 3);
+ $lab_q = $query->execute();
+ $lab_data = $lab_q->fetchObject();
+ if($lab_data){
+ return $lab_data;
+ }
+ else
+ {
+ return ;
+ }
+
+ }
+function _lab_details($lab_default_value)
+ {
+ //$lab_default_value = $form_state['values']['lab'];
+ $lab_details = _lab_information($lab_default_value);
+ if ($lab_default_value != 0)
+ {
+ if ($lab_details){
+ if ($lab_details->solution_provider_uid > 0)
+ {
+ $user_solution_provider = user_load($lab_details->solution_provider_uid);
+ if ($user_solution_provider)
+ {
+ $solution_provider = '<span style="color: rgb(128, 0, 0);"><strong>Solution Provider</strong></span></td><td style="width: 35%;"><br />' . '<ul>' . '<li><strong>Solution Provider Name:</strong> ' . $lab_details->solution_provider_name_title . ' ' . $lab_details->solution_provider_name . '</li>' . '<li><strong>Department:</strong> ' . $lab_details->solution_provider_department . '</li>' . '<li><strong>University:</strong> ' . $lab_details->solution_provider_university . '</li>' . '</ul>';
+ }
+ else
+ {
+ $solution_provider = '<span style="color: rgb(128, 0, 0);"><strong>Solution Provider</strong></span></td><td style="width: 35%;"><br />' . '<ul>' . '<li><strong>Solution Provider: </strong> (Open) </li>' . '</ul>';
+ }
+ }
+ else
+ {
+ $solution_provider = '<span style="color: rgb(128, 0, 0);"><strong>Solution Provider</strong></span></td><td style="width: 35%;"><br />' . '<ul>' . '<li><strong>Solution Provider: </strong> (Open) </li>' . '</ul>';
+ }}
+ else{
+ drupal_goto('lab-migration/lab-migration-run');
+
+ }
+ $form['lab_details']['#markup'] = '<span style="color: rgb(128, 0, 0);"><strong>About the Lab</strong></span></td><td style="width: 35%;"><br />' . '<ul>' . '<li><strong>Proposer Name:</strong> ' . $lab_details->name_title . ' ' . $lab_details->name . '</li>' . '<li><strong>Title of the Lab:</strong> ' . $lab_details->lab_title . '</li>' . '<li><strong>Department:</strong> ' . $lab_details->department . '</li>' . '<li><strong>University:</strong> ' . $lab_details->university . '</li>' . '<li><strong>Category:</strong> ' . $lab_details->category . '</li>' . '</ul>' . $solution_provider;
+ $details = $form['lab_details']['#markup'];
+ return $details;
+ }
+ }
diff --git a/lab_details.inc b/lab_details.inc
index 898b504..bd270f7 100755
--- a/lab_details.inc
+++ b/lab_details.inc
@@ -20,10 +20,17 @@ function lab_migration_completed_labs_all()
while ($row = $result->fetchObject())
{
$approval_date = date("Y", $row->approval_date);
+ if($row->problem_statement_file == ''){
+ $problem_statement_file = "NA";
+ }
+ else{
+ $problem_statement_file = l('View', 'lab-migration/download/problem-statement/' . $row->id);
+ }
$preference_rows[] = array(
$i,
$row->university,
- l($row->lab_title, "lab-migration/lab-migration-run/" . $row->id),
+ l($row->lab_title, "lab-migration/experiments-list/" . $row->id),
+ $problem_statement_file,
$approval_date
);
$i--;
@@ -32,6 +39,7 @@ function lab_migration_completed_labs_all()
'No',
'Institute',
'Lab',
+ 'Problem Statement',
'Year'
);
$output .= theme('table', array(
diff --git a/lab_migration.module b/lab_migration.module
index fb03977..68d849f 100755
--- a/lab_migration.module
+++ b/lab_migration.module
@@ -341,14 +341,16 @@ function lab_migration_menu()
'type' => MENU_CALLBACK,
'file' => 'download.inc'
);
- /*$items['lab_migration/download/dependency'] = array(
- 'title' => 'Code Download',
- 'description' => 'Code Download',
- 'page callback' => 'lab_migration_download_dependency_file',
- 'access arguments' => array('lab migration download code'),
- 'type' => MENU_CALLBACK,
- 'file' => 'download.inc',
- );*/
+ $items['lab-migration/download/problem-statement'] = array(
+ 'title' => 'Download Problem Statement',
+ 'description' => 'Download Problem Statement',
+ 'page callback' => 'lab_migration_download_problem_statement',
+ 'access arguments' => array(
+ 'lab migration download code'
+ ),
+ 'type' => MENU_CALLBACK,
+ 'file' => 'download.inc'
+ );
$items['lab-migration/download/solution'] = array(
'title' => 'Code Download',
'description' => 'Code Download',
@@ -408,6 +410,18 @@ function lab_migration_menu()
),
'file' => 'lab_details.inc'
);
+ $items['lab-migration/experiments-list'] = array(
+ 'title' => 'Download Codes',
+ 'page callback' => 'drupal_get_form',
+ 'page arguments' => array(
+ 'lab_migration_experiments_list'
+ ),
+ 'access arguments' => array(
+ 'lab migration download code'
+ ),
+ 'type' => MENU_NORMAL_ITEM,
+ 'file' => 'experiments_list.inc'
+ );
/* LABS IN PROGRESS */
$items['lab-migration/labs-progress'] = array(
'title' => 'Labs in Progress',
@@ -715,7 +729,7 @@ function lab_migration_ajax()
/*************************** VALIDATION FUNCTIONS *****************************/
function lab_migration_check_valid_filename($file_name)
{
- if (!preg_match('/^[0-9a-zA-Z\.]+$/', $file_name))
+ if (!preg_match('/^[0-9a-zA-Z_\.]+$/', $file_name))
return FALSE;
else if (substr_count($file_name, ".") > 1)
return FALSE;
diff --git a/manage_proposal.inc b/manage_proposal.inc
index 6df058c..9769880 100755
--- a/manage_proposal.inc
+++ b/manage_proposal.inc
@@ -297,6 +297,11 @@ function lab_migration_proposal_approval_form($form, $form_state)
'#title' => t('Do you want to provide the solution'),
'#markup' => $solution_provider
);
+ $form['problem_statement_file'] = array(
+ '#type' => 'item',
+ '#title' => t('Problem statement file uploaded by the proposer'),
+ '#markup' => l('View', 'lab-migration/download/problem-statement/' . $proposal_data->id)
+ );
/* $form['solution_display'] = array(
'#type' => 'item',
'#title' => t('Do you want to display the solution on the www.dwsim.fossee.in website'),
@@ -861,7 +866,7 @@ function lab_migration_proposal_edit_form($form, $form_state)
'#type' => 'textfield',
'#title' => t('Title of the Lab'),
'#size' => 30,
- '#maxlength' => 50,
+ '#maxlength' => 255,
'#required' => TRUE,
'#default_value' => $proposal_data->lab_title
);
@@ -941,6 +946,19 @@ function lab_migration_proposal_edit_form($form, $form_state)
);
}
}
+ if(!$proposal_data->problem_statement_file){
+ $existing_uploaded_A_file = new stdClass();
+ $existing_uploaded_A_file->filename = "No file uploaded";
+ }
+ else{
+ $existing_uploaded_A_file->filename = $proposal_data->problem_statement_file;
+ }
+ $form['edit_problem_statement'] = array(
+ '#type' => 'file',
+ '#title' => t('Edit the Problem statement file'),
+ //'#required' => TRUE,
+ '#description' => t('<span style="color:red;">Current File :</span> ' . $existing_uploaded_A_file->filename . '<br />Separate filenames with underscore. No spaces or any special characters allowed in filename.') . '<br />' . t('<span style="color:red;">Allowed file extensions: ') . variable_get('lab_migration_problem_statement_extensions', '') . '</span>',
+ );
if ($proposal_data->solution_provider_uid == 0)
{
$solution_provider_user = 'Open';
@@ -1016,12 +1034,34 @@ function lab_migration_proposal_edit_form_validate($form, &$form_state)
}
}
}
+ if (isset($_FILES['files']))
+ {
+ /* check for valid filename extensions */
+ foreach ($_FILES['files']['name'] as $file_form_name => $file_name)
+ {
+ if ($file_name)
+ {
+ $allowed_extensions_str = variable_get('lab_migration_problem_statement_extensions', '');
+ $allowed_extensions = explode(',', $allowed_extensions_str);
+ $fnames = explode('.', strtolower($_FILES['files']['name'][$file_form_name]));
+ $temp_extension = end($fnames);
+ if (!in_array($temp_extension, $allowed_extensions))
+ form_set_error($file_form_name, t('Only file with ' . $allowed_extensions_str . ' extensions can be uploaded.'));
+ if ($_FILES['files']['size'][$file_form_name] <= 0)
+ form_set_error($file_form_name, t('File size cannot be zero.'));
+ /* check if valid file name */
+ if (!lab_migration_check_valid_filename($_FILES['files']['name'][$file_form_name]))
+ form_set_error($file_form_name, t('Invalid file name specified. Only alphabets and numbers are allowed as a valid filename.'));
+ } //$file_name
+ } //$_FILES['files']['name'] as $file_form_name => $file_name
+ }
return;
}
function lab_migration_proposal_edit_form_submit($form, &$form_state)
{
global $user;
/* get current proposal */
+ $root_path = lab_migration_path();
$proposal_id = (int) arg(3);
// $proposal_q = db_query("SELECT * FROM {lab_migration_proposal} WHERE id = %d", $proposal_id);
$query = db_select('lab_migration_proposal');
@@ -1097,17 +1137,6 @@ function lab_migration_proposal_edit_form_submit($form, &$form_state)
}
/* update proposal */
$v = $form_state['values'];
- //$query = "UPDATE {lab_migration_proposal} SET name_title = :name_title, name = :name, contact_ph = :contact_ph, department = :department, university = :unversity, lab_title = :lab_title, solution_display = :solution_display WHERE id = :id";
- // $args= array(
- // ":name_title" => $v['name_title'],
- // ":name" => $v['name'],
- // "contact_ph" => $v['contact_ph'],
- // ":department" => $v['department'],
- // ":university" => $v['university'],
- // ":lab_title" => $v['lab_title'],
- // ":solution_display" => $solution_display,
- // ":id" => $proposal_id,
- // );
$lab_title = $v['lab_title'];
$proposar_name = $v['name_title'] . ' ' . $v['name'];
$university = $v['university'];
@@ -1131,9 +1160,35 @@ function lab_migration_proposal_edit_form_submit($form, &$form_state)
'state' => $v['all_state'],
'lab_title' => $v['lab_title'],
'solution_display' => $solution_display,
- 'directory_name' => $directory_name
+ 'directory_name' => $directory_name,
))->condition('id', $proposal_id);
$result1 = $query->execute();
+ /*Updating the Problem statement file*/
+ if (isset($_FILES['files'])) {
+ foreach ($_FILES['files']['name'] as $file_form_name => $file_name) {
+ if (file_exists($root_path . $directory_name . '/' . $_FILES['files']['name'][$file_form_name])) {
+ unlink($root_path . $directory_name . '/' . $_FILES['files']['name'][$file_form_name]);
+ move_uploaded_file($_FILES['files']['tmp_name'][$file_form_name], $root_path . $directory_name . '/' . $_FILES['files']['name'][$file_form_name]);
+ drupal_set_message(t("File !filename already exists hence overwirtten the exisitng file ", array(
+ '!filename' => $_FILES['files']['name'][$file_form_name],
+ )), 'status');
+ } //file_exists($root_path . $dest_path . $_FILES['files']['name'][$file_form_name])
+ /* uploading file */
+ else if (move_uploaded_file($_FILES['files']['tmp_name'][$file_form_name], $root_path . $directory_name . '/' . $_FILES['files']['name'][$file_form_name])) {
+ /* for uploaded files making an entry in the database */
+ unlink($root_path . $directory_name . '/' . $proposal_data->problem_statement_file);
+ $query = "UPDATE lab_migration_proposal SET problem_statement_file = :filename WHERE id = :proposal_id";
+ $args = array(
+ ":filename" => $_FILES['files']['name'][$file_form_name],
+ ":proposal_id" => $proposal_id,
+ );
+ db_query($query, $args, array('return' => Database::RETURN_INSERT_ID,
+ ));
+
+ drupal_set_message($file_name . ' file updated successfully.', 'status');
+ }
+ } //move_uploaded_file($_FILES['files']['tmp_name'][$file_form_name], $root_path . $dest_path . $_FILES['files']['name'][$file_form_name])
+ }
//$result=db_query($query, $args);
/* updating existing experiments */
$query = db_select('lab_migration_experiment');
@@ -1172,28 +1227,6 @@ function lab_migration_proposal_edit_form_submit($form, &$form_state)
}
}
}
- /* foreach ($form_state['values']['lab_experiment']['update'] as $update_id => $update_value) {
- if (strlen(trim($update_value)) >= 1) {
- $description= $form_state['values']['lab_experiment_description']['update'];
- $query = "UPDATE {lab_migration_experiment} SET title = :title and description=:description WHERE id = :id";
- $args = array(
- ":title"=> trim($update_value),
- ":description"=>trim($description),
- ":id"=> $update_id,
- );
- $result2 = db_query($query, $args);
- if (!$result2)
- {
- drupal_set_message(t('Could not update Title of the Experiment : ') . trim($update_value), 'error');
- }
- } else {
- $query = "DELETE FROM {lab_migration_experiment} WHERE id = :id LIMIT 1";
- $args = array(
- ":id" => $update_id
- );
- $result3 = db_query($query, $args);
- }
- }*/
/* inserting new experiments */
$query = db_select('lab_migration_experiment');
$query->fields('lab_migration_experiment');
@@ -1236,43 +1269,7 @@ function lab_migration_proposal_edit_form_submit($form, &$form_state)
}
}
}
- /* $query = db_select('lab_migration_experiment');
- $query->fields('lab_migration_experiment');
- $query->condition('proposal_id', $proposal_id);
- $query->orderBy('number', 'DESC');
- $query->range(0, 1);
- $number_q = $query->execute();
- if ($number_data = $number_q->fetchObject()) {
- $number = (int)$number_data->number;
- $number++;
- } else {
- $number = 1;
- }
- $insertvalue = array($insert_id => $insert_value);
- $lab_experimentinsert = $form_state['values']['lab_experiment']['insert'];
- $lab_exp_descriptioninsert=$form_state['values']['lab_experiment_description']['insert'];
- if (is_array($lab_experimentinsert) || is_object($lab_experimentinsert))
- {
- foreach ($lab_experimentinsert as $insertvalue) {
- //foreach ($form_state['values']['lab_experiment']['insert'] as $insert_id => $insert_value) {
- if (strlen(trim($insert_value)) >= 1) {
- $query = "INSERT INTO {lab_migration_experiment} (proposal_id, number, title, description) VALUES :proposal_id, :number, :title, :description";
- $args = array(
- ":proposal_id" => $proposal_id,
- ":number" => $number,
- ":title" => trim($insert_value),
- ":description"=>""
- );
- $result4 = db_query($query, $args);
- if (!$result4)
- {
- drupal_set_message(t('Could not insert Title of the Experiment : ') . trim($insert_value), 'error');
- } else {
- $number++;
- }
- }
- }
- }*/
+
drupal_set_message(t('Proposal Updated'), 'status');
}
/******************************************************************************/
diff --git a/proposal.inc b/proposal.inc
index 720d1a7..d6d3e8c 100755
--- a/proposal.inc
+++ b/proposal.inc
@@ -227,17 +227,19 @@ function lab_migration_proposal_form($form, &$form_state)
'#type' => 'textfield',
'#title' => t('Title of the Lab'),
'#size' => 50,
+ '#maxlength' => 255,
'#required' => TRUE
);
$first_experiemnt = TRUE;
for ($counter = 1; $counter <= 15; $counter++)
{
- if ($counter <= 5)
+ if ($counter <= 1)
{
$form['lab_experiment-' . $counter] = array(
'#type' => 'textfield',
'#title' => t('Title of the Experiment ') . $counter,
'#size' => 50,
+ '#required' => TRUE
);
$namefield = "lab_experiment-" . $counter;
$form['lab_experiment_description-' . $counter] = array(
@@ -308,6 +310,19 @@ function lab_migration_proposal_form($form, &$form_state)
'#description' => 'If yes, solutions will be made available to everyone for downloading.',
'#disabled' => FALSE
);
+ $form['problem_statement'] = array(
+ '#type' => 'fieldset',
+ '#title' => t('Problem statement for the proposed lab<span style="color:red">*</span>'),
+ '#collapsible' => FALSE,
+ '#collapsed' => FALSE,
+ );
+ $form['problem_statement']['ps_file'] = array(
+ '#type' => 'file',
+ '#title' => t('<span style="color:red;font-weight:bold">NOTE: </span>Please upload a Problem Statement for each experiment proposed in a document format. To view the template of the document please click <a href="https://cfd.fossee.in/sites/default/files/Problem_Statement_Template.doc" target="_blank">here</a>'),
+ '#size' => 48,
+ '#description' => t('Only alphabets and numbers are allowed as a valid filename.') . '<br />' .
+ t('Allowed file extensions: ') . variable_get('lab_migration_problem_statement_extensions', ''),
+ );
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Submit')
@@ -387,10 +402,35 @@ function lab_migration_proposal_form_validate($form, &$form_state)
form_set_error('older', t('Please provide valid version'));
}
}
+ if (isset($_FILES['files']))
+ {
+ /* check if atleast one source or result file is uploaded */
+ if (!($_FILES['files']['name']['ps_file']))
+ form_set_error('ps_file', t('Please upload file with the problem statement.'));
+ /* check for valid filename extensions */
+ foreach ($_FILES['files']['name'] as $file_form_name => $file_name)
+ {
+ if ($file_name)
+ {
+ $allowed_extensions_str = variable_get('lab_migration_problem_statement_extensions', '');
+ $allowed_extensions = explode(',', $allowed_extensions_str);
+ $fnames = explode('.', strtolower($_FILES['files']['name'][$file_form_name]));
+ $temp_extension = end($fnames);
+ if (!in_array($temp_extension, $allowed_extensions))
+ form_set_error($file_form_name, t('Only file with ' . $allowed_extensions_str . ' extensions can be uploaded.'));
+ if ($_FILES['files']['size'][$file_form_name] <= 0)
+ form_set_error($file_form_name, t('File size cannot be zero.'));
+ /* check if valid file name */
+ if (!lab_migration_check_valid_filename($_FILES['files']['name'][$file_form_name]))
+ form_set_error($file_form_name, t('Invalid file name specified. Only alphabets and numbers are allowed as a valid filename.'));
+ } //$file_name
+ } //$_FILES['files']['name'] as $file_form_name => $file_name
+ }
return;
}
function lab_migration_proposal_form_submit($form, &$form_state)
{
+ $root_path = lab_migration_path();
global $user;
if (!$user->uid)
{
@@ -442,11 +482,11 @@ function lab_migration_proposal_form_submit($form, &$form_state)
$university = $v['university'];
$directory_name = _lm_dir_name($lab_title, $proposar_name, $university);
$result = "INSERT INTO {lab_migration_proposal}
- (uid, approver_uid, name_title, name, contact_ph, department, university, city, pincode, state, country, version, lab_title, approval_status, solution_status, solution_provider_uid, solution_display, creation_date, approval_date, solution_date, solution_provider_name_title, solution_provider_name, solution_provider_contact_ph, solution_provider_department, solution_provider_university, solution_provider_city, solution_provider_country, solution_provider_state, solution_provider_pincode, directory_name) VALUES
+ (uid, approver_uid, name_title, name, contact_ph, department, university, city, pincode, state, country, version, lab_title, approval_status, solution_status, solution_provider_uid, solution_display, creation_date, approval_date, solution_date, solution_provider_name_title, solution_provider_name, solution_provider_contact_ph, solution_provider_department, solution_provider_university, solution_provider_city, solution_provider_country, solution_provider_state, solution_provider_pincode, directory_name,problem_statement_file) VALUES
(:uid, :approver_uid, :name_title, :name, :contact_ph, :department, :university, :city, :pincode, :state, :country,
:version, :lab_title, :approval_status, :solution_status, :solution_provider_uid, :solution_display, :creation_date,
:approval_date, :solution_date, :solution_provider_name_title, :solution_provider_name,
- :solution_provider_contact_ph, :solution_provider_department, :solution_provider_university, :solution_provider_city, :solution_provider_country, :solution_provider_state, :solution_provider_pincode, :directory_name)";
+ :solution_provider_contact_ph, :solution_provider_department, :solution_provider_university, :solution_provider_city, :solution_provider_country, :solution_provider_state, :solution_provider_pincode, :directory_name, :problem_statement_file)";
$args = array(
":uid" => $user->uid,
":approver_uid" => 0,
@@ -477,11 +517,45 @@ function lab_migration_proposal_form_submit($form, &$form_state)
":solution_provider_country" => $solution_provider_country,
":solution_provider_state" => $solution_provider_state,
":solution_provider_pincode" => $solution_provider_pincode,
- ":directory_name" => $directory_name
+ ":directory_name" => $directory_name,
+ ":problem_statement_file" => ""
);
$proposal_id = db_query($result, $args, array(
'return' => Database::RETURN_INSERT_ID
));
+ $dest_path = $directory_name . '/';
+ if (!is_dir($root_path . $dest_path))
+ mkdir($root_path . $dest_path);
+ /* uploading files */
+ foreach ($_FILES['files']['name'] as $file_form_name => $file_name)
+ {
+ if ($file_name)
+ {
+ /* checking file type */
+ //$file_type = 'S';
+ if (file_exists($root_path . $dest_path . $_FILES['files']['name'][$file_form_name]))
+ {
+ drupal_set_message(t("Error uploading file. File !filename already exists.", array('!filename' => $_FILES['files']['name'][$file_form_name])), 'error');
+ //unlink($root_path . $dest_path . $_FILES['files']['name'][$file_form_name]);
+ } //file_exists($root_path . $dest_path . $_FILES['files']['name'][$file_form_name])
+ /* uploading file */
+ if (move_uploaded_file($_FILES['files']['tmp_name'][$file_form_name], $root_path . $dest_path . $_FILES['files']['name'][$file_form_name]))
+ {
+ $query = "UPDATE lab_migration_proposal SET problem_statement_file = :problem_statement_file WHERE id = :id";
+ $args = array(
+ ":problem_statement_file" => $_FILES['files']['name'][$file_form_name],
+ ":id" => $proposal_id
+ );
+
+ $updateresult = db_query($query, $args);
+ drupal_set_message($file_name . ' uploaded successfully.', 'status');
+ } //move_uploaded_file($_FILES['files']['tmp_name'][$file_form_name], $root_path . $dest_path . $_FILES['files']['name'][$file_form_name])
+ else
+ {
+ drupal_set_message('Error uploading file : ' . $dest_path . $file_name, 'error');
+ }
+ } //$file_name
+ }
if (!$proposal_id)
{
drupal_set_message(t('Error receiving your proposal. Please try again.'), 'error');
diff --git a/run.inc b/run.inc
index 4ad250b..833a34d 100755
--- a/run.inc
+++ b/run.inc
@@ -1,10 +1,12 @@
<?php
function lab_migration_run_form($form, &$form_state)
{
- $options_first = _list_of_labs();
+
$options_two = _ajax_get_experiment_list();
$select_two = isset($form_state['values']['lab_experiment_list']) ? $form_state['values']['lab_experiment_list'] : key($options_two);
$url_lab_id = (int) arg(2);
+ $url_experiment_id = (int) arg(3);
+ $options_first = _list_of_labs($url_lab_id);
if (!$url_lab_id)
{
$selected = isset($form_state['values']['lab']) ? $form_state['values']['lab'] : key($options_first);
@@ -16,19 +18,27 @@ function lab_migration_run_form($form, &$form_state)
else
{
$selected = $url_lab_id;
- ;
+ }
+ if (!$url_experiment_id)
+ {
+ $selected_experiment = isset($form_state['values']['lab_experiment_list']) ? $form_state['values']['lab_experiment_list'] : key($options_two);
+ }
+ elseif ($url_experiment_id == '')
+ {
+ $selected_experiment = 0;
+ }
+ else
+ {
+ $selected_experiment = $url_experiment_id;
}
$form = array();
$form['lab'] = array(
'#type' => 'select',
'#title' => t('Title of the lab'),
- '#options' => _list_of_labs(),
+ '#options' => _list_of_labs($selected),
'#default_value' => $selected,
- '#ajax' => array(
- 'callback' => 'ajax_experiment_list_callback'
- )
);
- if (!$url_lab_id)
+ /*if (!$url_lab_id)
{
$form['selected_lab'] = array(
'#type' => 'item',
@@ -48,21 +58,14 @@ function lab_migration_run_form($form, &$form_state)
);
$form['lab_experiment_list'] = array(
'#type' => 'select',
- '#title' => t('Titile of the experiment'),
+ '#title' => t('Title of the experiment'),
'#options' => _ajax_get_experiment_list($selected),
- //'#default_value' => isset($form_state['values']['lab_experiment_list']) ? $form_state['values']['lab_experiment_list'] : '',
+ '#default_value' => isset($form_state['values']['lab_experiment_list']) ? $form_state['values']['lab_experiment_list'] : '',
'#ajax' => array(
'callback' => 'ajax_solution_list_callback'
),
'#prefix' => '<div id="ajax_selected_experiment">',
'#suffix' => '</div>',
- '#states' => array(
- 'invisible' => array(
- ':input[name="lab"]' => array(
- 'value' => 0
- )
- )
- )
);
$form['download_experiment'] = array(
'#type' => 'item',
@@ -79,13 +82,6 @@ function lab_migration_run_form($form, &$form_state)
),
'#prefix' => '<div id="ajax_selected_solution">',
'#suffix' => '</div>',
- '#states' => array(
- 'invisible' => array(
- ':input[name="lab"]' => array(
- 'value' => 0
- )
- )
- )
);
$form['download_solution'] = array(
'#type' => 'item',
@@ -109,67 +105,63 @@ function lab_migration_run_form($form, &$form_state)
);
}
else
- {
+ {*/
$lab_default_value = $url_lab_id;
- $form['selected_lab'] = array(
+ $experiment_default_value = $url_experiment_id;
+ /*$form['selected_lab'] = array(
'#type' => 'item',
'#markup' => '<div id="ajax_selected_lab">' . l('Download Lab Solutions', 'lab-migration/download/lab/' . $lab_default_value) . '</div>'
);
- /* $form['selected_lab_pdf'] = array(
- '#type' => 'item',
- '#markup' => '<div id="ajax_selected_lab_pdf">'. l('Download PDF of Lab Solutions', 'lab-migration/generate-lab/' . $lab_default_value . '/1') .'</div>',
-
- );*/
if ($lab_default_value == '2')
{
$form['selected_lab_dwsim'] = array(
'#type' => 'item',
'#markup' => '<div id="ajax_selected_lab_dwsim">' . l('Download Lab Solutions (dwsim Version)', 'lab-migration-uploads/dwsim_Version.zip') . '</div>'
);
- }
- $form['lab_details'] = array(
+ }*/
+ $form['selected_lab'] = array(
'#type' => 'item',
- '#markup' => '<div id="ajax_lab_details">' . _lab_details($lab_default_value) . '</div>'
+ '#markup' => '<div id="ajax_selected_lab">' . l('Download Lab Solutions', 'lab-migration/download/lab/' . $lab_default_value) . '</div>'
);
$form['lab_experiment_list'] = array(
'#type' => 'select',
- '#title' => t('Titile of the experiment'),
+ '#title' => t('Title of the experiment'),
'#options' => _ajax_get_experiment_list($selected),
- // '#default_value' => isset($form_state['values']['lab_experiment_list']) ? $form_state['values']['lab_experiment_list'] : '',
+ '#default_value' => $selected_experiment,
'#ajax' => array(
'callback' => 'ajax_solution_list_callback'
),
'#prefix' => '<div id="ajax_selected_experiment">',
'#suffix' => '</div>',
- '#states' => array(
+ /*'#states' => array(
'invisible' => array(
':input[name="lab"]' => array(
'value' => 0
)
)
- )
+ )*/
);
$form['download_experiment'] = array(
'#type' => 'item',
- '#markup' => '<div id="ajax_download_experiments"></div>'
+ '#markup' => '<div id="ajax_download_experiments">' . l('Download Experiment', 'lab-migration/download/experiment/' . $selected_experiment) . '</div>'
);
$form['lab_solution_list'] = array(
'#type' => 'select',
'#title' => t('Solution'),
- '#options' => _ajax_get_solution_list($select_two),
- '#default_value' => isset($form_state['values']['lab_solution_list']) ? $form_state['values']['lab_solution_list'] : '',
+ '#options' => _ajax_get_solution_list($selected_experiment),
+ //'#default_value' => isset($form_state['values']['lab_solution_list']) ? $form_state['values']['lab_solution_list'] : '',
'#ajax' => array(
'callback' => 'ajax_solution_files_callback'
),
'#prefix' => '<div id="ajax_selected_solution">',
'#suffix' => '</div>',
- '#states' => array(
+ /*'#states' => array(
'invisible' => array(
':input[name="lab_experiment_list"]' => array(
'value' => 0
)
)
- )
+ )*/
);
$form['download_solution'] = array(
'#type' => 'item',
@@ -191,54 +183,50 @@ function lab_migration_run_form($form, &$form_state)
)
)
);
- }
- /*
- $form['message'] = array(
- '#type' => 'textarea',
- '#title' => t('If Dis-Approved please specify reason for Dis-Approval'),
- '#prefix' => '<div id= "message_submit">',
- '#states' => array('invisible' => array(':input[name="lab"]' => array('value' => 0,),),),
-
- );
-
- $form['submit'] = array(
- '#type' => 'submit',
- '#value' => t('Submit'),
- '#suffix' => '</div>',
- '#states' => array('invisible' => array(':input[name="lab"]' => array('value' => 0,),),),
-
- );*/
+ $form['lab_details'] = array(
+ '#type' => 'item',
+ '#markup' => '<div id="ajax_lab_details">' . _lab_details($lab_default_value) . '</div>'
+ );
+ $form['back_to_completed_labs'] = array(
+ '#type' => 'item',
+ '#markup' => l('Back to Completed Labs', 'lab-migration/completed-labs')
+ );
+ //}
return $form;
}
function ajax_experiment_list_callback($form, $form_state)
{
$commands = array();
$lab_default_value = $form_state['values']['lab'];
+ //var_dump($lab_default_value);die;
if ($lab_default_value != 0)
{
$form['lab_details']['#markup'] = _lab_details($lab_default_value);
$lab_details = _lab_information($lab_default_value);
$user_solution_provider = user_load($lab_details->solution_provider_uid);
//var_dump($lab_details->solution_provider_uid);
- if ($lab_details->solution_provider_uid > 0)
+ /*if ($lab_details->solution_provider_uid > 0)
{
$commands[] = ajax_command_html('#ajax_selected_lab', l('Download Lab Solutions', 'lab-migration/download/lab/' . $lab_default_value));
if ($lab_default_value == '2')
{
$commands[] = ajax_command_html('#ajax_selected_lab_dwsim', l('Download Lab Solutions (dwsim Version)', 'lab-migration_uploads/dwsim_Version.zip'));
}
- /* $commands[] = ajax_command_html('#ajax_selected_lab_pdf', l('Download PDF of Lab Solutions', 'lab-migration/generate-lab/' . $lab_default_value . '/1'));*/
+
}
else
{
$commands[] = ajax_command_html('#ajax_selected_lab', '');
$commands[] = ajax_command_html('#ajax_selected_lab_pdf', '');
$commands[] = ajax_command_html('#ajax_selected_lab_dwsim', '');
- }
+ }*/
$commands[] = ajax_command_html('#ajax_lab_details', _lab_details($lab_default_value));
$form['lab_experiment_list']['#options'] = _ajax_get_experiment_list($lab_default_value);
$commands[] = ajax_command_replace('#ajax_selected_experiment', drupal_render($form['lab_experiment_list']));
$commands[] = ajax_command_html('#ajax_selected_solution', '');
+ /*$form['lab_solution_list']['#options'] = _ajax_get_solution_list();
+ $commands[] = ajax_command_html('#ajax_selected_solution', drupal_render($form['lab_solution_list']));
+ *///$commands[] = ajax_command_replace('#ajax_selected_solution', drupal_render($form['lab_solution_list']));
$commands[] = ajax_command_html('#ajax_solution_files', '');
$commands[] = ajax_command_html('#ajax_download_experiment_solution', '');
$commands[] = ajax_command_html('#ajax_edit_experiment_solution', '');
@@ -248,14 +236,16 @@ function ajax_experiment_list_callback($form, $form_state)
{
$form['lab_experiment_list']['#options'] = _ajax_get_experiment_list();
$commands[] = ajax_command_replace('#ajax_selected_experiment', drupal_render($form['lab_experiment_list']));
+ /*$form['lab_solution_list']['#options'] = _ajax_get_solution_list();*/
$commands[] = ajax_command_html('#ajax_lab_details', '');
$commands[] = ajax_command_html('#ajax_selected_lab', '');
$commands[] = ajax_command_html('#ajax_selected_lab_dwsim', '');
$commands[] = ajax_command_html('#ajax_selected_lab_pdf', '');
- $commands[] = ajax_command_data('#ajax_selected_lab', 'form_state_value_select', $form_state['values']['lab']);
- $commands[] = ajax_command_html('#ajax_selected_experiment', '');
+ //$commands[] = ajax_command_data('#ajax_selected_lab', 'form_state_value_select', $form_state['values']['lab']);
+ //$commands[] = ajax_command_html('#ajax_selected_experiment', '');
$commands[] = ajax_command_html('#ajax_download_experiments', '');
$commands[] = ajax_command_html('#ajax_selected_solution', '');
+ //$commands[] = ajax_command_replace('#ajax_selected_solution', drupal_render($form['lab_solution_list']));
$commands[] = ajax_command_html('#ajax_solution_files', '');
$commands[] = ajax_command_html('#ajax_download_experiment_solution', '');
$commands[] = ajax_command_html('#ajax_edit_experiment_solution', '');
@@ -268,14 +258,17 @@ function ajax_experiment_list_callback($form, $form_state)
function ajax_solution_list_callback($form, $form_state)
{
$commands = array();
+ //$lab_default_value = $form_state['values']['lab'];
$experiment_list_default_value = $form_state['values']['lab_experiment_list'];
- //var_dump($lab_default_value);
+ //var_dump($lab_default_value . ' ' . $experiment_list_default_value);die;
if ($experiment_list_default_value != 0)
{
+ //var_dump($experiment_list_default_value);
$form['lab_solution_list']['#options'] = _ajax_get_solution_list($experiment_list_default_value);
+ $commands[] = ajax_command_replace('#ajax_selected_solution', drupal_render($form['lab_solution_list']));
$commands[] = ajax_command_html('#ajax_download_experiments', l('Download Experiment', 'lab-migration/download/experiment/' . $experiment_list_default_value));
- $commands[] = ajax_command_html('#ajax_selected_experiment', drupal_render($form['lab_experiment_list']));
- $commands[] = ajax_command_html('#ajax_selected_solution', drupal_render($form['lab_solution_list']));
+/* $commands[] = ajax_command_html('#ajax_selected_experiment', drupal_render($form['lab_experiment_list']));
+*/
// $commands[] = ajax_command_html('#ajax_solution_files', '');
// $commands[] = ajax_command_html('#ajax_download_experiment_solution', '');
// $commands[] = ajax_command_html('#ajax_edit_experiment_solution', '');
@@ -283,12 +276,12 @@ function ajax_solution_list_callback($form, $form_state)
else
{
$form['lab_solution_list']['#options'] = _ajax_get_solution_list();
- $commands[] = ajax_command_html('#ajax_selected_solution', drupal_render($form['lab_solution_list']));
- $commands[] = ajax_command_html('#ajax_download_experiments', '');
- $commands[] = ajax_command_html('#ajax_selected_solution', '');
+ $commands[] = ajax_command_html('#ajax_selected_solution', drupal_render($form['lab_solution_list']));
+ /* $commands[] = ajax_command_html('#ajax_download_experiments', '');
+ //$commands[] = ajax_command_html('#ajax_selected_solution', '');
$commands[] = ajax_command_html('#ajax_solution_files', '');
$commands[] = ajax_command_html('#ajax_download_experiment_solution', '');
- $commands[] = ajax_command_html('#ajax_edit_experiment_solution', '');
+ $commands[] = ajax_command_html('#ajax_edit_experiment_solution', '');*/
// $commands[] = ajax_command_replace('#ajax_selected_experiment',drupal_render($form['lab_experiment_list']));
}
return array(
@@ -305,7 +298,6 @@ function ajax_solution_files_callback($form, $form_state)
{
$commands[] = ajax_command_html('#ajax_selected_lab_experiment_solution_action', drupal_render($form['lab_experiment_solution_actions']));
/*************************************************************************************/
- //$solution_list_q = db_query("SELECT * FROM {lab_migration_solution_files} WHERE solution_id = %d", $form_state['values']['solution']);
$query = db_select('lab_migration_solution_files');
$query->fields('lab_migration_solution_files');
$query->condition('solution_id', $solution_list_default_value);
@@ -410,17 +402,13 @@ function bootstrap_table_format($headers, $rows)
";
return $table;
}
-/*****************************************************/
-function _list_of_labs()
+ function _list_of_labs($selected)
{
- $lab_titles = array(
- '0' => 'Please select...'
- );
+ $lab_titles = array();
//$lab_titles_q = db_query("SELECT * FROM {lab_migration_proposal} WHERE solution_display = 1 ORDER BY lab_title ASC");
$query = db_select('lab_migration_proposal');
$query->fields('lab_migration_proposal');
- $query->condition('solution_display', 1);
- $query->condition('approval_status', 3);
+ $query->condition('id',$selected);
$query->orderBy('lab_title', 'ASC');
$lab_titles_q = $query->execute();
while ($lab_titles_data = $lab_titles_q->fetchObject())
@@ -429,6 +417,17 @@ function _list_of_labs()
}
return $lab_titles;
}
+/*****************************************************/
+function _selected_lab_name($selected)
+ {
+ $query = db_select('lab_migration_proposal');
+ $query->fields('lab_migration_proposal');
+ $query->condition('id', $selected);
+ $query->condition('approval_status', 3);
+ $lab_titles_q = $query->execute();
+ $lab_titles_data = $lab_titles_q->fetchObject();
+ return $lab_titles_data->lab_title;
+ }
function _ajax_get_experiment_list($lab_default_value = '')
{
$experiments = array(
@@ -451,16 +450,9 @@ function _ajax_get_solution_list($lab_experiment_list = '')
$solutions = array(
'0' => 'Please select...'
);
- // $solutions_q = db_query("SELECT * FROM {lab_migration_solution} WHERE experiment_id = %d ORDER BY
- // CAST(SUBSTRING_INDEX(code_number, '.', 1) AS BINARY) ASC,
- // CAST(SUBSTRING_INDEX(SUBSTRING_INDEX(code_number , '.', 2), '.', -1) AS UNSIGNED) ASC,
- // CAST(SUBSTRING_INDEX(SUBSTRING_INDEX(code_number , '.', -1), '.', 1) AS UNSIGNED) ASC", $experiment_id);
$query = db_select('lab_migration_solution');
$query->fields('lab_migration_solution');
$query->condition('experiment_id', $lab_experiment_list);
- //$query->orderBy("CAST(SUBSTRING_INDEX(code_number, '.', 1) AS BINARY", "ASC");
- // $query->orderBy("CAST(SUBSTRING_INDEX(SUBSTRING_INDEX(code_number , '.', 2), '.', -1) AS UNSIGNED", "ASC");
- // $query->orderBy("CAST(SUBSTRING_INDEX(SUBSTRING_INDEX(code_number , '.', -1), '.', 1) AS UNSIGNED", "ASC");
$solutions_q = $query->execute();
while ($solutions_data = $solutions_q->fetchObject())
{
@@ -498,22 +490,22 @@ function _lab_details($lab_default_value)
$user_solution_provider = user_load($lab_details->solution_provider_uid);
if ($user_solution_provider)
{
- $solution_provider = '<span style="color: rgb(128, 0, 0);"><strong>Solution Provider</strong></span></td><td style="width: 35%;"><br />' . '<ul>' . '<li><strong>Solution Provider Name:</strong> ' . $lab_details->solution_provider_name_title . ' ' . $lab_details->solution_provider_name . '</li>' . '<li><strong>Department:</strong> ' . $lab_details->solution_provider_department . '</li>' . '<li><strong>University:</strong> ' . $lab_details->solution_provider_university . '</li>' . '</ul>';
+ $solution_provider = '<span style="color: rgb(128, 0, 0);"><strong>Solution Provider</strong></span>' . '<ul>' . '<li><strong>Solution Provider Name:</strong> ' . $lab_details->solution_provider_name_title . ' ' . $lab_details->solution_provider_name . '</li>' . '<li><strong>Department:</strong> ' . $lab_details->solution_provider_department . '</li>' . '<li><strong>University:</strong> ' . $lab_details->solution_provider_university . '</li>' . '</ul>';
}
else
{
- $solution_provider = '<span style="color: rgb(128, 0, 0);"><strong>Solution Provider</strong></span></td><td style="width: 35%;"><br />' . '<ul>' . '<li><strong>Solution Provider: </strong> (Open) </li>' . '</ul>';
+ $solution_provider = '<span style="color: rgb(128, 0, 0);"><strong>Solution Provider</strong></span>' . '<ul>' . '<li><strong>Solution Provider: </strong> (Open) </li>' . '</ul>';
}
}
else
{
- $solution_provider = '<span style="color: rgb(128, 0, 0);"><strong>Solution Provider</strong></span></td><td style="width: 35%;"><br />' . '<ul>' . '<li><strong>Solution Provider: </strong> (Open) </li>' . '</ul>';
+ $solution_provider = '<span style="color: rgb(128, 0, 0);"><strong>Solution Provider</strong></span>' . '<ul>' . '<li><strong>Solution Provider: </strong> (Open) </li>' . '</ul>';
}}
else{
drupal_goto('lab-migration/lab-migration-run');
}
- $form['lab_details']['#markup'] = '<span style="color: rgb(128, 0, 0);"><strong>About the Lab</strong></span></td><td style="width: 35%;"><br />' . '<ul>' . '<li><strong>Proposer Name:</strong> ' . $lab_details->name_title . ' ' . $lab_details->name . '</li>' . '<li><strong>Title of the Lab:</strong> ' . $lab_details->lab_title . '</li>' . '<li><strong>Department:</strong> ' . $lab_details->department . '</li>' . '<li><strong>University:</strong> ' . $lab_details->university . '</li>' . '<li><strong>Category:</strong> ' . $lab_details->category . '</li>' . '</ul>' . $solution_provider;
+ $form['lab_details']['#markup'] = '<table><tr><td><span style="color: rgb(128, 0, 0);"><strong>About the Lab</strong></span>' . '<ul>' . '<li><strong>Proposer Name:</strong> ' . $lab_details->name_title . ' ' . $lab_details->name . '</li>' . '<li><strong>Title of the Lab:</strong> ' . $lab_details->lab_title . '</li>' . '<li><strong>Department:</strong> ' . $lab_details->department . '</li>' . '<li><strong>University:</strong> ' . $lab_details->university . '</li>' . '<li><strong>Category:</strong> ' . $lab_details->category . '</li>' . '</ul></td><td>' . $solution_provider . '</td></tr></table>';
$details = $form['lab_details']['#markup'];
return $details;
}
diff --git a/settings.inc b/settings.inc
index 1856a25..8af9fd3 100755
--- a/settings.inc
+++ b/settings.inc
@@ -29,6 +29,15 @@ function lab_migration_settings_form($form, $form_state)
'#required' => TRUE,
'#default_value' => variable_get('lab_migration_from_email', '')
);
+ $form['extensions']['proposal_problem_statement'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Allowed extensions for the problem statement in the Proposal form'),
+ '#description' => t('A comma separated list WITHOUT SPACE of file extensions for the problem statement that are permitted to be uploaded on the server'),
+ '#size' => 50,
+ '#maxlength' => 255,
+ '#required' => TRUE,
+ '#default_value' => variable_get('lab_migration_problem_statement_extensions', '')
+ );
$form['extensions']['source'] = array(
'#type' => 'textfield',
'#title' => t('Allowed source file extensions'),
@@ -38,33 +47,24 @@ function lab_migration_settings_form($form, $form_state)
'#required' => TRUE,
'#default_value' => variable_get('lab_migration_source_extensions', '')
);
- $form['extensions']['dependency'] = array(
+ $form['extensions']['code_submission_result_pdf'] = array(
'#type' => 'textfield',
- '#title' => t('Allowed dependency file extensions'),
- '#description' => t('A comma separated list WITHOUT SPACE of dependency file extensions that are permitted to be uploaded on the server'),
+ '#title' => t('Allowed file extensions for results in the form of PDF'),
+ '#description' => t('A comma separated list WITHOUT SPACE of report file extensions that are permitted to be uploaded on the server'),
'#size' => 50,
'#maxlength' => 255,
'#required' => TRUE,
- '#default_value' => variable_get('lab_migration_dependency_extensions', '')
+ '#default_value' => variable_get('lab_migration_result_pdf_extensions', '')
);
- $form['extensions']['result'] = array(
+ $form['extensions']['result_zip'] = array(
'#type' => 'textfield',
- '#title' => t('Allowed result file extensions'),
+ '#title' => t('Allowed result file extensions in the zip format'),
'#description' => t('A comma separated list WITHOUT SPACE of result file extensions that are permitted to be uploaded on the server'),
'#size' => 50,
'#maxlength' => 255,
'#required' => TRUE,
'#default_value' => variable_get('lab_migration_result_extensions', '')
);
- $form['extensions']['xcos'] = array(
- '#type' => 'textfield',
- '#title' => t('Allowed xcos file extensions'),
- '#description' => t('A comma separated list WITHOUT SPACE of xcos file extensions that are permitted to be uploaded on the server'),
- '#size' => 50,
- '#maxlength' => 255,
- '#required' => TRUE,
- '#default_value' => variable_get('lab_migration_xcos_extensions', '')
- );
$form['extensions']['pdf'] = array(
'#type' => 'textfield',
'#title' => t('Allowed pdf file extensions'),
@@ -89,10 +89,10 @@ function lab_migration_settings_form_submit($form, &$form_state)
variable_set('lab_migration_emails', $form_state['values']['emails']);
variable_set('lab_migration_cc_emails', $form_state['values']['cc_emails']);
variable_set('lab_migration_from_email', $form_state['values']['from_email']);
+ variable_set('lab_migration_problem_statement_extensions', $form_state['values']['proposal_problem_statement']);
variable_set('lab_migration_source_extensions', $form_state['values']['source']);
- variable_set('lab_migration_dependency_extensions', $form_state['values']['dependency']);
- variable_set('lab_migration_result_extensions', $form_state['values']['result']);
- variable_set('lab_migration_xcos_extensions', $form_state['values']['xcos']);
+ variable_set('lab_migration_result_pdf_extensions', $form_state['values']['code_submission_result_pdf']);
+ variable_set('lab_migration_result_extensions', $form_state['values']['result_zip']);
variable_set('lab_migration_pdf_extensions', $form_state['values']['pdf']);
drupal_set_message(t('Settings updated'), 'status');
}
diff --git a/solution_proposal.inc b/solution_proposal.inc
index e23f4fa..b06b6f5 100755
--- a/solution_proposal.inc
+++ b/solution_proposal.inc
@@ -16,13 +16,21 @@ function lab_migration_proposal_open()
{
while ($proposal_data = $proposal_q->fetchObject())
{
+ if($proposal_data->problem_statement_file == ''){
+ $problem_statement_file = "NA";
+ }
+ else{
+ $problem_statement_file = l('View', 'lab-migration/download/problem-statement/' . $proposal_data->id);
+ }
$proposal_rows[] = array(
l($proposal_data->lab_title, 'lab-migration/show-proposal/' . $proposal_data->id),
+ $problem_statement_file,
l('Apply', 'lab-migration/show-proposal/' . $proposal_data->id)
);
}
$proposal_header = array(
'Title of the Lab',
+ 'Problem Statement',
'Actions'
);
$return_html = theme('table', array(
diff --git a/upload_code.inc b/upload_code.inc
index 7dca349..be59edc 100755
--- a/upload_code.inc
+++ b/upload_code.inc
@@ -219,7 +219,7 @@ function lab_migration_upload_code_form($form,$form_state)
);
$form['code_warning'] = array(
'#type' => 'item',
- '#title' => t('Upload all the dwsim project files in .zip format'),
+ '#title' => t('Upload all the OpenFOAM project files in .zip format'),
'#prefix' => '<div style="color:red">',
'#suffix' => '</div>',
);
@@ -234,7 +234,7 @@ function lab_migration_upload_code_form($form,$form_state)
'#title' => t('Upload main or source file'),
'#size' => 48,
'#description' => t('Only alphabets and numbers are allowed as a valid filename.') . '<br />' .
- t('Allowed file extensions : ') . variable_get('lab_migration_source_extensions', ''),
+ t('Allowed file extensions: ') . variable_get('lab_migration_source_extensions', ''),
);
/* $form['dep_files'] = array(
@@ -292,40 +292,18 @@ function lab_migration_upload_code_form($form,$form_state)
);
$form['result']['result1'] = array(
'#type' => 'file',
- '#title' => t('Upload result file'),
+ '#title' => t('Upload result file. To view the template for result submission please click <a href="https://cfd.fossee.in/sites/default/files/Template_For_Result.doc" target="_blank">here</a>.'),
'#size' => 48,
'#description' => t('Separate filenames with underscore. No spaces or any special characters allowed in filename.') . '<br />' .
- t('Allowed file extensions : ') . variable_get('lab_migration_result_extensions', ''),
+ t('Allowed file extensions: ') . variable_get('lab_migration_result_pdf_extensions', ''),
);
$form['result']['result2'] = array(
'#type' => 'file',
'#title' => t('Upload result file'),
'#size' => 48,
'#description' => t('Separate filenames with underscore. No spaces or any special characters allowed in filename.') . '<br />' .
- t('Allowed file extensions : ') . variable_get('lab_migration_result_extensions', ''),
- );
-/*
- $form['xcos'] = array(
- '#type' => 'fieldset',
- '#title' => t('XCOS Files'),
- '#collapsible' => FALSE,
- '#collapsed' => FALSE,
- );
- $form['xcos']['xcos1'] = array(
- '#type' => 'file',
- '#title' => t('Upload xcos file'),
- '#size' => 48,
- '#description' => t('Separate filenames with underscore. No spaces or any special characters allowed in filename.') . '<br />' .
- t('Allowed file extensions : ') . variable_get('lab_migration_xcos_extensions', ''),
- );
- $form['xcos']['xcos2'] = array(
- '#type' => 'file',
- '#title' => t('Upload xcos file'),
- '#size' => 48,
- '#description' => t('Separate filenames with underscore. No spaces or any special characters allowed in filename.') . '<br />' .
- t('Allowed file extensions : ') . variable_get('lab_migration_xcos_extensions', ''),
+ t('Allowed file extensions: ') . variable_get('lab_migration_result_extensions', ''),
);
-*/
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Submit')
@@ -357,7 +335,8 @@ function lab_migration_upload_code_form_validate($form, &$form_state)
/* check if atleast one source or result file is uploaded */
if ( ! ($_FILES['files']['name']['sourcefile1'] ))
form_set_error('sourcefile1', t('Please upload atleast one main or source file.'));
-
+if ( ! ($_FILES['files']['name']['result1'] ))
+ form_set_error('result1', t('Please upload the result file in the form of pdf.'));
/* check for valid filename extensions */
foreach ($_FILES['files']['name'] as $file_form_name => $file_name)
{
@@ -366,10 +345,10 @@ function lab_migration_upload_code_form_validate($form, &$form_state)
/* checking file type */
if (strstr($file_form_name, 'source'))
$file_type = 'S';
- else if (strstr($file_form_name, 'result'))
+ else if (strstr($file_form_name, 'result1'))
+ $file_type = 'P';
+ else if (strstr($file_form_name, 'result2'))
$file_type = 'R';
- else if (strstr($file_form_name, 'xcos'))
- $file_type = 'X';
else
$file_type = 'U';
@@ -382,8 +361,8 @@ function lab_migration_upload_code_form_validate($form, &$form_state)
case 'R':
$allowed_extensions_str = variable_get('lab_migration_result_extensions', '');
break;
- case 'X':
- $allowed_extensions_str = variable_get('lab_migration_xcos_extensions', '');
+ case 'P':
+ $allowed_extensions_str = variable_get('lab_migration_result_pdf_extensions', '');
break;
}
$allowed_extensions = explode(',' , $allowed_extensions_str);
@@ -562,17 +541,19 @@ function lab_migration_upload_code_form_submit($form, &$form_state) {
return;
}
+
/* uploading file */
if (move_uploaded_file($_FILES['files']['tmp_name'][$file_form_name], $root_path . $dest_path . $_FILES['files']['name'][$file_form_name]))
{
/* for uploaded files making an entry in the database */
+ //var_dump($_FILES['files']['type'][$file_form_name]);die;
$query = "INSERT INTO {lab_migration_solution_files} (solution_id, filename, filepath, filemime, filesize, filetype, timestamp)
VALUES (:solution_id, :filename, :filepath, :filemime, :filesize, :filetype, :timestamp)";
$args = array(
":solution_id" => $solution_id,
":filename" => $_FILES['files']['name'][$file_form_name],
":filepath" => $file_path . $_FILES['files']['name'][$file_form_name],
- ":filemime" => 'application/zip',
+ ":filemime" => $_FILES['files']['type'][$file_form_name],
":filesize" => $_FILES['files']['size'][$file_form_name],
":filetype" => $file_type,
":timestamp" => time()