array(
"title" => t("Access fossee_stats"),
"description" => t("Allows users to view job postings.")
),
"manage fossee_stats" => array(
"title" => t("Manage fossee_stats"),
"description" => t("Allows users to manage job postings.")
),
/* "manage download_application" => array(
"title" => t("Manage Download Portal"),
"description" => t("Allows users to download job applications.")
),*/
);
}
function fossee_stats_menu() {
$items = array();
$items["fossee-stats"] = array(
"title" => "FOSSEE STATS",
"page callback" => "drupal_get_form",
"page arguments" => array("fossee_stats_form"),
"access arguments" => array("access fossee_stats"),
"type" => MENU_NORMAL_ITEM,
);
$items["jobs/ajax"] = array(
"title" => "Ajax callbacks",
"page callback" => "fossee_stats_ajax",
"access arguments" => array("access fossee_stats"),
"type" => MENU_CALLBACK
);
return $items;
}
function fossee_stats_form($form, &$form_state) {
$options_first = _ajax_example_get_first_dropdown_options();
// If we have a value for the first dropdown from $form_state['values'] we use
// this both as the default value for the first dropdown and also as a
// parameter to pass to the function that retrieves the options for the
// second dropdown.
if(isset($form_state['values']['foss_sub_project'])&&isset($form_state['values']['foss_type'])&&isset($form_state['values']['foss_sub_project_status'])){
$foss_project = isset($form_state['values']['foss_type']) ? $form_state['values']['foss_type'] : key($options_first);
}else{
$foss_project = '';
}
//$foss_project=$selected;
$form['foss_type'] = array(
'#type' => 'select',
'#title' => 'FOSS Type',
'#options' => $options_first,
'#default_value' => $foss_project,
// Bind an ajax callback to the change event (which is the default for the
// select form type) of the first dropdown. It will replace the second
// dropdown when rebuilt.
'#ajax' => array(
// When 'event' occurs, Drupal will perform an ajax request in the
// background. Usually the default value is sufficient (eg. change for
// select elements), but valid values include any jQuery event,
// most notably 'mousedown', 'blur', and 'submit'.
// 'event' => 'change',
'callback' =>'ajax_example_dependent_dropdown_callback',
'wrapper' => 'dropdown-second-replace',
),
);
if(isset($form_state['values']['foss_sub_project'])&&isset($form_state['values']['foss_type'])&&isset($form_state['values']['foss_sub_project_status'])){
$foss_sub_project = isset($form_state['values']['foss_sub_project']) ? $form_state['values']['foss_sub_project'] : key(_ajax_example_get_second_dropdown_options($foss_project));
}else{
$foss_sub_project = '';
}
$form['foss_sub_project'] = array(
'#type' => 'select',
'#title' => t('Foss Sub Project'),
'#options' => _ajax_example_get_second_dropdown_options($foss_project),
// The entire enclosing div created here gets replaced when foss_type
// is changed.
'#prefix' => '
',
'#suffix' => '
',
// When the form is rebuilt during ajax processing, the $selected variable
// will now have the new value and so the options will change.
// '#options' => _ajax_example_get_second_dropdown_options($selected),
'#default_value' => '',
'#ajax' => array(
// When 'event' occurs, Drupal will perform an ajax request in the
// background. Usually the default value is sufficient (eg. change for
// select elements), but valid values include any jQuery event,
// most notably 'mousedown', 'blur', and 'submit'.
// 'event' => 'change',
'callback' =>'ajax_example_dependent_dropdown_callback1',
'wrapper' => 'dropdown-third-replace',
),
);
if(isset($form_state['values']['foss_sub_project'])&&isset($form_state['values']['foss_type'])&&isset($form_state['values']['foss_sub_project_status'])){
$foss_sub_project_status = isset($form_state['values']['$foss_sub_project_status']) ? $form_state['values']['$foss_sub_project_status'] : '';
}else{
$foss_sub_project_status = '';
}
$form['foss_sub_project_status'] = array(
'#type' => 'select',
'#title' => t('Status'),
'#options' => _ajax_example_get_third_dropdown_options($foss_sub_project),
// The entire enclosing div created here gets replaced when foss_type
// is changed.
'#prefix' => '',
'#suffix' => '
',
// When the form is rebuilt during ajax processing, the $selected variable
// will now have the new value and so the options will change.
// '#options' => _ajax_example_get_second_dropdown_options($selected),
'#default_value' => $foss_sub_project_status,
);
if(isset($form_state['values']['foss_sub_project'])&&isset($form_state['values']['foss_type'])&&isset($form_state['values']['foss_sub_project_status'])){
$foss_select_branch = isset($form_state['values']['foss_select_branch']) ? $form_state['values']['foss_select_branch'] : '';
}else{
$foss_select_branch = '';
}
$form['foss_select_branch'] = array(
'#type' => 'select',
'#title' => t('Branch'),
'#options' => _ajax_get_branch_options($foss_project),
// The entire enclosing div created here gets replaced when foss_type
// is changed.
'#prefix' => '',
'#suffix' => '
',
// When the form is rebuilt during ajax processing, the $selected variable
// will now have the new value and so the options will change.
// '#options' => _ajax_example_get_second_dropdown_options($selected),
'#default_value' => $foss_select_branch,
);
$today = date("Y-m-d H:i:s");
$form['start_date'] = array(
'#type' => 'date_popup',
'#default_value' => $today,
'#date_type' => DATE_DATETIME,
'#date_format' => 'd/m/Y',
'#date_increment' => 1,
'#date_year_range' => '-3:+3',
);
$today = date("Y-m-d H:i:s");
$form['end_date'] = array(
'#type' => 'date_popup',
'#default_value' => $today,
'#date_type' => DATE_DATETIME,
'#date_format' => 'd/m/Y',
'#date_increment' => 1,
'#date_year_range' => '-3:+3',
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Filter'),
);
$form['reset'] = array(
'#type' => 'submit',
'#value' => t('Reset'),
);
return $form;
}
function _ajax_example_get_first_dropdown_options(){
$query = db_select('foss_type');
$query->fields('foss_type', array('id'));
$query->fields('foss_type', array('foss_name'));
$result = $query->execute();
$options = array();
$options[''] = "--------------";
while ($foss_detail = $result->fetchObject())
{
$options[$foss_detail->id] = $foss_detail->foss_name;
}
return $options;
}
function _ajax_example_get_second_dropdown_options($foss_project = ''){
if($foss_project != NULL){
$query = db_select('foss_type');
$query->fields('foss_type', array('tbc'));
$query->fields('foss_type', array('lab_migration'));
$query->condition('id',$foss_project);
$result = $query->execute();
$subproject_detail = $result->fetchObject();
$options = array();
if(($subproject_detail->tbc)!=0&&($subproject_detail->lab_migration)!=0){
$options[0] = "--------------";
$options[1] = "Textbook Companion";
$options[2] = "Lab Migration";
}else if(($subproject_detail->tbc)!=0&&($subproject_detail->lab_migration)==0){
$options[0] = "--------------";
$options[1] = "Textbook Companion";
}else if(($subproject_detail->tbc)==0&&($subproject_detail->lab_migration)!=0){
$options[0] = "--------------";
$options[1] = "Lab Migration";
}else if(($subproject_detail->tbc)==0&&($subproject_detail->lab_migration)==0) {
$options[0] = "No Sub-Project Available";
}else {
$options[0] = "--------------";
}
return $options;
}else{
$options[0] = "--------------";
return $options;
}
}
function _ajax_example_get_third_dropdown_options($foss_sub_project=''){
$options = array();
if($foss_sub_project!=0){
if($foss_sub_project==1){
$options[0] = "----------";
$options[1] = "Books In Progress";
$options[2] = "Completed Books";
}else if($foss_sub_project==2){
$options[0] = "----------";
$options[1] = "Labs in Progress";
$options[2] = "Completed Labs";
}else {
$options[0] = "----------";
}
}else{
$options[0] = "----------";
}
return $options;
}
function _ajax_get_branch_options($foss_project = ''){
if($foss_project!=0){
$other_database = array(
'database' => 'scilab_nolinks',
'username' => 'root', // assuming this is necessary
'password' => 'root', // assuming this is necessary
'host' => 'localhost', // assumes localhost
'driver' => 'mysql', // replace with your database driver
);
// replace 'YourDatabaseKey' with something that's unique to your module
Database::addConnectionInfo('YourDatabaseKey', 'default', $other_database);
db_set_active('YourDatabaseKey');
$options = array();
$query = db_select('textbook_companion_proposal');
$query->fields('textbook_companion_proposal', array('branch'));
$query->distinct();
$result = $query->execute();
$options['0'] = "--------------";
$x = 1;
while ($foss_branch = $result->fetchObject())
{
$options[$x++] = $foss_branch->branch;
}
db_set_active('default'); // We need to call the main (drupal) db back
return $options;
db_set_active(); // without the paramater means set back to the default for the site
drupal_set_message(t('The queries have been made.'));
}else{
$options[0] ='-----------';
}
return $options;
}
function ajax_example_dependent_dropdown_callback($form, $form_state) {
//$form['foss_sub_project']['#value'] = '';
//$form['foss_sub_project_status']['#value'] = '';
$form['foss_sub_project_status']['#options']=_ajax_example_get_third_dropdown_options($foss_sub_project);
$form['foss_select_branch']['#value'] = '';
// $commands = array();
$commands[] = ajax_command_replace("#dropdown-second-replace", drupal_render($form['foss_sub_project']));
$commands[] = ajax_command_replace("#dropdown-third-replace", drupal_render($form['foss_sub_project_status']));
$commands[] = ajax_command_replace("#dropdown-fourth-replace", drupal_render($form['foss_select_branch']));
return array('#type' => 'ajax', '#commands' => $commands);
//return $form['foss_sub_project'];
}
function ajax_example_dependent_dropdown_callback1($form, $form_state){
return $form['foss_sub_project_status'];
}