diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
index 6e89ce8..d802927 100644
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -454,16 +454,36 @@ module ApplicationHelper
def select_categories(object_name)
object = instance_variable_get("@#{object_name}")
- result = content_tag('h4', _('Categories'))
+ result = content_tag 'h4', _('Categories')
+ result << javascript_tag( 'function open_close_cat( link ) {
+ var div = link.parentNode.getElementsByTagName("div")[0];
+ var end = function(){
+ if ( div.style.display == "none" ) {
+ this.link.className="button icon-button icon-down"
+ } else {
+ this.link.className="button icon-button icon-up"
+ }
+ }
+ Effect.toggle( div, "slide", { link:link, div:div, afterFinish:end } )
+ }')
environment.top_level_categories.each do |toplevel|
toplevel.map_traversal do |cat|
if cat.top_level?
+ result << '
'
+ result << icon_button( :down, _('open'), '#', :onclick => 'open_close_cat(this); return false' )
result << content_tag('h5', toplevel.name)
+ result << '
'
else
checkbox_id = "#{object_name}_#{cat.full_name.downcase.gsub(/\s+|\//, '_')}"
- result << content_tag('label', check_box_tag("#{object_name}[category_ids][]", cat.id, object.category_ids.include?(cat.id), :id => checkbox_id) + cat.full_name_without_leading(1), :for => checkbox_id)
+ result << content_tag('li', labelled_check_box(
+ cat.full_name_without_leading(1, " → "),
+ "#{object_name}[category_ids][]", cat.id,
+ object.category_ids.include?(cat.id), :id => checkbox_id,
+ :onchange => 'this.parentNode.className=(this.checked?"cat_checked":"")' ),
+ :class => ( object.category_ids.include?(cat.id) ? 'cat_checked' : '' ) ) + "\n"
end
end
+ result << '
'
end
content_tag('div', result)
diff --git a/public/designs/themes/default/stylesheets/controller_cms.css b/public/designs/themes/default/stylesheets/controller_cms.css
new file mode 100644
index 0000000..17ff475
--- /dev/null
+++ b/public/designs/themes/default/stylesheets/controller_cms.css
@@ -0,0 +1,27 @@
+
+.categorie_box {
+ -moz-border-radius: 4px;
+ border: 1px solid #729FCF;
+ margin-bottom: 2px;
+ padding: 2px 0px;
+}
+
+#content .categorie_box h5 {
+ margin: 0px;
+ padding: 0px;
+ line-height: 22px;
+}
+
+#content ul.categories {
+ padding: 5px 4px 3px 4px;
+}
+
+ul.categories li {
+ -moz-border-radius: 9px;
+ border-bottom: 1px solid #FFF;
+}
+
+ul.categories li.cat_checked {
+ border-bottom: 1px solid #729FCF;
+}
+
diff --git a/public/stylesheets/controller_cms.css b/public/stylesheets/controller_cms.css
index c337919..abe0add 100644
--- a/public/stylesheets/controller_cms.css
+++ b/public/stylesheets/controller_cms.css
@@ -42,3 +42,20 @@
top: -5px;
}
+.categorie_box .button {
+ float: left;
+}
+.categorie_box h5 {
+ line-height: 24px;
+}
+
+#content ul.categories,
+#content ul.categories li {
+ margin: 0px;
+ padding: 1px 0px 1px 4px;
+ list-style: none;
+}
+ul.categories li.cat_checked {
+ background: #B8CFE7;
+}
+
--
libgit2 0.21.2