lib/orange/resources/page_resource.rb in orange-0.0.12 vs lib/orange/resources/page_resource.rb in orange-0.0.13
- old
+ new
@@ -5,16 +5,37 @@
def afterLoad
orange[:admin, true].add_link("Content", :resource => @my_orange_name, :text => 'Pages')
options[:sitemappable] = true
end
+
+ def publish(packet, *opts)
+ if packet.request.post?
+ m = model_class.get(packet['route.resource_id'])
+ if m
+ params = {}
+ params[:published] = true
+ m.update(params)
+ params = m.attributes.merge(params)
+ params.delete(:id)
+ max = m.versions.max(:version) || 0
+ m.versions.new(params.merge(:version => max + 1))
+ m.save
+ end
+ end
+ packet.reroute(@my_orange_name, :orange)
+ end
+
# Creates a new model object and saves it (if a post), then reroutes to the main page
# @param [Orange::Packet] packet the packet being routed
def new(packet, *opts)
if packet.request.post?
- m = model_class.new(packet.request.params[@my_orange_name.to_s])
- m.versions.new(packet.request.params[@my_orange_name.to_s].merge(:version => 1))
+ params = packet.request.params[@my_orange_name.to_s]
+ params[:published] = false
+ m = model_class.new(params)
+ m.orange_site = packet['site']
+ # m.versions.new(params.merge(:version => 1))
m.save
end
packet.reroute(@my_orange_name, :orange)
end
@@ -22,12 +43,13 @@
# @param [Orange::Packet] packet the packet being routed
def save(packet, *opts)
if packet.request.post?
m = model_class.get(packet['route.resource_id'])
if m
- m.update(packet.request.params[@my_orange_name.to_s])
- max = m.versions.max(:version)
- m.versions.new(packet.request.params[@my_orange_name.to_s].merge(:version => max + 1))
+ params = packet.request.params[@my_orange_name.to_s]
+ params[:published] = false
+ m.update(params)
+ m.orange_site = packet['site']
m.save
end
end
packet.reroute(@my_orange_name, :orange)
end
\ No newline at end of file