Skip to content

Commit

Permalink
Added support for versions_list
Browse files Browse the repository at this point in the history
  • Loading branch information
gaspard committed Apr 29, 2013
1 parent fbf1217 commit a28cd6c
Show file tree
Hide file tree
Showing 9 changed files with 104 additions and 78 deletions.
3 changes: 2 additions & 1 deletion History.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
* Added file upload support from zena remote API.
* Added 'content_type' regexp to force virtual class on Document creation. <== TODO: Document
* Extended "create group" in vclass to be "allow group" (edit).
* Added support for [versions_list] to display list of versions and status.

* Minor changes
* Support for raw html in zazen with '<notextile>' or '<html>' tag. Must be allowed with notextile='true' on [zazen] tag.
Expand All @@ -18,7 +19,7 @@

* Major changes
* Better support for Passenger (deploy receipt, asset host)
* Support for 'sortable' <== TODO: Document
* Support for 'sortable'
* html_escape all properties by default
* Better support for Passenger (default deployment method now)
* Simplified caching (using cachestamp in filename)
Expand Down
7 changes: 5 additions & 2 deletions app/controllers/nodes_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -120,8 +120,11 @@ def zafu
request.method = 'GET' if request.method == 'POST'

@node = visitor.find_node(nil, params[:id], nil, request)

return self.update if params[:method] == 'put'
# security risk with ACL (change an object before display with extended rights). Must check no ACL before
# preview. Only enable with proper security if this is really needed.
# if params['node']
# @node.attributes = secure(Node) {Node.transform_attributes(params['node'], @node, true)}
# end
respond_to do |format|
format.js { render :action => 'show' }
end
Expand Down
2 changes: 1 addition & 1 deletion config/gems.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ simple_xlsx_writer: # spreadsheet
querybuilder: '= 1.2.1'
yamltest: '= 0.7.0'
safe_yaml: '= 0.8.0'
rubyless: '= 0.8.9'
rubyless: '= 0.8.10'
property: '= 2.3.2'
versions: '= 0.3.1'

Expand Down
5 changes: 4 additions & 1 deletion lib/zena/use/action.rb
Original file line number Diff line number Diff line change
Expand Up @@ -268,7 +268,10 @@ def filter_actions
end
end
end


def r_versions_list
out "<%= render :partial=>'versions/list' %>"
end

# TODO: test
def r_swap
Expand Down
40 changes: 25 additions & 15 deletions lib/zena/use/ajax.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,13 @@ module ViewMethods
# to avoid the clash with Rails' dom_id method.
def ndom_id(node = @node, append_form = true)
if node.kind_of?(Node) && !node.new_record?
if params[:action] == 'create' && !params[:udom_id]
if params[:action] == 'create' && !params[:udom_id] && !params[:s]
# !params[:s] is to not use this when executing Zena.post

# We cannot filter with params[:zadd] because this breaks when editing in lists.
return "#{params[:dom_id]}_#{node.zip}"
end
elsif append_form && node.kind_of?(Node) && params[:zadd]
elsif append_form && node.kind_of?(Node) && params[:zadd]
return "#{params[:dom_id]}_#{node.zip.to_i}"
end

Expand Down Expand Up @@ -68,7 +71,7 @@ def update_page_content(page, obj)
end
end
end
page.replace params[:udom_id], :file => template_path_from_template_url('', params[:u_url])
page.replace params[:udom_id], :file => template_path_from_template_url('', params[:u_url] || params[:t_url])
if params[:upd_both]
@dom_id = params[:dom_id]
page.replace params[:dom_id], :file => template_path_from_template_url
Expand All @@ -92,19 +95,26 @@ def update_page_content(page, obj)
page.replace params[:dom_id], :file => template_path_from_template_url
page << "$('#{params[:dom_id]}_form_t').focusFirstElement();"
when 'create'
pos = params[:position] || :before
ref = params[:reference] || "#{params[:dom_id]}_add"
page.insert_html pos.to_sym, ref, :file => template_path_from_template_url
if obj.kind_of?(Node)
@node = obj.parent.new_child(:class => obj.class)
if params[:zadd]
# ADD WITH FORM...
pos = params[:position] || :before
ref = params[:reference] || "#{params[:dom_id]}_add"
page.insert_html pos.to_sym, ref, :file => template_path_from_template_url
if obj.kind_of?(Node)
@node = obj.parent.new_child(:class => obj.class)
else
instance_variable_set("@#{base_class.to_s.underscore}", obj.clone)
end
page.replace ndom_id, :file => template_path_from_template_url('_form')
if params[:done]
page << params[:done]
elsif params[:zadd]
page.toggle "#{params[:dom_id]}_0", "#{params[:dom_id]}_add"
end
else
instance_variable_set("@#{base_class.to_s.underscore}", obj.clone)
end
page.replace ndom_id, :file => template_path_from_template_url('_form')
if params[:done]
page << params[:done]
elsif params[:zadd]
page.toggle "#{params[:dom_id]}_0", "#{params[:dom_id]}_add"
# Zena.post operation
page.replace ndom_id, :file => template_path_from_template_url
page << params[:done] if params[:done]
end
when 'update'
page.replace ndom_id, :file => template_path_from_template_url
Expand Down
2 changes: 1 addition & 1 deletion lib/zena/use/zafu_safe_definitions.rb
Original file line number Diff line number Diff line change
Expand Up @@ -179,7 +179,7 @@ def self.join_proc
safe_method_for Number, :fmt => {:class => String, :pre_processor => true}
safe_method_for Number, [:fmt, Number] => {:class => String, :pre_processor => true}

