? rules-455560.patch
Index: rules_scheduler/rules_scheduler.info
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/rules/rules_scheduler/Attic/rules_scheduler.info,v
retrieving revision 1.1.2.1
diff -u -p -r1.1.2.1 rules_scheduler.info
--- rules_scheduler/rules_scheduler.info	14 Aug 2008 11:29:48 -0000	1.1.2.1
+++ rules_scheduler/rules_scheduler.info	28 Jun 2009 17:52:25 -0000
@@ -2,5 +2,6 @@
 name = Rules Scheduler
 description = Schedule the execution of rule sets.
 dependencies[] = rules
+dependencies[] = views
 package = Rules
 core = 6.x
\ No newline at end of file
Index: rules_scheduler/rules_scheduler.install
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/rules/rules_scheduler/Attic/rules_scheduler.install,v
retrieving revision 1.1.2.5
diff -u -p -r1.1.2.5 rules_scheduler.install
--- rules_scheduler/rules_scheduler.install	19 Apr 2009 18:19:07 -0000	1.1.2.5
+++ rules_scheduler/rules_scheduler.install	28 Jun 2009 17:52:25 -0000
@@ -52,6 +52,13 @@ function rules_scheduler_schema() {
         'serialize' => TRUE,
         'description' => t('The whole, serialized item configuration.'),
       ),
+      'identifier' => array(
+        'type' => 'varchar',
+        'length' => '255',
+        'default' => '',
+        'not null' => FALSE,
+        'description' => t('The user defined string identifying this task.'),
+      ),
     ),
     'primary key' => array('tid'),
     'indexes' => array('date' => array('date')),
@@ -59,3 +66,19 @@ function rules_scheduler_schema() {
   return $schema;
 }
 
+/**
+ * Implementation of hook_update_N().
+ */
+function rules_scheduler_update_6100() {
+  $spec = array(
+    'type' => 'varchar',
+    'length' => '255',
+    'default' => '',
+    'not null' => FALSE,
+    'description' => t('The user defined string identifying this task.'),
+  );
+  $ret = array();
+  db_add_field($ret, 'rules_scheduler', 'identifier', $spec);
+  return $ret;
+}
+
Index: rules_scheduler/rules_scheduler.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/rules/rules_scheduler/Attic/rules_scheduler.module,v
retrieving revision 1.1.2.4
diff -u -p -r1.1.2.4 rules_scheduler.module
--- rules_scheduler/rules_scheduler.module	19 Apr 2009 15:03:43 -0000	1.1.2.4
+++ rules_scheduler/rules_scheduler.module	28 Jun 2009 17:52:25 -0000
@@ -28,3 +28,100 @@ function rules_scheduler_cron() {
   }
 }
 
+/**
+ * Implementation of hook_views_data().
+ */
+function rules_scheduler_views_data() {
+  $table = array(
+    'rules_scheduler' => array(
+      'table' => array(
+        'group' => 'Rules scheduler',
+        'base' => array(
+          'field' => 'tid',
+          'title' => t('Scheduled rule sets'),
+          'help' => t("Scheduled rules that are executed based on time and cron"),
+          'weight' => -10,
+        ),
+      ),
+      'tid' => array(
+        'title' => t('Tid'),
+        'help' => t('The internal ID of the scheduled rule set'),
+        'field' => array(
+          'click sortable' => TRUE,
+        ),
+        'filter' => array(
+          'handler' => 'views_handler_filter_numeric',
+        ),
+        'sort' => array(
+          'handler' => 'views_handler_sort',
+        ),
+      ),
+      'set_name' => array(
+        'title' => t('Rule set name'),
+        'help' => t('The name of the rule set'),
+        'field' => array(
+          'click sortable' => TRUE,
+        ),
+        'filter' => array(
+          'handler' => 'views_handler_filter',
+        ),
+        'sort' => array(
+          'handler' => 'views_handler_sort',
+        ),
+      ),
+      'date' => array(
+        'title' => t('Scheduled date'),
+        'help' => t('Scheduled date and time stamp'),
+        'field' => array(
+          //'handler' => 'views_handler_field_date',
+          'click sortable' => TRUE,
+        ),
+        'filter' => array(
+          'handler' => 'views_handler_filter',
+        ),
+        'sort' => array(
+          'handler' => 'views_handler_sort',
+        ),
+      ),
+      'identifier' => array(
+        'title' => t('User provided identifier'),
+        'help' => t('ID to recognize this specific scheduled task'),
+        'field' => array(
+          'click sortable' => TRUE,
+        ),
+        'filter' => array(
+          'handler' => 'views_handler_filter',
+        ),
+        'sort' => array(
+          'handler' => 'views_handler_sort',
+        ),
+      ),
+    ),
+  );
+  return $table;
+}
+
+/**
+ * Implementation of hook_views_api().
+ */
+function rules_scheduler_views_api() {
+  return array('api' => 2.0);
+}
+
+/**
+ * Implementation of hook_menu().
+ */
+function rules_scheduler_menu() {
+  $items = array();
+  $items['admin/rules/rule_sets/scheduled'] = array(
+    'title' => 'Scheduled sets',
+    'type' => MENU_LOCAL_TASK,
+    'page callback' => 'rules_scheduler_scheduled_sets',
+    'access arguments' => array('administer rules'),
+  );
+  return $items;
+}
+
+function rules_scheduler_scheduled_sets() {
+  return views_embed_view('rules_scheduler');
+}
\ No newline at end of file
Index: rules_scheduler/rules_scheduler.rules.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/rules/rules_scheduler/Attic/rules_scheduler.rules.inc,v
retrieving revision 1.1.2.4
diff -u -p -r1.1.2.4 rules_scheduler.rules.inc
--- rules_scheduler/rules_scheduler.rules.inc	19 Apr 2009 15:03:43 -0000	1.1.2.4
+++ rules_scheduler/rules_scheduler.rules.inc	28 Jun 2009 17:52:25 -0000
@@ -26,6 +26,12 @@ function rules_scheduler_rules_action_in
         'label' => t('Scheduled evaluation date'),
       ));
     $item['arguments'] = array_merge($date_arg, $item['arguments']);
