Index: themes/seven/style.css
===================================================================
RCS file: /cvs/drupal/drupal/themes/seven/style.css,v
retrieving revision 1.51
diff -u -p -r1.51 style.css
--- themes/seven/style.css	12 Apr 2010 17:33:35 -0000	1.51
+++ themes/seven/style.css	20 Apr 2010 12:22:01 -0000
@@ -445,6 +445,35 @@ ul.node-type-list li div.description a, 
   min-height: inherit;
 }
 
+/* Pager */
+.short-pager {
+  text-align: right;
+  margin-top: 2em;
+}
+
+.short-pager div,
+.short-pager select {
+  display: inline;
+  margin-left: 1em;
+}
+
+.short-pager .short-pager-total {
+  font-size: 0.8em;
+  color: #5d5d5d;
+}
+
+.short-pager .short-pager-prev,
+.short-pager .short-pager-first {
+  background: url(images/arrow-prev.png) no-repeat center left;
+  padding-left: 10px;
+}
+
+.short-pager .short-pager-next,
+.short-pager .short-pager-last {
+  background: url(images/arrow-next.png) no-repeat center right;
+  padding-right: 10px;
+}
+
 /**
  * Tables.
  */
Index: themes/seven/template.php
===================================================================
RCS file: /cvs/drupal/drupal/themes/seven/template.php,v
retrieving revision 1.15
diff -u -p -r1.15 template.php
--- themes/seven/template.php	24 Mar 2010 09:26:37 -0000	1.15
+++ themes/seven/template.php	20 Apr 2010 12:22:01 -0000
@@ -86,3 +86,115 @@ function seven_css_alter(&$css) {
     $css['misc/vertical-tabs.css']['data'] = drupal_get_path('theme', 'seven') . '/vertical-tabs.css';
   }
 }
+
+/**
+ * Override of theme_pager().
+ *
+ * Implement "Showing 1-50 of 2345  Next 50 >" type of output.
+ */
+function seven_pager($variables) {
+  $tags = $variables['tags'];
+  $element = $variables['element'];
+  $parameters = $variables['parameters'];
+  $quantity = $variables['quantity'];
+  global $pager_page_array, $pager_total, $pager_total_items, $pager_limits;
+
+  $total_items = $pager_total_items[$element];
+
+  if ($total_items == 0) {
+    // No items to display.
+    return;
+  }
+
+  $total_pages = $pager_total[$element];
+  $limit = $pager_limits[$element];
+  $showing_min = $pager_page_array[$element] * $limit + 1;
+  $showing_max = min(($pager_page_array[$element] + 1) * $limit, $total_items);
+  $pager_current = $pager_page_array[$element];
+
+  $output = '<div class="short-pager">';
+  $prefix_output = '';
+  if ($pager_current > 0) {
+    // add link to the first page
+    $variables = array(
+      'text' => t('First'),
+      'attributes' => array('title' => t('Go to the first page')),
+      'element' => $element,
+    );
+    $prefix_output .= '<div class="short-pager-first">' . theme('pager_link', $variables) . '</div>';
+
+    // add link to prev page
+    $variables = array(
+      'text' => t('Prev @limit', array('@limit' => $limit)),
+      'page_new' => pager_load_array($pager_current - 1, $element, $pager_page_array),
+      'element' => $element,
+      'parameters' => $parameters,
+      'attributes' => array('title' => t('Go to the previous page')),
+    );
+    $prefix_output .= '<div class="short-pager-prev">' . theme('pager_link', $variables) . '</div>';
+  }
+
+  $suffix_output = '<div class="short-pager-main">' . t('- @max <span class="short-pager-total">of @total</span>', array('@total' => $total_items, '@max' => $showing_max)) . '</div>';
+
+  if (($pager_current < ($total_pages - 1)) && ($total_pages > 1)) {
+    // add link to next page
+    $variables = array(
+      'text' => t('Next @limit', array('@limit' => $limit)),
+      'page_new' => pager_load_array($pager_current + 1, $element, $pager_page_array),
+      'element' => $element,
+      'parameters' => $parameters,
+      'attributes' => array('title' => t('Go to the previous page')),
+    );
+    $suffix_output .= '<div class="short-pager-next">'. theme('pager_link', $variables) . '</div>';
+
+    // add link to last page
+    $variables = array(
+      'text' => t('Last'),
+      'attributes' => array('title' => t('Go to the last page')),
+      'element' => $element,
+      'page_new' => pager_load_array($total_pages - 1, $element, $pager_page_array),
+    );
+    $suffix_output .= '<div class="short-pager-last">' . theme('pager_link', $variables) . '</div>';
+  }
+
+  $options = array();
+  foreach(range(1, $total_pages - 1) as $key => $val) {
+    $options[$key] = ($val - 1)  * $limit;
+  }
+  $options[$key + 1] = ($val)  * $limit;
+
+  // adds select list form for quick navigation
+  $form = drupal_get_form('seven_pager_goto_form', $options, $pager_current, $prefix_output, $suffix_output);
+  $output .= drupal_render($form);
+
+  // close tag for short-pager
+  $output .= '</div>';
+
+  return $output;
+}
+
+/**
+ * To add a select list form to seven_pager() for quick navigation.
+ */
+function seven_pager_goto_form($form, $form_state, $options, $pager_current, $prefix_output, $suffix_output) {
+  $form['seven_pager_goto'] = array(
+    '#type' => 'select',
+    '#options' => $options, //drupal_map_assoc(range(1, $total_pages - 1)),
+    '#multiple' => FALSE,
+    '#default_value' => $pager_current,
+    '#field_prefix' => $prefix_output,
+    '#field_suffix' => $suffix_output,
+    '#attributes' => array('onChange' => 'this.form.submit();'),
+  );
+  return $form;
+}
+
+/**
+ * Validation handler for seven_pager_goto_form().
+ */
+function seven_pager_goto_form_validate($form, $form_state) {
+  // TODO: Need to use _submit() function but it is not working.
+  // TODO: Need to use $form_state['redirect'] but it has no effect here.
+  //$form_state['redirect'] = 'admin';//url('admin/reports/dblog', array('query' => array('page' => $form_state['values']['seven_pager_goto'])));
+  drupal_goto('admin/reports/dblog', array('query' => array('page' => $form_state['values']['seven_pager_goto'])));
+}