safe_method_for Range, :to_a => {:class => [Number], :pre_processor => true}
safe_method_for Range, :to_a => {:class => [Number]}

safe_method_for NilClass, :to_f => {:class => Number, :pre_processor => true}
safe_method_for NilClass, :to_i => {:class => Number, :pre_processor => true}
Expand Down
6 changes: 5 additions & 1 deletion test/integration/zafu_compiler/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -90,4 +90,8 @@ swap_in_each_with_block:

hand_made_swap:
src: "<r:link update='_page' node[origin]='next_in_list(origin, \"todo,done\")' action='update'/>"
tem: "/node\[origin\]. => next_in_list_s\(@node.prop\['origin'\].*todo,done.*method:.put./"
tem: "/node\[origin\]. => next_in_list_s\(@node.prop\['origin'\].*todo,done.*method:.put./"

versions_list:
src: "<r:versions_list/>"
res: "/td class=\"date\">2006-03-10</td>/"
7 changes: 6 additions & 1 deletion test/integration/zafu_compiler/safe_definitions.yml
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,12 @@ range:
x: 4
src: "<r:void do='(0..params[:x].to_i).to_a'><span do='each' join=' ' do='this'/></r:void>"
res: '<span>0</span> <span>1</span> <span>2</span> <span>3</span> <span>4</span>'


range_literal:
src: "<r:void do='(0..4).to_a'><span do='each' join=' ' do='this'/></r:void>"
tem: '/\(0..4\)/'
res: '<span>0</span> <span>1</span> <span>2</span> <span>3</span> <span>4</span>'

hash_to_params:
context:
q:
Expand Down
110 changes: 55 additions & 55 deletions zena.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Gem::Specification.new do |s|

s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
s.authors = ["Gaspard Bucher"]
s.date = %q{2013-04-16}
s.date = %q{2013-04-23}
s.default_executable = %q{zena}
s.description = %q{zena is a Ruby on Rails CMS (content managment system) with a focus on usability, ease of customization and web 2.0 goodness (application like behaviour).}
s.email = %q{gaspard@teti.ch}
Expand Down Expand Up @@ -2474,87 +2474,87 @@ Gem::Specification.new do |s|
s.specification_version = 3