+    $identifier_arg = array('task_identifier' => array(
+        'type' => 'string',
+        'label' => t('Identifier'),
+      ));
+    $item['arguments'] = array_merge($identifier_arg, $item['arguments']);
+    $item['eval input'] = array('task_identifier');
   }
   return $items;
 }
@@ -43,6 +49,7 @@ function rules_scheduler_action() {
   array_shift($element['#info']['arguments']);
 
   $pack = rules_pack_variables($element['#info']['arguments'], $args);
+  $task_id = $settings['task_identifier'];
 
   if ($pack === FALSE) {
     rules_log(t('Packing arguments for scheduling the rule set %set failed.', array('%set' => $element['#info']['set'])), TRUE);
@@ -52,6 +59,7 @@ function rules_scheduler_action() {
         'date' => $date,
         'set_name' => $element['#info']['set'],
         'arguments' => $pack,
+        'identifier' => $task_id,
       ));
   }
 }
Index: rules_scheduler/rules_scheduler.views_default.inc
===================================================================
RCS file: rules_scheduler/rules_scheduler.views_default.inc
diff -N rules_scheduler/rules_scheduler.views_default.inc
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ rules_scheduler/rules_scheduler.views_default.inc	28 Jun 2009 17:52:25 -0000
@@ -0,0 +1,121 @@
+<?php
+// $Id:$
+
+/**
+ * Implementation of hook_views_default_views().
+ */
+function rules_scheduler_views_default_views() {
+  $view = new view;
+  $view->name = 'rules_scheduler';
+  $view->description = 'Rules scheduler view';
+  $view->tag = '';
+  $view->view_php = '';
+  $view->base_table = 'rules_scheduler';
+  $view->is_cacheable = FALSE;
+  $view->api_version = 2;
+  $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
+  $handler = $view->new_display('default', 'Defaults', 'default');
+  $handler->override_option('fields', array(
+    'set_name' => array(
+      'label' => 'Rule set name',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'strip_tags' => 0,
+        'html' => 0,
+      ),
+      'exclude' => 0,
+      'id' => 'set_name',
+      'table' => 'rules_scheduler',
+      'field' => 'set_name',
+      'relationship' => 'none',
+    ),
+    'date' => array(
+      'id' => 'date',
+      'table' => 'rules_scheduler',
+      'field' => 'date',
+    ),
+    'tid' => array(
+      'id' => 'tid',
+      'table' => 'rules_scheduler',
+      'field' => 'tid',
+    ),
+    'identifier' => array(
+      'label' => 'User provided identifier',
+      'alter' => array(
+        'alter_text' => 0,
+        'text' => '',
+        'make_link' => 0,
+        'path' => '',
+        'link_class' => '',
+        'alt' => '',
+        'prefix' => '',
+        'suffix' => '',
+        'help' => '',
+        'trim' => 0,
+        'max_length' => '',
+        'word_boundary' => 1,
+        'ellipsis' => 1,
+        'strip_tags' => 0,
+        'html' => 0,
+      ),
+      'exclude' => 0,
+      'id' => 'identifier',
+      'table' => 'rules_scheduler',
+      'field' => 'identifier',
+      'relationship' => 'none',
+    ),
+  ));
+  $handler->override_option('access', array(
+    'type' => 'perm',
+    'perm' => 'administer rules',
+  ));
+  $handler->override_option('cache', array(
+    'type' => 'none',
+  ));
+  $handler->override_option('empty', 'no rule sets scheduled.');
+  $handler->override_option('empty_format', '1');
+  $handler->override_option('items_per_page', 30);
+  $handler->override_option('style_plugin', 'table');
+  $handler->override_option('style_options', array(
+    'grouping' => '',
+    'override' => 1,
+    'sticky' => 0,
+    'order' => 'asc',
+    'columns' => array(
+      'set_name' => 'set_name',
+      'date' => 'date',
+      'tid' => 'tid',
+    ),
+    'info' => array(
+      'set_name' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'date' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+      'tid' => array(
+        'sortable' => 1,
+        'separator' => '',
+      ),
+    ),
+    'default' => '-1',
+  ));
+
+  $views = array();
+  $views[$view->name] = $view;
+  return $views;
+}
\ No newline at end of file
