diff --git a/sites/all/modules/contrib/dev/ctools/bulk_export/bulk_export.info b/sites/all/modules/contrib/dev/ctools/bulk_export/bulk_export.info
index fd355450..dd9f3e91 100644
--- a/sites/all/modules/contrib/dev/ctools/bulk_export/bulk_export.info
+++ b/sites/all/modules/contrib/dev/ctools/bulk_export/bulk_export.info
@@ -6,9 +6,9 @@ package = Chaos tool suite
version = CTOOLS_MODULE_VERSION
-; Information added by Drupal.org packaging script on 2015-03-18
-version = "7.x-1.7"
+; Information added by Drupal.org packaging script on 2015-08-19
+version = "7.x-1.9"
core = "7.x"
project = "ctools"
-datestamp = "1426696183"
+datestamp = "1440020680"
diff --git a/sites/all/modules/contrib/dev/ctools/ctools.info b/sites/all/modules/contrib/dev/ctools/ctools.info
index 3283454b..02c86f52 100644
--- a/sites/all/modules/contrib/dev/ctools/ctools.info
+++ b/sites/all/modules/contrib/dev/ctools/ctools.info
@@ -9,9 +9,9 @@ files[] = includes/math-expr.inc
files[] = includes/stylizer.inc
files[] = tests/css_cache.test
-; Information added by Drupal.org packaging script on 2015-03-18
-version = "7.x-1.7"
+; Information added by Drupal.org packaging script on 2015-08-19
+version = "7.x-1.9"
core = "7.x"
project = "ctools"
-datestamp = "1426696183"
+datestamp = "1440020680"
diff --git a/sites/all/modules/contrib/dev/ctools/ctools.module b/sites/all/modules/contrib/dev/ctools/ctools.module
index 3e8cc88f..008214e2 100644
--- a/sites/all/modules/contrib/dev/ctools/ctools.module
+++ b/sites/all/modules/contrib/dev/ctools/ctools.module
@@ -23,7 +23,7 @@ define('CTOOLS_API_VERSION', '2.0.8');
* ; Requires CTools v7.x-1.4 or newer.
* dependencies[] = ctools (>=1.4)
*/
-define('CTOOLS_MODULE_VERSION', '7.x-1.7');
+define('CTOOLS_MODULE_VERSION', '7.x-1.9');
/**
* Test the CTools API version.
@@ -617,6 +617,27 @@ function ctools_registry_files_alter(&$files, $indexed_modules) {
return _ctools_registry_files_alter($files, $indexed_modules);
}
+// -----------------------------------------------------------------------
+// FAPI hooks that must be in the .module file.
+
+/**
+ * Alter the comment form to get a little more control over it.
+ */
+function ctools_form_comment_form_alter(&$form, &$form_state) {
+ if (!empty($form_state['ctools comment alter'])) {
+ // Force the form to post back to wherever we are.
+ $form['#action'] = url($_GET['q'], array('fragment' => 'comment-form'));
+ if (empty($form['#submit'])) {
+ $form['#submit'] = array('comment_form_submit');
+ }
+ $form['#submit'][] = 'ctools_node_comment_form_submit';
+ }
+}
+
+function ctools_node_comment_form_submit(&$form, &$form_state) {
+ $form_state['redirect'][0] = $_GET['q'];
+}
+
// -----------------------------------------------------------------------
// CTools hook implementations.
@@ -1018,3 +1039,50 @@ function ctools_ctools_entity_context_alter(&$plugin, &$entity, $plugin_id) {
}
}
}
+
+/**
+ * Implements hook_field_create_field().
+ */
+function ctools_field_create_field($field) {
+ ctools_flush_field_caches();
+}
+
+/**
+ * Implements hook_field_create_instance().
+ */
+function ctools_field_create_instance($instance) {
+ ctools_flush_field_caches();
+}
+/**
+ * Implements hook_field_delete_field().
+ */
+function ctools_field_delete_field($field) {
+ ctools_flush_field_caches();
+}
+/**
+ * Implements hook_field_delete_instance().
+ */
+function ctools_field_delete_instance($instance) {
+ ctools_flush_field_caches();
+}
+/**
+ * Implements hook_field_update_field().
+ */
+function ctools_field_update_field($field, $prior_field, $has_data) {
+ ctools_flush_field_caches();
+}
+
+/**
+ * Implements hook_field_update_instance().
+ */
+function ctools_field_update_instance($instance, $prior_instance) {
+ ctools_flush_field_caches();
+}
+
+/**
+ * Clear field related caches.
+ */
+function ctools_flush_field_caches() {
+ // Clear caches of 'Entity field' content type plugin.
+ cache_clear_all('ctools_entity_field_content_type_content_types', 'cache');
+}
diff --git a/sites/all/modules/contrib/dev/ctools/ctools_access_ruleset/ctools_access_ruleset.info b/sites/all/modules/contrib/dev/ctools/ctools_access_ruleset/ctools_access_ruleset.info
index d7ec175d..66ca12c0 100644
--- a/sites/all/modules/contrib/dev/ctools/ctools_access_ruleset/ctools_access_ruleset.info
+++ b/sites/all/modules/contrib/dev/ctools/ctools_access_ruleset/ctools_access_ruleset.info
@@ -5,9 +5,9 @@ package = Chaos tool suite
version = CTOOLS_MODULE_VERSION
dependencies[] = ctools
-; Information added by Drupal.org packaging script on 2015-03-18
-version = "7.x-1.7"
+; Information added by Drupal.org packaging script on 2015-08-19
+version = "7.x-1.9"
core = "7.x"
project = "ctools"
-datestamp = "1426696183"
+datestamp = "1440020680"
diff --git a/sites/all/modules/contrib/dev/ctools/ctools_ajax_sample/ctools_ajax_sample.info b/sites/all/modules/contrib/dev/ctools/ctools_ajax_sample/ctools_ajax_sample.info
index bc1a213d..f5d1e745 100644
--- a/sites/all/modules/contrib/dev/ctools/ctools_ajax_sample/ctools_ajax_sample.info
+++ b/sites/all/modules/contrib/dev/ctools/ctools_ajax_sample/ctools_ajax_sample.info
@@ -5,9 +5,9 @@ version = CTOOLS_MODULE_VERSION
dependencies[] = ctools
core = 7.x
-; Information added by Drupal.org packaging script on 2015-03-18
-version = "7.x-1.7"
+; Information added by Drupal.org packaging script on 2015-08-19
+version = "7.x-1.9"
core = "7.x"
project = "ctools"
-datestamp = "1426696183"
+datestamp = "1440020680"
diff --git a/sites/all/modules/contrib/dev/ctools/ctools_ajax_sample/ctools_ajax_sample.module b/sites/all/modules/contrib/dev/ctools/ctools_ajax_sample/ctools_ajax_sample.module
index 2a30c2a5..4638ac34 100644
--- a/sites/all/modules/contrib/dev/ctools/ctools_ajax_sample/ctools_ajax_sample.module
+++ b/sites/all/modules/contrib/dev/ctools/ctools_ajax_sample/ctools_ajax_sample.module
@@ -524,7 +524,7 @@ function ctools_ajax_sample_wizard_next(&$form_state) {
}
/**
- * Handle the 'finish' click on teh add/edit pane form wizard.
+ * Handle the 'finish' click on the add/edit pane form wizard.
*
* All we need to do is set a flag so the return can handle adding
* the pane.
diff --git a/sites/all/modules/contrib/dev/ctools/ctools_custom_content/ctools_custom_content.info b/sites/all/modules/contrib/dev/ctools/ctools_custom_content/ctools_custom_content.info
index 2b2d04bb..185d8b64 100644
--- a/sites/all/modules/contrib/dev/ctools/ctools_custom_content/ctools_custom_content.info
+++ b/sites/all/modules/contrib/dev/ctools/ctools_custom_content/ctools_custom_content.info
@@ -5,9 +5,9 @@ package = Chaos tool suite
version = CTOOLS_MODULE_VERSION
dependencies[] = ctools
-; Information added by Drupal.org packaging script on 2015-03-18
-version = "7.x-1.7"
+; Information added by Drupal.org packaging script on 2015-08-19
+version = "7.x-1.9"
core = "7.x"
project = "ctools"
-datestamp = "1426696183"
+datestamp = "1440020680"
diff --git a/sites/all/modules/contrib/dev/ctools/ctools_plugin_example/ctools_plugin_example.info b/sites/all/modules/contrib/dev/ctools/ctools_plugin_example/ctools_plugin_example.info
index f9158762..d378641e 100644
--- a/sites/all/modules/contrib/dev/ctools/ctools_plugin_example/ctools_plugin_example.info
+++ b/sites/all/modules/contrib/dev/ctools/ctools_plugin_example/ctools_plugin_example.info
@@ -8,9 +8,9 @@ dependencies[] = page_manager
dependencies[] = advanced_help
core = 7.x
-; Information added by Drupal.org packaging script on 2015-03-18
-version = "7.x-1.7"
+; Information added by Drupal.org packaging script on 2015-08-19
+version = "7.x-1.9"
core = "7.x"
project = "ctools"
-datestamp = "1426696183"
+datestamp = "1440020680"
diff --git a/sites/all/modules/contrib/dev/ctools/includes/content.inc b/sites/all/modules/contrib/dev/ctools/includes/content.inc
index b4660b43..ae1c6073 100644
--- a/sites/all/modules/contrib/dev/ctools/includes/content.inc
+++ b/sites/all/modules/contrib/dev/ctools/includes/content.inc
@@ -341,7 +341,16 @@ function ctools_content_editable($type, $subtype, $conf) {
return FALSE;
}
- if ($function = ctools_plugin_get_function($subtype, 'check editable')) {
+ $function = FALSE;
+
+ if (!empty($subtype['check editable'])) {
+ $function = ctools_plugin_get_function($subtype, 'check editable');
+ }
+ elseif (!empty($type['check editable'])) {
+ $function = ctools_plugin_get_function($type, 'check editable');
+ }
+
+ if ($function) {
return $function($type, $subtype, $conf);
}
diff --git a/sites/all/modules/contrib/dev/ctools/includes/context-admin.inc b/sites/all/modules/contrib/dev/ctools/includes/context-admin.inc
index 11205474..821a5b32 100644
--- a/sites/all/modules/contrib/dev/ctools/includes/context-admin.inc
+++ b/sites/all/modules/contrib/dev/ctools/includes/context-admin.inc
@@ -736,6 +736,15 @@ function ctools_edit_context_form_defaults($form, &$form_state) {
'#default_value' => $conf['keyword'],
);
+ if ($type_info['key'] == 'requiredcontexts') {
+ $form['optional'] = array(
+ '#type' => 'checkbox',
+ '#title' => t('Context is optional'),
+ '#default_value' => !empty($form_state['conf']['optional']),
+ '#description' => t('This context need not be present for the component to function.'),
+ );
+ }
+
$form['#submit'][] = 'ctools_edit_context_form_defaults_submit';
return $form;
@@ -752,6 +761,9 @@ function ctools_edit_context_form_defaults_submit(&$form, &$form_state) {
$form_state['conf']['default'] = $form_state['values']['default'];
$form_state['conf']['title'] = $form_state['values']['title'];
}
+ if ($form_state['type info']['key'] == 'requiredcontexts') {
+ $form_state['conf']['optional'] = $form_state['values']['optional'];
+ }
$form_state['conf']['identifier'] = $form_state['values']['identifier'];
$form_state['conf']['keyword'] = $form_state['values']['keyword'];
diff --git a/sites/all/modules/contrib/dev/ctools/includes/context.inc b/sites/all/modules/contrib/dev/ctools/includes/context.inc
index 6628b5f9..1f9c1e45 100644
--- a/sites/all/modules/contrib/dev/ctools/includes/context.inc
+++ b/sites/all/modules/contrib/dev/ctools/includes/context.inc
@@ -216,7 +216,7 @@ class ctools_context_optional extends ctools_context_required {
$context = new ctools_context('any');
$context->title = t('No context');
$context->identifier = t('No context');
- $contexts = array_merge(array('empty' => $context), $contexts);
+ $contexts['empty'] = $context;
}
function filter($contexts) {
@@ -1505,7 +1505,7 @@ function ctools_access($settings, $contexts = array()) {
return TRUE;
}
else if (!$pass && $settings['logic'] == 'and') {
- // Fail if 'and' and htis rule failed.
+ // Fail if 'and' and this rule failed.
return FALSE;
}
}
diff --git a/sites/all/modules/contrib/dev/ctools/includes/css.inc b/sites/all/modules/contrib/dev/ctools/includes/css.inc
index 9813a872..8cf5ed40 100644
--- a/sites/all/modules/contrib/dev/ctools/includes/css.inc
+++ b/sites/all/modules/contrib/dev/ctools/includes/css.inc
@@ -172,10 +172,12 @@ function ctools_css_cache($css, $filter = TRUE) {
// @todo Is this slow? Does it matter if it is?
$filename = $path . '/' . md5($css) . '.css';
- // This will do renames if the file already exists, ensuring we don't
- // accidentally overwrite other files who share the same md5. Yes this
- // is a very miniscule chance but it's safe.
- $filename = file_unmanaged_save_data($css, $filename);
+ // Generally md5 is considered unique enough to sign file downloads.
+ // So this replaces already existing files based on the assumption that two
+ // files with the same hash are identical content wise.
+ // If we rename, the cache folder can potentially fill up with thousands of
+ // files with the same content.
+ $filename = file_unmanaged_save_data($css, $filename, FILE_EXISTS_REPLACE);
return $filename;
}
diff --git a/sites/all/modules/contrib/dev/ctools/includes/jump-menu.inc b/sites/all/modules/contrib/dev/ctools/includes/jump-menu.inc
index a5f99aa3..51f45982 100644
--- a/sites/all/modules/contrib/dev/ctools/includes/jump-menu.inc
+++ b/sites/all/modules/contrib/dev/ctools/includes/jump-menu.inc
@@ -51,7 +51,7 @@ function ctools_jump_menu($form, &$form_state, $select, $options = array()) {
'hide' => TRUE,
);
- ctools_add_js('jump-menu');
+ $form['#attached']['js'][] = ctools_attach_js('jump-menu');
if (!empty($options['choose'])) {
$select = array('' => $options['choose']) + $select;
diff --git a/sites/all/modules/contrib/dev/ctools/includes/math-expr.inc b/sites/all/modules/contrib/dev/ctools/includes/math-expr.inc
index beffb93c..eeb184d8 100644
--- a/sites/all/modules/contrib/dev/ctools/includes/math-expr.inc
+++ b/sites/all/modules/contrib/dev/ctools/includes/math-expr.inc
@@ -271,7 +271,7 @@ class ctools_math_expr {
} elseif (in_array($op, $ops) and !$expecting_op) {
return $this->trigger("unexpected operator '$op'");
} else { // I don't even want to know what you did to get here
- return $this->trigger("an unexpected error occured");
+ return $this->trigger("an unexpected error occurred");
}
if ($index == strlen($expr)) {
if (in_array($op, $ops)) { // did we end with an operator? bad.
diff --git a/sites/all/modules/contrib/dev/ctools/includes/modal.inc b/sites/all/modules/contrib/dev/ctools/includes/modal.inc
index ee969aba..fc990159 100644
--- a/sites/all/modules/contrib/dev/ctools/includes/modal.inc
+++ b/sites/all/modules/contrib/dev/ctools/includes/modal.inc
@@ -66,6 +66,7 @@ function ctools_modal_add_js() {
drupal_add_library('system', 'jquery.form');
drupal_add_library('system', 'drupal.progress');
drupal_add_library('system', 'drupal.ajax');
+ drupal_add_library('system', 'ui');
ctools_add_js('modal');
ctools_add_css('modal');
diff --git a/sites/all/modules/contrib/dev/ctools/includes/plugins.inc b/sites/all/modules/contrib/dev/ctools/includes/plugins.inc
index eadb68f7..79a6087f 100644
--- a/sites/all/modules/contrib/dev/ctools/includes/plugins.inc
+++ b/sites/all/modules/contrib/dev/ctools/includes/plugins.inc
@@ -79,7 +79,9 @@ function ctools_plugin_api_info($owner, $api, $minimum_version, $current_version
}
// Only process if version is between minimum and current, inclusive.
- if (version_compare($version, $minimum_version, '>=') && version_compare($version, $current_version, '<=')) {
+ if (($version == $minimum_version) || ($version == $current_version)
+ || (version_compare($version, $minimum_version, '>=')
+ && version_compare($version, $current_version, '<='))) {
if (!isset($info['path'])) {
$info['path'] = drupal_get_path('module', $module);
}
@@ -110,7 +112,7 @@ function ctools_plugin_api_info($owner, $api, $minimum_version, $current_version
}
// Allow other modules to hook in.
- drupal_alter($hook, $cache[$owner][$api]);
+ drupal_alter($hook, $cache[$owner][$api], $owner, $api);
}
return $cache[$owner][$api];
@@ -213,7 +215,7 @@ function ctools_plugin_api_get_hook($owner, $api) {
*/
function ctools_get_plugins($module, $type, $id = NULL) {
// Store local caches of plugins and plugin info so we don't have to do full
- // lookups everytime.
+ // lookups every time.
static $drupal_static_fast;
if (!isset($drupal_static_fast)) {
$drupal_static_fast['plugins'] = &drupal_static('ctools_plugins', array());
diff --git a/sites/all/modules/contrib/dev/ctools/includes/stylizer.inc b/sites/all/modules/contrib/dev/ctools/includes/stylizer.inc
index 9fdc81d7..5bc8450c 100644
--- a/sites/all/modules/contrib/dev/ctools/includes/stylizer.inc
+++ b/sites/all/modules/contrib/dev/ctools/includes/stylizer.inc
@@ -500,7 +500,7 @@ class ctools_stylizer_image_processor {
$palette[$luminosity_input]['green'] = $green;
$palette[$luminosity_input]['blue'] = $blue;
- // Now we complete the palette, first we'll do it tothe black, and then to
+ // Now we complete the palette, first we'll do it to the black, and then to
// the white.
// From input to black
diff --git a/sites/all/modules/contrib/dev/ctools/includes/uuid.inc b/sites/all/modules/contrib/dev/ctools/includes/uuid.inc
index b0567d34..6e4c42c3 100644
--- a/sites/all/modules/contrib/dev/ctools/includes/uuid.inc
+++ b/sites/all/modules/contrib/dev/ctools/includes/uuid.inc
@@ -25,7 +25,8 @@ function _ctools_uuid_generate_com() {
* Generates an universally unique identifier using the PECL extension.
*/
function _ctools_uuid_generate_pecl() {
- return uuid_create(UUID_TYPE_DEFAULT);
+ $uuid_type = UUID_TYPE_DEFAULT;
+ return uuid_create($uuid_type);
}
/**
diff --git a/sites/all/modules/contrib/dev/ctools/js/modal.js b/sites/all/modules/contrib/dev/ctools/js/modal.js
index 37908cf3..c757ef27 100644
--- a/sites/all/modules/contrib/dev/ctools/js/modal.js
+++ b/sites/all/modules/contrib/dev/ctools/js/modal.js
@@ -48,7 +48,8 @@
modalOptions: {
opacity: .55,
background: '#fff'
- }
+ },
+ modalClass: 'default'
};
var settings = {};
@@ -97,8 +98,8 @@
resize();
$('span.modal-title', Drupal.CTools.Modal.modal).html(Drupal.CTools.Modal.currentSettings.loadingText);
- Drupal.CTools.Modal.modalContent(Drupal.CTools.Modal.modal, settings.modalOptions, settings.animation, settings.animationSpeed);
- $('#modalContent .modal-content').html(Drupal.theme(settings.throbberTheme));
+ Drupal.CTools.Modal.modalContent(Drupal.CTools.Modal.modal, settings.modalOptions, settings.animation, settings.animationSpeed, settings.modalClass);
+ $('#modalContent .modal-content').html(Drupal.theme(settings.throbberTheme)).addClass('ctools-modal-loading');
// Position autocomplete results based on the scroll position of the modal.
$('#modalContent .modal-content').delegate('input.form-autocomplete', 'keyup', function() {
@@ -299,6 +300,17 @@
// Attach behaviors within a modal dialog.
var settings = response.settings || ajax.settings || Drupal.settings;
Drupal.attachBehaviors('#modalContent', settings);
+
+ if ($('#modal-content').hasClass('ctools-modal-loading')) {
+ $('#modal-content').removeClass('ctools-modal-loading');
+ }
+ else {
+ // If the modal was already shown, and we are simply replacing its
+ // content, then focus on the first focusable element in the modal.
+ // (When first showing the modal, focus will be placed on the close
+ // button by the show() function called above.)
+ $('#modal-content :focusable:first').focus();
+ }
}
/**
@@ -349,8 +361,9 @@
* @param css obj of css attributes
* @param animation (fadeIn, slideDown, show)
* @param speed (valid animation speeds slow, medium, fast or # in ms)
+ * @param modalClass class added to div#modalContent
*/
- Drupal.CTools.Modal.modalContent = function(content, css, animation, speed) {
+ Drupal.CTools.Modal.modalContent = function(content, css, animation, speed, modalClass) {
// If our animation isn't set, make it just show/pop
if (!animation) {
animation = 'show';
@@ -402,9 +415,56 @@
if( docHeight < winHeight ) docHeight = winHeight;
// Create our divs
- $('body').append('
' + $(content).html() + '
');
+ $('body').append('
' + $(content).html() + '
');
- // Keyboard and focus event handler ensures focus stays on modal elements only
+ // Get a list of the tabbable elements in the modal content.
+ var getTabbableElements = function () {
+ var tabbableElements = $('#modalContent :tabbable'),
+ radioButtons = tabbableElements.filter('input[type="radio"]');
+
+ // The list of tabbable elements from jQuery is *almost* right. The
+ // exception is with groups of radio buttons. The list from jQuery will
+ // include all radio buttons, when in fact, only the selected radio button
+ // is tabbable, and if no radio buttons in a group are selected, then only
+ // the first is tabbable.
+ if (radioButtons.length > 0) {
+ // First, build up an index of which groups have an item selected or not.
+ var anySelected = {};
+ radioButtons.each(function () {
+ var name = this.name;
+
+ if (typeof anySelected[name] === 'undefined') {
+ anySelected[name] = radioButtons.filter('input[name="' + name + '"]:checked').length !== 0;
+ }
+ });
+
+ // Next filter out the radio buttons that aren't really tabbable.
+ var found = {};
+ tabbableElements = tabbableElements.filter(function () {
+ var keep = true;
+
+ if (this.type == 'radio') {
+ if (anySelected[this.name]) {
+ // Only keep the selected one.
+ keep = this.checked;
+ }
+ else {
+ // Only keep the first one.
+ if (found[this.name]) {
+ keep = false;
+ }
+ found[this.name] = true;
+ }
+ }
+
+ return keep;
+ });
+ }
+
+ return tabbableElements.get();
+ };
+
+ // Keyboard and focus event handler ensures only modal elements gain focus.
modalEventHandler = function( event ) {
target = null;
if ( event ) { //Mozilla
@@ -428,7 +488,7 @@
return true;
}
else {
- $('#modalContent').focus();
+ getTabbableElements()[0].focus();
}
event.preventDefault();
@@ -436,6 +496,59 @@
$('body').bind( 'focus', modalEventHandler );
$('body').bind( 'keypress', modalEventHandler );
+ // Keypress handler Ensures you can only TAB to elements within the modal.
+ // Based on the psuedo-code from WAI-ARIA 1.0 Authoring Practices section
+ // 3.3.1 "Trapping Focus".
+ modalTabTrapHandler = function (evt) {
+ // We only care about the TAB key.
+ if (evt.which != 9) {
+ return true;
+ }
+
+ var tabbableElements = getTabbableElements(),
+ firstTabbableElement = tabbableElements[0],
+ lastTabbableElement = tabbableElements[tabbableElements.length - 1],
+ singleTabbableElement = firstTabbableElement == lastTabbableElement,
+ node = evt.target;
+
+ // If this is the first element and the user wants to go backwards, then
+ // jump to the last element.
+ if (node == firstTabbableElement && evt.shiftKey) {
+ if (!singleTabbableElement) {
+ lastTabbableElement.focus();
+ }
+ return false;
+ }
+ // If this is the last element and the user wants to go forwards, then
+ // jump to the first element.
+ else if (node == lastTabbableElement && !evt.shiftKey) {
+ if (!singleTabbableElement) {
+ firstTabbableElement.focus();
+ }
+ return false;
+ }
+ // If this element isn't in the dialog at all, then jump to the first
+ // or last element to get the user into the game.
+ else if ($.inArray(node, tabbableElements) == -1) {
+ // Make sure the node isn't in another modal (ie. WYSIWYG modal).
+ var parents = $(node).parents().get();
+ for (var i = 0; i < parents.length; ++i) {
+ var position = $(parents[i]).css('position');
+ if (position == 'absolute' || position == 'fixed') {
+ return true;
+ }
+ }
+
+ if (evt.shiftKey) {
+ lastTabbableElement.focus();
+ }
+ else {
+ firstTabbableElement.focus();
+ }
+ }
+ };
+ $('body').bind('keydown', modalTabTrapHandler);
+
// Create our content div, get the dimensions, and hide it
var modalContent = $('#modalContent').css('top','-1000px');
var mdcTop = wt + ( winHeight / 2 ) - ( modalContent.outerHeight() / 2);
@@ -457,12 +570,19 @@
$(document).bind('keydown', modalEventEscapeCloseHandler);
+ // Per WAI-ARIA 1.0 Authoring Practices, initial focus should be on the
+ // close button, but we should save the original focus to restore it after
+ // the dialog is closed.
+ var oldFocus = document.activeElement;
+ $('.close').focus();
+
// Close the open modal content and backdrop
function close() {
// Unbind the events
$(window).unbind('resize', modalContentResize);
$('body').unbind( 'focus', modalEventHandler);
$('body').unbind( 'keypress', modalEventHandler );
+ $('body').unbind( 'keydown', modalTabTrapHandler );
$('.close').unbind('click', modalContentClose);
$('body').unbind('keypress', modalEventEscapeCloseHandler);
$(document).trigger('CToolsDetachBehaviors', $('#modalContent'));
@@ -478,12 +598,19 @@
// Remove the content
$('#modalContent').remove();
$('#modalBackdrop').remove();
+
+ // Restore focus to where it was before opening the dialog
+ $(oldFocus).focus();
};
- // Move and resize the modalBackdrop and modalContent on resize of the window
- modalContentResize = function(){
+ // Move and resize the modalBackdrop and modalContent on window resize.
+ modalContentResize = function(){
- // position code lifted from http://www.quirksmode.org/viewport/compatibility.html
+ // Reset the backdrop height/width to get accurate document size.
+ $('#modalBackdrop').css('height', '').css('width', '');
+
+ // Position code lifted from:
+ // http://www.quirksmode.org/viewport/compatibility.html
if (self.pageYOffset) { // all except Explorer
var wt = self.pageYOffset;
} else if (document.documentElement && document.documentElement.scrollTop) { // Explorer 6 Strict
@@ -509,8 +636,6 @@
modalContent.css('top', mdcTop + 'px').css('left', mdcLeft + 'px').show();
};
$(window).bind('resize', modalContentResize);
-
- $('#modalContent').focus();
};
/**
@@ -533,7 +658,9 @@
$(window).unbind('resize', modalContentResize);
$('body').unbind('focus', modalEventHandler);
$('body').unbind('keypress', modalEventHandler);
+ $('body').unbind( 'keydown', modalTabTrapHandler );
$('.close').unbind('click', modalContentClose);
+ $('body').unbind('keypress', modalEventEscapeCloseHandler);
$(document).trigger('CToolsDetachBehaviors', $('#modalContent'));
// jQuery magic loop through the instances and run the animations or removal.
diff --git a/sites/all/modules/contrib/dev/ctools/js/states-show.js b/sites/all/modules/contrib/dev/ctools/js/states-show.js
new file mode 100644
index 00000000..88df5841
--- /dev/null
+++ b/sites/all/modules/contrib/dev/ctools/js/states-show.js
@@ -0,0 +1,43 @@
+/**
+ * @file
+ * Custom state for handling visibility
+ */
+
+/**
+ * Add a new state to Drupal #states. We use this to toggle element-invisible
+ * to show/hidden #states elements. This allows elements to be visible to
+ * screen readers.
+ *
+ * To use:
+ * $form['my_form_field'] = array(
+ * ..
+ * // Only show this field if 'some_other_field' is checked.
+ * '#states => array(
+ * 'show' => array(
+ * 'some-other-field' => array('checked' => TRUE),
+ * ),
+ * ),
+ * ..
+ * // Required to load the 'show' state handler.
+ * '#attached' => array(
+ * 'js' => array(ctools_attach_js('states-show')),
+ * ),
+ * );
+ */
+
+(function ($) {
+ 'use strict';
+
+ Drupal.states.State.aliases.hidden = '!show';
+
+ // Show/hide form items by toggling the 'element-invisible' class. This is a
+ // more accessible option than the core 'visible' state.
+ $(document).bind('state:show', function(e) {
+ if (e.trigger) {
+ var element = $(e.target).closest('.form-item, .form-submit, .form-wrapper');
+ element.toggle(e.value);
+ e.value === true ? element.removeClass('element-invisible') : element.addClass('element-invisible');
+ }
+ });
+
+})(jQuery);
diff --git a/sites/all/modules/contrib/dev/ctools/page_manager/page_manager.info b/sites/all/modules/contrib/dev/ctools/page_manager/page_manager.info
index c34099ed..c7f4df3a 100644
--- a/sites/all/modules/contrib/dev/ctools/page_manager/page_manager.info
+++ b/sites/all/modules/contrib/dev/ctools/page_manager/page_manager.info
@@ -5,9 +5,9 @@ dependencies[] = ctools
package = Chaos tool suite
version = CTOOLS_MODULE_VERSION
-; Information added by Drupal.org packaging script on 2015-03-18
-version = "7.x-1.7"
+; Information added by Drupal.org packaging script on 2015-08-19
+version = "7.x-1.9"
core = "7.x"
project = "ctools"
-datestamp = "1426696183"
+datestamp = "1440020680"
diff --git a/sites/all/modules/contrib/dev/ctools/page_manager/page_manager.module b/sites/all/modules/contrib/dev/ctools/page_manager/page_manager.module
index 70237520..f3cb743e 100644
--- a/sites/all/modules/contrib/dev/ctools/page_manager/page_manager.module
+++ b/sites/all/modules/contrib/dev/ctools/page_manager/page_manager.module
@@ -440,13 +440,18 @@ function page_manager_cache_load($task_name) {
*/
function page_manager_handler_get_name($task_name, $handlers, $handler) {
$base = str_replace('-', '_', $task_name);
+ $name = '';
+
// Optional machine name.
if (!empty($handler->conf['name'])) {
$name = $base . '__' . $handler->conf['name'];
+ if (count(ctools_export_load_object('page_manager_handlers', 'names', array($name)))) {
+ $name = '';
+ }
}
- // If no machine name was provided, generate a unique name.
- else {
+ // If no machine name was provided or the name is in use, generate a unique name.
+ if (empty($name)) {
$base .= '__' . $handler->handler;
// Use the ctools uuid generator to generate a unique id.
@@ -472,6 +477,10 @@ function page_manager_handler_add_to_page(&$page, &$handler, $title = NULL) {
if ($title) {
$handler->conf['title'] = $title;
+ $handler->conf['name'] = trim(preg_replace('/[^a-z0-9_]+/', '-', strtolower($title)), '-');
+ }
+ else {
+ $handler->conf['name'] = '';
}
$name = page_manager_handler_get_name($page->task_name, $page->handlers, $handler);
diff --git a/sites/all/modules/contrib/dev/ctools/page_manager/plugins/tasks/node_edit.inc b/sites/all/modules/contrib/dev/ctools/page_manager/plugins/tasks/node_edit.inc
index e0585e80..61ef13ac 100644
--- a/sites/all/modules/contrib/dev/ctools/page_manager/plugins/tasks/node_edit.inc
+++ b/sites/all/modules/contrib/dev/ctools/page_manager/plugins/tasks/node_edit.inc
@@ -108,7 +108,7 @@ function page_manager_node_edit($node) {
* Callback to handle the process of adding a node.
*
* This creates a basic $node and passes that off to page_manager_node_edit().
- * It is modeled after Drupal's node_add() function.
+ * It is modelled after Drupal's node_add() function.
*
* Unlike node_add() we do not need to check node_access because that was
* already checked by the menu system.
diff --git a/sites/all/modules/contrib/dev/ctools/page_manager/plugins/tasks/node_view.inc b/sites/all/modules/contrib/dev/ctools/page_manager/plugins/tasks/node_view.inc
index ad754e0e..89a29128 100644
--- a/sites/all/modules/contrib/dev/ctools/page_manager/plugins/tasks/node_view.inc
+++ b/sites/all/modules/contrib/dev/ctools/page_manager/plugins/tasks/node_view.inc
@@ -78,10 +78,6 @@ function page_manager_node_view_menu_alter(&$items, $task) {
* node view, which is node_page_view().
*/
function page_manager_node_view_page($node) {
- // Prep the node to be displayed so all of the regular hooks are triggered.
- // Also save the output for later, in case it is needed.
- $default_output = node_page_view($node);
-
// Load my task plugin
$task = page_manager_get_task('node_view');
@@ -107,6 +103,9 @@ function page_manager_node_view_page($node) {
}
}
+ // Prepare the node to be displayed so all of the regular hooks are triggered.
+ $default_output = node_page_view($node);
+
// Otherwise, fall back to the default output generated by node_page_view().
return $default_output;
}
diff --git a/sites/all/modules/contrib/dev/ctools/page_manager/plugins/tasks/page.admin.inc b/sites/all/modules/contrib/dev/ctools/page_manager/plugins/tasks/page.admin.inc
index 7c560fb8..97bd37bc 100644
--- a/sites/all/modules/contrib/dev/ctools/page_manager/plugins/tasks/page.admin.inc
+++ b/sites/all/modules/contrib/dev/ctools/page_manager/plugins/tasks/page.admin.inc
@@ -61,7 +61,7 @@ function page_manager_page_menu(&$items, $task) {
}
$path = array();
- $page_arguments = array($subtask_id);
+ $page_arguments = array((string) $subtask_id);
$access_arguments = array($subtask->access);
$load_arguments = array($subtask_id, '%index', '%map');
@@ -566,7 +566,7 @@ function page_manager_page_form_basic_validate(&$form, &$form_state) {
if (strpos($path, '%') === FALSE) {
$alias = db_query('SELECT alias, source FROM {url_alias} WHERE alias = :path', array(':path' => $path))->fetchObject();
if ($alias) {
- form_error($form['path'], t('That path is currently assigned to be an alias for @alias. This system cannot override existing aliases.', array('@alias' => $alias->src)));
+ form_error($form['path'], t('That path is currently assigned to be an alias for @alias. This system cannot override existing aliases.', array('@alias' => $alias->source)));
}
}
else {
diff --git a/sites/all/modules/contrib/dev/ctools/plugins/content_types/comment/comment_created.inc b/sites/all/modules/contrib/dev/ctools/plugins/content_types/comment/comment_created.inc
new file mode 100644
index 00000000..62944e71
--- /dev/null
+++ b/sites/all/modules/contrib/dev/ctools/plugins/content_types/comment/comment_created.inc
@@ -0,0 +1,74 @@
+ TRUE,
+ 'title' => t('Comment created date'),
+ 'icon' => 'icon_comment.png',
+ 'description' => t('The date the referenced comment was created.'),
+ 'required context' => new ctools_context_required(t('Comment'), 'entity:comment'),
+ 'category' => t('Comment'),
+ 'defaults' => array(
+ 'format' => 'small',
+ ),
+);
+
+/**
+ * Render the custom content type.
+ */
+function ctools_comment_created_content_type_render($subtype, $conf, $panel_args, $context) {
+ if (empty($context) || empty($context->data)) {
+ return;
+ }
+
+ // Get a shortcut to the comment.
+ $comment = $context->data;
+
+ // Build the content type block.
+ $block = new stdClass();
+ $block->module = 'comment_created';
+ $block->title = t('Created date');
+ $block->content = format_date($comment->created, $conf['format']);
+ $block->delta = $comment->cid;
+
+ return $block;
+}
+
+/**
+ * Returns an edit form for custom type settings.
+ */
+function ctools_comment_created_content_type_edit_form($form, &$form_state) {
+ $conf = $form_state['conf'];
+ $date_types = array();
+
+ foreach (system_get_date_types() as $date_type => $definition) {
+ $date_types[$date_type] = format_date(REQUEST_TIME, $date_type);
+ }
+ $form['format'] = array(
+ '#title' => t('Date format'),
+ '#type' => 'select',
+ '#options' => $date_types,
+ '#default_value' => $conf['format'],
+ );
+ return $form;
+}
+
+/**
+ * Submit handler for the custom type settings form.
+ */
+function ctools_comment_created_content_type_edit_form_submit($form, &$form_state) {
+ // Copy everything from our defaults.
+ foreach (array_keys($form_state['plugin']['defaults']) as $key) {
+ $form_state['conf'][$key] = $form_state['values'][$key];
+ }
+}
+
+/**
+ * Returns the administrative title for a type.
+ */
+function ctools_comment_created_content_type_admin_title($subtype, $conf, $context) {
+ return t('"@s" created date', array('@s' => $context->identifier));
+}
diff --git a/sites/all/modules/contrib/dev/ctools/plugins/content_types/entity_context/entity_field.inc b/sites/all/modules/contrib/dev/ctools/plugins/content_types/entity_context/entity_field.inc
index 5861d1c5..65367a02 100644
--- a/sites/all/modules/contrib/dev/ctools/plugins/content_types/entity_context/entity_field.inc
+++ b/sites/all/modules/contrib/dev/ctools/plugins/content_types/entity_context/entity_field.inc
@@ -34,6 +34,14 @@ function ctools_entity_field_content_type_content_types() {
return $types;
}
+ $cache_key = 'ctools_entity_field_content_type_content_types';
+ if ($cache = cache_get($cache_key)) {
+ $types = $cache->data;
+ if (!empty($types)) {
+ return $types;
+ }
+ }
+
// This will hold all the individual field content types.
$context_types = array();
$entities = entity_get_info();
@@ -82,6 +90,8 @@ function ctools_entity_field_content_type_content_types() {
unset($context_types[$key]['types']);
}
+ cache_set($cache_key, $types);
+
return $types;
}
diff --git a/sites/all/modules/contrib/dev/ctools/plugins/content_types/form/entity_form_field.inc b/sites/all/modules/contrib/dev/ctools/plugins/content_types/form/entity_form_field.inc
index a030f693..582bd785 100644
--- a/sites/all/modules/contrib/dev/ctools/plugins/content_types/form/entity_form_field.inc
+++ b/sites/all/modules/contrib/dev/ctools/plugins/content_types/form/entity_form_field.inc
@@ -57,6 +57,26 @@ function ctools_entity_form_field_content_type_content_types() {
}
}
+ if (module_exists('field_group')) {
+ foreach ($entities as $entity_type => $entity) {
+ foreach ($entity['bundles'] as $type => $bundle) {
+ if ($group_info = field_group_info_groups($entity_type, $type, "form")) {
+ foreach ($group_info as $group_name => $group) {
+ if (!isset($types[$entity_type . ':' . $group_name])) {
+ $types[$entity_type . ':' . $group_name] = array(
+ 'category' => t('Form'),
+ 'icon' => 'icon_field.png',
+ 'title' => t('Group form: @widget_label', array('@widget_label' => $group->label)),
+ 'description' => t('Field group on the referenced entity.'),
+ );
+ }
+ $content_types[$entity_type . ':' . $group_name]['types'][$type] = $bundle['label'];
+ }
+ }
+ }
+ }
+ }
+
// Create the required context for each field related to the bundle types.
foreach ($types as $key => $field_content_type) {
list($entity_type, $field_name) = explode(':', $key, 2);
@@ -85,16 +105,38 @@ function ctools_entity_form_field_content_type_render($subtype, $conf, $panel_ar
$ids = entity_extract_ids($entity_type, $entity);
$field = field_info_instance($entity_type, $field_name, $ids[2]);
- // Do not render if the entity type does not have this field.
- if (empty($field)) {
+ // Check for field groups.
+ if (empty($field) && module_exists('field_group')) {
+ $groups = field_group_info_groups($entity_type, $entity->type, "form");
+ $group = !empty($groups[$field_name]) ? $groups[$field_name] : NULL;
+ }
+
+ // Do not render if the entity type does not have this field or group.
+ if (empty($field) && empty($group)) {
return;
}
- $block = new stdClass();
+ $block = new stdClass();
if (isset($context->form)) {
$block->content = array();
- $block->content[$field_name] = $context->form[$field_name];
- unset($context->form[$field_name]);
+ if (!empty($field)) {
+ $block->content[$field_name] = $context->form[$field_name];
+ unset($context->form[$field_name]);
+ }
+ else {
+ // Pre-render the form to populate field groups.
+ if (isset($context->form['#pre_render'])) {
+ foreach ($context->form['#pre_render'] as $function) {
+ if (function_exists($function)) {
+ $context->form = $function($context->form);
+ }
+ }
+ unset($context->form['#pre_render']);
+ }
+
+ $block->content[$field_name] = $context->form[$field_name];
+ unset($context->form[$field_name]);
+ }
}
else {
$block->content = t('Entity info.');
diff --git a/sites/all/modules/contrib/dev/ctools/plugins/content_types/node_context/node_comment_form.inc b/sites/all/modules/contrib/dev/ctools/plugins/content_types/node_context/node_comment_form.inc
index f77b66e4..c21e7bc7 100644
--- a/sites/all/modules/contrib/dev/ctools/plugins/content_types/node_context/node_comment_form.inc
+++ b/sites/all/modules/contrib/dev/ctools/plugins/content_types/node_context/node_comment_form.inc
@@ -77,20 +77,3 @@ function ctools_node_comment_form_content_type_edit_form_submit($form, &$form_st
}
}
-/**
- * Alter the comment form to get a little more control over it.
- */
-function ctools_form_comment_form_alter(&$form, &$form_state) {
- if (!empty($form_state['ctools comment alter'])) {
- // Force the form to post back to wherever we are.
- $form['#action'] = url($_GET['q'], array('fragment' => 'comment-form'));
- if (empty($form['#submit'])) {
- $form['#submit'] = array('comment_form_submit');
- }
- $form['#submit'][] = 'ctools_node_comment_form_submit';
- }
-}
-
-function ctools_node_comment_form_submit(&$form, &$form_state) {
- $form_state['redirect'][0] = $_GET['q'];
-}
diff --git a/sites/all/modules/contrib/dev/ctools/plugins/content_types/page/page_title.inc b/sites/all/modules/contrib/dev/ctools/plugins/content_types/page/page_title.inc
index e3032dfb..cc091ab2 100644
--- a/sites/all/modules/contrib/dev/ctools/plugins/content_types/page/page_title.inc
+++ b/sites/all/modules/contrib/dev/ctools/plugins/content_types/page/page_title.inc
@@ -29,6 +29,9 @@ $plugin = array(
* Outputs the page title of the current page.
*/
function ctools_page_title_content_type_render($subtype, $conf, $panel_args) {
+ if (!drupal_get_title()) {
+ return;
+ }
// TODO: This should have a setting or something for the markup.
if (empty($conf['markup'])) {
$conf['markup'] = 'h1';
diff --git a/sites/all/modules/contrib/dev/ctools/plugins/content_types/term_context/term_description.inc b/sites/all/modules/contrib/dev/ctools/plugins/content_types/term_context/term_description.inc
index 2b953ed0..f95c4f54 100644
--- a/sites/all/modules/contrib/dev/ctools/plugins/content_types/term_context/term_description.inc
+++ b/sites/all/modules/contrib/dev/ctools/plugins/content_types/term_context/term_description.inc
@@ -18,8 +18,8 @@ function ctools_term_description_content_type_render($subtype, $conf, $panel_arg
$block = new stdClass();
$block->module = 'node_type';
- $block->title = $term->name;
- if ($term) {
+ if (!empty($term)) {
+ $block->title = $term->name;
$block->content = check_markup($term->description, $term->format, '', TRUE);
$block->delta = $term->tid;
@@ -33,6 +33,7 @@ function ctools_term_description_content_type_render($subtype, $conf, $panel_arg
}
}
else {
+ $block->title = '';
$block->content = t('Term description goes here.');
$block->delta = 'unknown';
}
diff --git a/sites/all/modules/contrib/dev/ctools/plugins/contexts/user.inc b/sites/all/modules/contrib/dev/ctools/plugins/contexts/user.inc
index 02bfe987..18781c76 100644
--- a/sites/all/modules/contrib/dev/ctools/plugins/contexts/user.inc
+++ b/sites/all/modules/contrib/dev/ctools/plugins/contexts/user.inc
@@ -43,7 +43,9 @@ function ctools_context_create_user($empty, $data = NULL, $conf = FALSE) {
if ($data['type'] == 'current') {
global $user;
$data = user_load($user->uid);
- $data->logged_in_user = TRUE;
+ if (user_is_logged_in()) {
+ $data->logged_in_user = TRUE;
+ }
}
else {
$data = user_load($data['uid']);
diff --git a/sites/all/modules/contrib/dev/ctools/plugins/contexts/user_edit_form.inc b/sites/all/modules/contrib/dev/ctools/plugins/contexts/user_edit_form.inc
index 707632d2..a28c5990 100644
--- a/sites/all/modules/contrib/dev/ctools/plugins/contexts/user_edit_form.inc
+++ b/sites/all/modules/contrib/dev/ctools/plugins/contexts/user_edit_form.inc
@@ -34,15 +34,15 @@ function ctools_context_create_user_edit_form($empty, $user = NULL, $conf = FALS
$category = !empty($conf['category']) ? $conf['category'] : FALSE;
unset($conf['category']);
+ // If no category was specified, use the default 'account'.
+ if (!$category) {
+ $category = 'account';
+ }
// Return previously created contexts, per category.
static $created = array();
if (!empty($created[$category])) {
return $created[$category];
}
- // If no category was specified, use the default 'account'.
- if (!$category) {
- $category = 'account';
- }
$context = new ctools_context(array('form', 'user_edit', 'user_form', 'user_edit_form', 'user', 'entity:user'));
// Store this context for later.
diff --git a/sites/all/modules/contrib/dev/ctools/plugins/export_ui/ctools_export_ui.class.php b/sites/all/modules/contrib/dev/ctools/plugins/export_ui/ctools_export_ui.class.php
index 640c93a9..60c1dc28 100644
--- a/sites/all/modules/contrib/dev/ctools/plugins/export_ui/ctools_export_ui.class.php
+++ b/sites/all/modules/contrib/dev/ctools/plugins/export_ui/ctools_export_ui.class.php
@@ -724,7 +724,13 @@ class ctools_export_ui {
// Export the handler, which is a fantastic way to clean database IDs out of it.
$export = ctools_export_crud_export($this->plugin['schema'], $original);
$item = ctools_export_crud_import($this->plugin['schema'], $export);
- $item->{$this->plugin['export']['key']} = 'clone_of_' . $item->{$this->plugin['export']['key']};
+
+ if (!empty($input[$this->plugin['export']['key']])) {
+ $item->{$this->plugin['export']['key']} = $input[$this->plugin['export']['key']];
+ }
+ else {
+ $item->{$this->plugin['export']['key']} = 'clone_of_' . $item->{$this->plugin['export']['key']};
+ }
}
// Tabs and breadcrumb disappearing, this helps alleviate through cheating.
diff --git a/sites/all/modules/contrib/dev/ctools/plugins/relationships/entity_from_field.inc b/sites/all/modules/contrib/dev/ctools/plugins/relationships/entity_from_field.inc
index d4880c6f..fdffc41c 100644
--- a/sites/all/modules/contrib/dev/ctools/plugins/relationships/entity_from_field.inc
+++ b/sites/all/modules/contrib/dev/ctools/plugins/relationships/entity_from_field.inc
@@ -185,7 +185,7 @@ function ctools_entity_from_field_context($context, $conf) {
$loaded_to_entity = array_shift($loaded_to_entity);
// Pass current user account and entity type to access callback.
- if (function_exists($to_entity_info['access callback']) && !call_user_func($to_entity_info['access callback'], 'view', $loaded_to_entity, $account, $to_entity)) {
+ if (isset($to_entity_info['access callback']) && function_exists($to_entity_info['access callback']) && !call_user_func($to_entity_info['access callback'], 'view', $loaded_to_entity)) {
return ctools_context_create_empty('entity:' . $to_entity, NULL);
}
else {
diff --git a/sites/all/modules/contrib/dev/ctools/stylizer/stylizer.info b/sites/all/modules/contrib/dev/ctools/stylizer/stylizer.info
index 69fa16cb..9e9890ff 100644
--- a/sites/all/modules/contrib/dev/ctools/stylizer/stylizer.info
+++ b/sites/all/modules/contrib/dev/ctools/stylizer/stylizer.info
@@ -6,9 +6,9 @@ version = CTOOLS_MODULE_VERSION
dependencies[] = ctools
dependencies[] = color
-; Information added by Drupal.org packaging script on 2015-03-18
-version = "7.x-1.7"
+; Information added by Drupal.org packaging script on 2015-08-19
+version = "7.x-1.9"
core = "7.x"
project = "ctools"
-datestamp = "1426696183"
+datestamp = "1440020680"
diff --git a/sites/all/modules/contrib/dev/ctools/term_depth/term_depth.info b/sites/all/modules/contrib/dev/ctools/term_depth/term_depth.info
index 7b6cc38b..d6fa37fb 100644
--- a/sites/all/modules/contrib/dev/ctools/term_depth/term_depth.info
+++ b/sites/all/modules/contrib/dev/ctools/term_depth/term_depth.info
@@ -5,9 +5,9 @@ dependencies[] = ctools
package = Chaos tool suite
version = CTOOLS_MODULE_VERSION
-; Information added by Drupal.org packaging script on 2015-03-18
-version = "7.x-1.7"
+; Information added by Drupal.org packaging script on 2015-08-19
+version = "7.x-1.9"
core = "7.x"
project = "ctools"
-datestamp = "1426696183"
+datestamp = "1440020680"
diff --git a/sites/all/modules/contrib/dev/ctools/tests/ctools_export_test/ctools_export_test.info b/sites/all/modules/contrib/dev/ctools/tests/ctools_export_test/ctools_export_test.info
index bae67668..e016aeb5 100644
--- a/sites/all/modules/contrib/dev/ctools/tests/ctools_export_test/ctools_export_test.info
+++ b/sites/all/modules/contrib/dev/ctools/tests/ctools_export_test/ctools_export_test.info
@@ -8,9 +8,9 @@ hidden = TRUE
files[] = ctools_export.test
-; Information added by Drupal.org packaging script on 2015-03-18
-version = "7.x-1.7"
+; Information added by Drupal.org packaging script on 2015-08-19
+version = "7.x-1.9"
core = "7.x"
project = "ctools"
-datestamp = "1426696183"
+datestamp = "1440020680"
diff --git a/sites/all/modules/contrib/dev/ctools/tests/ctools_plugin_test.info b/sites/all/modules/contrib/dev/ctools/tests/ctools_plugin_test.info
index 8ee53032..15a510b6 100644
--- a/sites/all/modules/contrib/dev/ctools/tests/ctools_plugin_test.info
+++ b/sites/all/modules/contrib/dev/ctools/tests/ctools_plugin_test.info
@@ -12,9 +12,9 @@ files[] = math_expression.test
files[] = math_expression_stack.test
hidden = TRUE
-; Information added by Drupal.org packaging script on 2015-03-18
-version = "7.x-1.7"
+; Information added by Drupal.org packaging script on 2015-08-19
+version = "7.x-1.9"
core = "7.x"
project = "ctools"
-datestamp = "1426696183"
+datestamp = "1440020680"
diff --git a/sites/all/modules/contrib/dev/ctools/tests/plugins/cached/ctoolsCachedPluginArray.class.php b/sites/all/modules/contrib/dev/ctools/tests/plugins/cached/ctoolsCachedPluginArray.class.php
index 3037daa5..ea087fa6 100644
--- a/sites/all/modules/contrib/dev/ctools/tests/plugins/cached/ctoolsCachedPluginArray.class.php
+++ b/sites/all/modules/contrib/dev/ctools/tests/plugins/cached/ctoolsCachedPluginArray.class.php
@@ -1,7 +1,7 @@
'administer video styles',
// Define the menu item.
'menu' => array(
- 'menu prefix' => 'admin/config/media',
+ 'menu prefix' => 'admin/config/media/vef',
'menu item' => 'vef_video_styles',
'menu title' => 'Video Embed Styles',
'menu description' => 'Administer Video Embed Field\'s video styles.',
diff --git a/sites/all/modules/contrib/fields/video_embed_field/video_embed_brightcove/video_embed_brightcove.info b/sites/all/modules/contrib/fields/video_embed_field/video_embed_brightcove/video_embed_brightcove.info
index b9eafdd2..8ca93ff1 100644
--- a/sites/all/modules/contrib/fields/video_embed_field/video_embed_brightcove/video_embed_brightcove.info
+++ b/sites/all/modules/contrib/fields/video_embed_field/video_embed_brightcove/video_embed_brightcove.info
@@ -6,9 +6,9 @@ configure = admin/config/media/vef_video_styles
dependencies[] = "video_embed_field"
-; Information added by Drupal.org packaging script on 2015-04-17
-version = "7.x-2.0-beta8+7-dev"
+; Information added by Drupal.org packaging script on 2015-09-07
+version = "7.x-2.0-beta11"
core = "7.x"
project = "video_embed_field"
-datestamp = "1429278491"
+datestamp = "1441639440"
diff --git a/sites/all/modules/contrib/fields/video_embed_field/video_embed_brightcove/video_embed_brightcove.module b/sites/all/modules/contrib/fields/video_embed_field/video_embed_brightcove/video_embed_brightcove.module
index 0ba0e0c9..f48f6c19 100644
--- a/sites/all/modules/contrib/fields/video_embed_field/video_embed_brightcove/video_embed_brightcove.module
+++ b/sites/all/modules/contrib/fields/video_embed_field/video_embed_brightcove/video_embed_brightcove.module
@@ -24,6 +24,7 @@ function video_embed_brightcove_video_embed_handler_info() {
'defaults' => array(
'width' => 640,
'height' => 360,
+ 'class' => '',
),
);
@@ -57,6 +58,13 @@ function video_embed_brightcove_form($defaults) {
'#default_value' => $defaults['height'],
);
+ $form['class'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Player CSS class'),
+ '#description' => t('CSS class to add to the player'),
+ '#default_value' => $defaults['class'],
+ );
+
return $form;
}
@@ -83,7 +91,7 @@ function video_embed_brightcove_handle_video($url, $settings) {
if (isset($parameters['id']) && isset($parameters['key'])) {
// Embed code.
- $embed = '