From 26e03692e3caf2a530764bc3bd539ce173ee6506 Mon Sep 17 00:00:00 2001 From: Nick Sergeant Date: Tue, 24 Jan 2012 18:48:42 -0500 Subject: [PATCH] Handle click-to-deselect selected snipt --- snipt/media/js/src/modules/site.js | 14 ++++++++++---- snipt/media/js/src/modules/snipt.js | 4 +++- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/snipt/media/js/src/modules/site.js b/snipt/media/js/src/modules/site.js index 8b4b097..62949df 100644 --- a/snipt/media/js/src/modules/site.js +++ b/snipt/media/js/src/modules/site.js @@ -7,8 +7,9 @@ initialize: function(opts) { - this.$search_query = $('input#search-query', this.el); - this.$snipts = $('section#snipts article.snipt', this.el); + this.$el = $(this.el); + this.$search_query = $('input#search-query', this.$el); + this.$snipts = $('section#snipts article.snipt', this.$el); this.keyboardShortcuts(); this.inFieldLabels(); @@ -17,6 +18,12 @@ if (this.$snipts.length) { SniptListView = Snipt.Views.SniptListView; SniptList = new SniptListView({ 'snipts': this.$snipts }); + + $('body').click(function() { + if (window.$selected) { + window.$selected.trigger('deselect'); + } + }); } // Search @@ -45,12 +52,11 @@ }); }, inFieldLabels: function () { - $('div.infield label', this.el).inFieldLabels({ + $('div.infield label', this.$el).inFieldLabels({ fadeDuration: 200 }); } }); - Site.Views = { 'SiteView': SiteView }; diff --git a/snipt/media/js/src/modules/snipt.js b/snipt/media/js/src/modules/snipt.js index 54f2074..4e332cb 100644 --- a/snipt/media/js/src/modules/snipt.js +++ b/snipt/media/js/src/modules/snipt.js @@ -88,8 +88,9 @@ window.$selected = this.$el; }, - selectFromClick: function() { + selectFromClick: function(e) { this.select(true); + e.stopPropagation(); } }); SniptListView = Backbone.View.extend({ @@ -103,6 +104,7 @@ this.keyboardShortcuts(); }, + addSnipt: function() { model = new SniptView({ el: this }); },