From 51b9ed9ba8f5eb0367da068e5ad6303878952d67 Mon Sep 17 00:00:00 2001
From: Axel Rutz <axel.rutz@clever-systems.net>
Date: Thu, 22 May 2014 03:59:43 +0200
Subject: [PATCH] Issue #1588212 by stevector, axel.rutz | akamaus: Add
 "optional" checkbox to require contexts within mini panels.

---
 includes/context-admin.inc |   12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/includes/context-admin.inc b/includes/context-admin.inc
index c774bf4..77533d8 100644
--- a/includes/context-admin.inc
+++ b/includes/context-admin.inc
@@ -727,6 +727,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;
@@ -743,6 +752,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'];
-- 
1.7.9.5

