orange 0.0.12 → 0.0.13

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,12 +1,14 @@
1
1
  require 'dm-timestamps'
2
-
2
+ require 'orange/cartons/site_carton'
3
3
  module Orange
4
- class Page < Orange::Carton
4
+ class Page < Orange::SiteCarton
5
5
  id
6
6
  front do
7
7
  title :title
8
8
  fulltext :body
9
9
  end
10
+ boolean :published, :default => false
11
+
10
12
  property :updated_at, DateTime
11
13
  has n, :versions, "Orange::PageVersion"
12
14
  end
@@ -1,10 +1,12 @@
1
1
  require 'dm-timestamps'
2
+ require 'orange/cartons/site_carton'
2
3
  module Orange
3
- class PageVersion < Orange::Carton
4
+ class PageVersion < Orange::SiteCarton
4
5
  id
5
6
  title :title
6
7
  fulltext :body
7
8
  property :updated_at, DateTime
9
+ boolean :published
8
10
  property :version, Integer, :default => 0
9
11
  belongs_to :orange_page, "Orange::Page"
10
12
  end
@@ -76,7 +76,7 @@ module Orange::Middleware
76
76
  after = packet.session['user.after_login'].blank? ?
77
77
  '/' : packet.session['user.after_login']
78
78
  packet.reroute(after)
79
- false
79
+ return false
80
80
  end
81
81
  packet.reroute('/') if packet['user.id'] # Reroute to index if we're logged in.
82
82
 
@@ -135,12 +135,12 @@ module Orange::Middleware
135
135
  )
136
136
  )
137
137
  packet[:content] = 'Got openID?'
138
- packet.finish
138
+ return packet.finish
139
139
  end
140
140
  # Show login form, if necessary
141
141
  else
142
142
  packet[:content] = orange[:parser].haml('openid_login.haml', packet)
143
- packet.finish
143
+ return packet.finish
144
144
  end
145
145
  end # end handle_openid
146
146
  end
@@ -3,6 +3,7 @@ module Orange
3
3
  call_me :not_found
4
4
  def route(packet)
5
5
  packet[:content] = orange[:parser].haml("404.haml", packet, :resource => self)
6
+ packet[:status] = 404
6
7
  end
7
8
  end
8
9
  end
@@ -7,12 +7,33 @@ module Orange
7
7
  options[:sitemappable] = true
8
8
 
9
9
  end
10
+
11
+ def publish(packet, *opts)
12
+ if packet.request.post?
13
+ m = model_class.get(packet['route.resource_id'])
14
+ if m
15
+ params = {}
16
+ params[:published] = true
17
+ m.update(params)
18
+ params = m.attributes.merge(params)
19
+ params.delete(:id)
20
+ max = m.versions.max(:version) || 0
21
+ m.versions.new(params.merge(:version => max + 1))
22
+ m.save
23
+ end
24
+ end
25
+ packet.reroute(@my_orange_name, :orange)
26
+ end
27
+
10
28
  # Creates a new model object and saves it (if a post), then reroutes to the main page
11
29
  # @param [Orange::Packet] packet the packet being routed
12
30
  def new(packet, *opts)
13
31
  if packet.request.post?
14
- m = model_class.new(packet.request.params[@my_orange_name.to_s])
15
- m.versions.new(packet.request.params[@my_orange_name.to_s].merge(:version => 1))
32
+ params = packet.request.params[@my_orange_name.to_s]
33
+ params[:published] = false
34
+ m = model_class.new(params)
35
+ m.orange_site = packet['site']
36
+ # m.versions.new(params.merge(:version => 1))
16
37
  m.save
17
38
  end
18
39
  packet.reroute(@my_orange_name, :orange)
@@ -24,9 +45,10 @@ module Orange
24
45
  if packet.request.post?
25
46
  m = model_class.get(packet['route.resource_id'])
26
47
  if m
27
- m.update(packet.request.params[@my_orange_name.to_s])
28
- max = m.versions.max(:version)
29
- m.versions.new(packet.request.params[@my_orange_name.to_s].merge(:version => max + 1))
48
+ params = packet.request.params[@my_orange_name.to_s]
49
+ params[:published] = false
50
+ m.update(params)
51
+ m.orange_site = packet['site']
30
52
  m.save
31
53
  end
32
54
  end
@@ -3,17 +3,21 @@
3
3
  = orange[:sitemap, true].sitemap_links(packet, {:slug_me => orange[:sitemap, true].slug_for(model, props)})
4
4
  %form{:action => route_to(model_name, model[:id], 'save'), :method => 'post'}
5
5
  - for prop in props
6
- %p!= view_attribute(prop, model_name, :label => true, :value => model.attribute_get(prop[:name]))
6
+ %p~ view_attribute(prop, model_name, :label => true, :value => model.attribute_get(prop[:name]))
7
7
  %input{:type => 'submit', :value => 'Save Changes'}
8
+ = route_to(model_name, model[:id], 'publish')
9
+ = form_link('Publish', packet.route_to(model_name, model[:id], 'publish'))
8
10
  %h3 Versions
9
- - for version in model.versions
10
- %li
11
- %div.version_container
12
- %span.version_info
13
- %strong Version #{version.version}
14
- %span.version_info
15
- Last Updated: #{version.updated_at}
16
- %span.version_info
17
- %a{:href => route_to(model_name, model[:id], 'edit', "version", version.version)}Edit
11
+ %ul
12
+ %li (Current Draft)
13
+ - for version in model.versions.all(:order => :version.desc, :limit=> 3)
14
+ %li
15
+ .version_container
16
+ %span.version_info
17
+ %strong Version #{version.version}
18
+ %span.version_info
19
+ Last Updated: #{version.updated_at}
20
+ %span.version_info
21
+ %a{:href => route_to(model_name, model[:id], 'edit', "version", version.version)}Edit
18
22
  - else
19
23
  %p Couldn't find the item you're looking for.
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: orange
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.12
4
+ version: 0.0.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Haslem