diff --git a/includes/webform.report.inc b/includes/webform.report.inc index a98e353..79343d9 100644 --- a/includes/webform.report.inc +++ b/includes/webform.report.inc @@ -520,11 +520,16 @@ function webform_results_download_form_submit(&$form, &$form_state) { // If webform result file should be downloaded, send the file to the browser, // otherwise save information about the created file in $form_state. - if ($options['download']) { - webform_results_download($form_state['values']['node'], $export_info); + if ($export_info['row_count'] != 0) { + if ($options['download']) { + webform_results_download($form_state['values']['node'], $export_info); + } + else { + $form_state['export_info'] = $export_info; + } } else { - $form_state['export_info'] = $export_info; + drupal_set_message(t('No submissions were found with the given range options.'), 'error'); } } @@ -738,55 +743,60 @@ function webform_results_export($node, $format = 'delimited', $options = array() if (!empty($options['sids'])){ $filters['sid'] = $options['sids']; } - $submissions = webform_get_submissions($filters); - // Generate a row for each submission. + // Nothing was found or returned, so we should not run the export code + // or we may receive errors. $row_count = 0; - foreach ($submissions as $sid => $submission) { - $row_count++; + if (isset($filters['sid'])) { + $submissions = webform_get_submissions($filters); - $row = array(); - if (isset($submission_information['serial'])) { - $row[] = $row_count; - } - if (isset($submission_information['sid'])) { - $row[] = $sid; - } - if (isset($submission_information['time'])) { - $row[] = format_date($submission->submitted, 'small'); - } - if (isset($submission_information['draft'])) { - $row[] = $submission->is_draft; - } - if (isset($submission_information['ip_address'])) { - $row[] = $submission->remote_addr; - } - if (isset($submission_information['uid'])) { - $row[] = $submission->uid; - } - if (isset($submission_information['username'])) { - $row[] = $submission->name; - } + // Generate a row for each submission. + foreach ($submissions as $sid => $submission) { + $row_count++; - foreach ($options['components'] as $cid) { - if (isset($node->webform['components'][$cid])) { - $component = $node->webform['components'][$cid]; - // Let each component add its data. - $raw_data = isset($submission->data[$cid]['value']) ? $submission->data[$cid]['value'] : NULL; - if (webform_component_feature($component['type'], 'csv')) { - $data = webform_component_invoke($component['type'], 'csv_data', $component, $options, $raw_data); - if (is_array($data)) { - $row = array_merge($row, array_values($data)); - } - else { - $row[] = isset($data) ? $data : ''; + $row = array(); + if (isset($submission_information['serial'])) { + $row[] = $row_count; + } + if (isset($submission_information['sid'])) { + $row[] = $sid; + } + if (isset($submission_information['time'])) { + $row[] = format_date($submission->submitted, 'small'); + } + if (isset($submission_information['draft'])) { + $row[] = $submission->is_draft; + } + if (isset($submission_information['ip_address'])) { + $row[] = $submission->remote_addr; + } + if (isset($submission_information['uid'])) { + $row[] = $submission->uid; + } + if (isset($submission_information['username'])) { + $row[] = $submission->name; + } + + foreach ($options['components'] as $cid) { + if (isset($node->webform['components'][$cid])) { + $component = $node->webform['components'][$cid]; + // Let each component add its data. + $raw_data = isset($submission->data[$cid]['value']) ? $submission->data[$cid]['value'] : NULL; + if (webform_component_feature($component['type'], 'csv')) { + $data = webform_component_invoke($component['type'], 'csv_data', $component, $options, $raw_data); + if (is_array($data)) { + $row = array_merge($row, array_values($data)); + } + else { + $row[] = isset($data) ? $data : ''; + } } } } - } - // Write data from submissions. - $data = $exporter->add_row($handle, $row); + // Write data from submissions. + $data = $exporter->add_row($handle, $row); + } } // Add the closing bytes.