? .project
? views_fusion_confirm_delete.patch
Index: views_fusion.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/views_fusion/views_fusion.module,v
retrieving revision 1.4.2.2
diff -u -p -r1.4.2.2 views_fusion.module
--- views_fusion.module	27 Jan 2007 23:24:08 -0000	1.4.2.2
+++ views_fusion.module	23 Feb 2007 03:00:25 -0000
@@ -24,10 +24,19 @@ function views_fusion_help($section) {
 function views_fusion_menu($may_cache) {
   
   if ($may_cache) {
-    $items[] = array('path' => 'admin/views/fusion', 'title' => t('fusion'),
-        'callback' => 'views_fusion_admin',
-        'access' => user_access('administer views'),
-        'type' => MENU_LOCAL_TASK,
+    $items[] = array(
+      'path' => 'admin/views/fusion',
+      'title' => t('fusion'),
+      'callback' => 'views_fusion_admin',
+      'access' => user_access('administer views'),
+      'type' => MENU_LOCAL_TASK,
+    );        
+    $items[] = array(
+      'path' => 'admin/views/fusion/delete',
+      'title' => t('fusion'),
+      'callback' => 'views_fusion_confirm_delete',
+      'access' => user_access('administer views'),
+      'type' => MENU_CALLBACK,
     );        
     return $items;
   }  
@@ -71,6 +80,34 @@ function views_fusion_admin() {
   return drupal_get_form('views_fusion_admin', $form) . $output;      
 }
 
+function views_fusion_confirm_delete($vid1, $vid2) {
+  $view1 = views_get_view($vid1);
+  $view2 = views_get_view($vid2);
+
+  $form['vid1'] = array(
+    '#type' => 'hidden',
+    '#value' => $vid1,
+  );
+  $form['vid1'] = array(
+    '#type' => 'hidden',
+    '#value' => $vid1,
+  );
+  return confirm_form('views_fusion_delete',
+    $form,
+    t('Are you sure you want to delete this fusion?'),
+    'admin/views/fusion/delete',
+    t('Are you sure you want to delete the fusion of these views? %views_list This cannot be undone.', array('%views_list' => theme('item_list', array($view1->name, $view2->name)))));
+}
+
+function views_fusion_confirm_delete_submit($form_id, $form_values) {
+    
+  //delete the fusion
+  db_query('DELETE FROM {views_fusion} WHERE vid = %d AND mvid = %d', $form_values['vid1'], $form_values['vid2']);
+  views_invalidate_cache();
+  drupal_set_message('Your fusion has been deleted.');
+  return 'admin/views/fusion';
+}
+
 
 function _views_fusion_get_views_list() {
 
@@ -180,22 +217,14 @@ function views_fusion_overview() {
   if (!db_num_rows($result)) {
       return '';
   }
-  
-  if (arg(3) && arg(4)) {
-      //delete the fusion
-      db_query("DELETE FROM {views_fusion} WHERE vid=%d AND mvid=%d", arg(3), arg(4));
-      views_invalidate_cache();
-      drupal_set_message('Your fusion has been deleted.');
-      drupal_goto('admin/views/fusion');
-  }
-  
+
   $header = array(t('primary view'), t('fused view'), t('using'), '');
   $rows = array();
   $tables = _views_fusion_get_tables();
   
   while ($fusion = db_fetch_object($result)) {
     $rows[] = array($fusion->name, $fusion->mname, $tables['titles'][$fusion->uses], 
-                    l(t('delete'),'admin/views/fusion/' . $fusion->vid .'/'. $fusion->mvid));
+                    l(t('delete'),'admin/views/fusion/delete/' . $fusion->vid .'/'. $fusion->mvid));
   }  
   
   return theme('table', $header, $rows, array('class' => 'views_fusion'));
