--- revision_moderation_actions-head.inc 2006-11-01 22:37:49.000000000 -0600 +++ revision_moderation_actions.inc 2007-05-15 11:39:50.000000000 -0500 @@ -49,3 +49,27 @@ function action_revision_moderation_disa break; } } + + +/** + * Revert to latest pending revision. + */ +function action_revision_moderation_publish_pending($op, $edit = array(), &$node) { + switch ($op) { + case 'metadata': + return array( + 'description' => t('Publish (revert to) the latest pending revision.'), + 'type' => t('Node'), + 'batchable' => false, + 'configurable' => false, + ); + break; + case 'do': + if ($revisions = revision_moderation_get_node_pending_revisions($node->nid)) { + // get the last revision + $latest = array_shift( $revisions ); + revision_moderation_publish($node->nid, $latest->vid); + } + break; + } +}