Index: filefield.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/filefield/filefield.module,v
retrieving revision 1.164
diff -u -r1.164 filefield.module
--- filefield.module 6 Feb 2009 10:56:30 -0000 1.164
+++ filefield.module 28 Feb 2009 22:07:20 -0000
@@ -504,16 +504,34 @@
$field_form[$delta]['#prefix'] = '
';
$field_form[$delta]['#suffix'] = '
';
- $output = theme('status_messages') . drupal_render($field_form[$delta]);
+ $output = drupal_render($field_form[$delta]);
// AHAH is not being nice to us and doesn't know the "other" button (that is,
// either "Upload" or "Delete") yet. Which in turn causes it not to attach
// AHAH behaviours after replacing the element. So we need to tell it first.
+
+ // Loop through the JS settings and find the settings needed for our buttons.
$javascript = drupal_add_js(NULL, NULL);
+ $filefield_ahah_settings = array();
if (isset($javascript['setting'])) {
- $output .= '';
+ foreach ($javascript['setting'] as $settings) {
+ if (isset($settings['ahah'])) {
+ foreach ($settings['ahah'] as $id => $ahah_settings) {
+ if (strpos($id, 'filefield-upload') || strpos($id, 'filefield-remove')) {
+ $filefield_ahah_settings[$id] = $ahah_settings;
+ }
+ }
+ }
+ }
}
+ // Add the AHAH settings needed for our new buttons.
+ if (!empty($filefield_ahah_settings)) {
+ $output .= '';
+ }
+
+ $output = theme('status_messages') . $output;
+
// For some reason, file uploads don't like drupal_json() with its manual
// setting of the text/javascript HTTP header. So use this one instead.
$GLOBALS['devel_shutdown'] = false;
Index: filefield_widget.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/filefield/filefield_widget.inc,v
retrieving revision 1.53
diff -u -r1.53 filefield_widget.inc
--- filefield_widget.inc 27 Feb 2009 18:20:56 -0000 1.53
+++ filefield_widget.inc 28 Feb 2009 22:07:20 -0000
@@ -187,7 +187,7 @@
$field = content_fields($element['#field_name'], $element['#type_name']);
// check remove buttons...
- $remove_name = $element['#field_name'] .'_'. $element['#delta'] .'_remove_btn';
+ $remove_name = $element['#field_name'] .'_'. $element['#delta'] .'_filefield_remove';
if (isset($form_state['clicked_button']) && $form_state['clicked_button']['#name'] == $remove_name) {
$item = array('fid' => 0, 'list' => $field['list_default'], 'data' => array('description' => ''));
}
@@ -253,7 +253,7 @@
$element['#attributes']['class'] = (isset($element['#attributes']['class']) ? $element['#attributes']['class'] : '') .' filefield-ahah-wrapper';
$element['#prefix'] = '';
$element['#suffix'] = '
';
- $element['upload_btn'] = array(
+ $element['filefield_upload'] = array(
'#type' => 'submit',
'#value' => t('Upload'),
'#process' => array('form_expand_ahah'),
@@ -270,11 +270,11 @@
'#upload_validators' => $element['#upload_validators'],
);
if ($item['fid'] != 0) {
- $element['remove_btn'] = array(
- '#name' => $element['#field_name'] .'_'. $element['#delta'] .'_remove_btn',
+ $element['filefield_remove'] = array(
+ '#name' => $element['#field_name'] .'_'. $element['#delta'] .'filefield_remove',
'#type' => 'submit',
'#value' => t('Remove'),
- '#process' => array('filefield_widget_process_remove_btn', 'form_expand_ahah'),
+ '#process' => array('filefield_widget_process_remove', 'form_expand_ahah'),
'#submit' => array('node_form_submit_build_node'),
'#ahah' => array( // with JavaScript
'path' => 'filefield/ahah/'. $element['#type_name'] .'/'. $element['#field_name'] .'/'. $element['#delta'],