orange 0.5.4 → 0.5.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/orange-core/core.rb +2 -2
- data/lib/orange-core/resources/model_resource.rb +1 -0
- data/lib/orange-more/news/resources/news_resource.rb +9 -0
- data/lib/orange-more/news/views/news/archive.haml +2 -2
- data/lib/orange-more/news/views/news/latest.haml +2 -2
- data/lib/orange-more/pages/resources/page_resource.rb +10 -9
- data/lib/orange-more/sitemap/resources/sitemap_resource.rb +25 -6
- metadata +2 -2
data/lib/orange-core/core.rb
CHANGED
@@ -203,11 +203,11 @@ module Orange
|
|
203
203
|
# causing the fire. This is passed to each Proc registered.
|
204
204
|
# @return [Boolean] returns false if nothing has been registered for the
|
205
205
|
# event, otherwise true.
|
206
|
-
def fire(event, packet)
|
206
|
+
def fire(event, packet, *args)
|
207
207
|
return false unless @events[event]
|
208
208
|
@events[event].compact!
|
209
209
|
for callback in @events[event]
|
210
|
-
callback.call(packet)
|
210
|
+
callback.call(packet, *args)
|
211
211
|
end
|
212
212
|
true
|
213
213
|
end
|
@@ -141,6 +141,7 @@ module Orange
|
|
141
141
|
before = beforeDelete(packet, m, opts)
|
142
142
|
onDelete(packet, m, opts) if m && before
|
143
143
|
afterDelete(packet, m, opts) if before
|
144
|
+
orange.fire(:model_resource_deleted, packet, {:resource_id => id, :resource => @my_orange_name})
|
144
145
|
end
|
145
146
|
packet.reroute(@my_orange_name, :orange) unless (packet.request.xhr? || no_reroute)
|
146
147
|
end
|
@@ -22,6 +22,15 @@ module Orange
|
|
22
22
|
true
|
23
23
|
end
|
24
24
|
|
25
|
+
def link_for(packet, news)
|
26
|
+
match = news.link.match(/\[(\d+)\]/)
|
27
|
+
if match
|
28
|
+
orange[:sitemap, true].to_href(packet, match[1].to_i)
|
29
|
+
else
|
30
|
+
news.link
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
25
34
|
def sitemap_row(packet, opts = {})
|
26
35
|
do_view(packet, :sitemap_row, opts)
|
27
36
|
end
|
@@ -2,11 +2,11 @@
|
|
2
2
|
- for news in list
|
3
3
|
.news_item
|
4
4
|
%h2.news_title
|
5
|
-
%a{:href => news
|
5
|
+
%a{:href => (resource.link_for(packet, news))} #{news.title}
|
6
6
|
.news_description
|
7
7
|
= news.description
|
8
8
|
%p
|
9
|
-
%a{:href =>
|
9
|
+
%a{:href => (resource.link_for(packet, news)), :class => 'view_story'} View Story »
|
10
10
|
.news_nav
|
11
11
|
- if page > 1
|
12
12
|
%a.newer{:href => "#{archive_url}/page/#{page-1}"} Newer Posts
|
@@ -1,8 +1,8 @@
|
|
1
1
|
- list.each do |news|
|
2
2
|
.news_item
|
3
3
|
%p.news_title
|
4
|
-
%a{:href => news
|
4
|
+
%a{:href => (resource.link_for(packet, news))} #{news.title}
|
5
5
|
.news_description
|
6
6
|
= news.description
|
7
7
|
%p
|
8
|
-
%a{:href =>
|
8
|
+
%a{:href => (resource.link_for(packet, news)), :class => 'view_story'} View Story »
|
@@ -49,18 +49,19 @@ module Orange
|
|
49
49
|
m.versions.new(params.merge(:version => max + 1))
|
50
50
|
m.save
|
51
51
|
|
52
|
-
r = orange[:sitemap, true].routes_for(packet, :resource_id => m.id, :resource => @my_orange_name)
|
52
|
+
r = orange[:sitemap, true].routes_for(packet, :resource_id => m.id, :resource => @my_orange_name, :orange_site_id => m.orange_site.id)
|
53
53
|
# Add route if none.
|
54
54
|
if (r.blank? && orange.loaded?(:sitemap))
|
55
|
+
|
55
56
|
route_hash = {
|
56
|
-
:orange_site_id => m.
|
57
|
+
:orange_site_id => m.orange_site.id,
|
57
58
|
:resource => @my_orange_name,
|
58
59
|
:resource_id => m.id,
|
59
60
|
:slug => orange[:sitemap].slug_for(m, params),
|
60
61
|
:show_in_nav => false,
|
61
62
|
:link_text => "{title}"
|
62
63
|
}
|
63
|
-
parents = orange[:sitemap].routes_for(packet, :resource => '', :resource_id => '', :slug => "pages")
|
64
|
+
parents = orange[:sitemap].routes_for(packet, :resource => '', :resource_id => '', :slug => "pages", :orange_site_id => m.orange_site.id)
|
64
65
|
route_hash[:parent] = parents.first unless parents.blank?
|
65
66
|
orange[:sitemap].add_route_for(packet, route_hash)
|
66
67
|
end
|
@@ -74,7 +75,7 @@ module Orange
|
|
74
75
|
def onNew(packet, params = {})
|
75
76
|
params[:published] = false
|
76
77
|
m = model_class.new(params)
|
77
|
-
m.orange_site = packet['subsite', false] ? packet['subsite'] : packet['site'] unless m.orange_site
|
78
|
+
m.orange_site = (packet['subsite', false] ? packet['subsite'] : packet['site']) unless m.orange_site
|
78
79
|
# m.versions.new(params.merge(:version => 1))
|
79
80
|
m
|
80
81
|
end
|
@@ -82,30 +83,30 @@ module Orange
|
|
82
83
|
# Saves updates to an object specified by packet['route.resource_id'], then reroutes to main
|
83
84
|
# @param [Orange::Packet] packet the packet being routed
|
84
85
|
def onSave(packet, m, params = {})
|
85
|
-
r = orange[:sitemap, true].routes_for(packet, :resource_id => m.id, :resource => @my_orange_name)
|
86
|
+
r = orange[:sitemap, true].routes_for(packet, :resource_id => m.id, :resource => @my_orange_name, :orange_site_id => m.orange_site.id)
|
86
87
|
# Add route if none.
|
87
88
|
if (r.blank? && orange.loaded?(:sitemap))
|
88
89
|
route_hash = {
|
89
|
-
:orange_site_id => m.
|
90
|
+
:orange_site_id => m.orange_site.id,
|
90
91
|
:resource => @my_orange_name,
|
91
92
|
:resource_id => m.id,
|
92
93
|
:slug => orange[:sitemap].slug_for(m, params),
|
93
94
|
:show_in_nav => false,
|
94
95
|
:link_text => "{title}"
|
95
96
|
}
|
96
|
-
parents = orange[:sitemap].routes_for(packet, :resource => '', :resource_id => '', :slug => "pages")
|
97
|
+
parents = orange[:sitemap].routes_for(packet, :resource => '', :resource_id => '', :slug => "pages", :orange_site_id => m.orange_site.id)
|
97
98
|
route_hash[:parent] = parents.first unless parents.blank?
|
98
99
|
orange[:sitemap].add_route_for(packet, route_hash)
|
99
100
|
end
|
100
101
|
if (params["published"] == "1")
|
101
102
|
params["published"] = true
|
102
|
-
m.orange_site = packet['subsite', false] ? packet['subsite'] : packet['site'] unless m.orange_site
|
103
|
+
m.orange_site = (packet['subsite', false] ? packet['subsite'] : packet['site']) unless m.orange_site
|
103
104
|
|
104
105
|
m.update(params)
|
105
106
|
orange[:pages].publish(packet, :no_reroute => true, :model => m)
|
106
107
|
else
|
107
108
|
params["published"] = false
|
108
|
-
m.orange_site = packet['subsite', false] ? packet['subsite'] : packet['site'] unless m.orange_site
|
109
|
+
m.orange_site = (packet['subsite', false] ? packet['subsite'] : packet['site']) unless m.orange_site
|
109
110
|
m.update(params)
|
110
111
|
end
|
111
112
|
end
|
@@ -10,14 +10,33 @@ module Orange
|
|
10
10
|
orange[:radius, true].define_tag "link" do |tag|
|
11
11
|
packet = tag.locals.packet
|
12
12
|
slug = tag.expand
|
13
|
-
|
13
|
+
id = tag.attr['id'] if tag.attr['id']
|
14
|
+
route = orange[:sitemap].find_route(packet, {:id => id}) if id
|
15
|
+
route = orange[:sitemap].find_route(packet, {:slug => slug}) unless route
|
14
16
|
route = orange[:sitemap].find_route(packet, {:link_text => slug}) unless route
|
15
17
|
|
16
|
-
|
17
|
-
link_text = route ? route.link_text : "(Broken link tag)"
|
18
|
-
link_text = tag.attr["text"] if tag.attr["text"]
|
19
|
-
"<a href='#{full_path}'>#{link_text}</a>"
|
18
|
+
orange[:sitemap].to_html(packet, route, tag.attr["text"])
|
20
19
|
end
|
20
|
+
orange.register(:model_resource_deleted) do |packet, opts|
|
21
|
+
model_class.all(opts).destroy!
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def to_href(packet, route)
|
26
|
+
unless route.is_a? model_class
|
27
|
+
route = model_class.get(route)
|
28
|
+
end
|
29
|
+
full_path = route ? route.full_path : "#not-found"
|
30
|
+
end
|
31
|
+
|
32
|
+
def to_html(packet, route, text = false)
|
33
|
+
unless route.is_a? model_class
|
34
|
+
route = model_class.get(route)
|
35
|
+
end
|
36
|
+
full_path = route ? route.full_path : "#not-found"
|
37
|
+
link_text = route ? link_text_for(route) : "(Broken link tag)"
|
38
|
+
link_text = text if text
|
39
|
+
"<a href='#{full_path}'>#{link_text}</a>"
|
21
40
|
end
|
22
41
|
|
23
42
|
def route_actions(packet, opts = {})
|
@@ -170,7 +189,7 @@ module Orange
|
|
170
189
|
keys = {}
|
171
190
|
keys[:resource] = opts[:resource] || packet['route.resource']
|
172
191
|
keys[:resource_id] = opts[:resource_id] || packet['route.resource_id']
|
173
|
-
keys[:orange_site_id] = opts[:orange_site_id] || packet['subsite'].blank? ? packet['site'].id : packet['subsite'].id
|
192
|
+
keys[:orange_site_id] = opts[:orange_site_id] || (packet['subsite'].blank? ? packet['site'].id : packet['subsite'].id)
|
174
193
|
keys[:slug] = opts[:slug]
|
175
194
|
keys.delete_if{|k,v| v.blank? }
|
176
195
|
model_class.all(keys)
|