if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
s.add_runtime_dependency(%q<rails>, ["= 2.3.18"])
s.add_runtime_dependency(%q<hpricot>, [">= 0"])
s.add_runtime_dependency(%q<shoulda>, ["= 2.10.3"])
s.add_runtime_dependency(%q<gem_plugin>, [">= 0"])
s.add_runtime_dependency(%q<uuidtools>, ["= 2.0.0"])
s.add_runtime_dependency(%q<fast_gettext>, ["~> 0.4.16"])
s.add_runtime_dependency(%q<will_paginate>, ["~> 2.3.12"])
s.add_runtime_dependency(%q<simple_xlsx_writer>, [">= 0"])
s.add_runtime_dependency(%q<shoulda>, ["= 2.10.3"])
s.add_runtime_dependency(%q<RedCloth>, ["= 3.0.4"])
s.add_runtime_dependency(%q<yamltest>, ["= 0.7.0"])
s.add_runtime_dependency(%q<safe_yaml>, ["= 0.8.0"])
s.add_runtime_dependency(%q<tzinfo>, [">= 0"])
s.add_runtime_dependency(%q<json>, ["= 1.5.1"])
s.add_runtime_dependency(%q<syntax>, ["= 1.0.0"])
s.add_runtime_dependency(%q<authlogic>, ["= 2.1.3"])
s.add_runtime_dependency(%q<gettext>, ["= 2.1.0"])
s.add_runtime_dependency(%q<property>, ["= 2.3.2"])
s.add_runtime_dependency(%q<daemons>, [">= 0"])
s.add_runtime_dependency(%q<versions>, ["= 0.3.1"])
s.add_runtime_dependency(%q<fast_gettext>, ["~> 0.4.16"])
s.add_runtime_dependency(%q<uuidtools>, ["= 2.0.0"])
s.add_runtime_dependency(%q<querybuilder>, ["= 1.2.1"])
s.add_runtime_dependency(%q<ruby-recaptcha>, ["= 1.0.3"])
s.add_runtime_dependency(%q<gem_plugin>, [">= 0"])
s.add_runtime_dependency(%q<tzinfo>, [">= 0"])
s.add_runtime_dependency(%q<differ>, ["= 0.1.2"])
s.add_runtime_dependency(%q<rubyless>, ["= 0.8.9"])
s.add_runtime_dependency(%q<rubyless>, ["= 0.8.10"])
s.add_runtime_dependency(%q<syntax>, ["= 1.0.0"])
s.add_runtime_dependency(%q<rails>, ["= 2.3.18"])
s.add_runtime_dependency(%q<querybuilder>, ["= 1.2.1"])
s.add_runtime_dependency(%q<open4>, [">= 0"])
s.add_runtime_dependency(%q<safe_yaml>, ["= 0.8.0"])
s.add_runtime_dependency(%q<differ>, ["= 0.1.2"])
s.add_runtime_dependency(%q<hpricot>, [">= 0"])
s.add_runtime_dependency(%q<httmultiparty>, ["= 0.3.8"])
s.add_runtime_dependency(%q<gettext>, ["= 2.1.0"])
s.add_runtime_dependency(%q<simple_xlsx_writer>, [">= 0"])
s.add_runtime_dependency(%q<jeweler>, [">= 0"])
s.add_runtime_dependency(%q<property>, ["= 2.3.2"])
s.add_runtime_dependency(%q<RedCloth>, ["= 3.0.4"])
s.add_runtime_dependency(%q<authlogic>, ["= 2.1.3"])
s.add_runtime_dependency(%q<daemons>, [">= 0"])
else
s.add_dependency(%q<rails>, ["= 2.3.18"])
s.add_dependency(%q<hpricot>, [">= 0"])
s.add_dependency(%q<shoulda>, ["= 2.10.3"])
s.add_dependency(%q<gem_plugin>, [">= 0"])
s.add_dependency(%q<uuidtools>, ["= 2.0.0"])
s.add_dependency(%q<fast_gettext>, ["~> 0.4.16"])
s.add_dependency(%q<will_paginate>, ["~> 2.3.12"])
s.add_dependency(%q<simple_xlsx_writer>, [">= 0"])
s.add_dependency(%q<shoulda>, ["= 2.10.3"])
s.add_dependency(%q<RedCloth>, ["= 3.0.4"])
s.add_dependency(%q<yamltest>, ["= 0.7.0"])
s.add_dependency(%q<safe_yaml>, ["= 0.8.0"])
s.add_dependency(%q<tzinfo>, [">= 0"])
s.add_dependency(%q<json>, ["= 1.5.1"])
s.add_dependency(%q<syntax>, ["= 1.0.0"])
s.add_dependency(%q<authlogic>, ["= 2.1.3"])
s.add_dependency(%q<gettext>, ["= 2.1.0"])
s.add_dependency(%q<property>, ["= 2.3.2"])
s.add_dependency(%q<daemons>, [">= 0"])
s.add_dependency(%q<versions>, ["= 0.3.1"])
s.add_dependency(%q<fast_gettext>, ["~> 0.4.16"])
s.add_dependency(%q<uuidtools>, ["= 2.0.0"])
s.add_dependency(%q<querybuilder>, ["= 1.2.1"])
s.add_dependency(%q<ruby-recaptcha>, ["= 1.0.3"])
s.add_dependency(%q<gem_plugin>, [">= 0"])
s.add_dependency(%q<tzinfo>, [">= 0"])
s.add_dependency(%q<differ>, ["= 0.1.2"])
s.add_dependency(%q<rubyless>, ["= 0.8.9"])
s.add_dependency(%q<rubyless>, ["= 0.8.10"])
s.add_dependency(%q<syntax>, ["= 1.0.0"])
s.add_dependency(%q<rails>, ["= 2.3.18"])
s.add_dependency(%q<querybuilder>, ["= 1.2.1"])
s.add_dependency(%q<open4>, [">= 0"])
s.add_dependency(%q<safe_yaml>, ["= 0.8.0"])
s.add_dependency(%q<differ>, ["= 0.1.2"])
s.add_dependency(%q<hpricot>, [">= 0"])
s.add_dependency(%q<httmultiparty>, ["= 0.3.8"])
s.add_dependency(%q<gettext>, ["= 2.1.0"])
s.add_dependency(%q<simple_xlsx_writer>, [">= 0"])
s.add_dependency(%q<jeweler>, [">= 0"])
s.add_dependency(%q<property>, ["= 2.3.2"])
s.add_dependency(%q<RedCloth>, ["= 3.0.4"])
s.add_dependency(%q<authlogic>, ["= 2.1.3"])
s.add_dependency(%q<daemons>, [">= 0"])
end
else
s.add_dependency(%q<rails>, ["= 2.3.18"])
s.add_dependency(%q<hpricot>, [">= 0"])
s.add_dependency(%q<shoulda>, ["= 2.10.3"])
s.add_dependency(%q<gem_plugin>, [">= 0"])
s.add_dependency(%q<uuidtools>, ["= 2.0.0"])
s.add_dependency(%q<fast_gettext>, ["~> 0.4.16"])
s.add_dependency(%q<will_paginate>, ["~> 2.3.12"])
s.add_dependency(%q<simple_xlsx_writer>, [">= 0"])
s.add_dependency(%q<shoulda>, ["= 2.10.3"])
s.add_dependency(%q<RedCloth>, ["= 3.0.4"])
s.add_dependency(%q<yamltest>, ["= 0.7.0"])
s.add_dependency(%q<safe_yaml>, ["= 0.8.0"])
s.add_dependency(%q<tzinfo>, [">= 0"])
s.add_dependency(%q<json>, ["= 1.5.1"])
s.add_dependency(%q<syntax>, ["= 1.0.0"])
s.add_dependency(%q<authlogic>, ["= 2.1.3"])
s.add_dependency(%q<gettext>, ["= 2.1.0"])
s.add_dependency(%q<property>, ["= 2.3.2"])
s.add_dependency(%q<daemons>, [">= 0"])
s.add_dependency(%q<versions>, ["= 0.3.1"])
s.add_dependency(%q<fast_gettext>, ["~> 0.4.16"])
s.add_dependency(%q<uuidtools>, ["= 2.0.0"])
s.add_dependency(%q<querybuilder>, ["= 1.2.1"])
s.add_dependency(%q<ruby-recaptcha>, ["= 1.0.3"])
s.add_dependency(%q<gem_plugin>, [">= 0"])
s.add_dependency(%q<tzinfo>, [">= 0"])
s.add_dependency(%q<differ>, ["= 0.1.2"])
s.add_dependency(%q<rubyless>, ["= 0.8.9"])
s.add_dependency(%q<rubyless>, ["= 0.8.10"])
s.add_dependency(%q<syntax>, ["= 1.0.0"])
s.add_dependency(%q<rails>, ["= 2.3.18"])
s.add_dependency(%q<querybuilder>, ["= 1.2.1"])
s.add_dependency(%q<open4>, [">= 0"])
s.add_dependency(%q<safe_yaml>, ["= 0.8.0"])
s.add_dependency(%q<differ>, ["= 0.1.2"])
s.add_dependency(%q<hpricot>, [">= 0"])
s.add_dependency(%q<httmultiparty>, ["= 0.3.8"])
s.add_dependency(%q<gettext>, ["= 2.1.0"])
s.add_dependency(%q<simple_xlsx_writer>, [">= 0"])
s.add_dependency(%q<jeweler>, [">= 0"])
s.add_dependency(%q<property>, ["= 2.3.2"])
s.add_dependency(%q<RedCloth>, ["= 3.0.4"])
s.add_dependency(%q<authlogic>, ["= 2.1.3"])
s.add_dependency(%q<daemons>, [">= 0"])
end
end

0 comments on commit a28cd6c

Please sign in to comment.