From 7745c2f2b0bef040a4802c982f9520862abe403f Mon Sep 17 00:00:00 2001
From: Chris Gross <gross.364@osu.edu>
Date: Wed, 4 May 2016 16:11:46 -0400
Subject: [PATCH] daily build 2

---
 profiles/wcm_base/CHANGELOG.txt               |   5 +-
 .../fieldable_panels_panes/CHANGELOG.txt      |  40 +++
 .../fieldable_panels_panes.api.php            |  17 +
 .../fieldable_panels_panes.info               |  26 +-
 .../fieldable_panels_panes.install            | 326 +++++++++++++++++-
 .../fieldable_panels_panes.module             | 267 ++++++++++++--
 .../fieldable_panels_panes.vertical-tabs.js   |   7 +-
 .../includes/PanelsPaneController.class.php   |  15 +-
 .../fieldable_panels_panes/includes/admin.inc |  67 ++++
 .../content_types/fieldable_panels_pane.inc   | 143 +++++++-
 .../export_ui/fieldable_panels_pane.class.php |  39 ++-
 .../views/fieldable_panels_panes.views.inc    |  11 +
 ...le_panels_panes_handler_field_language.inc |  46 +++
 ...e_panels_panes_handler_filter_language.inc |  28 ++
 .../tests/fpp.entity_form.test                | 172 +++++++++
 .../tests/fpp.helper.test                     |   1 +
 .../tests/fpp.locale.test                     | 140 ++++++++
 .../tests/fpp.with_panelizer.test             |  43 +++
 .../tests/fpp.with_panels.test                | 188 ++++++++++
 .../tests/fpp.with_panels_and_entity.test     |  31 ++
 .../tests/fpp.with_revisioning.test           |  46 +++
 .../tests/fpp_with_panels_test.info           |  17 +
 .../tests/fpp_with_panels_test.module         |  14 +
 .../fpp_with_panels_test.pages_default.inc    | 117 +++++++
 .../contrib/workbench_media/PATCHES.txt       |   4 +
 .../workbench_media/workbench_media.module    |   4 +
 .../wcm_user_config/theme/user-login.tpl.php  |  45 ++-
 .../custom/wcm_workbench/wcm_workbench.make   |   1 +
 .../ocio-default/ocio-default.layout.css      |  73 +++-
 .../ocio-default.layout.no-query.css          |  73 +++-
 .../css/ocio-omega-base.no-query.css          |  95 ++++-
 .../css/ocio-omega-base.styles.css            |  95 ++++-
 .../jquery-images/ui-icons_222222_256x240.png | Bin 0 -> 6922 bytes
 .../jquery-images/ui-icons_888888_256x240.png | Bin 0 -> 6999 bytes
 .../sass/base/_accordions.scss                |  20 ++
 .../ocio_omega_base/sass/base/_buttons.scss   |  12 +-
 .../sass/components/_users.scss               |  41 +++
 profiles/wcm_base/wcm_base.make               |   2 +-
 38 files changed, 2128 insertions(+), 143 deletions(-)
 create mode 100644 profiles/wcm_base/modules/contrib/fieldable_panels_panes/plugins/views/fieldable_panels_panes_handler_field_language.inc
 create mode 100644 profiles/wcm_base/modules/contrib/fieldable_panels_panes/plugins/views/fieldable_panels_panes_handler_filter_language.inc
 create mode 100644 profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp.entity_form.test
 create mode 100644 profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp.locale.test
 create mode 100644 profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp.with_panelizer.test
 create mode 100644 profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp.with_panels.test
 create mode 100644 profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp.with_panels_and_entity.test
 create mode 100644 profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp.with_revisioning.test
 create mode 100644 profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp_with_panels_test.info
 create mode 100644 profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp_with_panels_test.module
 create mode 100644 profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp_with_panels_test.pages_default.inc
 create mode 100644 profiles/wcm_base/modules/contrib/workbench_media/PATCHES.txt
 create mode 100644 profiles/wcm_base/themes/ocio_omega_base/images/jquery-images/ui-icons_222222_256x240.png
 create mode 100644 profiles/wcm_base/themes/ocio_omega_base/images/jquery-images/ui-icons_888888_256x240.png

diff --git a/profiles/wcm_base/CHANGELOG.txt b/profiles/wcm_base/CHANGELOG.txt
index b0d6f459..3e543325 100644
--- a/profiles/wcm_base/CHANGELOG.txt
+++ b/profiles/wcm_base/CHANGELOG.txt
@@ -1,7 +1,8 @@
 WCM Base 7.x-1.x, 2016-05-04
 ----------------------------
-- WCM Panels Settings: Added link field to image panels panes
-- OCIO Omega Base: Render link field on image panels panes
+- WCM Panels Settings: Added link field to image panels panes.
+- OCIO Omega Base: Render link field on image panels panes.
+- WCM Base: Updated Fieldable Panes Panes to 1.10 (security release).
 
 WCM Base 7.x-1.x, 2016-04-28
 ----------------------------
diff --git a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/CHANGELOG.txt b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/CHANGELOG.txt
index c7ea169a..7f2c9b51 100644
--- a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/CHANGELOG.txt
+++ b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/CHANGELOG.txt
@@ -1,3 +1,43 @@
+Fieldable Panels Panes 7.x-1.10, 2016-05-04
+-------------------------------------------
+By cboyden, DamienMcKenna, dsnopek: Admin title formatting.
+
+
+Fieldable Panels Panes 7.x-1.9, 2016-05-03
+------------------------------------------
+#2487888 by coenvanvliet, DamienMcKenna, joelstein: Clear an object's cache
+  after it is saved or updated.
+#1910934 by jlapp, thrnio, Chris Burge, MiroslavBanov: Allow all FPP objects to
+  be used as blocks, controllable from the new settings page.
+#1986334 by David_Rothstein, grndlvl, EclipseGc, ruloweb, vilepickle, heddn,
+  MiroslavBanov, brantwynn, mairi, danieltome, azinck, DamienMcKenna, slucero:
+  Optionally allow each FPP pane to be referenced by revision ID, allowing for
+  editorial workflows when used with Panelizer.
+#2691577 by DamienMcKenna: Added placeholders for more tests.
+#2713699 by joelstein: Add pane-fpid-[FPID] class when FPPs referenced by
+  revision ID.
+#2695499 by DamienMcKenna, ttamniwdoog, azinck, heddn: On new sites,
+  non-reusable FPPs must now be referenced by revision ID, includes update
+  scripts to update sites as needed. FPPs may not have their reusability
+  changed after the initial creation. Non-reusable FPPs are always saved as a
+  new revision.
+#2493899 by Upchuk, DamienMcKenna: Language selector on FPP entity form.
+#2688577 by rigoucr, DamienMcKenna: Recover the default FPP type if it was
+  deleted in update 7108.
+#2541184 by DamienMcKenna, Andrew Edwards, solipsist: Make the admin title
+  always available so it can always be used. Also, make the FPP category
+  editable for saved objects and the revision field available when editing
+  non-reusable FPPs.
+#2717609 by dsnopek: Use the standard entity_label() function to get the FPP's
+  title if no admin title is provided for the admin UI.
+#1724394 by DamienMcKenna: Hide some links if Field UI is not installed.
+#2374577 by grasmash, DamienMcKenna, walangitan: Cache the FPPs list for CTools.
+#2508629 by malik.kotob, DamienMcKenna: Properly handle HTML entities in titles
+  when the field is a link.
+#2718091 by DamienMcKenna: Reverted #2622808 and #2718035, added test for
+  Entity API and for title links.
+
+
 Fieldable Panels Panes 7.x-1.8, 2016-03-02
 ------------------------------------------
 #2534200 by bwood, cboyden: Disable support for the Redirect module.
diff --git a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/fieldable_panels_panes.api.php b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/fieldable_panels_panes.api.php
index 581367ae..2e1057f9 100644
--- a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/fieldable_panels_panes.api.php
+++ b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/fieldable_panels_panes.api.php
@@ -89,6 +89,23 @@ function hook_fieldable_panels_pane_view($panels_pane, $view_mode, $langcode) {
   );
 }
 
+/**
+ * All the list of CTools plugin specs for FPP objects to be modified.
+ *
+ * @param array $types
+ *   All of the CTools plugin specifications for these FPP objects.
+ * @param string $bundle
+ *   The FPP bundle.
+ * @param array $entities
+ *   All of the FPP entities for this bundle indexed by their CTools subtype,
+ *   e.g. fpid:123, vid:123, uuid:123.
+ */
+function hook_fieldable_panels_panes_content_types_alter(&$types, $bundle, $entities) {
+  foreach ($types as $name => &$type) {
+    $type['icon'] = 'icon_funnyface.png';
+  }
+}
+
 /**
  * @} End of "addtogroup hooks".
  */
diff --git a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/fieldable_panels_panes.info b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/fieldable_panels_panes.info
index 12b101e2..7313e8b3 100644
--- a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/fieldable_panels_panes.info
+++ b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/fieldable_panels_panes.info
@@ -20,6 +20,8 @@ files[] = plugins/views/fieldable_panels_panes_handler_field_delete_entity.inc
 files[] = plugins/views/fieldable_panels_panes_handler_field_edit_entity.inc
 files[] = plugins/views/fieldable_panels_panes_handler_field_view_entity.inc
 files[] = plugins/views/fieldable_panels_panes_handler_filter_bundle.inc
+files[] = plugins/views/fieldable_panels_panes_handler_field_language.inc
+files[] = plugins/views/fieldable_panels_panes_handler_filter_language.inc
 
 files[] = plugins/views/fieldable_panels_panes_handler_field_delete_revision.inc
 files[] = plugins/views/fieldable_panels_panes_handler_field_edit_revision.inc
@@ -39,10 +41,28 @@ test_dependencies[] = devel
 files[] = tests/fpp.helper.test
 files[] = tests/fpp.permissions.test
 files[] = tests/fpp.file_access.test
+files[] = tests/fpp.locale.test
+files[] = tests/fpp.entity_form.test
 
-; Information added by Drupal.org packaging script on 2016-03-02
-version = "7.x-1.8"
+; Test the interaction with the Panels module.
+test_dependencies[] = panels
+files[] = tests/fpp.with_panels.test
+
+; Test the interaction with the Panels and Entity API modules.
+test_dependencies[] = entity
+files[] = tests/fpp.with_panels_and_entity.test
+
+; Test the interaction with the Panelizer module.
+test_dependencies[] = panelizer
+files[] = tests/fpp.with_panelizer.test
+
+; Test the node revisions workflow with Revisioning module.
+test_dependencies[] = revisioning
+files[] = tests/fpp.with_revisioning.test
+
+; Information added by Drupal.org packaging script on 2016-05-04
+version = "7.x-1.10"
 core = "7.x"
 project = "fieldable_panels_panes"
-datestamp = "1456932247"
+datestamp = "1462374853"
 
