diff --git a/assets.yml b/assets.yml index 625dd382fa..bdd8de091d 100644 --- a/assets.yml +++ b/assets.yml @@ -53,6 +53,7 @@ javascripts: - media/js/vendor/jquery.tinysort.js - media/js/vendor/jquery.fieldselection.js - media/js/vendor/jquery.tipsy.js + - media/js/vendor/jquery.autosize.js - media/js/vendor/jquery.chosen.js - media/js/vendor/jquery.effects.core.js - media/js/vendor/jquery.effects.slideOffscreen.js diff --git a/media/js/newsblur/views/story_share_view.js b/media/js/newsblur/views/story_share_view.js index e5b357b070..6c3985cf21 100644 --- a/media/js/newsblur/views/story_share_view.js +++ b/media/js/newsblur/views/story_share_view.js @@ -7,6 +7,7 @@ NEWSBLUR.Views.StoryShareView = Backbone.View.extend({ "click .NB-sideoption-share-crosspost-twitter" : "toggle_twitter", "click .NB-sideoption-share-crosspost-facebook" : "toggle_facebook", "click .NB-sideoption-share-crosspost-appdotnet" : "toggle_appdotnet", + "keypress .NB-sideoption-share-comments" : "autosize", "keyup .NB-sideoption-share-comments" : "update_share_button_label", "keydown .NB-sideoption-share-comments" : "maybe_close" }, @@ -22,7 +23,7 @@ NEWSBLUR.Views.StoryShareView = Backbone.View.extend({ social_services: NEWSBLUR.assets.social_services, profile: NEWSBLUR.assets.user_profile })); - + return this; }, @@ -83,6 +84,7 @@ NEWSBLUR.Views.StoryShareView = Backbone.View.extend({ $facebook_button.removeClass('NB-active'); $appdotnet_button.removeClass('NB-active'); this.update_share_button_label(); + this.$('textarea').autosize(); if (options.animate_scroll) { var $scroll_container = NEWSBLUR.reader.$s.$story_titles; @@ -145,7 +147,7 @@ NEWSBLUR.Views.StoryShareView = Backbone.View.extend({ $share_wrapper.animate({ 'height': sideoption_content_height }, { - 'duration': options.immediate ? 0 : 350, + 'duration': options.immediate ? 0 : options.duration || 350, 'easing': 'easeInOutQuint', 'queue': false, 'complete': _.bind(function() { @@ -352,6 +354,10 @@ NEWSBLUR.Views.StoryShareView = Backbone.View.extend({ NEWSBLUR.log(["post_share_error", data, shared, message, $share_button, $unshare_button, $share_button_menu, $error]); }, + autosize: function() { + this.resize({duration: 100}); + }, + update_share_button_label: function() { var $share = this.$('.NB-sideoption-share'); var $comment_input = this.$('.NB-sideoption-share-comments'); diff --git a/media/js/vendor/jquery.autosize.js b/media/js/vendor/jquery.autosize.js new file mode 100755 index 0000000000..27b341b36e --- /dev/null +++ b/media/js/vendor/jquery.autosize.js @@ -0,0 +1,272 @@ +/*! + Autosize v1.18.9 - 2014-05-27 + Automatically adjust textarea height based on user input. + (c) 2014 Jack Moore - http://www.jacklmoore.com/autosize + license: http://www.opensource.org/licenses/mit-license.php +*/ +(function ($) { + var + defaults = { + className: 'autosizejs', + id: 'autosizejs', + append: '\n', + callback: false, + resizeDelay: 10, + placeholder: true + }, + + // border:0 is unnecessary, but avoids a bug in Firefox on OSX + copy = '