From 022304f0e619fce11ae247af5c84b39e76056ad2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?"J.=20Rene=CC=81e=20Beach"?= <splendidnoise@gmail.com>
Date: Tue, 30 Oct 2012 20:39:50 -0400
Subject: [PATCH] Issue #1825474 by jessebeach: Integrate the Edit module page
 actions into the D8 Toolbar (#1137920)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: J. Renée Beach <splendidnoise@gmail.com>
---
 css/edit.css |   11 +++++++++++
 edit.module  |   35 ++++++++++++++++++++++-------------
 2 files changed, 33 insertions(+), 13 deletions(-)

diff --git a/css/edit.css b/css/edit.css
index 5a99f11..6836903 100644
--- a/css/edit.css
+++ b/css/edit.css
@@ -417,3 +417,14 @@
   border: 1px solid #cdcdcd;
   box-shadow: 0px 2px 1px rgba(0,0,0,0.1);
 }
+
+/**
+ * Toolbar icon.
+ */
+.toolbar-main .bar .edit .tab {
+  background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxNi4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB3aWR0aD0iMTAwcHgiIGhlaWdodD0iMTAwcHgiIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAxMDAgMTAwIiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxsaW5lYXJHcmFkaWVudCBpZD0iU1ZHSURfMV8iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iODYuMTk3MyIgeTE9IjMuNSIgeDI9Ijg2LjE5NzMiIHkyPSI5OC41MDUzIj4NCgkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6I0NDQ0NDQyIvPg0KCQk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojOTk5OTk5Ii8+DQoJPC9saW5lYXJHcmFkaWVudD4NCgk8cGF0aCBmaWxsPSJ1cmwoI1NWR0lEXzFfKSIgZD0iTTk1LjI2Miw0LjY5MmMtNi4zMTYtNi4yNTYtMTYuNTUxLTYuMjU2LTIyLjg2NywwbDIyLjg2NywyMi41NTQNCgkJQzEwMS41NzksMjEuMDUyLDEwMS41NzksMTAuOTQ3LDk1LjI2Miw0LjY5MnoiLz4NCgk8bGluZWFyR3JhZGllbnQgaWQ9IlNWR0lEXzJfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjQ0LjUwMzQiIHkxPSIzLjUiIHgyPSI0NC41MDM0IiB5Mj0iOTguNTA1MyI+DQoJCTxzdG9wICBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOiNDQ0NDQ0MiLz4NCgkJPHN0b3AgIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6Izk5OTk5OSIvPg0KCTwvbGluZWFyR3JhZGllbnQ+DQoJPHBhdGggZmlsbD0idXJsKCNTVkdJRF8yXykiIGQ9Ik0xNi4yMzcsNjAuMDI3TDAsOTguNTU5bDM5LjEtMTUuOTc3bDQ5LjkwNy00OS4xNDlMNjYuMDc2LDEwLjg4NUwxNi4yMzcsNjAuMDI3eiBNMTQuMjc1LDg3Ljk0OQ0KCQlsLTMuNDc0LTMuNDEybDkuMjg0LTIyLjE3MmMwLDAsNC4xNzEsMC43Niw2LjI1NiwyLjc4M2MyLjA4NSwyLjA4NCwxLjUxOCw1LjkzNCwwLjY5LDYuODIxYzAuODI3LTAuODg5LDQuODA2LTEuNDU0LDYuODkyLDAuNjMNCgkJYzIuMDg1LDIuMDIyLDIuNzgyLDYuMTI3LDIuNzgyLDYuMTI3TDE0LjI3NSw4Ny45NDl6Ii8+DQo8L2c+DQo8L3N2Zz4NCg==);
+}
+.toolbar-main .bar .edit .tab:active,
+.toolbar-main .bar .edit.active .tab {
+  background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxNi4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB3aWR0aD0iMTAwcHgiIGhlaWdodD0iMTAwcHgiIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAxMDAgMTAwIiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxsaW5lYXJHcmFkaWVudCBpZD0iU1ZHSURfMV8iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iODYuMTk3MyIgeTE9IjMuNSIgeDI9Ijg2LjE5NzMiIHkyPSI5OC41MDUzIj4NCgkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6I0ZGRkZGRiIvPg0KCQk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojRTVFNUU1Ii8+DQoJPC9saW5lYXJHcmFkaWVudD4NCgk8cGF0aCBmaWxsPSJ1cmwoI1NWR0lEXzFfKSIgZD0iTTk1LjI2Miw0LjY5MmMtNi4zMTYtNi4yNTYtMTYuNTUxLTYuMjU2LTIyLjg2NywwbDIyLjg2NywyMi41NTQNCgkJQzEwMS41NzksMjEuMDUyLDEwMS41NzksMTAuOTQ3LDk1LjI2Miw0LjY5MnoiLz4NCgk8bGluZWFyR3JhZGllbnQgaWQ9IlNWR0lEXzJfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjQ0LjUwMzQiIHkxPSIzLjUiIHgyPSI0NC41MDM0IiB5Mj0iOTguNTA1MyI+DQoJCTxzdG9wICBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOiNGRkZGRkYiLz4NCgkJPHN0b3AgIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6I0U1RTVFNSIvPg0KCTwvbGluZWFyR3JhZGllbnQ+DQoJPHBhdGggZmlsbD0idXJsKCNTVkdJRF8yXykiIGQ9Ik0xNi4yMzcsNjAuMDI3TDAsOTguNTU5bDM5LjEtMTUuOTc3bDQ5LjkwNy00OS4xNDlMNjYuMDc2LDEwLjg4NUwxNi4yMzcsNjAuMDI3eiBNMTQuMjc1LDg3Ljk0OQ0KCQlsLTMuNDc0LTMuNDEybDkuMjg0LTIyLjE3MmMwLDAsNC4xNzEsMC43Niw2LjI1NiwyLjc4M2MyLjA4NSwyLjA4NCwxLjUxOCw1LjkzNCwwLjY5LDYuODIxYzAuODI3LTAuODg5LDQuODA2LTEuNDU0LDYuODkyLDAuNjMNCgkJYzIuMDg1LDIuMDIyLDIuNzgyLDYuMTI3LDIuNzgyLDYuMTI3TDE0LjI3NSw4Ny45NDl6Ii8+DQo8L2c+DQo8L3N2Zz4NCg==);
+}
diff --git a/edit.module b/edit.module
index 9ca87e7..6a43619 100644
--- a/edit.module
+++ b/edit.module
@@ -51,14 +51,32 @@ function edit_menu() {
 }
 
 /**
- * Implements hook_page_alter().
+ * Implements hook_toolbar_register_tabs().
  */
