From 9fbc4b745a362fcc5f3314f0591cf624f50e0f1d Mon Sep 17 00:00:00 2001
From: Dennis Collinson <dennis.collective@gmail.com>
Date: Tue, 6 Mar 2012 19:00:46 -0800
Subject: [PATCH] MS DC posting from post/new werks

---
 config/assets.yml                             |  1 +
 .../app/templates/aspects-dropdown.handlebars | 25 +++++
 .../app/templates/post-form.handlebars        | 15 ++-
 .../javascripts/app/views/post_form_view.js   |  8 ++
 .../vendor/bootstrap/bootstrap-dropdown.js    | 92 +++++++++++++++++++
 5 files changed, 137 insertions(+), 4 deletions(-)
 create mode 100644 public/javascripts/app/templates/aspects-dropdown.handlebars
 create mode 100644 public/javascripts/vendor/bootstrap/bootstrap-dropdown.js

diff --git a/config/assets.yml b/config/assets.yml
index e2a445ec6a..570bcac7f8 100644
--- a/config/assets.yml
+++ b/config/assets.yml
@@ -71,6 +71,7 @@ javascripts:
 
     - public/javascripts/vendor/bootstrap/bootstrap-twipsy.js
     - public/javascripts/vendor/bootstrap/bootstrap-popover.js
+    - public/javascripts/vendor/bootstrap/bootstrap-dropdown.js
 
   login:
     - public/javascripts/login.js
diff --git a/public/javascripts/app/templates/aspects-dropdown.handlebars b/public/javascripts/app/templates/aspects-dropdown.handlebars
new file mode 100644
index 0000000000..b1e6ae6d7f
--- /dev/null
+++ b/public/javascripts/app/templates/aspects-dropdown.handlebars
@@ -0,0 +1,25 @@
+<div class="btn-group aspect_ids check-group">
+    <a class="btn btn-info dropdown-toggle" data-toggle="dropdown" href="#">All Aspects <span class="caret"></span></a>
+    <ul class="dropdown-menu">
+        <li>
+            <label class="checkbox">
+                <input type="checkbox" value="public"/>Public
+            </label>
+        </li>
+        <li>
+            <label class="checkbox">
+                <input type="checkbox" value="all"/>All Aspects
+            </label>
+        </li>
+        <li class="divider"></li>
+
+        {{#each current_user.aspects}}
+
+        <li>
+            <label class="checkbox">
+                <input type="checkbox" value="{{id}}"/> {{name}}
+            </label>
+        </li>
+        {{/each}}
+    </ul>
+</div>
\ No newline at end of file
diff --git a/public/javascripts/app/templates/post-form.handlebars b/public/javascripts/app/templates/post-form.handlebars
index 0c8ffb88ca..f57dd6c1bf 100644
--- a/public/javascripts/app/templates/post-form.handlebars
+++ b/public/javascripts/app/templates/post-form.handlebars
@@ -1,4 +1,11 @@
-<form class="new-post">
-    <label>text<textarea class="text"/></label>
-    <input type="submit" class="btn-primary" value="Share"></input>
-</form>
+<div class='row'>
+    <div class='span12'>
+        <form class="new-post well">
+            <label>text<textarea class="text"/></label>
+            <input type="submit" class="btn-primary" value="Share"></input>
+
+            <div class="aspect_selector"/>
+
+        </form>
+    </div>
+</div>
diff --git a/public/javascripts/app/views/post_form_view.js b/public/javascripts/app/views/post_form_view.js
index e29bd54b9d..eea8a58057 100644
--- a/public/javascripts/app/views/post_form_view.js
+++ b/public/javascripts/app/views/post_form_view.js
@@ -5,10 +5,18 @@ app.views.PostForm = app.views.Base.extend({
     'submit form' : 'setModelAttributes'
   },
 
+//  subviews : {
+//    ".aspect_form" : "aspectDropdown"
+//  },
+
   formAttrs : {
     ".text" : "text"
   },
 
+//  initialize : function(){
+////    this.aspectsDropdown = new app.views.AspectDropdown()
+//  },
+
   setModelAttributes : function(evt){
     if(evt){ evt.preventDefault(); }
 
diff --git a/public/javascripts/vendor/bootstrap/bootstrap-dropdown.js b/public/javascripts/vendor/bootstrap/bootstrap-dropdown.js
new file mode 100644
index 0000000000..f80995ca2f
--- /dev/null
+++ b/public/javascripts/vendor/bootstrap/bootstrap-dropdown.js
@@ -0,0 +1,92 @@
+/* ============================================================
+ * bootstrap-dropdown.js v2.0.1
+ * http://twitter.github.com/bootstrap/javascript.html#dropdowns
+ * ============================================================
+ * Copyright 2012 Twitter, Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============================================================ */
+
+
+!function( $ ){
+
+  "use strict"
+
+  /* DROPDOWN CLASS DEFINITION
+   * ========================= */
+
+  var toggle = '[data-toggle="dropdown"]'
+    , Dropdown = function ( element ) {
+      var $el = $(element).on('click.dropdown.data-api', this.toggle)
+      $('html').on('click.dropdown.data-api', function () {
+        $el.parent().removeClass('open')
+      })
+    }
+
+  Dropdown.prototype = {
+
+    constructor: Dropdown
+
+    , toggle: function ( e ) {
+      var $this = $(this)
+        , selector = $this.attr('data-target')
+        , $parent
+        , isActive
+
+      if (!selector) {
+        selector = $this.attr('href')
+        selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
+      }
+
+      $parent = $(selector)
+      $parent.length || ($parent = $this.parent())
+
+      isActive = $parent.hasClass('open')
+
+      clearMenus()
+      !isActive && $parent.toggleClass('open')
+
+      return false
+    }
+
+  }
+
+  function clearMenus() {
+    $(toggle).parent().removeClass('open')
+  }
+
+
+  /* DROPDOWN PLUGIN DEFINITION
+   * ========================== */
+
+  $.fn.dropdown = function ( option ) {
+    return this.each(function () {
+      var $this = $(this)
+        , data = $this.data('dropdown')
+      if (!data) $this.data('dropdown', (data = new Dropdown(this)))
+      if (typeof option == 'string') data[option].call($this)
+    })
+  }
+
+  $.fn.dropdown.Constructor = Dropdown
+
+
+  /* APPLY TO STANDARD DROPDOWN ELEMENTS
+   * =================================== */
+
+  $(function () {
+    $('html').on('click.dropdown.data-api', clearMenus)
+    $('body').on('click.dropdown.data-api', toggle, Dropdown.prototype.toggle)
+  })
+
+}( window.jQuery );
\ No newline at end of file
-- 
GitLab