haml always in ugly mode + refactor theme files section in admin

This commit is contained in:
dinedine 2010-09-22 14:50:01 +02:00
parent 28ade83ab9
commit 1e1c3bd97b
13 changed files with 76 additions and 18 deletions

View File

@ -24,6 +24,8 @@ gem 'RedCloth'
gem 'inherited_resources', '1.1.2'
gem 'custom_fields', :git => 'git://github.com/locomotivecms/custom_fields.git'
gem 'jeweler'
gem 'delayed_job', '2.1.0.pre2'
gem 'delayed_job_mongoid', '1.0.0.rc'
# Development environment
group :development do

View File

@ -63,7 +63,7 @@ GEM
arel (1.0.1)
activesupport (~> 3.0.0)
autotest (4.3.2)
aws (2.3.20)
aws (2.3.21)
http_connection
uuidtools
xml-simple
@ -84,17 +84,23 @@ GEM
columnize (0.3.1)
configuration (1.1.0)
crack (0.1.8)
cucumber (0.8.5)
cucumber (0.9.0)
builder (~> 2.1.2)
diff-lcs (~> 1.1.2)
gherkin (~> 2.1.4)
json_pure (~> 1.4.3)
term-ansicolor (~> 1.0.4)
gherkin (~> 2.2.2)
json (~> 1.4.6)
term-ansicolor (~> 1.0.5)
cucumber-rails (0.3.2)
cucumber (>= 0.8.0)
culerity (0.2.12)
daemons (1.1.0)
database_cleaner (0.5.2)
delayed_job (2.1.0.pre2)
activesupport (~> 3.0)
daemons
delayed_job_mongoid (1.0.0.rc)
delayed_job (~> 2.1)
mongoid (~> 2.0)
devise (1.1.2)
bcrypt-ruby (~> 2.1.2)
warden (~> 0.10.7)
@ -113,17 +119,19 @@ GEM
activesupport (>= 3.0.0beta3)
gem_plugin (0.2.3)
gemcutter (0.6.1)
gherkin (2.1.5)
gherkin (2.2.3)
json (~> 1.4.6)
term-ansicolor (~> 1.0.5)
trollop (~> 1.16.2)
git (1.2.5)
growl-glue (1.0.7)
haml (3.0.18)
has_scope (0.5.0)
heroku (1.10.2)
heroku (1.10.5)
json_pure (>= 1.2.0, < 1.5.0)
launchy (~> 0.3.2)
rest-client (~> 1.4.0)
http_connection (1.3.0)
http_connection (1.3.1)
httparty (0.6.1)
crack (= 0.1.8)
i18n (0.4.1)
@ -134,6 +142,7 @@ GEM
gemcutter (>= 0.1.0)
git (>= 1.2.5)
rubyforge (>= 2.0.0)
json (1.4.6)
json_pure (1.4.6)
launchy (0.3.7)
configuration (>= 0.0.5)
@ -216,7 +225,7 @@ GEM
rubyzip
spork (0.8.4)
term-ansicolor (1.0.5)
thor (0.14.0)
thor (0.14.1)
treetop (1.4.8)
polyglot (>= 0.3.1)
trollop (1.16.2)
@ -248,6 +257,8 @@ DEPENDENCIES
cucumber-rails
custom_fields!
database_cleaner
delayed_job (= 2.1.0.pre2)
delayed_job_mongoid (= 1.0.0.rc)
devise (= 1.1.2)
factory_girl_rails
fastthread

View File

@ -1,12 +1,14 @@
module Admin
class SnippetsController < BaseController
sections 'settings'
sections 'settings', 'theme_assets'
respond_to :json, :only => :update
def index
@snippets = current_site.snippets.order_by([[:name, :asc]])
def destroy
destroy! do |format|
format.html { redirect_to admin_theme_assets_url }
end
end
end

View File

@ -10,13 +10,15 @@ module Admin
respond_to :json, :only => [:create, :update]
def index
assets = current_site.theme_assets.all
assets = current_site.theme_assets.all.to_a
@non_image_assets = assets.find_all { |a| a.stylesheet? || a.javascript? }
@image_assets = assets.find_all { |a| a.image? }
@flash_assets = assets.find_all { |a| a.movie? }
if request.xhr?
render :action => 'images', :layout => false and return
else
@snippets = current_site.snippets.order_by([[:name, :asc]]).all.to_a
end
end

