? .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'));