diff --git a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/fieldable_panels_panes.install b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/fieldable_panels_panes.install
index 9bfc67d0..37b18e45 100644
--- a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/fieldable_panels_panes.install
+++ b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/fieldable_panels_panes.install
@@ -31,6 +31,15 @@ function fieldable_panels_panes_uninstall() {
 
   // Variables.
   variable_del('fieldable_panels_panes_skip_default_type');
+  variable_del('fpp_blocks_expose');
+  variable_del('fpp_hide_contextual_links');
+  variable_del('fpp_revision_locking');
+
+  // Delete any variables that begin with 'fpp_expose_'.
+  $results = db_query('SELECT name FROM {variable} WHERE name LIKE :var', array(':var' => 'fpp_expose_%'))->fetchCol();
+  foreach ($results as $var) {
+    variable_del($var);
+  }
 }
 
 /**
@@ -372,19 +381,17 @@ function fieldable_panels_panes_update_7108() {
   // Store possible existing bundles provided by other modules.
   $bundles = array();
   $entity_info = entity_get_info('fieldable_panels_pane');
-  
-  // No bundles defined. This could happen if the module was updated and cache
-  // cleared before update was run as entity info's cache will no longer
-  // contain the old default.
-  $t = get_t();
-  if (empty($entity_info['bundles'])) {
-    $entity_info['bundles'] = array(
-      'fieldable_panels_pane' => array(
-          'label' => $t('Panels pane'),
-      ),
+
+  // The default bundle is not defined. This could happen if the module was
+  // updated and cache cleared before update was run as entity info's cache
+  // will no longer contain the old default.
+  if (empty($entity_info['bundles']['fieldable_panels_pane'])) {
+    $t = get_t();
+    $entity_info['bundles']['fieldable_panels_pane'] = array(
+      'label' => $t('Panels pane'),
     );
   }
-  
+
   foreach ($entity_info['bundles'] as $bundle_name => $bundle_info) {
     $bundles[] = $bundle_info['label'];
 
@@ -413,3 +420,300 @@ function fieldable_panels_panes_update_7109() {
     'default' => '',
   ));
 }
+
+/**
+ * Clear the menu cache to pick up the new settings page.
+ */
+function fieldable_panels_panes_update_7110() {
+  variable_set('menu_rebuild_needed', TRUE);
+}
+
+/**
+ * Existing sites will disable locking.
+ */
+function fieldable_panels_panes_update_7111() {
+  $old = variable_get('fpp_revision_locking');
+  if (empty($old)) {
+    variable_set('fpp_revision_locking', 'legacy');
+    return t('The FPP locking option has been disabled to avoid problems for existing sites. Should this need to be changed, see the comments in fieldable_panels_panes_update_7112 for instructions.');
+  }
+  else {
+    return t('The FPP locking option was set already, so it has not been touched.');
+  }
+}
+
+/**
+ * Update all Panelizer displays to point non-reusable FPPs to the vid instead
+ * of the fpid.
+ */
+function fieldable_panels_panes_update_7112(&$sandbox) {
+  if (!module_exists('panelizer')) {
+    return t('Panelizer is not installed, so nothing to do.');
+  }
+
+  // This won't as-is work for many sites because the 'fpp_revision_locking'
+  // variable won't be defined before it's checked for. The simplest approach
+  // is to manually rerun the updates.
+  //
+  // /**
+  //  * Enable the FPP revision locking feature.
+  //  */
+  // function MYMODULE_update_7100() {
+  //   variable_set('fpp_revision_locking', 'lock');
+  // }
+  //
+  // /**
+  //  * Rerun Fieldable Panels Panes update 7112.
+  //  */
+  // function MYMODULE_update_7101(&$sandbox) {
+  //   return fieldable_panels_panes_update_7112($sandbox);
+  // }
+  //
+  //
+  // A more correct approach is to use hook_update_dependencies to ensure that
+  // the updates happen in the correct order. This may not work because if the
+  // hook implementation is newly added to the module it won't be recognized
+  // until the caches are cleared, which may not happen until after the updates
+  // are ran, thus the updates not running in the correct order.
+  //
+  // /**
+  //  * Implements hook_update_dependencies().
+  //  */
+  // function MYMODULE_update_dependencies() {
+  //   // Make sure that update 7100 below runs *after* Fieldable Panels Pane
+  //   // update 7111 and *before* Fieldable Panels Pane update 7112, that way
+  //   // the FPP 'lock' option will be enabled when the Panelizer updates are
+  //   // started.
+  //   $dependencies['MYMODULE'][7100] = array(
+  //     'fieldable_panels_panes' => 7111,
+  //   );
+  //   $dependencies['fieldable_panels_panes'][7112] = array(
+  //     'MYMODULE' => 7100,
+  //   );
+  //   return $dependencies;
+  // }
+  //
+  // /**
+  //  * Enable the FPP revision locking feature.
+  //  */
+  // function MYMODULE_update_7100() {
+  //   variable_set('fpp_revision_locking', 'lock');
+  // }
+  //
+  //
+  // An alternative solution would be to rerun the updates.
+
+  if (variable_get('fpp_revision_locking', 'lock') != 'lock') {
+    return t('Pane locking is not enabled, so nothing to do.');
+  }
+
+  // Update all Panelizer displays.
+
+  // The first time through, work out how many records need to be updated.
+  if (!isset($sandbox['progress'])) {
+    $sandbox['progress'] = 0;
+
+    // Total records that must be processed.
+    $sandbox['max'] = db_query("SELECT DISTINCT fpp.fpid as fpid, fpp.vid as vid
+      FROM {fieldable_panels_panes} fpp
+      INNER JOIN {panels_pane} pp
+        ON fpp.fpid = SUBSTRING_INDEX(pp.subtype, ':', -1)
+      INNER JOIN {panelizer_entity} pe
+        ON pe.did = pp.did
+      WHERE (pp.subtype LIKE 'fpid:%' OR pp.subtype LIKE 'current:%')
+        AND fpp.reusable != 1
+      ORDER BY fpp.fpid")->rowCount();
+
+    // If there's nothing to do, bail early.
+    if (empty($sandbox['max'])) {
+      return t('No panels needed to be updated.');
+    }
+  }
+
+  // Do the updates in small batches.
+  $limit = 10;
+
+  // Get a list of all FPIDs for Panelizer displays.
+  $results = db_query_range("SELECT DISTINCT fpp.fpid as fpid, fpp.vid as vid
+    FROM {fieldable_panels_panes} fpp
+    INNER JOIN {panels_pane} pp
+      ON fpp.fpid = SUBSTRING_INDEX(pp.subtype, ':', -1)
+    INNER JOIN {panelizer_entity} pe
+      ON pe.did = pp.did
+    WHERE (pp.subtype LIKE 'fpid:%' OR pp.subtype LIKE 'current:%')
+      AND fpp.reusable != 1
+    ORDER BY fpp.fpid", 0, $limit);
+
+  // Loop through the FPPs.
+  foreach ($results as $record) {
+    // Update the 'fpid:' and 'current:' records to use 'vid:'; don't bother
+    // checking if the record exists first because there's no down side to
+    // running this query immediately.
+    $query = db_update('panels_pane')
+      ->fields(array('subtype' => 'vid:' . $record->vid))
+      ->condition('subtype', 'fpid:' . $record->fpid)
+      ->execute();
+    $query = db_update('panels_pane')
+      ->fields(array('subtype' => 'vid:' . $record->vid))
+      ->condition('subtype', 'current:' . $record->fpid)
+      ->execute();
+
+    // Increment the progress counter.
+    $sandbox['progress']++;
+  }
+
+  // Done yet?
+  $sandbox['#finished'] = empty($sandbox['max']) ? TRUE : ($sandbox['progress'] / $sandbox['max']);
+
+  if ($sandbox['#finished'] === TRUE) {
+    return t('Updated @count record(s) to use the new locking system.', array('@count' => $sandbox['max']));
+  }
+}
+
+/**
+ * Update all Panel Nodes displays to point non-reusable FPPs to the vid instead
+ * of the fpid.
+ */
+function fieldable_panels_panes_update_7113() {
+  if (!module_exists('panels_node')) {
+    return t('Panel Nodes is not installed, so nothing to do.');
+  }
+
+  // This won't as-is work for many sites because the 'fpp_revision_locking'
+  // variable won't be defined before it's checked for. The simplest approach
+  // is to manually rerun the updates.
+  //
+  // /**
+  //  * Enable the FPP revision locking feature.
+  //  */
+  // function MYMODULE_update_7100() {
+  //   variable_set('fpp_revision_locking', 'lock');
+  // }
+  //
+  // /**
+  //  * Rerun Fieldable Panels Panes update 7113.
+  //  */
+  // function MYMODULE_update_7101(&$sandbox) {
+  //   return fieldable_panels_panes_update_7113($sandbox);
+  // }
+  //
+  //
+  // A more correct approach is to use hook_update_dependencies to ensure that
+  // the updates happen in the correct order. This may not work because if the
+  // hook implementation is newly added to the module it won't be recognized
+  // until the caches are cleared, which may not happen until after the updates
+  // are ran, thus the updates not running in the correct order.
+  //
+  // /**
+  //  * Implements hook_update_dependencies().
+  //  */
+  // function MYMODULE_update_dependencies() {
+  //   // Make sure that update 7100 below runs *after* Fieldable Panels Pane
+  //   // update 7111 and *before* Fieldable Panels Pane update 7113, that way
+  //   // the FPP 'lock' option will be enabled when the Panelizer updates are
+  //   // started.
+  //   $dependencies['MYMODULE'][7100] = array(
+  //     'fieldable_panels_panes' => 7111,
+  //   );
+  //   $dependencies['fieldable_panels_panes'][7113] = array(
+  //     'MYMODULE' => 7100,
+  //   );
+  //   return $dependencies;
+  // }
+  //
+  // /**
+  //  * Enable the FPP revision locking feature.
+  //  */
+  // function MYMODULE_update_7100() {
+  //   variable_set('fpp_revision_locking', 'lock');
+  // }
+  //
+  //
+  // An alternative solution would be to rerun the updates.
+
+  if (variable_get('fpp_revision_locking', 'lock') != 'lock') {
+    return t('Pane locking is not enabled, so nothing to do.');
+  }
+
+  // The first time through, work out how many records need to be updated.
+  if (!isset($sandbox['progress'])) {
+    $sandbox['progress'] = 0;
+
+    // Total records that must be processed.
+    $sandbox['max'] = db_query("SELECT DISTINCT fpp.fpid as fpid, fpp.vid as vid
+      FROM {fieldable_panels_panes} fpp
+      INNER JOIN {panels_pane} pp
+        ON fpp.fpid = SUBSTRING_INDEX(pp.subtype, ':', -1)
+      INNER JOIN {panels_node} pn
+        ON pn.did = pp.did
+      WHERE (pp.subtype LIKE 'fpid:%' OR pp.subtype LIKE 'current:%')
+        AND fpp.reusable != 1
+      ORDER BY fpp.fpid")->rowCount();
+
+    // If there's nothing to do, bail early.
+    if (empty($sandbox['max'])) {
+      return t('No panels needed to be updated.');
+    }
+  }
+
+  // Do the updates in small batches.
+  $limit = 10;
+
+  // Get a list of all FPIDs for Panel Nodes displays.
+  $results = db_query_range("SELECT DISTINCT fpp.fpid as fpid, fpp.vid as vid
+    FROM {fieldable_panels_panes} fpp
+    INNER JOIN {panels_pane} pp
+      ON fpp.fpid = SUBSTRING_INDEX(pp.subtype, ':', -1)
+    INNER JOIN {panels_node} pn
+      ON pn.did = pp.did
+    WHERE (pp.subtype LIKE 'fpid:%' OR pp.subtype LIKE 'current:%')
+      AND fpp.reusable != 1
+    ORDER BY fpp.fpid", 0, $limit);
+
+  // Loop through the FPPs.
+  foreach ($results as $record) {
+    // Update the 'fpid:' and 'current:' records to use 'vid:'; don't bother
+    // checking if the record exists first because there's no down side to
+    // running this query immediately.
+    $query = db_update('panels_pane')
+      ->fields(array('subtype' => 'vid:' . $record->vid))
+      ->condition('subtype', 'fpid:' . $record->fpid)
+      ->execute();
+    $query = db_update('panels_pane')
+      ->fields(array('subtype' => 'vid:' . $record->vid))
+      ->condition('subtype', 'current:' . $record->fpid)
+      ->execute();
+
+    // Increment the progress counter.
+    $sandbox['progress']++;
+  }
+
+  // Done yet?
+  $sandbox['#finished'] = empty($sandbox['max']) ? TRUE : ($sandbox['progress'] / $sandbox['max']);
+
+  if ($sandbox['#finished'] === TRUE) {
+    return t('Updated @count record(s) to use the new locking system.', array('@count' => $sandbox['max']));
+  }
+}
+
+/**
+ * Restore the default FPP bundle that may have been purged in update 7108.
+ */
+function incae_custom_panes_update_7114() {
+  if (!variable_get('fieldable_panels_panes_skip_default_type', FALSE)) {
+    // Check if the FPP type exists.
+    $found = db_select('fieldable_panels_pane_type', 'fppt')
+      ->fields('fppt', 'name')
+      ->condition('name', 'fieldable_panels_pane')
+      ->execute()
+      ->fetchField();
+    if (empty($found)) {
+      ctools_include('export');
+      $item = ctools_export_crud_new('fieldable_panels_pane_type');
+      $item->name = 'fieldable_panels_pane';
+      $item->title = t('Panels Pane');
+      ctools_export_crud_save('fieldable_panels_pane_type', $item);
+      return t('The default Fieldable Panels Pane entity type has been recovered.');
+    }
+  }
+}
diff --git a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/fieldable_panels_panes.module b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/fieldable_panels_panes.module
index 1327d28b..6c2f9b7e 100644
--- a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/fieldable_panels_panes.module
+++ b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/fieldable_panels_panes.module
@@ -436,6 +436,14 @@ function fieldable_panels_panes_menu() {
     'context' => MENU_CONTEXT_PAGE | MENU_CONTEXT_INLINE,
   ) + $base;
 
+  // Settings.
+  $items['admin/structure/fieldable-panels-panes/settings'] = array(
+    'title' => 'Settings',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('fieldable_panels_panes_settings'),
+    'type' => MENU_LOCAL_TASK,
+  ) + $base;
+
   return $items;
 }
 
@@ -576,14 +584,17 @@ function fieldable_panels_panes_panels_dashboard_blocks(&$vars) {
   $rows = array();
 
   foreach (ctools_export_crud_load_all('fieldable_panels_pane_type') as $type) {
-    $rows[] = array(
+    $items = array(
       $type->title,
       l(t('List'), 'admin/structure/fieldable-panels-panes/' . $type->name),
       l(t('Edit'), 'admin/structure/fieldable-panels-panes/' . $type->name . '/edit'),
       l(t('Add'), 'admin/structure/fieldable-panels-panes/' . $type->name . '/add'),
-      l(t('Manage Fields'), 'admin/structure/fieldable-panels-panes/' . $type->name . '/fields'),
-      l(t('Manage Display'), 'admin/structure/fieldable-panels-panes/' . $type->name . '/display'),
     );
+    if (module_exists('field_ui')) {
+      $items[] = l(t('Manage Fields'), 'admin/structure/fieldable-panels-panes/' . $type->name . '/fields');
+      $items[] = l(t('Manage Display'), 'admin/structure/fieldable-panels-panes/' . $type->name . '/display');
+    }
+    $rows[] = $items;
 
     // Only display 10.
     if (++$count >= 10) {
@@ -822,6 +833,81 @@ function fieldable_panels_panes_views_api() {
   );
 }
 
+// -------------------------------------------------------------------------
+// Block hooks.
+
+/**
+ * Implements hook_block_info().
+ */
+function fieldable_panels_panes_block_info() {
+  $blocks = array();
+  // Get array of exposed FPP bundles.
+  $bundles = fieldable_panels_panes_exposed_bundles();
+
+  if (variable_get('fpp_blocks_expose', FALSE) == TRUE) {
+    // Get all reusable entities if $bundles array is empty.
+    if (empty($bundles)) {
+      $ids = db_query('SELECT fpid FROM {fieldable_panels_panes} WHERE reusable = 1')->fetchCol();
+    }
+    // Get reusable entities of selected FPP bundles if $bundles array is not
+    // empty.
+    else {
+      $ids = array();
+      foreach ($bundles as $bundle => $info) {
+        $bundle_ids = db_query('SELECT fpid FROM {fieldable_panels_panes} WHERE reusable = 1 AND bundle = :bundle', array(':bundle' => $bundle))->fetchCol();
+        $ids = array_merge($ids, $bundle_ids);
+      }
+    }
+    $entities = fieldable_panels_panes_load_multiple($ids);
+    foreach ($entities as $entity) {
+      $blocks[$entity->fpid]['info'] = 'FPP (' . $entity->bundle . '): ' . entity_label('fieldable_panels_pane', $entity);
+    }
+  }
+
+  return $blocks;
+}
+
+/**
+ * Implements hook_block_view().
+ */
+function fieldable_panels_panes_block_view($delta = '') {
+  $block = array();
+  // Get array of exposed FPP bundles.
+  $bundles = fieldable_panels_panes_exposed_bundles();
+
+  if (variable_get('fpp_blocks_expose', FALSE) == TRUE) {
+    $entity = fieldable_panels_panes_load($delta);
+    $bundle = $entity->bundle;
+
+    $block['subject'] = '';
+    $block['content'] = '';
+
+    // Render block if its FPP bundle is exposed and block is reusable.
+    if ((array_key_exists($bundle, $bundles) || empty($bundles)) && $entity->reusable == TRUE) {
+      $content = fieldable_panels_panes_view($entity);
+      $block['subject'] = check_plain($entity->title);
+      $block['content'] = $content;
+    }
+  }
+  return $block;
+}
+
+/**
+ * Return array of FPP bundles exposed as blocks.
+ */
+function fieldable_panels_panes_exposed_bundles() {
+  // Get array of all FPP bundles and unset bundles not exposed as blocks.
+  $bundles = fieldable_panels_panes_get_bundle_labels();
+
+  foreach ($bundles as $bundle => $info) {
+    $expose = variable_get('fpp_expose_' . $bundle, FALSE);
+    if ($expose == FALSE) {
+      unset($bundles[$bundle]);
+    }
+  }
+  return $bundles;
+}
+
 // -------------------------------------------------------------------------
 // Theming
 
@@ -848,10 +934,15 @@ function fieldable_panels_panes_preprocess_panels_pane(&$vars) {
     if (!empty($vars['content']['#fieldable_panels_pane']) && is_object($vars['content']['#fieldable_panels_pane'])) {
       $entity = $vars['content']['#fieldable_panels_pane'];
       if (!empty($entity->link) && !empty($vars['title'])) {
-        $vars['title'] = l($vars['title'], $entity->path);
+        $vars['title'] = l($vars['title'], $entity->path, array('html' => TRUE));
       }
       ctools_include('cleanstring');
       $vars['classes_array'][] = 'pane-bundle-' . ctools_cleanstring($entity->bundle, array('lower case' => TRUE));
+
+      // Add pane-fpid-[fpid] class when referenced by revision ID.
+      if (strpos($vars['pane']->subtype, 'vid') === 0) {
+        $vars['classes_array'][] = 'pane-fpid-' . $vars['content']['#fieldable_panels_pane']->fpid;
+      }
     }
   }
 }
@@ -919,8 +1010,12 @@ function fieldable_panels_panes_load_from_subtype($subtype_name) {
  * Properly load the entity via $subtype_name.
  *
  * @param string $subtype_name
- *   A string combining an indicator of the type of ID, e.g. 'fpid', 'vid' or
- *   'vuuid', and an integer ID, separated by a colon; e.g. "fpid:123".
+ *   A string combining an indicator of the type of ID, e.g. 'fpid', 'vid',
+ *   'uuid', 'vuuid' or 'current, and an integer ID, separated by a colon; e.g.
+ *   "fpid:123". If the type is 'current' the newest revision will be loaded,
+ *   'fpid' and 'uuid' will load the revision considered best, 'vid' and 'vuuid'
+ *   will load a specific revision. Both 'uuid' and 'vuuid' require the UUID
+ *   module to be present.
  *
  * @return object
  *   The requested FPP object.
@@ -939,12 +1034,25 @@ function fieldable_panels_panes_load_from_subtype_force($subtype_name) {
     }
   }
 
+  // UUID integration for revisions.
+  elseif ($type == 'vuuid' && module_exists('uuid')) {
+   $vids = entity_get_id_by_uuid('fieldable_panels_pane', array($id), TRUE);
+    if ($vids && $content = entity_load('fieldable_panels_pane', FALSE, array('vid' => reset($vids)))) {
+      $object = reset($content);
+    }
+  }
   // If the type is 'vid' then a specific FPP revision is being requested.
   elseif ($type == 'vid') {
     $fpid = db_query('SELECT fpid FROM {fieldable_panels_panes_revision} WHERE vid = :vid', array(':vid' => $id))->fetchField();
     $object = fieldable_panels_panes_load($fpid, $id);
   }
 
+  // Load up the current revision.
+  elseif ($type == 'current') {
+    $vid = db_query('SELECT MAX(vid) FROM {fieldable_panels_panes_revision} WHERE fpid = :fpid', array(':fpid' => $id))->fetchField();
+   $object = fieldable_panels_panes_load($id, $vid);
+  }
+
   // The remaining scenario is that it's a regular FPP id, i.e. an "fpid", so
   // just load the object.
   else {
@@ -1138,10 +1246,20 @@ function fieldable_panels_panes_entity_edit_form($form, &$form_state) {
     '#weight' => -10,
   );
 
-  $form['language'] = array(
-    '#type' => 'value',
-    '#value' => $entity->language,
-  );
+  if (module_exists('locale')) {
+    $form['language'] = array(
+      '#type' => 'select',
+      '#title' => t('Language'),
+      '#default_value' => $entity->language,
+      '#options' => array(LANGUAGE_NONE => t('Language neutral')) + locale_language_list('name'),
+    );
+  }
+  else {
+    $form['language'] = array(
+      '#type' => 'value',
+      '#value' => $entity->language,
+    );
+  }
 
   $form['link'] = array(
     '#type' => 'container',
@@ -1176,14 +1294,14 @@ function fieldable_panels_panes_entity_edit_form($form, &$form_state) {
     '#weight' => 99,
   );
 
-  $form['reusable'] = array(
+  $form['admin'] = array(
     '#type' => 'fieldset',
-    '#title' => t('Reusability'),
+    '#title' => t('Admin'),
     '#collapsible' => TRUE,
-    '#collapsed' => empty($entity->reusable),
+    '#collapsed' => empty($entity->admin),
     '#group' => 'additional_settings',
     '#attributes' => array(
-      'class' => array('fieldable-pane-pane-form-reusable-information'),
+      'class' => array('fieldable-pane-pane-form-admin-information'),
     ),
     '#attached' => array(
       'js' => array(
@@ -1193,31 +1311,34 @@ function fieldable_panels_panes_entity_edit_form($form, &$form_state) {
     '#weight' => 10,
   );
 
-  $form['revision'] = array(
+  $form['reusable'] = array(
     '#type' => 'fieldset',
-    '#title' => t('Revision'),
+    '#title' => t('Reusability'),
     '#collapsible' => TRUE,
-    '#collapsed' => empty($entity->revision),
+    '#collapsed' => empty($entity->reusable),
     '#group' => 'additional_settings',
     '#attributes' => array(
-      'class' => array('fieldable-pane-pane-form-revision-information'),
+      'class' => array('fieldable-pane-pane-form-reusable-information'),
     ),
     '#attached' => array(
       'js' => array(
         'vertical-tabs' => drupal_get_path('module', 'fieldable_panels_panes') . '/fieldable_panels_panes.vertical-tabs.js',
       ),
     ),
-    '#weight' => 30,
+    '#weight' => 10,
+    // Cannot change this after the initial creation, but reusable FPPs can be
+    // have their category changed.
+    '#access' => empty($entity->fpid) || (!empty($entity->fpid) && !empty($entity->reusable)),
   );
 
-  if (empty($entity->fpid)) {
-    $form['revision']['#access'] = FALSE;
-  }
-
   $form['reusable']['reusable'] = array(
     '#type' => 'checkbox',
     '#title' => t('Make this entity reusable'),
     '#default_value' => $entity->reusable,
+    '#description' => t('A reusable pane may be used multiple times on the same page or on other pages. A non-reusable pane may not be added to another page once it is created and added to this page. This option may not be changed after the pane is created.'),
+    // It's dangerous to change an FPP's reusability after it is created, so
+    // this is disabled when editing existing FPPs.
+    '#disabled' => !empty($entity->fpid),
   );
 
   $form['reusable']['category'] = array(
@@ -1232,28 +1353,37 @@ function fieldable_panels_panes_entity_edit_form($form, &$form_state) {
     ),
   );
 
-  $form['reusable']['admin_title'] = array(
+  $form['admin']['admin_title'] = array(
     '#type' => 'textfield',
     '#title' => t('Administrative title'),
-    '#description' => t('The name this content will appear in the "Add content" modal.'),
+    '#description' => t("Title used for administrative purposes. Used to identify panes within admin pages."),
     '#default_value' => $entity->admin_title,
-    '#states' => array(
-      'visible' => array(
-        ':input[name="reusable"]' => array('checked' => TRUE),
-      ),
-    ),
   );
 
-  $form['reusable']['admin_description'] = array(
+  $form['admin']['admin_description'] = array(
     '#type' => 'textarea',
     '#title' => t('Administrative description'),
     '#description' => t('A description of what this content is, does or is for, for administrative use.'),
     '#default_value' => $entity->admin_description,
-    '#states' => array(
-      'visible' => array(
-        ':input[name="reusable"]' => array('checked' => TRUE),
+  );
+
+  $form['revision'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Revision'),
+    '#collapsible' => TRUE,
+    '#collapsed' => empty($entity->revision),
+    '#group' => 'additional_settings',
+    '#attributes' => array(
+      'class' => array('fieldable-pane-pane-form-revision-information'),
+    ),
+    '#attached' => array(
+      'js' => array(
+        'vertical-tabs' => drupal_get_path('module', 'fieldable_panels_panes') . '/fieldable_panels_panes.vertical-tabs.js',
       ),
     ),
+    '#weight' => 30,
+    // Don't show the revision options if this is a new FPP.
+    '#access' => !empty($entity->fpid),
   );
 
   $form['revision']['revision'] = array(
@@ -1262,15 +1392,26 @@ function fieldable_panels_panes_entity_edit_form($form, &$form_state) {
     '#default_value' => 1,
   );
 
-  if (!user_access('administer fieldable panels panes') || $entity->vid != $entity->current_vid) {
+  // Force a new revision to be created if the user does not have 'admin FPP'
+  // access, or the 'lock' mode was enabled and this is not a reusable FPP.
+  if (!user_access('administer fieldable panels panes')
+      || $entity->vid != $entity->current_vid
+      || (!empty($entity->fpid) && empty($entity->reusable)
+        && variable_get('fpp_revision_locking', 'lock') == 'lock')) {
     $form['revision']['revision']['#disabled'] = TRUE;
     $form['revision']['revision']['#value'] = TRUE;
+
+    // Inform the user that the pane will be locked.
+    if (!empty($entity->fpid) && empty($entity->reusable)
+        && variable_get('fpp_revision_locking', 'lock') == 'lock') {
+      $form['revision']['revision']['#description'] = t('A new revision will be created because this pane is non-reusable and the locking mode has been enabled.');
+    }
   }
 
   $form['revision']['log'] = array(
     '#type' => 'textarea',
     '#title' => t('Log message'),
-    '#description' => t('Provide an explanation of the changes you are making. This will help other authors understand your motivations.'),
+    '#description' => t('Provide an explanation of the changes being made.'),
     '#default_value' => '',
     '#states' => array(
       'visible' => array(
@@ -1443,3 +1584,57 @@ function fieldable_panels_panes_file_download_access($field, $entity_type, $enti
     return ctools_access($entity->view_access, fieldable_panels_panes_get_base_context($entity));
   }
 }
+
+/**
+ * Determine if an FPP's revision should be locked.
+ *
+ * @param object $entity
+ *   The FPP object being examined.
+ *
+ * @return bool
+ */
+function fieldable_panels_panes_revision_is_lockable($entity) {
+  $lock = variable_get('fpp_revision_locking', 'lock');
+
+  // Only non-reusable FPPs will be lockable.
+  if ($lock == 'lock') {
+    $revision_context_aware = empty($entity->reusable);
+  }
+
+  // Legacy mode, no revisions handling.
+  else {
+    $revision_context_aware = FALSE;
+  }
+
+  return $revision_context_aware;
+}
+
+/**
+ * Implements hook_entity_insert().
+ */
+function fieldable_panels_panes_entity_insert($entity, $type) {
+  if ($type == 'fieldable_panels_pane') {
+    $cid = "fieldable_panels_panes_{$entity->bundle}_content_type";
+    cache_clear_all($cid, 'cache_panels');
+  }
+}
+
+/**
+ * Implements hook_entity_update().
+ */
+function fieldable_panels_panes_entity_update($entity, $type) {
+  if ($type == 'fieldable_panels_pane') {
+    $cid = "fieldable_panels_panes_{$entity->bundle}_content_type";
+    cache_clear_all($cid, 'cache_panels');
+  }
+}
+
+/**
+ * Implements hook_entity_delete().
+ */
+function fieldable_panels_panes_entity_delete($entity, $type) {
+  if ($type == 'fieldable_panels_pane') {
+    $cid = "fieldable_panels_panes_{$entity->bundle}_content_type";
+    cache_clear_all($cid, 'cache_panels');
+  }
+}
diff --git a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/fieldable_panels_panes.vertical-tabs.js b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/fieldable_panels_panes.vertical-tabs.js
index cd9322e4..36203d50 100644
--- a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/fieldable_panels_panes.vertical-tabs.js
+++ b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/fieldable_panels_panes.vertical-tabs.js
@@ -9,8 +9,6 @@ Drupal.behaviors.fieldablePanelPaneFieldsetSummaries = {
         summary.push(Drupal.t('Reusable: Yes'));
         var category = $('input[name="category"]', context).val() || Drupal.t('None');
         summary.push(Drupal.t('Category: @value', { '@value': category }));
-        var admin_title = $('input[name="admin_title"]', context).val() || Drupal.t('None');
-        summary.push(Drupal.t('Admin title: @value', { '@value': admin_title }));
       }
       else {
         summary.push(Drupal.t('Reusable: No'));
@@ -19,6 +17,11 @@ Drupal.behaviors.fieldablePanelPaneFieldsetSummaries = {
       return summary.join('<br />');
     });
 
+    $('fieldset.vertical-tabs-pane.fieldable-pane-pane-form-admin-information', context).drupalSetSummary(function (context) {
+      var admin_title = $('input[name="admin_title"]', context).val() || Drupal.t('None');
+      return Drupal.t('Admin title: @value', { '@value': admin_title });
+    });
+
     $('fieldset.vertical-tabs-pane.fieldable-pane-pane-form-revision-information', context).drupalSetSummary(function (context) {
       var revisionCheckbox = $('input[name="revision"]', context);
 
diff --git a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/includes/PanelsPaneController.class.php b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/includes/PanelsPaneController.class.php
index 7a1d7456..6c7f1ea8 100644
--- a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/includes/PanelsPaneController.class.php
+++ b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/includes/PanelsPaneController.class.php
@@ -168,6 +168,9 @@ class PanelsPaneController extends DrupalDefaultEntityController {
         module_invoke_all('entity_insert', $entity, 'fieldable_panels_pane');
       }
 
+      // Clear the appropriate caches for this object.
+      entity_get_controller('fieldable_panels_pane')->resetCache(array($entity->fpid));
+
       return $entity;
     }
     catch (Exception $e) {
@@ -197,7 +200,12 @@ class PanelsPaneController extends DrupalDefaultEntityController {
     $entity->uid = $uid;
     // Update the existing revision if specified.
     if (!empty($entity->vid)) {
-      drupal_write_record('fieldable_panels_panes_revision', $entity, 'vid');
+      if (module_exists('uuid')) {
+        drupal_write_record('fieldable_panels_panes_revision', $entity, 'vuuid');
+      }
+      else {
+        drupal_write_record('fieldable_panels_panes_revision', $entity, 'vid');
+      }
     }
     else {
       // Otherwise insert a new revision. This will automatically update $entity
@@ -231,7 +239,10 @@ class PanelsPaneController extends DrupalDefaultEntityController {
     // behavior (for example, to restrict contextual links to certain view
     // modes) by implementing hook_fieldable_panels_pane_view_alter().
     if (!empty($entity->fpid) && !($view_mode == 'full' && fieldable_panels_pane_is_page($entity))) {
-      $build['#contextual_links']['fieldable_panels_panes'] = array('admin/structure/fieldable-panels-panes/view', array($entity->fpid));
+      // Allow the contextual links to be controlled from the settings page.
+      if (!variable_get('fpp_hide_contextual_links', FALSE)) {
+        $build['#contextual_links']['fieldable_panels_panes'] = array('admin/structure/fieldable-panels-panes/view', array($entity->fpid));
+      }
     }
 
     // Allow modules to modify the structured pane.
diff --git a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/includes/admin.inc b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/includes/admin.inc
index fa625115..234f8a2c 100644
--- a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/includes/admin.inc
+++ b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/includes/admin.inc
@@ -5,6 +5,73 @@
  * Contains administrative pages and functions for fieldable entity panes.
  */
 
+/**
+ * Page callback for settings page.
+ */
+function fieldable_panels_panes_settings() {
+  $form = array();
+
+  $form['fpp_revision_locking'] = array(
+    '#type' => 'radios',
+    '#title' => t('Should FPP CTools content panes reference FPP entities by entity ID or revision ID?'),
+    '#description' => t('For example, a panelized entity can revert the entity to previous revision and FPPs will also revert if they are referenced by revision ID. This also allows for editorial workflows using e.g. the Workbench Moderation or Revisioning modules.'),
+    '#options' => array(
+      'legacy' => t('Legacy: Use entity ID for all FPPs.'),
+      'lock' => t('Recommended: Use revision ID for non-reusable FPPs only; will also force each FPP update to create a new revision.'),
+    ),
+    '#default_value' => variable_get('fpp_revision_locking', 'lock'),
+  );
+
+  $form['fpp_hide_contextual_links'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Hide the FPP contextual menus?'),
+    '#description' => t('Being able to edit FPPs directly can cause problems with the editorial workflows when using e.g. Panelizer.'),
+    '#default_value' => variable_get('fpp_hide_contextual_links', FALSE),
+    '#disabled' => !module_exists('contextual'),
+  );
+
+  $form['fpp_blocks_expose'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Make fieldable panels panes available as blocks'),
+    '#description' => t('Fieldable panels panes that are reusable will be made available as blocks.'),
+    '#default_value' => variable_get('fpp_blocks_expose', FALSE),
+  );
+  $form['bundles'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('FPP Types Exposed as Blocks'),
+    '#description' => t('Select FPP types to be exposed as blocks. If none is selected, then all FPP types will be exposed as blocks.'),
+    '#collapsible' => TRUE,
+    '#collapsed' => TRUE,
+    '#states' => array(
+      'visible' => array(
+        ':input[name="fpp_blocks_expose"]' => array('checked' => TRUE),
+      ),
+    ),
+  );
+
+  // Render checkbox for each FPP bundle if any FPP bundles exist.
+  $bundles = fieldable_panels_panes_get_bundle_labels();
+  if (!empty($bundles)) {
+    foreach ($bundles as $bundle => $info) {
+      $form['bundles']['fpp_expose_' . $bundle] = array(
+        '#type' => 'checkbox',
+        '#title' => $info . ' (' . $bundle . ')',
+        '#default_value' => variable_get('fpp_expose_' . $bundle, FALSE),
+      );
+    }
+  }
+
+  // Remove fieldset description and add markup if no FPP bundles exist.
+  else {
+    $form['bundles']['empty'] = array(
+      '#markup' => t('<p>No FPP types exist.</p>'),
+    );
+    $form['bundles']['#description'] = NULL;
+  }
+
+  return system_settings_form($form);
+}
+
 /**
  * List all entities for the given type.
  */
diff --git a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/plugins/content_types/fieldable_panels_pane.inc b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/plugins/content_types/fieldable_panels_pane.inc
index aa068797..ee10fd63 100644
--- a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/plugins/content_types/fieldable_panels_pane.inc
+++ b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/plugins/content_types/fieldable_panels_pane.inc
@@ -101,15 +101,59 @@ function fieldable_panels_panes_fieldable_panels_pane_content_type_content_type(
 function fieldable_panels_panes_fieldable_panels_pane_content_type_content_types() {
   $types = _fieldable_panels_panes_default_content_type();
 
-  $ids = db_query('SELECT fpid FROM {fieldable_panels_panes} WHERE reusable = 1')->fetchCol();
-  if (!empty($ids)) {
+  // The current function is called as part of the standard panel pane rendering
+  // pipeline. To prevent a full list of FPP entities from being generated every
+  // time that a panel is rendered, generate the list only when a request is
+  // made from an administrative URL.
+  // @see https://www.drupal.org/node/2374577
+  if (path_is_admin(current_path()) || preg_match('/panels/i', current_path())) {
+    $fpp_info = entity_get_info('fieldable_panels_pane');
+    foreach ($fpp_info['bundles'] as $bundle_name => $bundle) {
+      $ids = db_query('SELECT fpid FROM {fieldable_panels_panes} WHERE reusable = 1 AND bundle = :bundle', array(':bundle' => $bundle_name))->fetchCol();
+      if (!empty($ids)) {
+        $types = array_merge($types, fieldable_panels_panes_build_content_type_info($bundle_name, $ids));
+      }
+    }
+  }
+
+  return $types;
+}
+
+/**
+ * Returns a list of all reusable FPP entities of a given bundle.
+ *
+ * @param $bundle
+ *   Fieldable panel pane bundle machine name.
+ * @param $ids
+ *   An array of fieldable panel pane entity ids.
+ *
+ * @return array
+ *   An array of content type information for each fpp entity.
+ */
+function fieldable_panels_panes_build_content_type_info($bundle, $ids) {
+  $types = array();
+  $cid = "fieldable_panels_panes_{$bundle}_content_type";
+
+  if (($cache = cache_get($cid, 'cache_panels')) && !empty($cache->data)) {
+    $types = $cache->data;
+  }
+  else {
     $entities = fieldable_panels_panes_load_multiple($ids);
     if (!empty($entities)) {
-      foreach ($entities as $entity) {
+      foreach ($entities as $entity_id => $entity) {
         $subtype = _fieldable_panels_panes_custom_content_type($entity);
         $types[$subtype['name']] = $subtype;
+
+        // Re-key $entities such that $types and $entities are keyed
+        // identically.
+        $entities[$subtype['name']] = $entity;
+        unset($entities[$entity_id]);
       }
     }
+
+    // Trigger hook_fieldable_panels_panes_content_types_alter().
+    drupal_alter('fieldable_panels_panes_content_types', $types, $bundle, $entities);
+    cache_set($cid, $types, 'cache_panels');
   }
 
   return $types;
@@ -152,21 +196,42 @@ function fieldable_panels_panes_fieldable_panels_pane_content_type_render($subty
 }
 
 /**
- * Callback to provide the administrative title of the custom content.
+ * Gets the admin title from the entity.
  */
-function fieldable_panels_panes_fieldable_panels_pane_content_type_admin_title($subtype, $conf) {
-  $entity = fieldable_panels_panes_load_from_subtype($subtype);
-
+function _fieldable_panels_panes_admin_title_from_entity($entity) {
   if (!empty($entity) && is_object($entity)) {
-    $output = !empty($entity->admin_title) ? $entity->admin_title : (!empty($entity->title) ? $entity->title : t('No title'));
+    if (!empty($entity->admin_title)) {
+      $output = $entity->admin_title;
+    }
+    elseif (!empty($entity->title)) {
+      $output = $entity->title;
+    }
+    else {
+      $output = entity_label('fieldable_panels_pane', $entity);
+    }
+    // Make sure no XSS strings go through the title.
+    $output = filter_xss($output);
   }
   else {
     $output = t('Deleted/removed entity pane');
   }
 
+  // Indicate when the FPP is reusable.
+  if (!empty($entity->reusable)) {
+    $output .= ' (' . t('reusable') . ')';
+  }
+
   return $output;
 }
 
+/**
+ * Callback to provide the administrative title of the custom content.
+ */
+function fieldable_panels_panes_fieldable_panels_pane_content_type_admin_title($subtype, $conf) {
+  $entity = fieldable_panels_panes_load_from_subtype($subtype);
+  return _fieldable_panels_panes_admin_title_from_entity($entity);
+}
+
 /**
  * Callback to provide administrative information for a fieldable panels pane.
  */
@@ -197,7 +262,8 @@ function fieldable_panels_panes_fieldable_panels_pane_content_type_edit_form($fo
   ctools_form_include_file($form_state, $form_state['plugin']['path'] . '/' . $form_state['plugin']['file']);
 
   $entity_info = entity_get_info('fieldable_panels_pane');
-  $view_mode_options = array();
+
+  // Show all of the available view modes.
   foreach ($entity_info['view modes'] as $mode => $option) {
     $view_mode_options[$mode] = $option['label'];
   }
@@ -255,18 +321,45 @@ function fieldable_panels_panes_fieldable_panels_pane_content_type_edit_form_sub
 
   fieldable_panels_panes_entity_edit_form_submit($form, $form_state);
 
-  // Sub type is not explicitly set, define it here.
-  if (module_exists('uuid') && isset($entity->uuid)) {
-    $entity_id = 'uuid:' . $entity->uuid;
+  // Determine how to handle revision locking.
+  $revision_context_aware = fieldable_panels_panes_revision_is_lockable($entity);
+
+  // If this is a new entity entity, or revision locking is enabled, look for a
+  // specific ID to use.
+  if (!empty($entity->is_new) || $revision_context_aware) {
+    // If UUID is available, use it.
+    if (module_exists('uuid') && isset($entity->uuid)) {
+      if ($revision_context_aware) {
+        $subtype = 'vuuid:' . $entity->vuuid;
+      }
+      else {
+        $subtype = 'uuid:' . $entity->uuid;
+      }
+    }
+
+    // Otherwise use the native ID values.
+    else {
+      if ($revision_context_aware) {
+        $subtype = 'vid:' . $entity->vid;
+      }
+      else {
+        $subtype = 'fpid:' . $entity->fpid;
+      }
+    }
   }
+
+  // The 'current' key will tell FPP to load up the current revision. This
+  // bypasses the entity cache on the FPP entity class and loads the revision
+  // that was just saved instead of the previous revision. This is only really
+  // relevant in Panels IPE administration or similar circumstances.
   else {
-    $entity_id = 'fpid:' . $entity->fpid;
+    $subtype = 'current:' . $entity->fpid;
   }
 
   // @todo: This won't work if $form_state does not contain 'pane' which could
   // theoretically happen in a non-Panels use case. Not that anybody uses this
   // outside of Panels.
-  $form_state['pane']->subtype = $entity_id;
+  $form_state['pane']->subtype = $subtype;
 }
 
 /**
@@ -312,18 +405,34 @@ function _fieldable_panels_panes_default_content_type() {
  */
 function _fieldable_panels_panes_custom_content_type($entity) {
   $info = array(
-    'title' => check_plain(entity_label('fieldable_panels_pane', $entity)),
+    'title' => _fieldable_panels_panes_admin_title_from_entity($entity),
     'description' => check_plain($entity->admin_description),
     'category' => $entity->category ? check_plain($entity->category) : t('Miscellaneous'),
     'all contexts' => TRUE,
     'icon' => 'icon_block_custom.png',
   );
 
+  // Determine how to handle revision locking.
+  $revision_context_aware = fieldable_panels_panes_revision_is_lockable($entity);
+
+  // If UUID is available, use it.
   if (module_exists('uuid') && isset($entity->uuid)) {
-    $info['name'] = 'uuid:' . $entity->uuid;
+    if ($revision_context_aware) {
+      $info['name'] = 'vuuid:' . $entity->vuuid;
+    }
+    else {
+      $info['name'] = 'uuid:' . $entity->uuid;
+    }
   }
+
+  // Otherwise use the native ID values.
   else {
-    $info['name'] = 'fpid:' . $entity->fpid;
+    if ($revision_context_aware) {
+      $info['name'] = 'vid:' . $entity->vid;
+    }
+    else {
+      $info['name'] = 'fpid:' . $entity->fpid;
+    }
   }
 
   $info['entity_id'] = $info['name'];
diff --git a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/plugins/export_ui/fieldable_panels_pane.class.php b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/plugins/export_ui/fieldable_panels_pane.class.php
index 399ad83f..2e790762 100644
--- a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/plugins/export_ui/fieldable_panels_pane.class.php
+++ b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/plugins/export_ui/fieldable_panels_pane.class.php
@@ -43,14 +43,16 @@ class fieldable_panels_pane extends ctools_export_ui {
         'title' => t('Export'),
         'href' => $base_path . '/' . $name . '/export',
       );
-      $operations['field'] = array(
-        'title' => t('Manage Fields'),
-        'href' => $base_path . '/' . $name . '/fields',
-      );
-      $operations['display'] = array(
-        'title' => t('Manage Display'),
-        'href' => $base_path . '/' . $name . '/display',
-      );
+      if (module_exists('field_ui')) {
+        $operations['field'] = array(
+          'title' => t('Manage Fields'),
+          'href' => $base_path . '/' . $name . '/fields',
+        );
+        $operations['display'] = array(
+          'title' => t('Manage Display'),
+          'href' => $base_path . '/' . $name . '/display',
+        );
+      }
     }
     return $operations;
   }
@@ -196,15 +198,16 @@ class fieldable_panels_pane extends ctools_export_ui {
             'title' => t('export'),
             'href' => 'admin/structure/fieldable-panels-panes/' . $bundle . '/export',
           );
-          $operations['fields'] = array(
-            'title' => t('manage fields'),
-            'href' => $this->field_admin_path($bundle, 'fields'),
-          );
-
-          $operations['display'] = array(
-            'title' => t('manage display'),
-            'href' => $this->field_admin_path($bundle, 'display'),
-          );
+          if (module_exists('field_ui')) {
+            $operations['fields'] = array(
+              'title' => t('manage fields'),
+              'href' => $this->field_admin_path($bundle, 'fields'),
+            );
+            $operations['display'] = array(
+              'title' => t('manage display'),
+              'href' => $this->field_admin_path($bundle, 'display'),
+            );
+          }
         }
 
         $ops = theme('links', array('links' => $operations, 'attributes' => array('class' => array('links', 'inline'))));
@@ -226,7 +229,7 @@ class fieldable_panels_pane extends ctools_export_ui {
   }
 
   /**
-   * Helper method to derive paths to field ui operations.
+   * Helper method to derive paths to field UI operations.
    */
   function field_admin_path($name, $op) {
     return _field_ui_bundle_admin_path('fieldable_panels_pane', $name) . '/' . $op;
diff --git a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/plugins/views/fieldable_panels_panes.views.inc b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/plugins/views/fieldable_panels_panes.views.inc
index 7c28b3a5..29f423ca 100644
--- a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/plugins/views/fieldable_panels_panes.views.inc
+++ b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/plugins/views/fieldable_panels_panes.views.inc
@@ -207,6 +207,17 @@ function fieldable_panels_panes_views_data() {
         'handler' => 'views_handler_filter_date',
       ),
     ),
+    'language' => array(
+      'title' => t('Language'),
+      'help' => t('The language of the entity.'),
+      'field' => array(
+        'handler' => 'fieldable_panels_panes_handler_field_language',
+        'click sortable' => TRUE,
+      ),
+      'filter' => array(
+        'handler' => 'fieldable_panels_panes_handler_filter_language',
+      ),
+    ),
     'view_entity' => array(
       'field' => array(
         'title' => t('Administrative link'),
diff --git a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/plugins/views/fieldable_panels_panes_handler_field_language.inc b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/plugins/views/fieldable_panels_panes_handler_field_language.inc
new file mode 100644
index 00000000..7a004cbf
--- /dev/null
+++ b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/plugins/views/fieldable_panels_panes_handler_field_language.inc
@@ -0,0 +1,46 @@
+<?php
+
+/**
+ * @file
+ * Definition of fieldable_panels_panes_handler_field_language.
+ */
+
+/**
+ * Field handler to translate a language into its readable form.
+ */
+class fieldable_panels_panes_handler_field_language extends views_handler_field_node {
+
+  /**
+   * {@inheritdoc}
+   */
+  function option_definition() {
+    $options = parent::option_definition();
+    $options['native_language'] = array('default' => FALSE, 'bool' => TRUE);
+
+    return $options;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+    $form['native_language'] = array(
+      '#title' => t('Native language'),
+      '#type' => 'checkbox',
+      '#default_value' => $this->options['native_language'],
+      '#description' => t('If enabled, the native name of the language will be displayed'),
+    );
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  function render($values) {
+    $languages = views_language_list(empty($this->options['native_language']) ? 'name' : 'native');
+    $value = $this->get_value($values);
+    $value = isset($languages[$value]) ? $languages[$value] : '';
+    return $this->render_link($value, $values);
+  }
+
+}
diff --git a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/plugins/views/fieldable_panels_panes_handler_filter_language.inc b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/plugins/views/fieldable_panels_panes_handler_filter_language.inc
new file mode 100644
index 00000000..767b8c1f
--- /dev/null
+++ b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/plugins/views/fieldable_panels_panes_handler_filter_language.inc
@@ -0,0 +1,28 @@
+<?php
+/**
+ * @file
+ * Definition of fieldable_panels_panes_handler_filter_language.
+ */
+
+/**
+ * Filter by language.
+ */
+class fieldable_panels_panes_handler_filter_language extends views_handler_filter_in_operator {
+
+  /**
+   * {@inheritdoc}
+   */
+  function get_value_options() {
+    if (!isset($this->value_options)) {
+      $this->value_title = t('Language');
+      $languages = array(
+        '***CURRENT_LANGUAGE***' => t("Current user's language"),
+        '***DEFAULT_LANGUAGE***' => t("Default site language"),
+        LANGUAGE_NONE => t('No language')
+      );
+      $languages = array_merge($languages, views_language_list());
+      $this->value_options = $languages;
+    }
+  }
+
+}
diff --git a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp.entity_form.test b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp.entity_form.test
new file mode 100644
index 00000000..79970c7a
--- /dev/null
+++ b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp.entity_form.test
@@ -0,0 +1,172 @@
+<?php
+/**
+ * @file
+ * Tests for the Fieldable Panels Panes module to ensure the basic form works.
+ */
+
+class FppEntityFormTest extends FppTestHelper {
+  /**
+   * {@inheritdoc}
+   */
+  public static function getInfo() {
+    return array(
+      'name' => 'FPP tests',
+      'description' => 'Confirm that the entity form fields work as intended.',
+      'group' => 'FPP',
+    );
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  function setUp(array $modules = array()) {
+    $modules[] = 'fieldable_panels_panes';
+
+    parent::setUp($modules);
+
+    // Some default values to work with.
+    $this->bundle = 'fieldable_panels_pane';
+    $this->title = t('Test FPP');
+  }
+
+  /**
+   * Confirm that the basic form fields show on the 'add' form.
+   */
+  function testNewEntity() {
+    // Create a user with the admin permission.
+    $this->adminUser = $this->createAdminUser();
+
+    $this->drupalLogin($this->adminUser);
+
+    // Load the fpp-add form.
+    $this->drupalGet('admin/structure/fieldable-panels-panes/' . $this->bundle . '/add');
+    $this->assertResponse(200);
+
+    // Check all of the default fields.
+
+    // The basic title field.
+    $this->assertFieldByName('title');
+
+    // The "make title a link" option's fields.
+    $this->assertFieldByName('link');
+    $this->assertFieldByName('path');
+
+    // The admin title & description fields.
+    $this->assertFieldByName('admin_title');
+    $this->assertFieldByName('admin_description');
+
+    // By default all FPPs will be reusable.
+    $this->assertFieldByName('reusable');
+
+    // Because FPPs can be reusable they can be grouped in categories in the
+    // Panels admin UI.
+    $this->assertFieldByName('category');
+
+    // The language selector is not present because the Locale module is not
+    // enabled by default.
+    $this->assertNoFieldByName('language');
+
+    // The revision selector is disabled by default because you only don't
+    // create a new revision on a new object.
+    $this->assertNoFieldByName('revision');
+    $this->assertNoFieldByName('log');
+  }
+
+  /**
+   * Confirm that the edit form has the correct fields for reusable FPPs.
+   */
+  function testExistingReusable() {
+    // Create a user with the admin permission.
+    $this->adminUser = $this->createAdminUser();
+
+    $this->drupalLogin($this->adminUser);
+
+    // Create a reusable FPP.
+    $fpp = new StdClass();
+    $fpp->bundle = $this->bundle;
+    $fpp->title = $this->title;
+    $fpp->reusable = 1;
+    $saved_fpp = fieldable_panels_panes_save($fpp);
+
+    // Load the fpp-add form.
+    $this->drupalGet('admin/structure/fieldable-panels-panes/view/' . $fpp->fpid . '/edit');
+    $this->assertResponse(200);
+
+    // Check all of the fields that are suitable for a reusable FPP.
+
+    // The basic title field.
+    $this->assertFieldByName('title');
+
+    // The "make title a link" option's fields.
+    $this->assertFieldByName('link');
+    $this->assertFieldByName('path');
+
+    // The admin title & description fields.
+    $this->assertFieldByName('admin_title');
+    $this->assertFieldByName('admin_description');
+
+    // The 'reusable' option is not changable after the FPP's initial creation.
+    $this->assertNoFieldByName('reusable');
+
+    // Because FPPs can be reusable they can be grouped in categories in the
+    // Panels admin UI.
+    $this->assertFieldByName('category');
+
+    // The language selector is not present because the Locale module is not
+    // enabled by default.
+    $this->assertNoFieldByName('language');
+
+    // The revision fields are visible when editing a reusable FPP.
+    $this->assertFieldByName('revision');
+    $this->assertFieldByName('log');
+  }
+
+  /**
+   * Confirm that the edit form has the correct fields for non-reusable FPPs.
+   */
+  function testExistingNonReusable() {
+    // Create a user with the admin permission.
+    $this->adminUser = $this->createAdminUser();
+
+    $this->drupalLogin($this->adminUser);
+
+    // Create a reusable FPP.
+    $fpp = new StdClass();
+    $fpp->bundle = $this->bundle;
+    $fpp->title = $this->title;
+    $fpp->reusable = 0;
+    $saved_fpp = fieldable_panels_panes_save($fpp);
+
+    // Load the fpp-add form.
+    $this->drupalGet('admin/structure/fieldable-panels-panes/view/' . $fpp->fpid . '/edit');
+    $this->assertResponse(200);
+
+    // Check all of the fields that are suitable for a reusable FPP.
+
+    // The basic title field.
+    $this->assertFieldByName('title');
+
+    // The "make title a link" option's fields.
+    $this->assertFieldByName('link');
+    $this->assertFieldByName('path');
+
+    // The admin title & description fields.
+    $this->assertFieldByName('admin_title');
+    $this->assertFieldByName('admin_description');
+
+    // The 'reusable' option is not changable after the FPP's initial creation,
+    // and these fields will be hidden for non-reusable FPPs.
+    $this->assertNoFieldByName('reusable');
+    $this->assertNoFieldByName('category');
+
+    // The language selector is not present because the Locale module is not
+    // enabled by default.
+    $this->assertNoFieldByName('language');
+
+    // When editing a non-reusable FPP the revision option may not be disabled
+    // but the log field will be available.
+    $this->assertNoFieldByName('revision');
+    $this->assertFieldByName('log');
+  }
+
+}
diff --git a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp.helper.test b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp.helper.test
index 227bd8b9..53013570 100644
--- a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp.helper.test
+++ b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp.helper.test
@@ -5,6 +5,7 @@
  */
 
 class FppTestHelper extends DrupalWebTestCase {
+
   /**
    * Admin user.
    *
diff --git a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp.locale.test b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp.locale.test
new file mode 100644
index 00000000..a5da2ecd
--- /dev/null
+++ b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp.locale.test
@@ -0,0 +1,140 @@
+<?php
+/**
+ * @file
+ * Confirm the language integration works correctly.
+ */
+
+class FppLocaleTest extends FppTestHelper {
+
+  /**
+   * {@inheritdoc}
+   */
+  public static function getInfo() {
+    return array(
+      'name' => 'FPP tests for language handling',
+      'description' => 'Confirm that language handling works correctly.',
+      'group' => 'FPP',
+    );
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  function setUp(array $modules = array()) {
+    $modules[] = 'fieldable_panels_panes';
+
+    // Needed
+    $modules[] = 'locale';
+
+    parent::setUp($modules);
+
+    // Some default values to work with.
+    $this->bundle = 'fieldable_panels_pane';
+    $this->title = 'Test FPP';
+  }
+
+  /**
+   * Verify the language selector exists.
+   */
+  function testLanguageSelector() {
+    // Create a user with the admin permission.
+    $this->adminUser = $this->createAdminUser();
+
+    $this->drupalLogin($this->adminUser);
+
+    // Load the fpp-add form.
+    $this->drupalGet('admin/structure/fieldable-panels-panes/' . $this->bundle . '/add');
+    $this->assertResponse(200);
+
+    // Confirm the language selector is present on the page.
+    $this->assertFieldByName('language');
+  }
+
+  /**
+   * Verify the language selector exists.
+   */
+  function testNoLanguageSelector() {
+    module_disable(array('locale'));
+
+    // Create a user with the admin permission.
+    $this->adminUser = $this->createAdminUser();
+
+    $this->drupalLogin($this->adminUser);
+
+    // Load the fpp-add form.
+    $this->drupalGet('admin/structure/fieldable-panels-panes/' . $this->bundle . '/add');
+    $this->assertResponse(200);
+
+    // Confirm the language selector is present on the page.
+    $this->assertNoFieldByName('language');
+  }
+
+  /**
+   * Verify the language selector works with no language selected.
+   */
+  function testLanguageNone() {
+    // Create a user with the admin permission.
+    $this->adminUser = $this->createAdminUser();
+
+    $this->drupalLogin($this->adminUser);
+
+    // Load the fpp-add form.
+    $this->drupalGet('admin/structure/fieldable-panels-panes/' . $this->bundle . '/add');
+    $this->assertResponse(200);
+
+    // Confirm the language selector is present on the page.
+    $this->assertFieldByName('language');
+    $edit = array(
+      'title' => $this->title,
+      'language' => LANGUAGE_NONE,
+    );
+    $this->drupalPost(NULL, $edit, t('Save'));
+
+    $this->drupalGet('admin/structure/fieldable-panels-panes/' . $this->bundle);
+    $this->assertResponse(200);
+    $this->assertText($this->title);
+
+    // The entity created should have fpid 1.
+    $fpp = fieldable_panels_panes_load(1);
+    $this->assertEqual($this->title, $fpp->title);
+
+    // Confirm that the FPP's language is still 'none'.
+    $language = entity_language('fieldable_panels_pane', $fpp);
+    $this->assertEqual($language, LANGUAGE_NONE);
+  }
+
+  /**
+   * Verify the language selector works with a specific language.
+   */
+  function testLanguageEnglish() {
+    // Create a user with the admin permission.
+    $this->adminUser = $this->createAdminUser();
+
+    $this->drupalLogin($this->adminUser);
+
+    // Load the fpp-add form.
+    $this->drupalGet('admin/structure/fieldable-panels-panes/' . $this->bundle . '/add');
+    $this->assertResponse(200);
+
+    // Confirm the language selector is present on the page.
+    $this->assertFieldByName('language');
+    $edit = array(
+      'title' => $this->title,
+      'language' => 'en',
+    );
+    $this->drupalPost(NULL, $edit, t('Save'));
+
+    $this->drupalGet('admin/structure/fieldable-panels-panes/' . $this->bundle);
+    $this->assertResponse(200);
+    $this->assertText($this->title);
+
+    // The entity created should have fpid 1.
+    $fpp = fieldable_panels_panes_load(1);
+    $this->assertEqual($this->title, $fpp->title);
+
+    // Confirm that the FPP's language is still 'none'.
+    $language = entity_language('fieldable_panels_pane', $fpp);
+    $this->assertEqual($language, 'en');
+  }
+
+}
diff --git a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp.with_panelizer.test b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp.with_panelizer.test
new file mode 100644
index 00000000..ddca4bd2
--- /dev/null
+++ b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp.with_panelizer.test
@@ -0,0 +1,43 @@
+<?php
+/**
+ * @file
+ * Tests for the Fieldable Panels Panes module with Panelizer.
+ */
+
+class FppWithPanelizerTest extends FppTestHelper {
+  /**
+   * {@inheritdoc}
+   */
+  public static function getInfo() {
+    return array(
+      'name' => 'FPP tests for Panelizer',
+      'description' => 'Confirm that FPP works with Panelizer.',
+      'group' => 'FPP',
+    );
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  function setUp(array $modules = array()) {
+    $modules[] = 'fieldable_panels_panes';
+
+    // Needed for node display.
+    $modules[] = 'panelizer';
+
+    parent::setUp($modules);
+
+    // Some default values to work with.
+    $this->bundle = 'fieldable_panels_pane';
+  }
+
+  function testAddingPanelizer() {
+    // Enable Revisioning.
+    // Enable Panelizer.
+    // Customize a node.
+    // Add an FPP.
+    // Revision the display.
+    // Confirm the new revision is ok.
+  }
+
+}
diff --git a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp.with_panels.test b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp.with_panels.test
new file mode 100644
index 00000000..0bf39969
--- /dev/null
+++ b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp.with_panels.test
@@ -0,0 +1,188 @@
+<?php
+/**
+ * @file
+ * Tests for the Fieldable Panels Panes module with Panels.
+ */
+
+class FppWithPanelsTest extends FppTestHelper {
+
+  /**
+   * {@inheritdoc}
+   */
+  public static function getInfo() {
+    return array(
+      'name' => 'FPP tests for Panels',
+      'description' => 'Confirm that FPP works with Panels.',
+      'group' => 'FPP',
+    );
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  function setUp(array $modules = array()) {
+    $modules[] = 'fieldable_panels_panes';
+
+    // Helper.
+    $modules[] = 'fpp_with_panels_test';
+
+    parent::setUp($modules);
+
+    // Some default values to work with.
+    $this->bundle = 'fieldable_panels_pane';
+
+    // Create a user with all the permissions
+    $permissions = array(
+      'administer fieldable panels panes',
+
+      // Needed for Page Manager.
+      'administer page manager',
+      'use page manager',
+    );
+
+    // Reset the static variable used to identify permissions, otherwise it's
+    // possible the permissions check in drupalCreateUser will fail.
+    $this->checkPermissions(array(), TRUE);
+    cache_clear_all();
+
+    $this->adminUser = $this->drupalCreateUser($permissions);
+    $this->drupalLogin($this->adminUser);
+  }
+
+  /**
+   * Make sure admin titles with XSS code can't break the site.
+   */
+  function testAdminTitleLinkWithAmpersands() {
+    // Create an FPP with an XSS payload in the admin title.
+    $fpp = new StdClass();
+    $fpp->bundle = $this->bundle;
+    $fpp->title = 'This is a "test" & it should work';
+    $fpp->reusable = 1;
+    $fpp->link = 1;
+    $fpp->path = 'fpp-with-panels-test';
+    $fpp = fieldable_panels_panes_save($fpp);
+
+    // Load the test Panels page.
+    ctools_include('page', 'page_manager', 'plugins/tasks');
+    $page = page_manager_page_load('fpp_with_panels_test');
+    $this->verbose(print_r($page, TRUE));
+
+    // Load the handlers for this page.
+    $handlers = page_manager_load_task_handlers(page_manager_get_task('page'), $page->name);
+    foreach ($page->default_handlers as $name => $handler) {
+      $display = $handler->conf['display'];
+      $this->verbose(print_r($display, TRUE));
+
+      // Generate a pane for the FPP.
+      $pane = panels_new_pane('fieldable_panels_pane', 'fpid:' . $fpp->fpid);
+      $pane->panel = 'middle';
+
+      // Add the pane to the display.
+      $display->panels[$pane->panel][] = $pane->pid;
+      $display->content[$pane->pid] = $pane;
+
+      // Save the display.
+      panels_save_display($display);
+      $this->verbose(print_r($display, TRUE));
+    }
+    // Save the page.
+    page_manager_page_save($page);
+
+    // Reload the display.
+    $page = page_manager_page_load('fpp_with_panels_test');
+    $this->verbose(print_r($page, TRUE));
+
+    // Load the test Panels page.
+    $this->drupalGet('fpp-with-panels-test');
+    $this->assertResponse(200);
+
+    // Confirm that the string is on the page in htmlencoded format.
+    $this->assertRaw(str_replace('&', '&amp;', $fpp->title));
+
+    // Confirm that the text does not exist on the page as-is, i.e. it has been
+    // htmlencoded.
+    $this->assertNoRaw($fpp->title);
+    $this->assertNoRaw(str_replace('&', '&amp;', str_replace('&', '&amp;', $fpp->title)));
+
+    // Confirm the link exists.
+    $this->assertLink($fpp->title);
+  }
+
+  /**
+   * Make sure titles with XSS code can't break the site.
+   */
+  function testTitleXSS() {
+    // Create an FPP with an XSS payload in the entity title.
+    $fpp = new StdClass();
+    $fpp->bundle = $this->bundle;
+    $fpp->title = "<script>alert('XSS!');</script>";
+    $fpp->reusable = 1;
+    $fpp->admin_title = '';
+    $fpp = fieldable_panels_panes_save($fpp);
+
+    $this->checkAdminUIPaneTitleXSS($fpp);
+  }
+
+  /**
+   * Make sure admin titles with XSS code can't break the site.
+   */
+  function testAdminTitleXSS() {
+    // Create an FPP with an XSS payload in the admin title.
+    $fpp = new StdClass();
+    $fpp->bundle = $this->bundle;
+    $fpp->title = 'XSS test';
+    $fpp->reusable = 1;
+    $fpp->admin_title = "<script>alert('XSS!');</script>";
+    $fpp = fieldable_panels_panes_save($fpp);
+
+    $this->checkAdminUIPaneTitleXSS($fpp);
+  }
+
+  /**
+   * Test that an XSS attack in a pane title won't work in the Panels UI.
+   *
+   * @param object $fpp
+   *   A full FPP entity object.
+   */
+  function checkAdminUIPaneTitleXSS($fpp) {
+    // Load the test Panels page.
+    ctools_include('page', 'page_manager', 'plugins/tasks');
+    $page = page_manager_page_load('fpp_with_panels_test');
+    $this->verbose(print_r($page, TRUE));
+
+    // Load the handlers for this page.
+    $handlers = page_manager_load_task_handlers(page_manager_get_task('page'), $page->name);
+    foreach ($page->default_handlers as $name => $handler) {
+      $display = $handler->conf['display'];
+      $this->verbose(print_r($display, TRUE));
+
+      // Generate a pane for the FPP.
+      $pane = panels_new_pane('fieldable_panels_pane', 'fpid:' . $fpp->fpid);
+      $pane->panel = 'middle';
+
+      // Add the pane to the display.
+      $display->panels[$pane->panel][] = $pane->pid;
+      $display->content[$pane->pid] = $pane;
+
+      // Save the display.
+      panels_save_display($display);
+      $this->verbose(print_r($display, TRUE));
+    }
+    // Save the page.
+    page_manager_page_save($page);
+
+    // Reload the display.
+    $page = page_manager_page_load('fpp_with_panels_test');
+    $this->verbose(print_r($page, TRUE));
+
+    // Load the Panels page's edit page.
+    $this->drupalGet('admin/structure/pages/nojs/operation/page-fpp_with_panels_test/handlers/fpp_with_panels_test__default/content');
+    $this->assertResponse(200);
+
+    // Confirm the whether the XSS string is still present but that the threat
+    // has been removed.
+    $this->assertText("alert('XSS!');", 'The XSS test title string was found.');
+    $this->assertNoRaw("<script>alert('XSS!');</script>", 'The XSS test title was properly defanged.');
+  }
+
+}
diff --git a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp.with_panels_and_entity.test b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp.with_panels_and_entity.test
new file mode 100644
index 00000000..7e33aaef
--- /dev/null
+++ b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp.with_panels_and_entity.test
@@ -0,0 +1,31 @@
+<?php
+/**
+ * @file
+ * Tests for the Fieldable Panels Panes module with Panels and Entity API.
+ */
+
+class FppWithPanelsAndEntityTest extends FppWithPanelsTest {
+
+  /**
+   * {@inheritdoc}
+   */
+  public static function getInfo() {
+    return array(
+      'name' => 'FPP tests for Panels and Entity API',
+      'description' => 'Confirm that FPP+Panes continues working when Entity API is enabled.',
+      'group' => 'FPP',
+    );
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  function setUp(array $modules = array()) {
+    // Entity API.
+    $modules[] = 'entity';
+
+    // The parent setup method will do all of the rest.
+    parent::setUp($modules);
+  }
+
+}
diff --git a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp.with_revisioning.test b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp.with_revisioning.test
new file mode 100644
index 00000000..001fc432
--- /dev/null
+++ b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp.with_revisioning.test
@@ -0,0 +1,46 @@
+<?php
+/**
+ * @file
+ * Tests for the Fieldable Panels Panes module with Revisioning.
+ */
+
+class FppWithRevisioningTest extends FppTestHelper {
+  /**
+   * {@inheritdoc}
+   */
+  public static function getInfo() {
+    return array(
+      'name' => 'FPP tests for Revisioning',
+      'description' => 'Confirm that pane revisioning works correctly.',
+      'group' => 'FPP',
+    );
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  function setUp(array $modules = array()) {
+    $modules[] = 'fieldable_panels_panes';
+
+    // Needed for workflow logic.
+    $modules[] = 'revisioning';
+
+    // Needed for node display.
+    $modules[] = 'panelizer';
+
+    parent::setUp($modules);
+
+    // Some default values to work with.
+    $this->bundle = 'fieldable_panels_pane';
+  }
+
+  function testAddingPanelizer() {
+    // Enable Revisioning.
+    // Enable Panelizer.
+    // Customize a node.
+    // Add an FPP.
+    // Revision the display.
+    // Confirm the new revision is ok.
+  }
+
+}
diff --git a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp_with_panels_test.info b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp_with_panels_test.info
new file mode 100644
index 00000000..0dc5dadf
--- /dev/null
+++ b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp_with_panels_test.info
@@ -0,0 +1,17 @@
+name = FPP-with-Panels Tests
+description = Helper module for testing the Panels integration for FPP.
+core = 7.x
+
+; Don't show this on the modules admin page.
+hidden = TRUE
+
+dependencies[] = ctools
+dependencies[] = page_manager
+dependencies[] = fieldable_panels_panes
+
+; Information added by Drupal.org packaging script on 2016-05-04
+version = "7.x-1.10"
+core = "7.x"
+project = "fieldable_panels_panes"
+datestamp = "1462374853"
+
diff --git a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp_with_panels_test.module b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp_with_panels_test.module
new file mode 100644
index 00000000..11746aa0
--- /dev/null
+++ b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp_with_panels_test.module
@@ -0,0 +1,14 @@
+<?php
+/**
+ * @file
+ * Primary hook implementations.
+ */
+
+/**
+ * Implements hook_ctools_plugin_api().
+ */
+function fpp_with_panels_test_ctools_plugin_api($module = NULL, $api = NULL) {
+  if ($module == "page_manager" && $api == "pages_default") {
+    return array("version" => "1");
+  }
+}
diff --git a/profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp_with_panels_test.pages_default.inc b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp_with_panels_test.pages_default.inc
new file mode 100644
index 00000000..5d378642
--- /dev/null
+++ b/profiles/wcm_base/modules/contrib/fieldable_panels_panes/tests/fpp_with_panels_test.pages_default.inc
@@ -0,0 +1,117 @@
+<?php
+/**
+ * @file
+ * fpp_with_panels_test.pages_default.inc
+ */
+
+/**
+ * Implements hook_default_page_manager_pages().
+ */
+function fpp_with_panels_test_default_page_manager_pages() {
+  $page = new stdClass();
+  $page->disabled = FALSE; /* Edit this to true to make a default page disabled initially */
+  $page->api_version = 1;
+  $page->name = 'fpp_with_panels_test';
+  $page->task = 'page';
+  $page->admin_title = 'FPP-with-Panels test';
+  $page->admin_description = '';
+  $page->path = 'fpp-with-panels-test';
+  $page->access = array();
+  $page->menu = array(
+    'type' => 'none',
+    'title' => '',
+    'weight' => '0',
+    'name' => 'navigation',
+    'parent' => array(
+      'type' => 'none',
+      'title' => '',
+      'weight' => 0,
+      'name' => 'navigation',
+    ),
+  );
+  $page->arguments = array();
+  $page->conf = array(
+    'admin_paths' => FALSE,
+  );
+  $page->default_handlers = array();
+  $handler = new stdClass();
+  $handler->disabled = FALSE; /* Edit this to true to make a default handler disabled initially */
+  $handler->api_version = 1;
+  $handler->name = 'fpp_with_panels_test__default';
+  $handler->task = 'page';
+  $handler->subtask = 'fpp_with_panels_test';
+  $handler->handler = 'panel_context';
+  $handler->weight = 0;
+  $handler->conf = array(
+    'title' => 'Page',
+    'no_blocks' => 0,
+    'pipeline' => 'standard',
+    'body_classes_to_remove' => '',
+    'body_classes_to_add' => '',
+    'css_id' => '',
+    'css' => '',
+    'contexts' => array(),
+    'relationships' => array(),
+    'name' => '',
+    'metatag_panels' => array(
+      'enabled' => 1,
+      'metatags' => array(
+        'title' => array(
+          'value' => 'Test page title',
+        ),
+        'description' => array(
+          'value' => 'Test page description.',
+        ),
+        'keywords' => array(
+          'value' => 'Test, page, keywords',
+        ),
+      ),
+    ),
+  );
+  $display = new panels_display();
+  $display->layout = 'onecol';
+  $display->layout_settings = array();
+  $display->panel_settings = array(
+    'style_settings' => array(
+      'default' => NULL,
+      'middle' => NULL,
+    ),
+  );
+  $display->cache = array();
+  $display->title = 'Testing';
+  $display->uuid = '14a1dc5e-6abd-41d5-a361-56c1c5404f32';
+  $display->content = array();
+  $display->panels = array();
+  $pane = new stdClass();
+  $pane->pid = 'new-8537d8cc-5b2d-4eac-b093-6b62f3fdc38a';
+  $pane->panel = 'middle';
+  $pane->type = 'custom';
+  $pane->subtype = 'custom';
+  $pane->shown = TRUE;
+  $pane->access = array();
+  $pane->configuration = array(
+    'admin_title' => 'Hello',
+    'title' => 'Hello there',
+    'body' => 'Hi.',
+    'format' => 'filtered_html',
+    'substitute' => TRUE,
+  );
+  $pane->cache = array();
+  $pane->style = array(
+    'settings' => NULL,
+  );
+  $pane->css = array();
+  $pane->extras = array();
+  $pane->position = 0;
+  $pane->locks = array();
+  $pane->uuid = '8537d8cc-5b2d-4eac-b093-6b62f3fdc38a';
+  $display->content['new-8537d8cc-5b2d-4eac-b093-6b62f3fdc38a'] = $pane;
+  $display->panels['middle'][0] = 'new-8537d8cc-5b2d-4eac-b093-6b62f3fdc38a';
+  $display->hide_title = PANELS_TITLE_FIXED;
+  $display->title_pane = 'new-8537d8cc-5b2d-4eac-b093-6b62f3fdc38a';
+  $handler->conf['display'] = $display;
+  $page->default_handlers[$handler->name] = $handler;
+  $pages['fpp_with_panels_test'] = $page;
+
+  return $pages;
+}
diff --git a/profiles/wcm_base/modules/contrib/workbench_media/PATCHES.txt b/profiles/wcm_base/modules/contrib/workbench_media/PATCHES.txt
new file mode 100644
index 00000000..70fcc532
--- /dev/null
+++ b/profiles/wcm_base/modules/contrib/workbench_media/PATCHES.txt
@@ -0,0 +1,4 @@
+The following patches have been applied to this project:
+- http://drupal.org/files/issues/workbench_media-multiupload-2268005-2.patch
+
+This file was automatically generated by Drush Make (http://drupal.org/project/drush).
\ No newline at end of file
diff --git a/profiles/wcm_base/modules/contrib/workbench_media/workbench_media.module b/profiles/wcm_base/modules/contrib/workbench_media/workbench_media.module
index 61a2ce07..0f81a985 100644
--- a/profiles/wcm_base/modules/contrib/workbench_media/workbench_media.module
+++ b/profiles/wcm_base/modules/contrib/workbench_media/workbench_media.module
@@ -23,6 +23,10 @@ function workbench_media_menu() {
     'type' => MENU_VISIBLE_IN_BREADCRUMB,
   );
 
+  if (module_exists('plupload') && module_exists('multiform')) {
+    $items['admin/workbench/media/add']['page arguments'] = array('file_entity_add_upload_multiple');
+  }
+
   return $items;
 }
 
diff --git a/profiles/wcm_base/modules/custom/wcm_user_config/theme/user-login.tpl.php b/profiles/wcm_base/modules/custom/wcm_user_config/theme/user-login.tpl.php
index 1d0ee685..59eed063 100644
--- a/profiles/wcm_base/modules/custom/wcm_user_config/theme/user-login.tpl.php
+++ b/profiles/wcm_base/modules/custom/wcm_user_config/theme/user-login.tpl.php
@@ -1,21 +1,30 @@
-<div class="login-box">
-  <h2>OSU Users</h2>
-  <p><a href="<?php print $https_base_url; ?>/saml_login<?php if ($has_destination) : ?>?ReturnTo=<?php print $return_to; ?><?php endif; ?>">Log in with your OSU credentials</a></p>
-  </div>
-
-<div class="login-box">
-  <h2>Non-OSU Users</h2>
-
-    <?php
-      print drupal_render($form['name']);
-      print drupal_render($form['pass']);
-    ?>
+<?php 
+	$handle_non_osu = '<h2> Non-OSU Users</h2>';
+	$non_osu_login = drupal_render($form['name']); 
+	$non_osu_login .= drupal_render($form['pass']);
+	$non_osu_login .= '<p><a href="/user/password">Forgot your password?</a></p>';
+	$non_osu_login .= drupal_render($form['form_build_id']);
+	$non_osu_login .= drupal_render($form['form_id']);
+	$non_osu_login .= drupal_render($form['actions']);	
+?>
 
-    <p><a href="/user/password">Forgot your password?</a></p>
 
-    <?php
-      print drupal_render($form['form_build_id']);
-      print drupal_render($form['form_id']);
-      print drupal_render($form['actions']);
-    ?>
+<div class="login-box osu">
+  <h2>OSU Users</h2>
+  <p><a href="<?php print $https_base_url; ?>/saml_login<?php if ($has_destination) : ?>?ReturnTo=<?php print $return_to; ?><?php endif; ?>">Log in with your OSU credentials</a></p>
 </div>
+
+<div class="login-box non-osu">
+	
+	<?php 
+		print theme(
+	  'ctools_collapsible',
+	  array(
+	    'handle' => $handle_non_osu, 
+	    'content' => $non_osu_login, 
+	    'collapsed' => TRUE
+	  )
+	);
+	?>
+	
+</div>
\ No newline at end of file
diff --git a/profiles/wcm_base/modules/custom/wcm_workbench/wcm_workbench.make b/profiles/wcm_base/modules/custom/wcm_workbench/wcm_workbench.make
index 29356981..c954e0e7 100644
--- a/profiles/wcm_base/modules/custom/wcm_workbench/wcm_workbench.make
+++ b/profiles/wcm_base/modules/custom/wcm_workbench/wcm_workbench.make
@@ -17,6 +17,7 @@ projects[workbench_media][subdir] = contrib
 projects[workbench_media][type] = module
 projects[workbench_media][download][type] = git
 projects[workbench_media][download][branch] = 7.x-2.x
+projects[workbench_media][patch][2268005] = http://drupal.org/files/issues/workbench_media-multiupload-2268005-2.patch
 
 projects[workbench_moderation][version] = 1.x-dev
 projects[workbench_moderation][subdir] = contrib
diff --git a/profiles/wcm_base/themes/ocio_omega_base/css/layouts/ocio-default/ocio-default.layout.css b/profiles/wcm_base/themes/ocio_omega_base/css/layouts/ocio-default/ocio-default.layout.css
index 5814fcde..e02a3503 100644
--- a/profiles/wcm_base/themes/ocio_omega_base/css/layouts/ocio-default/ocio-default.layout.css
+++ b/profiles/wcm_base/themes/ocio_omega_base/css/layouts/ocio-default/ocio-default.layout.css
@@ -17,6 +17,18 @@ body .panels-row.odd .ui-accordion .ui-accordion-content {
   border-color: lightgray;
 }
 
+.ctools-collapsible-container .ctools-toggle {
+  background-image: url(../images/jquery-images/ui-icons_222222_256x240.png);
+  background-position: -64px -15px;
+}
+.ctools-collapsible-container .ctools-toggle-collapsed {
+  background-position: -32px -15px;
+  background-image: url(../images/jquery-images/ui-icons_888888_256x240.png);
+}
+.ctools-collapsible-container .ctools-toggle-collapsed:hover {
+  background-image: url(../images/jquery-images/ui-icons_222222_256x240.png);
+}
+
 ul.breadcrumb {
   padding: 0;
   padding-top: 1.4em;
@@ -63,7 +75,12 @@ ul.breadcrumb li:last-child:after {
 html body .button,
 .form-submit,
 #edit-preview,
-.webform-submit {
+#edit-submit,
+#edit-submit--2,
+#edit-submit--3,
+.webform-submit,
+.webform-previous,
+.button-primary {
   font-size: 14px;
   padding: 0.6em 1.3em 0.5em 1.3em;
   display: inline-block;
@@ -80,37 +97,67 @@ html body .button,
   font-family: "proximanova", Helvetica, Arial, sans-serif;
   letter-spacing: 0.05em;
   font-weight: 400;
+  border-radius: 2px;
+  box-shadow: 0px 3px 0px 0px #920000;
+  padding-top: 0.7em;
+  padding-bottom: 0.4em;
+  font-weight: normal;
 }
 .red-button:hover, input[type=button]:hover,
 html body .button:hover,
 .form-submit:hover,
 #edit-preview:hover,
-.webform-submit:hover {
+#edit-submit:hover,
+#edit-submit--2:hover,
+#edit-submit--3:hover,
+.webform-submit:hover,
+.webform-previous:hover,
+.button-primary:hover {
   text-decoration: none;
 }
 .red-button:hover, input[type=button]:hover,
 html body .button:hover,
 .form-submit:hover,
 #edit-preview:hover,
-.webform-submit:hover {
+#edit-submit:hover,
+#edit-submit--2:hover,
+#edit-submit--3:hover,
+.webform-submit:hover,
+.webform-previous:hover,
+.button-primary:hover {
   background-color: #a20000;
 }
 .red-button:active, input[type=button]:active,
 html body .button:active,
 .form-submit:active,
 #edit-preview:active,
-.webform-submit:active {
+#edit-submit:active,
+#edit-submit--2:active,
+#edit-submit--3:active,
+.webform-submit:active,
+.webform-previous:active,
+.button-primary:active {
   background-color: #920000;
 }
 .red-button.disabled, input.disabled[type=button],
 html body .disabled.button,
 .disabled.form-submit,
 .disabled#edit-preview,
-.disabled.webform-submit, .red-button[disabled], input[disabled][type=button],
+.disabled#edit-submit,
+.disabled#edit-submit--2,
+.disabled#edit-submit--3,
+.disabled.webform-submit,
+.disabled.webform-previous,
+.disabled.button-primary, .red-button[disabled], input[disabled][type=button],
 html body [disabled].button,
 [disabled].form-submit,
 [disabled]#edit-preview,
-[disabled].webform-submit {
+[disabled]#edit-submit,
+[disabled]#edit-submit--2,
+[disabled]#edit-submit--3,
+[disabled].webform-submit,
+[disabled].webform-previous,
+[disabled].button-primary {
   filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=60);
   opacity: 0.6;
   background: false;
@@ -123,7 +170,12 @@ html body [disabled].button,
 html body .button::-moz-focus-inner,
 .form-submit::-moz-focus-inner,
 #edit-preview::-moz-focus-inner,
-.webform-submit::-moz-focus-inner {
+#edit-submit::-moz-focus-inner,
+#edit-submit--2::-moz-focus-inner,
+#edit-submit--3::-moz-focus-inner,
+.webform-submit::-moz-focus-inner,
+.webform-previous::-moz-focus-inner,
+.button-primary::-moz-focus-inner {
   padding: 0 !important;
   margin: -1px !important;
 }
@@ -132,7 +184,12 @@ input[type=button].ext .ext,
 html body .button.ext .ext,
 .form-submit.ext .ext,
 #edit-preview.ext .ext,
-.webform-submit.ext .ext {
+#edit-submit.ext .ext,
+#edit-submit--2.ext .ext,
+#edit-submit--3.ext .ext,
+.webform-submit.ext .ext,
+.webform-previous.ext .ext,
+.button-primary.ext .ext {
   background-image: none;
   padding: 0;
   width: 0;
diff --git a/profiles/wcm_base/themes/ocio_omega_base/css/layouts/ocio-default/ocio-default.layout.no-query.css b/profiles/wcm_base/themes/ocio_omega_base/css/layouts/ocio-default/ocio-default.layout.no-query.css
index f1b5aed2..8333a8ea 100644
--- a/profiles/wcm_base/themes/ocio_omega_base/css/layouts/ocio-default/ocio-default.layout.no-query.css
+++ b/profiles/wcm_base/themes/ocio_omega_base/css/layouts/ocio-default/ocio-default.layout.no-query.css
@@ -17,6 +17,18 @@ body .panels-row.odd .ui-accordion .ui-accordion-content {
   border-color: lightgray;
 }
 
+.ctools-collapsible-container .ctools-toggle {
+  background-image: url(../images/jquery-images/ui-icons_222222_256x240.png);
+  background-position: -64px -15px;
+}
+.ctools-collapsible-container .ctools-toggle-collapsed {
+  background-position: -32px -15px;
+  background-image: url(../images/jquery-images/ui-icons_888888_256x240.png);
+}
+.ctools-collapsible-container .ctools-toggle-collapsed:hover {
+  background-image: url(../images/jquery-images/ui-icons_222222_256x240.png);
+}
+
 ul.breadcrumb {
   padding: 0;
   padding-top: 1.4em;
@@ -63,7 +75,12 @@ ul.breadcrumb li:last-child:after {
 html body .button,
 .form-submit,
 #edit-preview,
-.webform-submit {
+#edit-submit,
+#edit-submit--2,
+#edit-submit--3,
+.webform-submit,
+.webform-previous,
+.button-primary {
   font-size: 14px;
   padding: 0.6em 1.3em 0.5em 1.3em;
   display: inline-block;
@@ -80,37 +97,67 @@ html body .button,
   font-family: "proximanova", Helvetica, Arial, sans-serif;
   letter-spacing: 0.05em;
   font-weight: 400;
+  border-radius: 2px;
+  box-shadow: 0px 3px 0px 0px #920000;
+  padding-top: 0.7em;
+  padding-bottom: 0.4em;
+  font-weight: normal;
 }
 .red-button:hover, input[type=button]:hover,
 html body .button:hover,
 .form-submit:hover,
 #edit-preview:hover,
-.webform-submit:hover {
+#edit-submit:hover,
+#edit-submit--2:hover,
+#edit-submit--3:hover,
+.webform-submit:hover,
+.webform-previous:hover,
+.button-primary:hover {
   text-decoration: none;
 }
 .red-button:hover, input[type=button]:hover,
 html body .button:hover,
 .form-submit:hover,
 #edit-preview:hover,
-.webform-submit:hover {
+#edit-submit:hover,
+#edit-submit--2:hover,
+#edit-submit--3:hover,
+.webform-submit:hover,
+.webform-previous:hover,
+.button-primary:hover {
   background-color: #a20000;
 }
 .red-button:active, input[type=button]:active,
 html body .button:active,
 .form-submit:active,
 #edit-preview:active,
-.webform-submit:active {
+#edit-submit:active,
+#edit-submit--2:active,
+#edit-submit--3:active,
+.webform-submit:active,
+.webform-previous:active,
+.button-primary:active {
   background-color: #920000;
 }
 .red-button.disabled, input.disabled[type=button],
 html body .disabled.button,
 .disabled.form-submit,
 .disabled#edit-preview,
-.disabled.webform-submit, .red-button[disabled], input[disabled][type=button],
+.disabled#edit-submit,
+.disabled#edit-submit--2,
+.disabled#edit-submit--3,
+.disabled.webform-submit,
+.disabled.webform-previous,
+.disabled.button-primary, .red-button[disabled], input[disabled][type=button],
 html body [disabled].button,
 [disabled].form-submit,
 [disabled]#edit-preview,
-[disabled].webform-submit {
+[disabled]#edit-submit,
+[disabled]#edit-submit--2,
+[disabled]#edit-submit--3,
+[disabled].webform-submit,
+[disabled].webform-previous,
+[disabled].button-primary {
   filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=60);
   opacity: 0.6;
   background: false;
@@ -123,7 +170,12 @@ html body [disabled].button,
 html body .button::-moz-focus-inner,
 .form-submit::-moz-focus-inner,
 #edit-preview::-moz-focus-inner,
-.webform-submit::-moz-focus-inner {
+#edit-submit::-moz-focus-inner,
+#edit-submit--2::-moz-focus-inner,
+#edit-submit--3::-moz-focus-inner,
+.webform-submit::-moz-focus-inner,
+.webform-previous::-moz-focus-inner,
+.button-primary::-moz-focus-inner {
   padding: 0 !important;
   margin: -1px !important;
 }
@@ -132,7 +184,12 @@ input[type=button].ext .ext,
 html body .button.ext .ext,
 .form-submit.ext .ext,
 #edit-preview.ext .ext,
-.webform-submit.ext .ext {
+#edit-submit.ext .ext,
+#edit-submit--2.ext .ext,
+#edit-submit--3.ext .ext,
+.webform-submit.ext .ext,
+.webform-previous.ext .ext,
+.button-primary.ext .ext {
   background-image: none;
   padding: 0;
   width: 0;
diff --git a/profiles/wcm_base/themes/ocio_omega_base/css/ocio-omega-base.no-query.css b/profiles/wcm_base/themes/ocio_omega_base/css/ocio-omega-base.no-query.css
index 34cea294..4567f0b3 100644
--- a/profiles/wcm_base/themes/ocio_omega_base/css/ocio-omega-base.no-query.css
+++ b/profiles/wcm_base/themes/ocio_omega_base/css/ocio-omega-base.no-query.css
@@ -13,6 +13,18 @@ body .panels-row.odd .ui-accordion .ui-accordion-content {
   border-color: lightgray;
 }
 
+.ctools-collapsible-container .ctools-toggle {
+  background-image: url(../images/jquery-images/ui-icons_222222_256x240.png);
+  background-position: -64px -15px;
+}
+.ctools-collapsible-container .ctools-toggle-collapsed {
+  background-position: -32px -15px;
+  background-image: url(../images/jquery-images/ui-icons_888888_256x240.png);
+}
+.ctools-collapsible-container .ctools-toggle-collapsed:hover {
+  background-image: url(../images/jquery-images/ui-icons_222222_256x240.png);
+}
+
 ul.breadcrumb {
   padding: 0;
   padding-top: 1.4em;
@@ -59,7 +71,12 @@ ul.breadcrumb li:last-child:after {
 html body .button,
 .form-submit,
 #edit-preview,
-.webform-submit, .node-type-webform #edit-submitted-file-upload-button {
+#edit-submit,
+#edit-submit--2,
+#edit-submit--3,
+.webform-submit,
+.webform-previous,
+.button-primary, .page-user-login .login-box.osu a, .node-type-webform #edit-submitted-file-upload-button {
   font-size: 14px;
   padding: 0.6em 1.3em 0.5em 1.3em;
   display: inline-block;
@@ -76,37 +93,67 @@ html body .button,
   font-family: "proximanova", Helvetica, Arial, sans-serif;
   letter-spacing: 0.05em;
   font-weight: 400;
+  border-radius: 2px;
+  box-shadow: 0px 3px 0px 0px #920000;
+  padding-top: 0.7em;
+  padding-bottom: 0.4em;
+  font-weight: normal;
 }
 .red-button:hover, input[type=button]:hover,
 html body .button:hover,
 .form-submit:hover,
 #edit-preview:hover,
-.webform-submit:hover, .node-type-webform #edit-submitted-file-upload-button:hover {
+#edit-submit:hover,
+#edit-submit--2:hover,
+#edit-submit--3:hover,
+.webform-submit:hover,
+.webform-previous:hover,
+.button-primary:hover, .page-user-login .login-box.osu a:hover, .node-type-webform #edit-submitted-file-upload-button:hover {
   text-decoration: none;
 }
 .red-button:hover, input[type=button]:hover,
 html body .button:hover,
 .form-submit:hover,
 #edit-preview:hover,
-.webform-submit:hover, .node-type-webform #edit-submitted-file-upload-button:hover {
+#edit-submit:hover,
+#edit-submit--2:hover,
+#edit-submit--3:hover,
+.webform-submit:hover,
+.webform-previous:hover,
+.button-primary:hover, .page-user-login .login-box.osu a:hover, .node-type-webform #edit-submitted-file-upload-button:hover {
   background-color: #a20000;
 }
 .red-button:active, input[type=button]:active,
 html body .button:active,
 .form-submit:active,
 #edit-preview:active,
-.webform-submit:active, .node-type-webform #edit-submitted-file-upload-button:active {
+#edit-submit:active,
+#edit-submit--2:active,
+#edit-submit--3:active,
+.webform-submit:active,
+.webform-previous:active,
+.button-primary:active, .page-user-login .login-box.osu a:active, .node-type-webform #edit-submitted-file-upload-button:active {
   background-color: #920000;
 }
 .red-button.disabled, input.disabled[type=button],
 html body .disabled.button,
 .disabled.form-submit,
 .disabled#edit-preview,
-.disabled.webform-submit, .node-type-webform .disabled#edit-submitted-file-upload-button, .red-button[disabled], input[disabled][type=button],
+.disabled#edit-submit,
+.disabled#edit-submit--2,
+.disabled#edit-submit--3,
+.disabled.webform-submit,
+.disabled.webform-previous,
+.disabled.button-primary, .page-user-login .login-box.osu a.disabled, .node-type-webform .disabled#edit-submitted-file-upload-button, .red-button[disabled], input[disabled][type=button],
 html body [disabled].button,
 [disabled].form-submit,
 [disabled]#edit-preview,
-[disabled].webform-submit, .node-type-webform [disabled]#edit-submitted-file-upload-button {
+[disabled]#edit-submit,
+[disabled]#edit-submit--2,
+[disabled]#edit-submit--3,
+[disabled].webform-submit,
+[disabled].webform-previous,
+[disabled].button-primary, .page-user-login .login-box.osu a[disabled], .node-type-webform [disabled]#edit-submitted-file-upload-button {
   filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=60);
   opacity: 0.6;
   background: false;
@@ -119,7 +166,12 @@ html body [disabled].button,
 html body .button::-moz-focus-inner,
 .form-submit::-moz-focus-inner,
 #edit-preview::-moz-focus-inner,
-.webform-submit::-moz-focus-inner, .node-type-webform #edit-submitted-file-upload-button::-moz-focus-inner {
+#edit-submit::-moz-focus-inner,
+#edit-submit--2::-moz-focus-inner,
+#edit-submit--3::-moz-focus-inner,
+.webform-submit::-moz-focus-inner,
+.webform-previous::-moz-focus-inner,
+.button-primary::-moz-focus-inner, .page-user-login .login-box.osu a::-moz-focus-inner, .node-type-webform #edit-submitted-file-upload-button::-moz-focus-inner {
   padding: 0 !important;
   margin: -1px !important;
 }
@@ -128,7 +180,12 @@ input[type=button].ext .ext,
 html body .button.ext .ext,
 .form-submit.ext .ext,
 #edit-preview.ext .ext,
-.webform-submit.ext .ext {
+#edit-submit.ext .ext,
+#edit-submit--2.ext .ext,
+#edit-submit--3.ext .ext,
+.webform-submit.ext .ext,
+.webform-previous.ext .ext,
+.button-primary.ext .ext {
   background-image: none;
   padding: 0;
   width: 0;
@@ -2348,6 +2405,28 @@ p.search-result__snippet {
   padding: 0;
 }
 
+.page-user-login h1 {
+  margin-bottom: 1em;
+}
+.page-user-login .login-box {
+  background: #ededed;
+  padding: 1em 1.6em;
+}
+.page-user-login .login-box h2 {
+  margin-top: 0.2em;
+  font-size: 20px;
+  font-weight: 600;
+}
+.page-user-login .login-box.osu {
+  margin-bottom: 2em;
+}
+.page-user-login .login-box.osu h2 {
+  margin-bottom: 1em;
+}
+.page-user-login .login-box.non-osu .ctools-collapsible-content {
+  padding-top: 2em;
+}
+
 .user-profile .field--name-field-job-title {
   font-size: 20px;
   font-size: 2rem;
diff --git a/profiles/wcm_base/themes/ocio_omega_base/css/ocio-omega-base.styles.css b/profiles/wcm_base/themes/ocio_omega_base/css/ocio-omega-base.styles.css
index 0a812044..b4660382 100644
--- a/profiles/wcm_base/themes/ocio_omega_base/css/ocio-omega-base.styles.css
+++ b/profiles/wcm_base/themes/ocio_omega_base/css/ocio-omega-base.styles.css
@@ -13,6 +13,18 @@ body .panels-row.odd .ui-accordion .ui-accordion-content {
   border-color: lightgray;
 }
 
+.ctools-collapsible-container .ctools-toggle {
+  background-image: url(../images/jquery-images/ui-icons_222222_256x240.png);
+  background-position: -64px -15px;
+}
+.ctools-collapsible-container .ctools-toggle-collapsed {
+  background-position: -32px -15px;
+  background-image: url(../images/jquery-images/ui-icons_888888_256x240.png);
+}
+.ctools-collapsible-container .ctools-toggle-collapsed:hover {
+  background-image: url(../images/jquery-images/ui-icons_222222_256x240.png);
+}
+
 ul.breadcrumb {
   padding: 0;
   padding-top: 1.4em;
@@ -59,7 +71,12 @@ ul.breadcrumb li:last-child:after {
 html body .button,
 .form-submit,
 #edit-preview,
-.webform-submit, .node-type-webform #edit-submitted-file-upload-button {
+#edit-submit,
+#edit-submit--2,
+#edit-submit--3,
+.webform-submit,
+.webform-previous,
+.button-primary, .page-user-login .login-box.osu a, .node-type-webform #edit-submitted-file-upload-button {
   font-size: 14px;
   padding: 0.6em 1.3em 0.5em 1.3em;
   display: inline-block;
@@ -76,37 +93,67 @@ html body .button,
   font-family: "proximanova", Helvetica, Arial, sans-serif;
   letter-spacing: 0.05em;
   font-weight: 400;
+  border-radius: 2px;
+  box-shadow: 0px 3px 0px 0px #920000;
+  padding-top: 0.7em;
+  padding-bottom: 0.4em;
+  font-weight: normal;
 }
 .red-button:hover, input[type=button]:hover,
 html body .button:hover,
 .form-submit:hover,
 #edit-preview:hover,
-.webform-submit:hover, .node-type-webform #edit-submitted-file-upload-button:hover {
+#edit-submit:hover,
+#edit-submit--2:hover,
+#edit-submit--3:hover,
+.webform-submit:hover,
+.webform-previous:hover,
+.button-primary:hover, .page-user-login .login-box.osu a:hover, .node-type-webform #edit-submitted-file-upload-button:hover {
   text-decoration: none;
 }
 .red-button:hover, input[type=button]:hover,
 html body .button:hover,
 .form-submit:hover,
 #edit-preview:hover,
-.webform-submit:hover, .node-type-webform #edit-submitted-file-upload-button:hover {
+#edit-submit:hover,
+#edit-submit--2:hover,
+#edit-submit--3:hover,
+.webform-submit:hover,
+.webform-previous:hover,
+.button-primary:hover, .page-user-login .login-box.osu a:hover, .node-type-webform #edit-submitted-file-upload-button:hover {
   background-color: #a20000;
 }
 .red-button:active, input[type=button]:active,
 html body .button:active,
 .form-submit:active,
 #edit-preview:active,
-.webform-submit:active, .node-type-webform #edit-submitted-file-upload-button:active {
+#edit-submit:active,
+#edit-submit--2:active,
+#edit-submit--3:active,
+.webform-submit:active,
+.webform-previous:active,
+.button-primary:active, .page-user-login .login-box.osu a:active, .node-type-webform #edit-submitted-file-upload-button:active {
   background-color: #920000;
 }
 .red-button.disabled, input.disabled[type=button],
 html body .disabled.button,
 .disabled.form-submit,
 .disabled#edit-preview,
-.disabled.webform-submit, .node-type-webform .disabled#edit-submitted-file-upload-button, .red-button[disabled], input[disabled][type=button],
+.disabled#edit-submit,
+.disabled#edit-submit--2,
+.disabled#edit-submit--3,
+.disabled.webform-submit,
+.disabled.webform-previous,
+.disabled.button-primary, .page-user-login .login-box.osu a.disabled, .node-type-webform .disabled#edit-submitted-file-upload-button, .red-button[disabled], input[disabled][type=button],
 html body [disabled].button,
 [disabled].form-submit,
 [disabled]#edit-preview,
-[disabled].webform-submit, .node-type-webform [disabled]#edit-submitted-file-upload-button {
+[disabled]#edit-submit,
+[disabled]#edit-submit--2,
+[disabled]#edit-submit--3,
+[disabled].webform-submit,
+[disabled].webform-previous,
+[disabled].button-primary, .page-user-login .login-box.osu a[disabled], .node-type-webform [disabled]#edit-submitted-file-upload-button {
   filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=60);
   opacity: 0.6;
   background: false;
@@ -119,7 +166,12 @@ html body [disabled].button,
 html body .button::-moz-focus-inner,
 .form-submit::-moz-focus-inner,
 #edit-preview::-moz-focus-inner,
-.webform-submit::-moz-focus-inner, .node-type-webform #edit-submitted-file-upload-button::-moz-focus-inner {
+#edit-submit::-moz-focus-inner,
+#edit-submit--2::-moz-focus-inner,
+#edit-submit--3::-moz-focus-inner,
+.webform-submit::-moz-focus-inner,
+.webform-previous::-moz-focus-inner,
+.button-primary::-moz-focus-inner, .page-user-login .login-box.osu a::-moz-focus-inner, .node-type-webform #edit-submitted-file-upload-button::-moz-focus-inner {
   padding: 0 !important;
   margin: -1px !important;
 }
@@ -128,7 +180,12 @@ input[type=button].ext .ext,
 html body .button.ext .ext,
 .form-submit.ext .ext,
 #edit-preview.ext .ext,
-.webform-submit.ext .ext {
+#edit-submit.ext .ext,
+#edit-submit--2.ext .ext,
+#edit-submit--3.ext .ext,
+.webform-submit.ext .ext,
+.webform-previous.ext .ext,
+.button-primary.ext .ext {
   background-image: none;
   padding: 0;
   width: 0;
@@ -2380,6 +2437,28 @@ p.search-result__snippet {
   padding: 0;
 }
 
+.page-user-login h1 {
+  margin-bottom: 1em;
+}
+.page-user-login .login-box {
+  background: #ededed;
+  padding: 1em 1.6em;
+}
+.page-user-login .login-box h2 {
+  margin-top: 0.2em;
+  font-size: 20px;
+  font-weight: 600;
+}
+.page-user-login .login-box.osu {
+  margin-bottom: 2em;
+}
+.page-user-login .login-box.osu h2 {
+  margin-bottom: 1em;
+}
+.page-user-login .login-box.non-osu .ctools-collapsible-content {
+  padding-top: 2em;
+}
+
 .user-profile .field--name-field-job-title {
   font-size: 20px;
   font-size: 2rem;
diff --git a/profiles/wcm_base/themes/ocio_omega_base/images/jquery-images/ui-icons_222222_256x240.png b/profiles/wcm_base/themes/ocio_omega_base/images/jquery-images/ui-icons_222222_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..e9c8e16ac5e7f61c843fbac290ce30c5de7e40b6
GIT binary patch
literal 6922
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
Q^5g_ikWrPcku(qaFX2Wbe*gdg

literal 0
HcmV?d00001

diff --git a/profiles/wcm_base/themes/ocio_omega_base/images/jquery-images/ui-icons_888888_256x240.png b/profiles/wcm_base/themes/ocio_omega_base/images/jquery-images/ui-icons_888888_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..d3e6e02a03d4cfdc6a2114f736aa57e8a898b98b
GIT binary patch
literal 6999
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

literal 0
HcmV?d00001

diff --git a/profiles/wcm_base/themes/ocio_omega_base/sass/base/_accordions.scss b/profiles/wcm_base/themes/ocio_omega_base/sass/base/_accordions.scss
index 05f3a0e4..a51687a3 100644
--- a/profiles/wcm_base/themes/ocio_omega_base/sass/base/_accordions.scss
+++ b/profiles/wcm_base/themes/ocio_omega_base/sass/base/_accordions.scss
@@ -20,3 +20,23 @@ body .panels-row.odd .ui-accordion {
   }
 }
 
+
+//style ctools collapsible arrows to mimic jquery-ui accordion arrows
+
+.ctools-collapsible-container {
+
+	//expanded arrow
+	.ctools-toggle {
+		background-image: url(../images/jquery-images/ui-icons_222222_256x240.png);
+		background-position: -64px -15px;
+	}
+	
+	.ctools-toggle-collapsed {
+		background-position: -32px -15px;
+		background-image: url(../images/jquery-images/ui-icons_888888_256x240.png);
+		&:hover {
+			background-image: url(../images/jquery-images/ui-icons_222222_256x240.png);
+		}
+	}
+
+}
diff --git a/profiles/wcm_base/themes/ocio_omega_base/sass/base/_buttons.scss b/profiles/wcm_base/themes/ocio_omega_base/sass/base/_buttons.scss
index 811a018f..07920940 100644
--- a/profiles/wcm_base/themes/ocio_omega_base/sass/base/_buttons.scss
+++ b/profiles/wcm_base/themes/ocio_omega_base/sass/base/_buttons.scss
@@ -8,13 +8,23 @@
   font-family: $proxima;
   letter-spacing: 0.05em;
   font-weight: 400;
+  border-radius: 2px;
+  box-shadow: 0px 3px 0px 0px darken($red, 8%);
+  padding-top: 0.7em;
+  padding-bottom: 0.4em;
+  font-weight: normal;
 }
 
 input[type=button],
 html body .button,
 .form-submit,
 #edit-preview,
-.webform-submit {
+#edit-submit,
+#edit-submit--2,
+#edit-submit--3,
+.webform-submit,
+.webform-previous,
+.button-primary {
   @extend .red-button;
 
   &.ext .ext {
diff --git a/profiles/wcm_base/themes/ocio_omega_base/sass/components/_users.scss b/profiles/wcm_base/themes/ocio_omega_base/sass/components/_users.scss
index c84fd647..93419eca 100644
--- a/profiles/wcm_base/themes/ocio_omega_base/sass/components/_users.scss
+++ b/profiles/wcm_base/themes/ocio_omega_base/sass/components/_users.scss
@@ -1,3 +1,44 @@
+//user login page
+.page-user-login {
+	h1 {
+		margin-bottom: 1em;
+	}
+	
+	
+	.login-box {
+		background: $lt-gray;
+		padding: 1em 1.6em;
+		
+		h2 {
+			margin-top: 0.2em;
+			font-size: 20px;
+			font-weight: 600;
+		}
+	}
+	
+
+	.login-box.osu {
+		margin-bottom: 2em;
+		
+		h2 {
+			margin-bottom: 1em;
+		}
+		
+		a {
+			@extend .red-button;
+		}
+	}
+	
+	.login-box.non-osu {
+		.ctools-collapsible-content {
+			padding-top: 2em;
+		}
+	}
+	
+}
+
+
+
 //user profile pages
 .user-profile {
 	
diff --git a/profiles/wcm_base/wcm_base.make b/profiles/wcm_base/wcm_base.make
index cb66fa19..e30481f3 100644
--- a/profiles/wcm_base/wcm_base.make
+++ b/profiles/wcm_base/wcm_base.make
@@ -46,7 +46,7 @@ projects[features][patch][986968] = https://drupal.org/files/issues/export_shorc
 projects[features_extra][version] = 1.0
 projects[features_extra][subdir] = contrib
 
-projects[fieldable_panels_panes][version] = 1.8
+projects[fieldable_panels_panes][version] = 1.10
 projects[fieldable_panels_panes][subdir] = contrib
 
 projects[file_entity][version] = 2.0-beta2
-- 
GitLab