Merge pull request #3068 from diaspora/posting

Merging the trumpeter
some sad fixes to try and appease travis :(
fix chubbies by expliciting setting the view path
stylesheets are basically now being served from sprockets
MS DG; move images to assets
more progress
remove jquery from assets; wip
Move Javascript to the asset pipeline

* Move all Diaspora-specific javascripts to app/assets/javascripts
* Move all vendored javascripts to vendor/assets/javascripts
* Add the appropriate Sprockets require directives to make sure
  everything gets included in the right order
* Remove Jammit dependencies
* Fix all templates that were using Jammit's include_javascripts helper
* Add handlebars_assets gem for compiling Handlebars templates
* Move all Handlebars templates to app/assets/templates and rename
  from .handlebars to .jst.hbs (this is to keep them in the same
  global JST namespace that they were in under Jammit)
* Add public/assets to .gitignore since these files can and should
  be re-generated by Heroku or Capistrano during each deploy
* Fix a few Handlebars templates that were looking for images in the
  wrong location (I'm sure there are others, but it's late)
* Configure application.rb to precompile all javascript and css assets
  that were compiled by Jammit in the Rails 3.0 code
jquery_include_tag helper

Implement the jquery_include_tag helper, which is used in several
views but was not implemented in the code. This helper attempts to
load jQuery from the Google CDN (matching the version of the vendored
jquery.js in jquery-rails), falling back to the vendored copy if the
google CDN fails. The helper also loads jquery_ujs.js from jquery-rails.

A jquery_cdn setting is added to application.yml to enable or disable
serving jQuery from the Google CDN (for those podmins who would rather
not use Google's services).

Update app/views/application.html.haml to use the jquery_include_tag
helper since it was the only view that was including the vendored
copy of jquery directly with jquery_include_tag.
Fix Jasmine tests - first pass

193 specs | 5 failing

The 5 failing specs appear (according to Firebug) to be due to missing
fixtures and/or missing routes in the Jasmine environment. Fixing these
last 5 failures is a task probably best left to a more experienced
Javascript/Jasmine developer.

This commit also moves validation.js and clear-form.js into
app/assets/javascripts and precompiles validation.js
Fix image tags in public/default.html to use asset pipeline
Correctly enable the asset pipeline

* Add the Rails 3.1+ Bundler.require statement to config/application.rb
  (properly enabling the :assets group)
* Move handlebars_assets gem into the :assets group where it belongs. :)
* Downgrade sass-rails to 3.1.4 since enabling the :assets group exposed
  a known bug in sass-rails ~> 3.1.5 [rails/sass-rails#78].
Refactor sass/scss stylesheets to use Rails asset helpers

Now that sass-rails and the asset pipeline work, we should use the
asset helpers Rails gives us rather than hard-coding
url("/assets/filename.png") for loading assets from sass/scss
stylesheets.
Make Capistrano precompile assets on deploy

This is straight out of the Rails guide. :)

Capistrano (v2.8.0 and above) includes a recipe to handle asset
precompiling in deployment. Since Gemfile.lock says we're using
v2.9.0 anyway, we should be using this to make life easier for
podmins who use Capistrano to deploy. :)
Remove jquery_ujs from main.js manifest

Since jquery and jquery_ujs are now included by the jquery_include_tag
helper (see commit 9e752585), they shouldn't be included by the asset
pipeline in our javascript manifests. :)
Precompile contact-list.js

Add contact-list.js to the list of precompiled assets.

contact-list.js is required to display user serarch results, but was not
precompiled by default (in jammit or in the asset pipeline), which causes
a 500 error on Heroku.
Make static error pages load images from /assets
Make the Mention button work with the asset pipeline

* Fix the javascript_include_tag in the status_messages/new view
* Precompile pubhlsiher.js and jquery.textchange.min.js

This fixes a 500 error that was being thrown when the Mention button
was clicked, due to the above two javascripts not being precompiled
and a javascript include that needed to be updated to load
jquery.textchange.js from the correct path.
Precompile more Javascript assets

This should be the last of them, I've gone through every view and made sure
that every javascript file included by a javascript_include_tag is now on the
list of assets to precompile.
update new js files