Merge pull request #306 from wvengen/feature-styling
allow foodcoops to add custom css
This commit is contained in:
commit
97dc090e4d
5 changed files with 37 additions and 0 deletions
18
app/controllers/styles_controller.rb
Normal file
18
app/controllers/styles_controller.rb
Normal file
|
@ -0,0 +1,18 @@
|
|||
# Foodcoop-specific styling
|
||||
class StylesController < ApplicationController
|
||||
skip_before_filter :authenticate
|
||||
|
||||
# renders foodcoop css, or 404 if not configured
|
||||
#
|
||||
# When requested with the parameter +md5+, the result is returned
|
||||
# with an expiry time of a week, to leverage caching.
|
||||
def foodcoop
|
||||
css = FoodsoftConfig[:custom_css]
|
||||
if css.blank?
|
||||
render text: nil, content_type: 'text/css', status: 404
|
||||
else
|
||||
expires_in 1.week, public:true if params[:md5].present?
|
||||
render text: css, content_type: 'text/css'
|
||||
end
|
||||
end
|
||||
end
|
|
@ -219,4 +219,17 @@ module ApplicationHelper
|
|||
end
|
||||
end
|
||||
|
||||
# @return [String] path to foodcoop CSS style (with MD5 parameter for caching)
|
||||
def foodcoop_css_path(options={})
|
||||
super(options.merge({md5: Digest::MD5.hexdigest(FoodsoftConfig[:custom_css])}))
|
||||
end
|
||||
|
||||
# @return [String] stylesheet tag for foodcoop CSS style (+custom_css+ foodcoop config)
|
||||
# @see #foodcoop_css_path
|
||||
def foodcoop_css_tag(options={})
|
||||
unless FoodsoftConfig[:custom_css].blank?
|
||||
stylesheet_link_tag foodcoop_css_path, media: 'all'
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
//%link(href="images/favicon.ico" rel="shortcut icon")
|
||||
|
||||
= yield(:head)
|
||||
= foodcoop_css_tag
|
||||
|
||||
%body
|
||||
= yield
|
||||
|
|
|
@ -86,6 +86,9 @@ default: &defaults
|
|||
# Page footer (html allowed). Default is a Foodsoft footer. Set to `blank` for no footer.
|
||||
#page_footer: <a href="http://www.foodcoop.test/">FC Test</a> is supported by <a href="http://www.hoster.test/">Hoster</a>.
|
||||
|
||||
# Custom css for the foodcoop
|
||||
#custom_css: 'body { background-color: #fcffba; }'
|
||||
|
||||
# email address to be used as sender
|
||||
email_sender: foodsoft@foodcoop.test
|
||||
|
||||
|
|
|
@ -24,6 +24,8 @@ Foodsoft::Application.routes.draw do
|
|||
match '/login/accept_invitation/:token' => 'login#accept_invitation', as: :accept_invitation, via: [:get, :post]
|
||||
resources :sessions, :only => [:new, :create, :destroy]
|
||||
|
||||
get '/foodcoop.css' => 'styles#foodcoop', :as => 'foodcoop_css'
|
||||
|
||||
########### User specific
|
||||
|
||||
get '/home/profile', :as => 'my_profile'
|
||||
|
|
Loading…
Reference in a new issue