View File

@ -1,5 +1,5 @@
%ul
= admin_submenu_item 'site', edit_admin_current_site_url
= admin_submenu_item 'snippets', admin_snippets_url
/ = admin_submenu_item 'snippets', admin_snippets_url
= admin_submenu_item 'theme_assets', admin_theme_assets_url
= admin_submenu_item 'account', edit_admin_my_account_url

View File

@ -1,4 +1,16 @@
/ - per_row = local_assigns[:per_row] || 6
/ - snippet_counter = local_assigns[:snippet_counter] || 0
/
/ %li{ :class => "asset #{'last' if (snippet_counter + 1) % per_row == 0}"}
/ %h4= link_to truncate(snippet.slug, :length => 18), edit_admin_snippet_path(snippet)
/ .image
/ .inside
/ / = vignette_tag(asset)
/ .actions
/ = link_to image_tag('admin/list/icons/cross.png'), admin_snippet_path(snippet), :class => 'remove', :confirm => t('admin.messages.confirm'), :method => :delete
%li
%em
%strong= link_to snippet.name, edit_admin_snippet_path(snippet)
.more
%span!= t('.updated_at')

View File

@ -12,4 +12,4 @@
= render 'form', :f => form
= render 'admin/shared/form_actions', :back_url => admin_snippets_url, :button_label => :update
= render 'admin/shared/form_actions', :back_url => admin_theme_assets_url, :button_label => :update

View File

@ -9,4 +9,4 @@
= render 'form', :f => form
= render 'admin/shared/form_actions', :back_url => admin_snippets_url, :button_label => :create
= render 'admin/shared/form_actions', :back_url => admin_theme_assets_url, :button_label => :create

View File

@ -4,10 +4,20 @@
= render 'admin/shared/menu/settings'
- content_for :buttons do
= admin_button_tag t('admin.snippets.index.new'), new_admin_snippet_url, :class => 'new'
= admin_button_tag :new, new_admin_theme_asset_url, :class => 'new'
%p!= t('.help')
%h3!= t('.snippets')
- if @snippets.empty?
%p.no-items!= t('.no_items', :url => new_admin_snippet_url)
- else
%ul#snippets-list.list
= render @snippets
%br
%h3!= t('.css_and_js')
- if @non_image_assets.empty?
%p.no-items!= t('.no_items', :url => new_admin_theme_asset_url)

View File

@ -0,0 +1 @@
Haml::Template.options[:ugly] = true # improve performance in dev

View File

@ -156,8 +156,9 @@ en:
theme_assets:
index:
title: Listing theme files
help: "Theme assets represent files needed by layouts and snippets. If you need to manage an image gallery, go to the Assets section instead."
help: "The theme files section is the place where you manage the files needed by your layout, ...etc. If you need to manage an image gallery, go to the Assets section instead."
new: new file
snippets: Snippets
css_and_js: Style and javascript
fonts: Fonts
images: Images

View File

@ -156,8 +156,9 @@ fr:
theme_assets:
index:
title: Liste des fichiers du thème
help: "Les fichiers du thème sont utilisés par les gabarits et les snippets. Si vous avez besoin d'une galerie d'images, la section Média est plus adéquate."
help: "Les fichiers du thème sont utilisés pour construire le gabarit de vos pages. Si vous avez besoin d'une galerie d'images, la section Média est plus adéquate."
new: nouveau fichier
snippets: Snippets
css_and_js: Style et javascript
images: Images
flashes: Flash

View File

@ -120,6 +120,22 @@ div#uploadAssetsInputQueue { display: none; }
background: transparent url(/images/admin/list/item-right.png) no-repeat right 0;
}
/* ___ snippets ___ */
#snippets-list { margin-left: 40px; }
#snippets-list li { background: none; }
#snippets-list li em {
background-position: left 0px;
}
#snippets-list li strong {
margin-left: 18px;
display: block;
height: 31px;
background: transparent url(/images/admin/list/item-right.png) no-repeat right 0;
}
/* ___ pages ___ */