|
@@ -15,6 +15,12 @@ function tripal_views_elements() {
|
|
'#process' => array('expand_file_upload_combo'),
|
|
'#process' => array('expand_file_upload_combo'),
|
|
'#element_validate' => array('file_upload_combo_validate'),
|
|
'#element_validate' => array('file_upload_combo_validate'),
|
|
);
|
|
);
|
|
|
|
+
|
|
|
|
+ $type['sequence_combo'] = array(
|
|
|
|
+ '#input' => TRUE,
|
|
|
|
+ '#process' => array('expand_sequence_combo'),
|
|
|
|
+ '#element_validate' => array('sequence_combo_validate'),
|
|
|
|
+ );
|
|
|
|
|
|
return $type;
|
|
return $type;
|
|
}
|
|
}
|
|
@@ -25,6 +31,7 @@ function tripal_views_elements() {
|
|
*/
|
|
*/
|
|
function expand_file_upload_combo($element, $edit, $form_state, $complete_form) {
|
|
function expand_file_upload_combo($element, $edit, $form_state, $complete_form) {
|
|
|
|
|
|
|
|
+ // set the default values for each field
|
|
if (empty($element['#value'])) {
|
|
if (empty($element['#value'])) {
|
|
$element['#value'] = array(
|
|
$element['#value'] = array(
|
|
'items' => '',
|
|
'items' => '',
|
|
@@ -35,12 +42,15 @@ function expand_file_upload_combo($element, $edit, $form_state, $complete_form)
|
|
|
|
|
|
$element['#tree'] = TRUE;
|
|
$element['#tree'] = TRUE;
|
|
|
|
|
|
|
|
+ // add items text area element
|
|
$parents = $element['#parents'];
|
|
$parents = $element['#parents'];
|
|
$parents[] = 'items';
|
|
$parents[] = 'items';
|
|
$element['items'] = array(
|
|
$element['items'] = array(
|
|
'#type' => 'textarea',
|
|
'#type' => 'textarea',
|
|
'#default_value' => $element['#value']['items'],
|
|
'#default_value' => $element['#value']['items'],
|
|
);
|
|
);
|
|
|
|
+
|
|
|
|
+ // add file upload element
|
|
$parents = $element['#parents'];
|
|
$parents = $element['#parents'];
|
|
$parents[] = 'items_file';
|
|
$parents[] = 'items_file';
|
|
$element['items_file'] = array(
|
|
$element['items_file'] = array(
|
|
@@ -49,6 +59,7 @@ function expand_file_upload_combo($element, $edit, $form_state, $complete_form)
|
|
'#default_value' => $element['#value']['items_file'],
|
|
'#default_value' => $element['#value']['items_file'],
|
|
);
|
|
);
|
|
|
|
|
|
|
|
+ // add hidden elelment
|
|
$parents = $element['#parents'];
|
|
$parents = $element['#parents'];
|
|
$parents[] = 'file_path';
|
|
$parents[] = 'file_path';
|
|
$element['file_path'] = array(
|
|
$element['file_path'] = array(
|
|
@@ -58,6 +69,42 @@ function expand_file_upload_combo($element, $edit, $form_state, $complete_form)
|
|
|
|
|
|
return $element;
|
|
return $element;
|
|
}
|
|
}
|
|
|
|
+/**
|
|
|
|
+ * Form element description
|
|
|
|
+ */
|
|
|
|
+function expand_sequence_combo($element, $edit, $form_state, $complete_form) {
|
|
|
|
+
|
|
|
|
+ // set the default values for each field
|
|
|
|
+ if (empty($element['#value'])) {
|
|
|
|
+ $element['#value'] = array(
|
|
|
|
+ 'upstream' => '',
|
|
|
|
+ 'downstream' => '',
|
|
|
|
+ );
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ $element['#tree'] = TRUE;
|
|
|
|
+
|
|
|
|
+ // add the upstream box
|
|
|
|
+ $parents = $element['#parents'];
|
|
|
|
+ $parents[] = 'upstream';
|
|
|
|
+ $element['upstream'] = array(
|
|
|
|
+ '#type' => 'textfield',
|
|
|
|
+ '#title' => t('Get Upstream Bases'),
|
|
|
|
+ '#description' => t('Specify the number of upstream bases to include in the sequnce'),
|
|
|
|
+ '#default_value' => $element['#value']['upstream'],
|
|
|
|
+ );
|
|
|
|
+ // add the downstream box
|
|
|
|
+ $parents = $element['#parents'];
|
|
|
|
+ $parents[] = 'downstream';
|
|
|
|
+ $element['downstream'] = array(
|
|
|
|
+ '#type' => 'textfield',
|
|
|
|
+ '#prefix' => '<br>',
|
|
|
|
+ '#title' => t('Get Downstream Bases'),
|
|
|
|
+ '#description' => t('Specify the number of downstream bases to include in the sequnce'),
|
|
|
|
+ '#default_value' => $element['#value']['downstream'],
|
|
|
|
+ );
|
|
|
|
+ return $element;
|
|
|
|
+}
|
|
|
|
|
|
/**
|
|
/**
|
|
* Theme the file upload combo form element
|
|
* Theme the file upload combo form element
|
|
@@ -66,6 +113,13 @@ function theme_file_upload_combo($element) {
|
|
return theme('form_element', $element, '<div class="container-inline">' . $element['#children'] . '</div>');
|
|
return theme('form_element', $element, '<div class="container-inline">' . $element['#children'] . '</div>');
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+/**
|
|
|
|
+ * Theme the file sequence form element
|
|
|
|
+ */
|
|
|
|
+function theme_sequence_combo($element) {
|
|
|
|
+ return theme('form_element', $element, '<div class="container-inline">' . $element['#children'] . '</div>');
|
|
|
|
+}
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* Validate all content passed into the file upload combo form element
|
|
* Validate all content passed into the file upload combo form element
|
|
*/
|
|
*/
|
|
@@ -78,3 +132,26 @@ function file_upload_combo_validate($element, &$form) {
|
|
$_GET[$element['#name']]['file_path'] = $file->filepath;
|
|
$_GET[$element['#name']]['file_path'] = $file->filepath;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+ * Validate all content passed into the sequence combo form element
|
|
|
|
+ */
|
|
|
|
+function sequence_combo_validate($element, &$form) {
|
|
|
|
+ $upstream = $form['values'][$element['#name']]['upstream'];
|
|
|
|
+ $downstream = $form['values'][$element['#name']]['downstream'];
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ if ($upstream < 0) {
|
|
|
|
+ form_set_error($element['#name'], 'Please provide a positive number for upstream bases');
|
|
|
|
+ }
|
|
|
|
+ if ($upstream and !preg_match('/^\d+$/',$upstream)) {
|
|
|
|
+ form_set_error($element['#name'], 'Please provide a decimal number for upstream bases');
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if ($downstream < 0) {
|
|
|
|
+ form_set_error($element['#name'], 'Please provide a positive number for downstream bases');
|
|
|
|
+ }
|
|
|
|
+ if ($downstream and !preg_match('/^\d+$/',$downstream)) {
|
|
|
|
+ form_set_error($element['#name'], 'Please provide a decimal number for downstream bases');
|
|
|
|
+ }
|
|
|
|
+}
|