Wheelhouse CMS 1.1.3

Posted on July 30th, 2014

Author: Sam Pohlenz

Just a few small fixes in today's release of Wheelhouse CMS 1.1.3.

Release Notes

  • Fixed theme asset precompilation in Rails 3.x when config.assets.initialize_on_precompile = false
  • Improve placeholders polyfill (uses native behaviour when possible)
  • Add support for custom classes on section dropdown sublabels

Wheelhouse CMS 1.1.2

Posted on June 11th, 2014

Author: Sam Pohlenz

The latest release of Wheelhouse CMS, version 1.1.2, has just been pushed to the gem servers. As usual, run bundle update wheelhouse from within your Rails application to upgrade.

Release Notes

  • Fixed handler routing in Rails 3.2.18, 4.0.5 and 4.1.1
  • Fixed editor content background in Firefox
  • Improved font rendering in Firefox on Mac OS X
  • Fixed popup stacking order
  • Added :editor => false option to content fields to disable the WYSIWYG editor

Wheelhouse CMS 1.1.1 released

Posted on April 14th, 2014

Author: Sam Pohlenz

Wheelhouse CMS 1.1.1 is now available. This release is now fully compatible with Rails 4.1 which was released last week. To upgrade, run bundle update wheelhouse from within your Rails application.

Release Notes

  • Fixed compatibility with Rails 4.1.0 final release
  • Loop collections no longer yield empty items to the template
    (can be overridden by passing :include_blank => true as an option to loop)
  • Allow multiple classes to be applied to elements within editor
  • Allow i- and inline- as prefixes for inline style class names
  • Added default admin.css.sass for newly generated themes
  • Minor visual fixes to Media Library and media popups

Wheelhouse CMS 1.1 now available

Posted on March 11th, 2014

Author: Sam Pohlenz

The biggest Wheelhouse release since version 1.0 is now finally here. If you have purchased an existing Wheelhouse CMS license, this upgrade is completely free. Otherwise, click here to sign up for a free 30-day trial.

As usual, updating is as easy as running bundle update wheelhouse from within your Rails application directory.

Rails 4 support

Better late than never, Wheelhouse now includes full support for Rails 4. This includes the latest stable release (currently 4.0.3) as well as the release candidate for version 4.1.0.

Rails 4 is now the recommended version of Rails to use with Wheelhouse CMS (Rails 3.1 and 3.2 will continue to be supported).

Revamped link dialog

Among the numerous UI improvements in Wheelhouse CMS 1.1, probably the most significant is the revamped link dialog, which makes it much easier to create links to other pages within your site (no more having to memorize the full path).

Revamped Link Dialog

More improvements and refinements are planned for the link page chooser and the popups in general, so keep an eye out for future releases.

Other UI improvements

Manage-Site-Dropdown

In Wheelhouse CMS 1.1, the Manage Site link now acts as a dropdown menu, allowing you to easily create new pages from anywhere within the admin area. Plugins can also take advantage of this with custom dropdown menus to place more functionality at your fingertips.

The drag handles for collection fields have been redesigned to make it clearer that they are draggable. The sidebar has also been improved and will scroll with the page when editing long forms, making it easier (and faster) to preview or publish your changes.

Release Notes

  • Added support for Rails 4.x
  • Added page chooser to link dialog
  • Added section dropdowns with new resources underneath Manage Site dropdown
  • Affixed sidebar to scroll alongside content
  • Added file template content type
  • Added file and file collection field types to Wheelhouse form builder
  • Added Wheelhouse::Media::FileReference type
  • Move Wheelhouse::Image class to Wheelhouse::Media::ImageReference (alias remains)
  • Added icons to Choose Image/File buttons
  • Added mobile responsive stylesheets for login forms
  • Added config.wheelhouse.admin_path configuration option to set the admin root
    (defaults to
    "/admin")
  • Added config.wheelhouse.force_ssl configuration option to force SSL within the admin
    (defaults to false)
  • Added config.wheelhouse.editor configuration hash to set options to pass to TinyMCE
  • Added support for subfolder hosting via relative_url_root configuration
  • Allow theme stylesheets and javascripts to access files from all asset pipeline load paths
  • Convert path dispatcher middleware to Rack application
  • Added case-insensitive path dispatching with 301 redirect to correct case
  • Improved logging of template processing errors
  • Prevent duplicate URLs from appearing within the sitemap
  • Fixed content field database serialization to not save dummy fields
  • Updated Dragonfly dependency to 1.0
  • Updated theme generator jQuery version to 1.11.0
  • Updated admin jQuery version to 1.11.0
  • Updated admin Backbone version to 1.1.0
  • Removed support for Internet Explorer 7

Wheelhouse CMS 1.0.18 released

Posted on November 8th, 2013

Author: Sam Pohlenz

Wheelhouse CMS 1.0.18 is now available with a number of bugfixes and minor improvements. The 1.1 branch is still undergoing testing but should be available soon.

