From 95732b429fc9b71f14c544586885a449bd5efddc Mon Sep 17 00:00:00 2001
From: fat <jacobthornton@gmail.com>
Date: Sat, 17 Aug 2013 21:50:01 -0700
Subject: [PATCH] add dependency support to customizer

---
 assets/js/customizer.js | 22 ++++++++++++++++++++++
 customize.html          | 14 +++++++-------
 2 files changed, 29 insertions(+), 7 deletions(-)

diff --git a/assets/js/customizer.js b/assets/js/customizer.js
index 7725ec0daf..b8a4b29562 100644
--- a/assets/js/customizer.js
+++ b/assets/js/customizer.js
@@ -216,5 +216,27 @@ window.onload = function () { // wait for load in a dumb way because B-0
     inputsVariables.val('')
   })
 
+  $('[data-dependencies]').on('click', function () {
+    if (!$(this).is(':checked')) return
+    var dependencies = this.getAttribute('data-dependencies')
+    if (!dependencies) return
+    dependencies = dependencies.split(',')
+    for (var i = 0; i < dependencies.length; i++) {
+      var dependency = $('[value="' + dependencies[i] + '"]')
+      dependency && dependency.prop('checked', true)
+    }
+  })
+
+  $('[data-dependents]').on('click', function () {
+    if ($(this).is(':checked')) return
+    var dependents = this.getAttribute('data-dependents')
+    if (!dependents) return
+    dependents = dependents.split(',')
+    for (var i = 0; i < dependents.length; i++) {
+      var dependent = $('[value="' + dependents[i] + '"]')
+      dependent && dependent.prop('checked', false)
+    }
+  })
+
   parseUrl()
 }
\ No newline at end of file
diff --git a/customize.html b/customize.html
index 94b8719441..55dd882f8a 100644
--- a/customize.html
+++ b/customize.html
@@ -66,13 +66,13 @@ base_url: "../"
         </div>
         <div class="checkbox">
           <label>
-            <input type="checkbox" checked value="forms.less">
+            <input type="checkbox" checked value="forms.less" data-dependents="navbar.less,input-groups.less">
             Forms
           </label>
         </div>
         <div class="checkbox">
           <label>
-            <input type="checkbox" checked value="buttons.less">
+            <input type="checkbox" checked value="buttons.less" data-dependents="button-groups.less">
             Buttons
           </label>
         </div>
@@ -112,7 +112,7 @@ base_url: "../"
         </div>
         <div class="checkbox">
           <label>
-            <input type="checkbox" checked value="navbar.less" data-dependency="forms.less">
+            <input type="checkbox" checked value="navbar.less" data-dependencies="forms.less">
             Navbar
           </label>
         </div>
@@ -223,13 +223,13 @@ base_url: "../"
         <h4>Miscellaneous</h4>
         <div class="checkbox">
           <label>
-            <input type="checkbox" checked value="input-groups.less" data-dependency="forms.less">
+            <input type="checkbox" checked value="input-groups.less" data-dependencies="forms.less">
             Input groups
           </label>
         </div>
         <div class="checkbox">
           <label>
-            <input type="checkbox" checked value="button-groups.less" data-dependency="buttons.less">
+            <input type="checkbox" checked value="button-groups.less" data-dependencies="buttons.less">
             Button groups
           </label>
         </div>
@@ -304,13 +304,13 @@ base_url: "../"
         </div>
         <div class="checkbox">
           <label>
-            <input type="checkbox" checked value="tooltip.js">
+            <input type="checkbox" checked value="tooltip.js" data-dependents="popover.js">
             Tooltips
           </label>
         </div>
         <div class="checkbox">
           <label>
-            <input type="checkbox" checked value="popover.js" data-dependency="tooltip.js">
+            <input type="checkbox" checked value="popover.js" data-dependencies="tooltip.js">
             Popovers <small>(requires Tooltips)</small>
           </label>
         </div>
-- 
GitLab