knitkit 2.1.9 → 2.1.10
Sign up to get free protection for your applications and to get access to all the features.
- data/app/controllers/knitkit/erp_app/desktop/image_assets_controller.rb +2 -2
- data/app/controllers/knitkit/online_document_sections_controller.rb +26 -16
- data/app/models/content.rb +52 -42
- data/app/models/documented_content.rb +57 -3
- data/app/models/online_document_section.rb +1 -1
- data/app/views/knitkit/online_document_sections/index.html.erb +175 -85
- data/app/views/layouts/knitkit/online_document_sections.html.erb +1 -1
- data/lib/knitkit/config.rb +3 -2
- data/lib/knitkit/version.rb +1 -1
- metadata +3 -123
- data/spec/dummy/db/data_migrations/20110109173616_create_capability_scope_types.erp_tech_svcs.rb +0 -15
- data/spec/dummy/db/data_migrations/20110509223702_add_publisher_role.knitkit.rb +0 -22
- data/spec/dummy/db/data_migrations/20110525001935_add_usd_currency.erp_base_erp_svcs.rb +0 -12
- data/spec/dummy/db/data_migrations/20110608185830_create_default_dynamic_models_and_forms.erp_forms.rb +0 -33
- data/spec/dummy/db/data_migrations/20110609150135_add_iso_codes.erp_base_erp_svcs.rb +0 -19
- data/spec/dummy/db/data_migrations/20110728201729_erp_app_setup.erp_app.rb +0 -252
- data/spec/dummy/db/data_migrations/20110728201733_update_preferences.erp_app.rb +0 -53
- data/spec/dummy/db/data_migrations/20110802200222_schedule_delete_expired_sessions_job.erp_tech_svcs.rb +0 -16
- data/spec/dummy/db/data_migrations/20110816153456_add_knitkit_application.knitkit.rb +0 -32
- data/spec/dummy/db/data_migrations/20110816161238_create_desktop_app_audit_log_viewer.erp_app.rb +0 -21
- data/spec/dummy/db/data_migrations/20110817160743_add_file_manager_application.erp_app.rb +0 -32
- data/spec/dummy/db/data_migrations/20110828190913_create_desktop_app_dynamic_forms.erp_forms.rb +0 -19
- data/spec/dummy/db/data_migrations/20110913145838_setup_compass_ae_instance.erp_base_erp_svcs.rb +0 -12
- data/spec/dummy/db/data_migrations/20111108183739_add_default_capabilities.erp_app.rb +0 -23
- data/spec/dummy/db/data_migrations/20111108183740_add_new_contact_widgets.erp_app.rb +0 -42
- data/spec/dummy/db/data_migrations/20111111144706_setup_audit_log_types.erp_tech_svcs.rb +0 -22
- data/spec/dummy/db/data_migrations/20111118182910_setup_knitkit_capabilities.knitkit.rb +0 -128
- data/spec/dummy/db/data_migrations/20120127144444_create_website_role_types.knitkit.rb +0 -14
- data/spec/dummy/db/data_migrations/20120127150505_create_website_default_configuration.knitkit.rb +0 -73
- data/spec/dummy/db/data_migrations/20120127150506_add_primary_host_to_website_configuration.knitkit.rb +0 -34
- data/spec/dummy/db/data_migrations/20120229160222_add_userinfo_widget.erp_app.rb +0 -29
- data/spec/dummy/db/data_migrations/20120316150424_add_is_template_to_default_website_config.knitkit.rb +0 -17
- data/spec/dummy/db/data_migrations/20120405193721_create_party_and_role_type_for_communication_events.erp_app.rb +0 -11
- data/spec/dummy/db/data_migrations/20120411180756_create_user_management_mobile_application.erp_app.rb +0 -19
- data/spec/dummy/db/data_migrations/20120418164215_create_configuration_management_desktop_application.erp_app.rb +0 -23
- data/spec/dummy/db/data_migrations/20120809020508_update_website_and_configuration.knitkit.rb +0 -78
- data/spec/dummy/db/data_migrations/20120824013449_create_ticket_form.erp_forms.rb +0 -67
- data/spec/dummy/db/data_migrations/20121026013449_update_ticket_form.erp_forms.rb +0 -65
- data/spec/dummy/db/data_migrations/20121026191738_update_contact_form.erp_forms.rb +0 -27
- data/spec/dummy/db/data_migrations/20121116155018_create_group_relationship_and_role_types.erp_tech_svcs.rb +0 -20
- data/spec/dummy/db/data_migrations/20121129185611_upgrade_website_role_iid.knitkit.rb +0 -21
- data/spec/dummy/db/data_migrations/20121130201859_upgrade_remove_system_mgmt_app.erp_app.rb +0 -16
- data/spec/dummy/db/data_migrations/20121130212146_note_capabilities.erp_tech_svcs.rb +0 -24
- data/spec/dummy/db/data_migrations/20121218175028_create_security_management_desktop_application.erp_app.rb +0 -23
- data/spec/dummy/db/data_migrations/20130422154409_upgrade_compass_ae_instances_data.erp_base_erp_svcs.rb +0 -19
- data/spec/dummy/db/data_migrations/20130422154410_add_guid_to_instances.erp_base_erp_svcs.rb +0 -10
- data/spec/dummy/db/data_migrations/20130422154411_create_job_tracker_desktop_application.erp_app.rb +0 -23
- data/spec/dummy/db/data_migrations/20130422154412_created_tracked_jobs.erp_app.rb +0 -15
- data/spec/dummy/db/data_migrations/20130422154413_add_job_tracker_mobile_app.erp_app.rb +0 -17
- data/spec/dummy/db/migrate/20130107153232_base_erp_services.erp_base_erp_svcs.rb +0 -461
- data/spec/dummy/db/migrate/20130107153233_base_tech_services.erp_tech_svcs.rb +0 -271
- data/spec/dummy/db/migrate/20130107153234_create_has_attribute_tables.erp_tech_svcs.rb +0 -39
- data/spec/dummy/db/migrate/20130107153235_create_groups.erp_tech_svcs.rb +0 -19
- data/spec/dummy/db/migrate/20130107153236_upgrade_security.erp_tech_svcs.rb +0 -54
- data/spec/dummy/db/migrate/20130107153237_upgrade_security2.erp_tech_svcs.rb +0 -270
- data/spec/dummy/db/migrate/20130107153238_base_app_framework.erp_app.rb +0 -276
- data/spec/dummy/db/migrate/20130107153239_dynamic_forms.erp_forms.rb +0 -95
- data/spec/dummy/db/migrate/20130107153240_create_tickets.erp_forms.rb +0 -19
- data/spec/dummy/db/migrate/20130107153241_upgrade_dynamic_forms_table.erp_forms.rb +0 -32
- data/spec/dummy/db/migrate/20130107153242_setup_knitkit.knitkit.rb +0 -316
- data/spec/dummy/db/migrate/20130422154401_add_txn_status.erp_base_erp_svcs.rb +0 -37
- data/spec/dummy/db/migrate/20130422154402_upgrade_compass_ae_instances.erp_base_erp_svcs.rb +0 -34
- data/spec/dummy/db/migrate/20130422154403_add_uuid_compass_ae_instance.erp_base_erp_svcs.rb +0 -17
- data/spec/dummy/db/migrate/20130422154404_add_long_lat_to_address.erp_base_erp_svcs.rb +0 -16
- data/spec/dummy/db/migrate/20130422154405_add_queue_to_delayed_jobs.erp_tech_svcs.rb +0 -14
- data/spec/dummy/db/migrate/20130422154406_add_job_tracker.erp_app.rb +0 -20
- data/spec/dummy/db/migrate/20130422154407_update_mobile_application.erp_app.rb +0 -28
- data/spec/dummy/db/migrate/20130422154408_add_use_markdown_to_section.knitkit.rb +0 -20
- data/spec/dummy/db/schema.rb +0 -1248
- data/spec/dummy/db/spec.sqlite3 +0 -0
@@ -94,9 +94,9 @@ module Knitkit
|
|
94
94
|
@root_node = nil
|
95
95
|
|
96
96
|
if @context == :website
|
97
|
-
@root_node = File.join(
|
97
|
+
@root_node = File.join(Rails.application.config.knitkit.images_path, "sites", @assets_model.iid, "images") unless @assets_model.nil?
|
98
98
|
else
|
99
|
-
@root_node = File.join(
|
99
|
+
@root_node = File.join(Rails.application.config.knitkit.images_base_path, 'images')
|
100
100
|
end
|
101
101
|
|
102
102
|
@root_node
|
@@ -1,16 +1,33 @@
|
|
1
1
|
module Knitkit
|
2
2
|
class OnlineDocumentSectionsController < BaseController
|
3
|
+
include ActionView::Helpers::SanitizeHelper
|
4
|
+
|
3
5
|
layout 'knitkit/online_document_sections'
|
4
6
|
|
5
7
|
before_filter :find_root
|
6
8
|
before_filter :find_document_sections, :only => :build_tree
|
7
9
|
|
8
10
|
def index
|
11
|
+
@online_document = OnlineDocumentSection.find(params[:section_id])
|
12
|
+
@online_document = nil if @online_document.id == find_root.id
|
13
|
+
end
|
14
|
+
|
15
|
+
def search
|
16
|
+
html = ''
|
17
|
+
results = DocumentedContent.search({:query => params[:query].strip,
|
18
|
+
:content_type => 'OnlineDocumentSection',
|
19
|
+
:parent_id => params[:section_id],
|
20
|
+
:website_id => @website.id})
|
21
|
+
|
22
|
+
DocumentedContent.build_search_results(results).each do |result|
|
23
|
+
html << "<p><a href=\"javascript:findShowAndExpandNode('#{result[:internal_identifier]}');\">#{result[:title]}</a><p style='border:solid 2px #CCC;padding:2px;'>#{strip_tags(result[:content].body_html[0..500])}...</p></p>"
|
24
|
+
end
|
9
25
|
|
26
|
+
render :json => {:success => true, :html => html}
|
10
27
|
end
|
11
28
|
|
12
29
|
def build_tree
|
13
|
-
render :
|
30
|
+
render :json => @document_sections.collect { |document| build_document_hash(document) }
|
14
31
|
end
|
15
32
|
|
16
33
|
def get_content
|
@@ -27,27 +44,20 @@ module Knitkit
|
|
27
44
|
|
28
45
|
protected
|
29
46
|
|
30
|
-
def id_or_node
|
31
|
-
(params[:node].to_i == 0) ? params[:section_id] : params[:node]
|
32
|
-
end
|
33
|
-
|
34
47
|
def find_root
|
35
|
-
@root = OnlineDocumentSection.find(params[:section_id])
|
48
|
+
@root = OnlineDocumentSection.find(params[:section_id]).root
|
36
49
|
end
|
37
50
|
|
38
51
|
def find_document_sections
|
39
|
-
@document_sections =
|
52
|
+
@document_sections = find_root.positioned_children
|
40
53
|
end
|
41
54
|
|
42
|
-
def build_document_hash
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
:iconCls => (section.leaf ? 'icon-documentation-document' : 'icon-documentation-multi-document')}
|
49
|
-
end
|
50
|
-
end
|
55
|
+
def build_document_hash(document_section)
|
56
|
+
{:id => document_section.internal_identifier,
|
57
|
+
:title => document_section.title,
|
58
|
+
:leaf => document_section.leaf,
|
59
|
+
:iconCls => (document_section.leaf ? 'icon-documentation-document' : 'icon-documentation-multi-document'),
|
60
|
+
:children => document_section.positioned_children.collect { |child_document_section| build_document_hash(child_document_section) }}
|
51
61
|
end
|
52
62
|
|
53
63
|
end
|
data/app/models/content.rb
CHANGED
@@ -5,6 +5,7 @@ class Content < ActiveRecord::Base
|
|
5
5
|
|
6
6
|
extend FriendlyId
|
7
7
|
friendly_id :title, :use => [:slugged], :slug_column => :permalink
|
8
|
+
|
8
9
|
def should_generate_new_friendly_id?
|
9
10
|
new_record?
|
10
11
|
end
|
@@ -13,7 +14,7 @@ class Content < ActiveRecord::Base
|
|
13
14
|
|
14
15
|
acts_as_taggable
|
15
16
|
acts_as_commentable
|
16
|
-
acts_as_versioned
|
17
|
+
acts_as_versioned :table_name => :content_versions
|
17
18
|
can_be_published
|
18
19
|
has_relational_dynamic_attributes
|
19
20
|
|
@@ -21,53 +22,62 @@ class Content < ActiveRecord::Base
|
|
21
22
|
has_many :website_sections, :through => :website_section_contents
|
22
23
|
belongs_to :created_by, :class_name => "User"
|
23
24
|
belongs_to :updated_by, :class_name => "User"
|
24
|
-
|
25
|
+
|
25
26
|
validates :type, :presence => {:message => 'Type cannot be blank'}
|
26
27
|
validates_uniqueness_of :internal_identifier, :case_sensitive => false
|
27
28
|
|
28
29
|
def self.search(options = {})
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
30
|
+
predicate = Content.includes([:website_sections])
|
31
|
+
|
32
|
+
if options[:section_unique_name]
|
33
|
+
predicate = predicate.where("website_sections.internal_identifier = ?", options[:section_unique_name])
|
33
34
|
end
|
34
35
|
|
35
|
-
if options[:
|
36
|
-
|
37
|
-
else
|
38
|
-
content_type_scope = "website_sections.type = '#{options[:content_type]}' AND"
|
36
|
+
if options[:parent_id]
|
37
|
+
predicate = predicate.where("website_sections.id" => WebsiteSection.find(options[:parent_id]).self_and_descendants.collect(&:id))
|
39
38
|
end
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
39
|
+
|
40
|
+
if options[:content_type]
|
41
|
+
predicate = predicate.where("website_sections.type = ?", options[:content_type])
|
42
|
+
end
|
43
|
+
|
44
|
+
if options[:website_id]
|
45
|
+
predicate = predicate.where("website_sections.website_id = ?", options[:website_id])
|
46
|
+
end
|
47
|
+
|
48
|
+
predicate = predicate.where("(UPPER(contents.title) LIKE UPPER('%#{options[:query]}%')
|
44
49
|
OR UPPER(contents.excerpt_html) LIKE UPPER('%#{options[:query]}%')
|
45
|
-
OR UPPER(contents.body_html) LIKE UPPER('%#{options[:query]}%') )").order("contents.created_at DESC")
|
50
|
+
OR UPPER(contents.body_html) LIKE UPPER('%#{options[:query]}%') )").order("contents.created_at DESC")
|
51
|
+
if options[:page]
|
52
|
+
predicate.paginate(:page => options[:page], :per_page => options[:per_page])
|
53
|
+
else
|
54
|
+
predicate.all
|
55
|
+
end
|
46
56
|
end
|
47
57
|
|
48
|
-
def self.do_search(options = {})
|
58
|
+
def self.do_search(options = {})
|
49
59
|
@results = Content.search(options)
|
50
60
|
|
51
|
-
@search_results = build_search_results(@results)
|
52
|
-
|
61
|
+
@search_results = build_search_results(@results)
|
62
|
+
|
53
63
|
@page_results = WillPaginate::Collection.create(options[:page], options[:per_page], @results.total_entries) do |pager|
|
54
64
|
pager.replace(@search_results)
|
55
65
|
end
|
56
|
-
|
57
|
-
|
66
|
+
|
67
|
+
@page_results
|
58
68
|
end
|
59
|
-
|
60
|
-
def self.find_by_section_id(
|
69
|
+
|
70
|
+
def self.find_by_section_id(website_section_id)
|
61
71
|
Content.joins(:website_section_contents).where('website_section_id = ?', website_section_id).order("website_section_contents.position ASC, website_section_contents.created_at DESC").all
|
62
72
|
end
|
63
73
|
|
64
|
-
def self.find_by_section_id_filtered_by_id(
|
74
|
+
def self.find_by_section_id_filtered_by_id(website_section_id, id_filter_list)
|
65
75
|
Content.joins(:website_section_contents).where("website_section_id = ? AND contents.id IN (#{id_filter_list.join(',')})", website_section_id).all
|
66
76
|
end
|
67
77
|
|
68
78
|
def self.find_published_by_section(active_publication, website_section)
|
69
79
|
published_content = []
|
70
|
-
contents = self.find_by_section_id(
|
80
|
+
contents = self.find_by_section_id(website_section.id)
|
71
81
|
contents.each do |content|
|
72
82
|
content = get_published_version(active_publication, content)
|
73
83
|
published_content << content unless content.nil?
|
@@ -77,9 +87,9 @@ class Content < ActiveRecord::Base
|
|
77
87
|
end
|
78
88
|
|
79
89
|
def self.find_published_by_section_with_tag(active_publication, website_section, tag)
|
80
|
-
published_content = []
|
81
|
-
id_filter_list = self.tagged_with(tag.name).collect{|t| t.id }
|
82
|
-
contents = self.find_by_section_id_filtered_by_id(
|
90
|
+
published_content = []
|
91
|
+
id_filter_list = self.tagged_with(tag.name).collect { |t| t.id }
|
92
|
+
contents = self.find_by_section_id_filtered_by_id(website_section.id, id_filter_list)
|
83
93
|
contents.each do |content|
|
84
94
|
content = get_published_version(active_publication, content)
|
85
95
|
published_content << content unless content.nil?
|
@@ -88,11 +98,11 @@ class Content < ActiveRecord::Base
|
|
88
98
|
published_content
|
89
99
|
end
|
90
100
|
|
91
|
-
def find_website_sections_by_site_id(
|
92
|
-
self.website_sections.where('website_id = ?',website_id).all
|
101
|
+
def find_website_sections_by_site_id(website_id)
|
102
|
+
self.website_sections.where('website_id = ?', website_id).all
|
93
103
|
end
|
94
104
|
|
95
|
-
def position(
|
105
|
+
def position(website_section_id)
|
96
106
|
position = self.website_section_contents.find_by_website_section_id(website_section_id).position
|
97
107
|
position
|
98
108
|
end
|
@@ -102,7 +112,7 @@ class Content < ActiveRecord::Base
|
|
102
112
|
end
|
103
113
|
|
104
114
|
def update_content_area_and_position_by_section(section, content_area, position)
|
105
|
-
website_section_content = WebsiteSectionContent.where('content_id = ? and website_section_id = ?',self.id, section.id).first
|
115
|
+
website_section_content = WebsiteSectionContent.where('content_id = ? and website_section_id = ?', self.id, section.id).first
|
106
116
|
unless website_section_content.nil?
|
107
117
|
website_section_content.content_area = content_area
|
108
118
|
website_section_content.position = position
|
@@ -112,16 +122,16 @@ class Content < ActiveRecord::Base
|
|
112
122
|
|
113
123
|
def content_area_by_website_section(section)
|
114
124
|
content_area = nil
|
115
|
-
unless WebsiteSectionContent.where('content_id = ? and website_section_id = ?',self.id, section.id).first.nil?
|
116
|
-
content_area = WebsiteSectionContent.where('content_id = ? and website_section_id = ?',self.id, section.id).first.content_area
|
125
|
+
unless WebsiteSectionContent.where('content_id = ? and website_section_id = ?', self.id, section.id).first.nil?
|
126
|
+
content_area = WebsiteSectionContent.where('content_id = ? and website_section_id = ?', self.id, section.id).first.content_area
|
117
127
|
end
|
118
128
|
content_area
|
119
129
|
end
|
120
130
|
|
121
131
|
def position_by_website_section(section)
|
122
132
|
position = nil
|
123
|
-
unless WebsiteSectionContent.where('content_id = ? and website_section_id = ?',self.id, section.id).first.nil?
|
124
|
-
position = WebsiteSectionContent.where('content_id = ? and website_section_id = ?',self.id, section.id).first.position
|
133
|
+
unless WebsiteSectionContent.where('content_id = ? and website_section_id = ?', self.id, section.id).first.nil?
|
134
|
+
position = WebsiteSectionContent.where('content_id = ? and website_section_id = ?', self.id, section.id).first.position
|
125
135
|
end
|
126
136
|
position
|
127
137
|
end
|
@@ -129,18 +139,18 @@ class Content < ActiveRecord::Base
|
|
129
139
|
def assign_attribute_on_save
|
130
140
|
super
|
131
141
|
|
132
|
-
Article.find_by_internal_identifier(self.internal_identifier) ? attribute_type_description = "updated_by_role"
|
142
|
+
Article.find_by_internal_identifier(self.internal_identifier) ? attribute_type_description = "updated_by_role" : attribute_type_description = "created_by_role"
|
133
143
|
|
134
144
|
if attribute_type_description == "created_by_role"
|
135
145
|
user = self.created_by
|
136
146
|
else
|
137
|
-
user = User.find(self.versions.sort_by {|version| version.version}.reverse[0].created_by_id)
|
147
|
+
user = User.find(self.versions.sort_by { |version| version.version }.reverse[0].created_by_id)
|
138
148
|
end
|
139
|
-
|
149
|
+
|
140
150
|
if user
|
141
151
|
#keep only the attributes related to the most recent change for each attribute_type
|
142
152
|
self.destroy_values_of_type attribute_type_description
|
143
|
-
|
153
|
+
|
144
154
|
attribute_type = AttributeType.find_by_internal_identifier(attribute_type_description)
|
145
155
|
attribute_type = AttributeType.create(:description => attribute_type_description, :data_type => "Text") unless attribute_type
|
146
156
|
|
@@ -156,9 +166,9 @@ class Content < ActiveRecord::Base
|
|
156
166
|
def is_published?
|
157
167
|
!PublishedElement.where('published_element_record_id = ? and published_element_record_type = ? and published_elements.version = ?', self.id, 'Content', self.version).first.nil?
|
158
168
|
end
|
159
|
-
|
169
|
+
|
160
170
|
protected
|
161
|
-
|
171
|
+
|
162
172
|
def self.build_search_results(results)
|
163
173
|
# and if it is a blog get the article link and title
|
164
174
|
results_array = []
|
@@ -178,7 +188,7 @@ class Content < ActiveRecord::Base
|
|
178
188
|
|
179
189
|
results_array << results_hash
|
180
190
|
end
|
181
|
-
|
191
|
+
|
182
192
|
results_array
|
183
193
|
end
|
184
194
|
|
@@ -9,11 +9,11 @@ class DocumentedContent < Content
|
|
9
9
|
def check_internal_identifier
|
10
10
|
self.internal_identifier = self.permalink if self.internal_identifier.blank?
|
11
11
|
end
|
12
|
-
|
12
|
+
|
13
13
|
def content_hash
|
14
14
|
{:id => self.id, :title => self.title, :body_html => self.body_html}
|
15
15
|
end
|
16
|
-
|
16
|
+
|
17
17
|
def self.find_published_by_section(active_publication, website_section)
|
18
18
|
published_content = []
|
19
19
|
documented_item = DocumentedItem.where(["online_document_section_id = ?", website_section.id]).first
|
@@ -25,5 +25,59 @@ class DocumentedContent < Content
|
|
25
25
|
|
26
26
|
published_content.first
|
27
27
|
end
|
28
|
-
|
28
|
+
|
29
|
+
def self.search(options = {})
|
30
|
+
predicate = self.joins('inner join documented_items on documented_items.documented_content_id = contents.id')
|
31
|
+
.joins('inner join website_sections on website_sections.id = documented_items.online_document_section_id')
|
32
|
+
|
33
|
+
if options[:section_unique_name]
|
34
|
+
predicate = predicate.where("website_sections.internal_identifier = ?", options[:section_unique_name])
|
35
|
+
end
|
36
|
+
|
37
|
+
if options[:parent_id]
|
38
|
+
predicate = predicate.where("website_sections.id" => WebsiteSection.find(options[:parent_id]).descendants.collect(&:id))
|
39
|
+
end
|
40
|
+
|
41
|
+
if options[:content_type]
|
42
|
+
predicate = predicate.where("website_sections.type = ?", options[:content_type])
|
43
|
+
end
|
44
|
+
|
45
|
+
if options[:website_id]
|
46
|
+
predicate = predicate.where("website_sections.website_id = ?", options[:website_id])
|
47
|
+
end
|
48
|
+
|
49
|
+
predicate = predicate.where("(UPPER(contents.title) LIKE UPPER('%#{options[:query]}%')
|
50
|
+
OR UPPER(contents.excerpt_html) LIKE UPPER('%#{options[:query]}%')
|
51
|
+
OR UPPER(contents.body_html) LIKE UPPER('%#{options[:query]}%') )").order("contents.created_at DESC")
|
52
|
+
if options[:page]
|
53
|
+
predicate.paginate(:page => options[:page], :per_page => options[:per_page])
|
54
|
+
else
|
55
|
+
predicate.all
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
def self.build_search_results(results)
|
60
|
+
# and if it is a blog get the article link and title
|
61
|
+
results_array = []
|
62
|
+
results.each do |content|
|
63
|
+
section = DocumentedItem.find_by_documented_content_id(content.id).online_document_section
|
64
|
+
|
65
|
+
results_hash = {}
|
66
|
+
results_hash[:internal_identifier] = section.internal_identifier
|
67
|
+
if section.attributes['type'] == 'Blog'
|
68
|
+
results_hash[:link] = section.path + '/' + content.permalink
|
69
|
+
results_hash[:title] = content.title
|
70
|
+
else
|
71
|
+
results_hash[:link] = section.path
|
72
|
+
results_hash[:title] = section.title
|
73
|
+
end
|
74
|
+
results_hash[:section] = section
|
75
|
+
results_hash[:content] = content
|
76
|
+
|
77
|
+
results_array << results_hash
|
78
|
+
end
|
79
|
+
|
80
|
+
results_array
|
81
|
+
end
|
82
|
+
|
29
83
|
end
|
@@ -2,7 +2,7 @@ class OnlineDocumentSection < WebsiteSection
|
|
2
2
|
has_one :documented_item, :dependent => :destroy
|
3
3
|
delegate :content, :to => :documented_item, :prefix => true
|
4
4
|
delegate :published_content, :to => :documented_item, :prefix => true
|
5
|
-
|
5
|
+
|
6
6
|
def documented_item_content_html
|
7
7
|
documented_item_content.body_html
|
8
8
|
rescue
|