As usual, run bundle update wheelhouse from within your Rails application to update to this release.

Release Notes

  • Fixed a bug where content fields were cleared when switching tabs
  • Fixed drag and drop file upload on Media Library drop area
  • Fixed a JavaScript error when opening the Insert Media popup for the first time
  • Fixed navigation helper to add child-current class even when a current child is not to be included in the navigation tree
  • Fixed navigation helper to allow a node not in the navigation to be a navigation root
  • Fixed Site Overview to always show a node's actual show in navigation status, regardless of its children (was previously dependent on child's show in navigation status)
  • Fixed automatic path generation for pages positioned within folders
  • Fixed empty selector warnings when compiling CSS files
  • Fixed Google Maps media thumbnailing when using HTTPS URLs
  • Update YouTube thumbnailing to support latest embed format
  • Added Media Library icon for Keyhole Markup Language (KML/KMZ) files
  • Added Media Library icon for presentation (PowerPoint/Keynote) files
  • Added clear_breadcrumbs! class method to admin controllers
  • Allow resource handler routes to set options (e.g. segment constraints)
  • Apply admin table column classes to the table header
  • Optimized image assets (reduced total admin assets size by ~20%)

Wheelhouse CMS 1.0.17 released

Posted on August 8th, 2013

Author: Sam Pohlenz

Wheelhouse CMS 1.0.17 has just been pushed to the gem servers. To update to this release, simply run bundle update wheelhouse from within your Rails application.

Release Notes

  • Audited gem dependencies to ensure versions are pinned to major/minor releases
  • Ensure that pages with the NOINDEX meta flag set do not appear in the sitemap.xml
  • Add a plugin hook (:editor) to allow plugins to add customizations to the editor JavaScript
  • Fixed a bug where will_paginate was not being properly initialized
  • Fixed a bug with field values containing double quotation marks
  • Fixed a bug with image fields referencing the wrong image within multiple loop fields

Security Notice

A vulnerability in Dragonfly < 0.9.12 potentially allows an attacker to run arbitrary code (see here for details). If you are currently running an affected version of Dragonfly, it is strongly recommended to update as soon as possible.

Updating to Wheelhouse 1.0.17 will ensure that all dependencies are running the sufficient versions with no currently known vulnerabilities. However if you are stil on an older version of Wheelhouse, please run bundle update dragonfly and ensure that Dragonfly is updated to version 0.9.14 or higher.

I apologise for the very late notice of this vulnerability. As part of the gem audit in this release, I am tracking all dependencies closely to ensure that any future security notices are announced here as soon as possible.

Wheelhouse 1.1 Development

This will hopefully be the last release in the 1.0 branch (security updates notwithstanding). Development on the 1.1 branch is coming along nicely and most noteably includes support for Rails 4 as well as some significant UI enhancements. Stay tuned.

RubyConf AU Sale Now On

Posted on February 20th, 2013

Author: Sam Pohlenz

RubyConf

To mark the start of the first Australian RubyConf, Wheelhouse CMS is on sale for the duration of the conference. Until Monday 25th February all license types are available for 15% off the regular price, whether you are a conference attendee or not.

If you're at RubyConf and still trying to find the perfect content management system, I'd love to talk. You can either find me at the conference or get in touch to arrange a demo or chat.

25th February Update: Due to the success of the first ever Wheelhouse CMS sale, we're extending it for another week. Get in quick before it ends on 4th March.

New Features in Wheelhouse CMS 1.0.11

Posted on November 26th, 2012

Author: Sam Pohlenz

Since the initial release, Wheelhouse CMS has been undergoing continual improvement. Whilst the focus has mostly been on bug fixes, I wanted to highlight a few new features that have been introduced in the latest version.

Unpublish

Unpublish pages

In case you accidentally publish a page that wasn't ready, it is now possible to unpublish a page or other resource (such as a blog post or form).

If a page is published, the Save Draft button becomes a dropdown menu from where the page can be unpublished.

Send-to-topSend to top/bottom for sortable lists

Inspired by 37signals' double-click scrolling margins, double-clicking the top or bottom half of the drag handle of sortable items (such as looped template items) now sends that item to the top or bottom respectively.

Remove image selection

Remove-Selection

One small final feature to round out the three — images defined in the templates can now be removed by selecting Remove Selection from the image chooser.

This can be useful if you want to remove an optional template image from the page, such as a banner image.

If you'd like to try Wheelhouse CMS, check out the 30-day free trial (no payment details required).

Easy Blog Post Excerpts with Wheelhouse CMS

Posted on October 23rd, 2012

Author: Sam Pohlenz

When setting up a new blog within Wheelhouse CMS, you may be surprised to see somewhat of a minimalist picture when it comes to features such as blogrolls, custom banner images and post excerpts. In actual fact, the powerful templating features of Wheelhouse CMS not only make adding these features to your blog delightfully simple, but also pave the way for a huge amount of customization possibilities.

