diff options
author | Saketh1499 | 2021-08-04 11:38:30 +0530 |
---|---|---|
committer | Saketh1499 | 2021-08-04 11:38:30 +0530 |
commit | 171dad5c275e35ad25ceaabae8997d0d775c3640 (patch) | |
tree | f0e20fa1029f35cdb8a13126bf1798bfa4acc3a7 | |
parent | bd9e663e0732cbd66c198ba99bd6030cfade38c6 (diff) | |
download | soul_chemistry_lab_project-171dad5c275e35ad25ceaabae8997d0d775c3640.tar.gz soul_chemistry_lab_project-171dad5c275e35ad25ceaabae8997d0d775c3640.tar.bz2 soul_chemistry_lab_project-171dad5c275e35ad25ceaabae8997d0d775c3640.zip |
Updating proposal form
-rwxr-xr-x | chemistry_lab.module | 83 | ||||
-rwxr-xr-x | manage_proposal.inc | 27 | ||||
-rwxr-xr-x | proposal.inc | 160 |
3 files changed, 210 insertions, 60 deletions
diff --git a/chemistry_lab.module b/chemistry_lab.module index 7230088..638179d 100755 --- a/chemistry_lab.module +++ b/chemistry_lab.module @@ -617,7 +617,7 @@ function chemistry_lab_permission() /*************************** VALIDATION FUNCTIONS *****************************/ function chemistry_lab_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; @@ -714,50 +714,57 @@ function _df_sentence_case($string) } //array( '-', '\'' ) as $delimiter return $string; } -function _df_list_of_states() +function _soul_list_of_city_pincode($city=Null, $state=NULL, $district=NULL) { - $states = array( - 0 => '-Select-' - ); - $query = db_select('list_states_of_india'); - $query->fields('list_states_of_india'); - //$query->orderBy('', ''); - $states_list = $query->execute(); - while ($states_list_data = $states_list->fetchObject()) - { - $states[$states_list_data->state] = $states_list_data->state; - } //$states_list_data = $states_list->fetchObject() - return $states; + $pincode = array(); + if($city){ + $pincode_list = db_query("SELECT pincode FROM all_india_pincode WHERE city = :city AND state = :state AND district = :district", array(':city' => $city,':state'=> $state, ':district' => $district)); + while ($pincode_list_data = $pincode_list->fetchObject()) + { + $pincode[$pincode_list_data->pincode] = $pincode_list_data->pincode; + } + } + else{ + $pincode[000000] = '000000'; + } + return $pincode; } -function _df_list_of_cities() + +function _soul_list_of_cities($state=Null, $district=NULL) { - $city = array( - 0 => '-Select-' - ); - $query = db_select('list_cities_of_india'); - $query->fields('list_cities_of_india'); - $query->orderBy('city', 'ASC'); - $city_list = $query->execute(); - while ($city_list_data = $city_list->fetchObject()) - { - $city[$city_list_data->city] = $city_list_data->city; - } //$city_list_data = $city_list->fetchObject() + $city = array(''=> '- Select -'); + if($state){ + $city_list = db_query("SELECT city FROM all_india_pincode WHERE state = :state AND district = :district ORDER BY city ASC", array(':state'=> $state, ':district' =>$district)); + while ($city_list_data = $city_list->fetchObject()) + { + $city[$city_list_data->city] = $city_list_data->city; + } + } return $city; } -function _df_list_of_pincodes() + +function _soul_list_of_district($state=Null) { - $pincode = array( - 0 => '-Select-' - ); - $query = db_select('list_of_all_india_pincode'); - $query->fields('list_of_all_india_pincode'); - $query->orderBy('pincode', 'ASC'); - $pincode_list = $query->execute(); - while ($pincode_list_data = $pincode_list->fetchObject()) + $district = array(''=> '- Select -'); + if($state){ + $district_list = db_query("SELECT district FROM all_india_pincode WHERE state = :state ORDER BY district ASC", array(':state'=> $state)); + while ($district_list_data = $district_list->fetchObject()) + { + $district[$district_list_data->district] = $district_list_data->district; + } + } + return $district; +} + +function _soul_list_of_states() +{ + $states = array(''=> '- Select -'); + $states_list = db_query("SELECT state FROM all_india_pincode WHERE country = 'India' ORDER BY state ASC"); + while ($states_list_data = $states_list->fetchObject()) { - $pincode[$pincode_list_data->pincode] = $pincode_list_data->pincode; - } //$pincode_list_data = $pincode_list->fetchObject() - return $pincode; + $states[$states_list_data->state] = $states_list_data->state; + } + return $states; } function _df_list_of_departments() { diff --git a/manage_proposal.inc b/manage_proposal.inc index d496af5..041d5d7 100755 --- a/manage_proposal.inc +++ b/manage_proposal.inc @@ -200,6 +200,11 @@ function chemistry_lab_proposal_approval_form($form, &$form_state) '#markup' => $proposal_data->city, '#title' => t('City') ); + $form['district'] = array( + '#type' => 'item', + '#markup' => $proposal_data->district, + '#title' => t('District') + ); $form['pincode'] = array( '#type' => 'item', '#markup' => $proposal_data->pincode, @@ -459,6 +464,11 @@ function chemistry_lab_proposal_status_form($form, &$form_state) '#markup' => $proposal_data->city, '#title' => t('City') ); + $form['District'] = array( + '#type' => 'item', + '#markup' => $proposal_data->district, + '#title' => t('District') + ); $form['pincode'] = array( '#type' => 'item', '#markup' => $proposal_data->pincode, @@ -704,19 +714,19 @@ function chemistry_lab_proposal_edit_form($form, &$form_state) 'India' => 'India', 'Others' => 'Others' ), - '#default_value' => $proposal_data->country, '#required' => TRUE, '#tree' => TRUE, - '#validated' => TRUE + '#validated' => TRUE, + '#default_value' => $proposal_data->country ); $form['other_country'] = array( '#type' => 'textfield', '#title' => t('Other than India'), '#size' => 100, - '#default_value' => $proposal_data->country, '#attributes' => array( 'placeholder' => t('Enter your country name') ), + '#default_value' => $proposal_data->country, '#states' => array( 'visible' => array( ':input[name="country"]' => array( @@ -760,9 +770,9 @@ function chemistry_lab_proposal_edit_form($form, &$form_state) $form['all_state'] = array( '#type' => 'select', '#title' => t('State'), - '#options' => _df_list_of_states(), - '#default_value' => $proposal_data->state, + '#options' => _soul_list_of_states(), '#validated' => TRUE, + '#default_value' => $proposal_data->state, '#states' => array( 'visible' => array( ':input[name="country"]' => array( @@ -774,7 +784,7 @@ function chemistry_lab_proposal_edit_form($form, &$form_state) $form['city'] = array( '#type' => 'select', '#title' => t('City'), - '#options' => _df_list_of_cities(), + '#options' => _soul_list_of_cities(), '#default_value' => $proposal_data->city, '#states' => array( 'visible' => array( @@ -790,10 +800,11 @@ function chemistry_lab_proposal_edit_form($form, &$form_state) '#size' => 30, '#maxlength' => 6, '#default_value' => $proposal_data->pincode, + '#required' => False, '#attributes' => array( - 'placeholder' => 'Insert pincode of your city/ village....' + 'placeholder' => 'Enter pincode....' ) - ); + ); $form['project_title'] = array( '#type' => 'textarea', '#title' => t('Title of the chemistry lab Project'), diff --git a/proposal.inc b/proposal.inc index 1502a4d..32805d7 100755 --- a/proposal.inc +++ b/proposal.inc @@ -27,6 +27,15 @@ chemistry_lab_solution : approval_status function chemistry_lab_proposal_form($form, &$form_state, $no_js_use = FALSE) { global $user; + $form = array(); + $state = _soul_list_of_states(); + $selected_state = isset($form_state['values']['all_state'])?$form_state['values']['all_state']:key($state); + $district = _soul_list_of_district(); + $selected_district = isset($form_state['values']['district'])?$form_state['values']['district']:key($district); + $city = _soul_list_of_cities(); + $selected_city = isset($form_state['values']['city'])?$form_state['values']['city']:key($city); + $pincode = _soul_list_of_city_pincode(); + $selected_pincode = isset($form_state['values']['picode'])?$form_state['values']['pincode']:key($pincode); /************************ start approve book details ************************/ if ($user->uid == 0) { @@ -99,7 +108,8 @@ function chemistry_lab_proposal_form($form, &$form_state, $no_js_use = FALSE) '#maxlength' => 200, '#attributes' => array( 'placeholder' => 'Enter full name of your School/Institute/University/Organisation.... ' - ) + ), + '#required' => TRUE ); $form['department'] = array( '#type' => 'textfield', @@ -115,8 +125,14 @@ function chemistry_lab_proposal_form($form, &$form_state, $no_js_use = FALSE) '#title' => t('Country'), '#options' => array( 'India' => 'India', - 'Others' => 'Others' + //'Others' => 'Others' ), + '#default_value' => 'India', + '#prefix' => '<div id="ajax-country-list-replace">', + '#suffix' => '</div>', + '#ajax' => array( + 'callback' => 'ajax_get_city_list_callback', + ), '#required' => TRUE, '#tree' => TRUE, '#validated' => TRUE @@ -168,8 +184,17 @@ function chemistry_lab_proposal_form($form, &$form_state, $no_js_use = FALSE) ); $form['all_state'] = array( '#type' => 'select', - '#title' => t('State'), - '#options' => _df_list_of_states(), + '#title' => t('State/UT'), + '#options' => _soul_list_of_states(), + //'#empty_value' => '0', + //'#empty_option' => '- Select -', + '#default_value' => '0', + '#prefix' => '<div id="ajax-state-list-replace">', + '#suffix' => '</div>', + '#required' => TRUE, + '#ajax' => array( + 'callback' => 'ajax_get_district_list_callback', + ), '#validated' => TRUE, '#states' => array( 'visible' => array( @@ -179,25 +204,66 @@ function chemistry_lab_proposal_form($form, &$form_state, $no_js_use = FALSE) ) ) ); + $form['district'] = array( + '#type' => 'select', + '#title' => t('District/Area'), + '#options' => _soul_list_of_district($selected_state), + '#empty_value' => '0', + '#empty_option' => '- Select -', + '#prefix' => '<div id="ajax-district-list-replace">', + '#suffix' => '</div>', + '#validated' => TRUE, + '#required' => TRUE, + '#ajax' => array( + 'callback' => 'ajax_get_city_list_callback', + ), + '#states' => array( + 'invisible' => array( + ':input[name="all_state"]' => array( + 'value' => '0' + ) + ) + ) + ); $form['city'] = array( '#type' => 'select', - '#title' => t('City'), - '#options' => _df_list_of_cities(), + '#title' => t('City/Area'), + '#options' => _soul_list_of_cities($selected_state, $selected_district), + '#default_value' => '0', + '#empty_value' => '0', + '#empty_option' => '- Select -', + '#prefix' => '<div id="ajax-city-list-replace">', + '#suffix' => '</div>', + '#validated' => TRUE, + '#required' => TRUE, + '#ajax' => array( + 'callback' => 'ajax_get_city_pincode_list_callback', + ), '#states' => array( - 'visible' => array( - ':input[name="country"]' => array( - 'value' => 'India' + 'invisible' => array( + ':input[name="district"]' => array( + 'value' => '0' ) ) ) ); $form['pincode'] = array( - '#type' => 'textfield', + '#type' => 'select', '#title' => t('Pincode'), - '#attributes' => array( - 'placeholder' => t('Enter Pincode') - ), - '#size' => 6 + '#options' => _soul_list_of_city_pincode($selected_city, $selected_state, $selected_district), + '#prefix' => '<div id="ajax-pincode-list-replace">', + '#suffix' => '</div>', + '#empty_value' => '0', + '#empty_option' => '- Select -', + '#required' => TRUE, + '#validated' => TRUE, + '#states' => array( + 'invisible' => array( + ':input[name="city"]' => array( + 'value' => '0' + ) + ) + ) ); /***************************************************************************/ $form['hr'] = array( @@ -525,6 +591,7 @@ function chemistry_lab_proposal_form_submit($form, &$form_state) university, department, city, + district, state, country, pincode, @@ -554,6 +621,7 @@ function chemistry_lab_proposal_form_submit($form, &$form_state) :university, :department, :city, + :district, :state, :country, :pincode, @@ -583,6 +651,7 @@ function chemistry_lab_proposal_form_submit($form, &$form_state) ":university" => _df_sentence_case($v['university']), ":department" => $v['department'], ":city" => $v['city'], + ":district" => $v['district'], ":pincode" => $v['pincode'], ":state" => $v['all_state'], ":country" => $v['country'], @@ -673,3 +742,66 @@ function chemistry_lab_proposal_form_submit($form, &$form_state) drupal_set_message(t('We have received your soul chemistry lab proposal. We will get back to you soon.'), 'status'); drupal_goto(''); } + + +function ajax_get_city_list_callback($form, $form_state) +{ + $state_default_value = $form_state['values']['all_state']; + $district_default_value = $form_state['values']['district']; + if ($district_default_value != '0') + { + $form['city']['#options'] = _soul_list_of_cities($state_default_value, $district_default_value); + $commands[] = ajax_command_replace("#ajax-city-list-replace", drupal_render($form['city'])); + $form['pincode']['#options'] = array('0' => '- Select -'); + $commands[] = ajax_command_replace("#ajax-pincode-list-replace", drupal_render($form['pincode'])); + }else{ + $form['city']['#options'] = array('0' => '- Select -'); + $commands[] = ajax_command_replace("#ajax-city-list-replace", drupal_render($form['city'])); + } + return array( + '#type' => 'ajax', + '#commands' => $commands + ); +} +function ajax_get_district_list_callback($form, $form_state) +{ + $state_default_value = $form_state['values']['all_state']; + if ($state_default_value != '0') + { + $form['district']['#options'] = _soul_list_of_district($state_default_value); + $commands[] = ajax_command_replace("#ajax-district-list-replace", drupal_render($form['district'])); + $form['pincode']['#options'] = array('0' =>'- Select -'); + $commands[] = ajax_command_replace("#ajax-pincode-list-replace", drupal_render($form['pincode'])); + $form['city']['#options'] = array('0' => '- Select -'); + $commands[] = ajax_command_replace("#ajax-city-list-replace", drupal_render($form['city'])); + }else{ + $form['district']['#options'] = array('0' => '- Select -'); + $commands[] = ajax_command_replace("#ajax-district-list-replace", drupal_render($form['district'])); + $form['pincode']['#options'] = array('0' =>'- Select -'); + $commands[] = ajax_command_replace("#ajax-pincode-list-replace", drupal_render($form['pincode'])); + $form['city']['#options'] = array('0' => '- Select -'); + $commands[] = ajax_command_replace("#ajax-city-list-replace", drupal_render($form['city'])); + } + return array( + '#type' => 'ajax', + '#commands' => $commands + ); +} +function ajax_get_city_pincode_list_callback($form, $form_state) +{ + $city_default_value = $form_state['values']['city']; + $state_default_value = $form_state['values']['all_state']; + $district_default_value = $form_state['values']['district']; + if ($city_default_value != '0') + { + $form['pincode']['#options'] = _soul_list_of_city_pincode($city_default_value,$state_default_value,$district_default_value); + $commands[] = ajax_command_replace("#ajax-pincode-list-replace", drupal_render($form['pincode'])); + }else{ + $form['pincode']['#options'] = array('0' => '- Select -'); + $commands[] = ajax_command_replace("#ajax-pincode-list-replace", drupal_render($form['pincode'])); + } + return array( + '#type' => 'ajax', + '#commands' => $commands + ); +}
\ No newline at end of file |