-function edit_page_alter(&$page) {
+function edit_toolbar_register_tabs() {
   if (path_is_admin(current_path())) {
     return;
   }
+  $tab['edit'] = array(
+    'tab' => array(
+      'title' => t('Edit'),
+      'href' => '',
+      'html' => FALSE,
+    ),
+    'tray' => array(
+      '#pre_render' => array('edit_toolbar_pre_render'),
+    ),
+  );
+
+  return $tab;
+}
+
+/**
+ * Pre-render function for adding edit actions to the toolbar.
+ */
+function edit_toolbar_pre_render($tray) {
 
-  $page['page_top']['edit'] = array(
+  $edit['edit'] = array(
     'view_edit_toggle' => array(
       '#prefix' => '<div id="editbar"><h2 class="element-invisible">' . t('In-place edit operations') . '</h2><ul id="edit_view-edit-toggles">',
       '#suffix' => '</ul></div>',
@@ -79,18 +97,9 @@ function edit_page_alter(&$page) {
         ),
       ),
     ),
-    '#post_render' => array(
-      'edit_editbar_post_render',
-    ),
   );
-}
 
-/**
- * Post-render function to remove the editbar if nothing editable is present.
- */
-function edit_editbar_post_render($html) {
-  global $editbar;
-  return ($editbar !== TRUE) ? '' : $html;
+  return $edit;
 }
 
 /**
-- 
1.7.10.4

