Index: activity/contrib/nodeactivity/nodeactivity.module
===================================================================
--- activity/contrib/nodeactivity/nodeactivity.module	(revision 87)
+++ activity/contrib/nodeactivity/nodeactivity.module	(working copy)
@@ -2,6 +2,91 @@
 // $Id: nodeactivity.module,v 1.1.2.11 2008/03/19 18:02:53 sirkitree Exp $
 
 /**
+ * Implementation of hook_menu().
+ */
+function nodeactivity_menu($may_cache) {
+  $items = array();
+  global $user;
+
+  if ($may_cache) {
+    $items[] = array(
+      'path' => 'admin/settings/activity/nodeactivity',
+      'title' => t('Node Activity'),
+      'description' => t('Customize Node Activity settings'),
+      'callback' => 'drupal_get_form',
+      'callback arguments' => array('nodeactivity_admin_settings'),
+    );
+  }
+  return $items;
+}
+
+function nodeactivity_admin_settings() {
+  
+    $form = array();
+    $node_ops = array('insert'=>t('Insert'), 'update'=>t('Update'), 'delete'=>t('Delete') );
+
+    $form['nodeactions'] = array(
+        '#type' => 'formtable',
+        '#title' => t('Node Actions to record as activity'),
+        '#description' => t('Select which node types and node operations to record activity on'),
+        '#header' => array(t('Node Type'))
+        );
+     
+    $form['nodeactions']['#header']+=$node_ops;
+
+    $row = 0;
+    foreach(content_types() as $ctype) {
+      $form['nodeactions']['row'.$row] = array(
+          '#type' => 'formrow'
+      );
+      
+      $form['nodeactions']['row'.$row]['label'] = array(
+          '#value' => '<strong>'.$ctype['name'].'</strong>',
+          '#prefix' => '<td>',
+          '#suffix' => '</td>'
+      );
+
+      foreach($node_ops as $op => $op_str) {
+        $key = 'nodeactivity_op_'.$ctype['type'].'-'.$op;
+        if(nodeactivity_should_default_config() || variable_get($key,FALSE)) {
+          $_dv = 'checked';
+        } else {
+          $_dv ='';
+        }
+        $form['nodeactions']['row'.$row]["$key"] = array(
+            '#type' => 'checkbox',
+            '#default_value' => $_dv,
+            '#prefix' => '<td>',
+            '#suffix' => '</td>'
+        );
+      }
+      
+      $row++;
+    }
+
+    return system_settings_form($form);
+}
+
+
+/**
+ * if no configurations are found, then we default to all enabled
+ *
+ */
+function nodeactivity_should_default_config() {
+  static $default;
+  
+  if(!isset($default)) {
+    if(db_result(db_query('SELECT count(*) FROM {variable} as c WHERE `name` LIKE "nodeactivity_op_%"'))) {
+      $default = FALSE; // dont use defaults, something exists
+    } else {
+      $default = TRUE; // all clear
+    }
+  }
+  
+  return $default;  
+  
+}
+/**
  * Activity definition file
  *
  * This defines what hooks activity module should use
@@ -64,10 +149,17 @@
  * Implementation of hook_nodeapi()
  */
 function nodeactivity_nodeapi($node, $op, $teaser, $page) {
+  
   switch ($op) {
     case 'insert':
     case 'update':
     case 'delete':
+      // If we arent in default config mode, and theres no explicit rule to record this, return
+      $key = 'nodeactivity_op_'.$node->type.'-'.$op;
+      if( ! nodeactivity_should_default_config() && !variable_get($key, FALSE) ) {
+        return;
+      } 
+
       if ($node->status == 1) {
         $operation = $op == 'insert' ? t('create') : t($op);
         $type = $node->type;
Index: activity/contrib/nodeactivity/nodeactivity.info
===================================================================
--- activity/contrib/nodeactivity/nodeactivity.info	(revision 87)
+++ activity/contrib/nodeactivity/nodeactivity.info	(working copy)
@@ -1,7 +1,7 @@
 ; $Id: nodeactivity.info,v 1.1.2.1 2007/12/23 18:57:44 robertDouglass Exp $
 name = Node activity
 description = Enable activity notifications for content creation.
-dependencies = activity
+dependencies = activity form_table
 package = Activity
 
 ; Information added by drupal.org packaging script on 2008-04-30