In this article I'll show you how to add excerpts to your site's blog posts, a feature I've recently incorporated into a couple of my own clients' blogs.

Customizing the post template

The Wheelhouse blog plugin allows you to customize the post template for all views by overriding a single partial. To define a very basic post template, save the following as blog/_post.html.erb within your theme's templates folder:

<article class="post">
<h3><%= post.title %></h3>
<p class="date"><%= post.published_at.to_s(:short) %></p>

<%= post.content %>
</article>

This template will be rendered for each post on the blog index (as well as archives, tags and category pages), as well as when viewing the post in isolation.

The current_page?(post) Rails helper can be used to determine if the user is on a post or index page. Other built-in Rails helpers can also be used, such as link_to_unless_current to only link the post title from the blog index pages.

Adding a content field for excerpts

The other important piece of the puzzle is how to define the post excerpts so that they can be edited by the post author. Wheelhouse's content area helpers give us a huge amount of flexibility here, allowing us to define editable content areas, text fields, images or a combination of these.

To define a short excerpt field, which will appear below the main post content field when editing the post, we can use the following line in the template:

<%= post.content "Excerpt", :rows => 5 %>

Bringing it all together

Combining these concepts, we end up with the following post template:

<article class="post">
<h3><%= link_to_unless_current post.title, post %></h3>
<p class="date"><%= post.published_at.to_s(:short) %></p>

<% if current_page?(post) %>
<%= post.content %>
<% else %>
<%= post.content "Excerpt", :rows => 5 %>
<%= link_to "Read More", post %>
<% end %>
</article>

Which looks like this when editing the post within the Wheelhouse admin:

Blog Post Excerpts

Bonus: automatic excerpts

These fully custom excerpts give the post author complete control as to how the post excerpt should appear. However it requires the post author explicitly enter in the excerpt content, usually by copy and pasting the first few sentences of the post. If we are aren't fussy about the format of the excerpts and just care about their length, we can simply truncate the post content and get the excerpt for free.

Although Rails provides a built-in truncate helper, this unfortunately does not work on HTML output such as the post content. Instead we can use the truncate_html helper by adding it to the Gemfile and using the following code in the post template to produce the excerpt:

<%= truncate_html(post.content, :length => 300) %>
<%= link_to "Read More", post %>

Installing Ruby, Rails & MongoDB on Mountain Lion

Posted on July 28th, 2012

Author: Sam Pohlenz

Updated 5th December 2012 with latest package versions.

After recently updating to OS X 10.8 Mountain Lion, I decided to document the process of getting set up for Ruby on Rails development with MongoDB. Fortunately the process hasn't changed too much from previous versions of Mac OS X.

1. Install Command Line Tools 10.8 for Xcode

In order to compile Ruby with RVM, as well as many Homebrew packages, you'll need a compilation toolchain. If you are doing Mac or iOS development, you may want to install Xcode in its entirety. However if you don't want the hefty Xcode (1.8GB) on your system, the Command Line Tools are a good lightweight (110MB) alternative.

The Command Line Tools installer can be downloaded here (you'll need an Apple ID). After downloading, mount the disk image and run the installer.

2. Install Ruby and Rails using RVM

Note: the following commands should be run as a non-root user (i.e. no sudo).

To install the latest stable version of RVM, run the following from a terminal window:

$ curl -L https://get.rvm.io | bash -s stable

Close and reopen the terminal window. Then install the latest Ruby version with:

$ rvm install 1.9.3

You can confirm this has installed correctly by running:

$ ruby -v
ruby 1.9.3p327 (2012-11-10) [x86_64-darwin12.2.0]

Before installing any gems, I generally disable the slow and unnecessary RDoc and RI generation by creating a ~/.gemrc file with the following:

install: --no-ri --no-rdoc
update: --no-ri --no-rdoc

Then we can install and verify Rails with the following commands:

$ gem install rails
$ rails -v
Rails 3.2.9

3. Install Homebrew & XQuartz (X11)

Homebrew is my preferred way of managing packages in OS X. Homebrew compiles most packages from source and keeps everything nicely managed within /usr/local. It can be installed by running:

$ ruby -e "$(curl -fsSkL raw.github.com/mxcl/homebrew/go)"

X11, which is required for packages such as ImageMagick, was previously bundled with Mac OS X. It is still maintained, but no longer ships with the OS, instead available as XQuartz.

Download XQuartz 2.7.4, mount the disk image and run the installer, as with the Command Line Tools.

4. Install MongoDB

Finally, we can install MongoDB using Homebrew:

$ brew install mongodb
$ mkdir -p ~/Library/LaunchAgents
$ cp /usr/local/Cellar/mongodb/2.2.2-x86_64/homebrew.mxcl.mongodb.plist ~/Library/LaunchAgents/
$ launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist

This will load MongoDB automatically on login, and start it for the first time. We can verify MongoDB is installed correctly by loading the console:

$ mongo
MongoDB shell version: 2.2.2
connecting to: test
>