knowledge_base 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Rakefile +3 -1
- data/app/models/knowledge_base/category_article_association.rb +1 -2
- data/app/models/knowledge_base/section.rb +1 -5
- data/app/models/knowledge_base/sectionables/attachments.rb +7 -0
- data/app/models/knowledge_base/sectionables/attachments/attachment.rb +5 -0
- data/app/models/knowledge_base/sectionables/attachments/list.rb +5 -0
- data/app/models/knowledge_base/sectionables/gallery.rb +3 -7
- data/app/models/knowledge_base/sectionables/gallery/image.rb +1 -3
- data/app/models/knowledge_base/sectionables/image.rb +3 -7
- data/app/models/knowledge_base/sectionables/links.rb +3 -5
- data/app/models/knowledge_base/sectionables/links/link.rb +1 -6
- data/app/models/knowledge_base/sectionables/links/list.rb +5 -0
- data/app/models/knowledge_base/sectionables/list.rb +3 -7
- data/app/models/knowledge_base/sectionables/list/item.rb +1 -1
- data/app/models/knowledge_base/sectionables/sectionable.rb +3 -7
- data/app/models/knowledge_base/sectionables/text.rb +3 -5
- data/app/models/knowledge_base/sectionables/video.rb +3 -11
- data/app/uploaders/knowledge_base/generic_file_uploader.rb +7 -0
- data/app/uploaders/knowledge_base/image_uploader.rb +0 -48
- data/app/views/knowledge_base/articles/_article.html.erb +3 -3
- data/app/views/knowledge_base/articles/_search.html.erb +6 -0
- data/app/views/knowledge_base/articles/index.html.erb +11 -0
- data/app/views/knowledge_base/categories/_category.html.erb +2 -2
- data/app/views/knowledge_base/sectionables/attachments/lists/_list.html.erb +14 -0
- data/app/views/knowledge_base/sectionables/links/lists/_list.html.erb +13 -0
- data/app/views/knowledge_base/sectionables/lists/_list.html.erb +4 -0
- data/app/views/knowledge_base/sectionables/texts/_text.html.erb +4 -0
- data/app/views/knowledge_base/sectionables/videos/_video.html.erb +4 -1
- data/config/locales/en.yml +131 -0
- data/config/locales/nb.yml +94 -15
- data/config/routes.rb +2 -0
- data/db/migrate/20140318125210_default_position_fields.rb +10 -0
- data/db/migrate/20140318210722_change_knowledge_base_gallery_description_to_text.rb +9 -0
- data/db/migrate/20140320125825_add_image_to_texts.rb +5 -0
- data/db/migrate/20140325083548_add_image_to_sectionables_lists.rb +5 -0
- data/db/migrate/20140404234850_create_knowledge_base_sectionables_attachments.rb +8 -0
- data/db/migrate/20140410184906_create_knowledge_base_sectionables_attachment_lists.rb +7 -0
- data/db/migrate/20140410185528_add_attachment_list_reference_to_knowledge_base_sectionables_attachments.rb +8 -0
- data/db/migrate/20140410191611_migrate_attachments_over_to_lists.rb +49 -0
- data/db/migrate/20140410203342_rename_attachment_lists_to_attachments_lists.rb +5 -0
- data/db/migrate/20140410205056_rename_attachments_to_attachments_attachments.rb +5 -0
- data/db/migrate/20140410224403_rename_links_to_links_lists.rb +5 -0
- data/db/migrate/20140410231048_fix_sectionable_types_for_attachments.rb +13 -0
- data/db/migrate/20140410231433_fix_sectionable_types_for_links.rb +13 -0
- data/db/migrate/20140430112603_add_description_to_knowledge_base_attachments_attachment.rb +5 -0
- data/db/migrate/20140430112633_add_description_to_knowledge_base_links_link.rb +5 -0
- data/db/migrate/20140820114750_add_custom_style_to_knowledge_base_sectionables.rb +21 -0
- data/db/migrate/20140821081854_remove_custom_style_from_non_sectionables.rb +8 -0
- data/db/migrate/20140821085102_rename_custom_style_to_style.rb +11 -0
- data/db/migrate/20140821151832_add_title_to_knowledge_base_sectionables_videos.rb +5 -0
- data/db/migrate/20140930121510_add_title_to_attachment_lists.rb +5 -0
- data/fixtures/parrot.png +0 -0
- data/fixtures/sample.pdf +0 -0
- data/lib/generators/knowledge_base/active_admin/USAGE +8 -0
- data/lib/generators/knowledge_base/active_admin/active_admin_generator.rb +9 -0
- data/lib/generators/knowledge_base/active_admin/templates/article.rb +92 -0
- data/lib/generators/knowledge_base/active_admin/templates/category.rb +70 -0
- data/lib/generators/knowledge_base/active_admin/templates/sectionables/attachments/list.rb +25 -0
- data/lib/generators/knowledge_base/active_admin/templates/sectionables/gallery.rb +44 -0
- data/lib/generators/knowledge_base/active_admin/templates/sectionables/image.rb +37 -0
- data/lib/generators/knowledge_base/active_admin/templates/sectionables/links/list.rb +35 -0
- data/lib/generators/knowledge_base/active_admin/templates/sectionables/list.rb +48 -0
- data/lib/generators/knowledge_base/active_admin/templates/sectionables/text.rb +42 -0
- data/lib/generators/knowledge_base/active_admin/templates/sectionables/video.rb +20 -0
- data/lib/knowledge_base.rb +3 -0
- data/lib/knowledge_base/concerns/controllers/articles_controller.rb +21 -2
- data/lib/knowledge_base/concerns/controllers/categories_controller.rb +3 -2
- data/lib/knowledge_base/concerns/models.rb +31 -0
- data/lib/knowledge_base/concerns/models/article.rb +4 -3
- data/lib/knowledge_base/concerns/models/category.rb +2 -3
- data/lib/knowledge_base/concerns/models/category_article_association.rb +8 -0
- data/lib/knowledge_base/concerns/models/section.rb +13 -0
- data/lib/knowledge_base/concerns/models/sectionables/attachments/attachment.rb +11 -0
- data/lib/knowledge_base/concerns/models/sectionables/attachments/list.rb +15 -0
- data/lib/knowledge_base/concerns/models/sectionables/gallery.rb +17 -0
- data/lib/knowledge_base/concerns/models/sectionables/gallery/image.rb +9 -0
- data/lib/knowledge_base/concerns/models/sectionables/image.rb +13 -0
- data/lib/knowledge_base/concerns/models/sectionables/links/link.rb +7 -0
- data/lib/knowledge_base/concerns/models/sectionables/links/list.rb +15 -0
- data/lib/knowledge_base/concerns/models/sectionables/list.rb +17 -0
- data/lib/knowledge_base/concerns/models/sectionables/list/item.rb +7 -0
- data/lib/knowledge_base/concerns/models/sectionables/sectionable.rb +28 -0
- data/lib/knowledge_base/concerns/models/sectionables/text.rb +13 -0
- data/lib/knowledge_base/concerns/models/sectionables/video.rb +15 -0
- data/lib/knowledge_base/configuration.rb +10 -17
- data/lib/knowledge_base/engine.rb +4 -0
- data/lib/knowledge_base/seeds.rb +7 -3
- data/lib/knowledge_base/version.rb +1 -1
- data/spec/controllers/knowledge_base/articles_controller_spec.rb +15 -4
- data/spec/controllers/knowledge_base/categories_controller_spec.rb +1 -1
- data/spec/dummy/db/development.sqlite3 +0 -0
- data/spec/dummy/db/schema.rb +39 -13
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/dummy/log/development.log +887 -0
- data/spec/dummy/log/test.log +999 -0
- data/spec/factories/knowledge_base_articles.rb +3 -3
- data/spec/factories/knowledge_base_categories.rb +3 -3
- data/spec/factories/knowledge_base_sectionables_attachment_lists.rb +6 -0
- data/spec/lib/knowledge_base/configuration_spec.rb +32 -8
- data/spec/lib/knowledge_base_spec.rb +3 -3
- data/spec/models/knowledge_base/article_spec.rb +0 -1
- data/spec/models/knowledge_base/category_article_association_spec.rb +0 -1
- data/spec/models/knowledge_base/category_spec.rb +0 -1
- data/spec/models/knowledge_base/section_spec.rb +0 -1
- data/spec/models/knowledge_base/sectionables/attachments/attachment_spec.rb +6 -0
- data/spec/models/knowledge_base/sectionables/attachments/list_spec.rb +13 -0
- data/spec/models/knowledge_base/sectionables/gallery/image_spec.rb +0 -1
- data/spec/models/knowledge_base/sectionables/gallery_spec.rb +0 -1
- data/spec/models/knowledge_base/sectionables/image_spec.rb +0 -1
- data/spec/models/knowledge_base/sectionables/links/link_spec.rb +0 -1
- data/spec/models/knowledge_base/sectionables/links_spec.rb +0 -1
- data/spec/models/knowledge_base/sectionables/list/item_spec.rb +0 -1
- data/spec/models/knowledge_base/sectionables/list_spec.rb +0 -1
- data/spec/models/knowledge_base/sectionables/sectionable_spec.rb +34 -0
- data/spec/models/knowledge_base/sectionables/text_spec.rb +0 -1
- data/spec/models/knowledge_base/sectionables/video_spec.rb +0 -7
- data/spec/spec_helper.rb +3 -0
- data/spec/views/knowledge_base/articles/show.html.erb_spec.rb +0 -1
- data/spec/views/knowledge_base/categories/index.html.erb_spec.rb +0 -1
- data/spec/views/knowledge_base/categories/show.html.erb_spec.rb +0 -1
- metadata +179 -7
- data/app/views/knowledge_base/sectionables/links/_links.html.erb +0 -5
data/config/locales/nb.yml
CHANGED
@@ -13,37 +13,116 @@ nb:
|
|
13
13
|
knowledge_base/section:
|
14
14
|
one: Seksjon
|
15
15
|
other: Seksjoner
|
16
|
+
knowledge_base/sectionables/attachments/attachment:
|
17
|
+
one: Vedlegg
|
18
|
+
other: Vedlegg
|
19
|
+
knowledge_base/sectionables/attachments/list:
|
20
|
+
one: Vedleggsliste
|
21
|
+
other: Vedleggslister
|
22
|
+
knowledge_base/sectionables/text:
|
23
|
+
one: Tekst
|
24
|
+
other: Tekster
|
25
|
+
knowledge_base/sectionables/image:
|
26
|
+
one: Bilde
|
27
|
+
other: Bilder
|
28
|
+
knowledge_base/sectionables/gallery:
|
29
|
+
one: Galleri
|
30
|
+
other: Gallerier
|
31
|
+
knowledge_base/sectionables/gallery/image:
|
32
|
+
one: Bilde
|
33
|
+
other: Bilder
|
34
|
+
knowledge_base/sectionables/list:
|
35
|
+
one: Liste
|
36
|
+
other: Lister
|
37
|
+
knowledge_base/sectionables/list/item:
|
38
|
+
one: Punkt
|
39
|
+
other: Punkter
|
40
|
+
knowledge_base/sectionables/links/list:
|
41
|
+
one: Lenkeliste
|
42
|
+
other: Lenkelister
|
43
|
+
knowledge_base/sectionables/links/link:
|
44
|
+
one: Lenke
|
45
|
+
other: Lenker
|
46
|
+
knowledge_base/sectionables/video:
|
47
|
+
one: Video
|
48
|
+
other: Videoer
|
49
|
+
|
16
50
|
attributes:
|
17
|
-
|
51
|
+
common: &common
|
18
52
|
title: Tittel
|
19
53
|
slug: Slug
|
20
54
|
description: Beskrivelse
|
55
|
+
position: Plassering
|
56
|
+
created_at: Opprettet
|
57
|
+
updated_at: Sist oppdatert
|
58
|
+
|
59
|
+
sectionables: §ionables
|
60
|
+
style: Utseende
|
61
|
+
|
62
|
+
knowledge_base/category:
|
63
|
+
<<: *common
|
21
64
|
category: Kategori
|
22
65
|
category_id: Kategori
|
23
|
-
position: Plassering
|
24
66
|
published_at: Publisert
|
25
|
-
created_at: Opprettet
|
26
|
-
updated_at: Oppdatert
|
27
67
|
knowledge_base/article:
|
28
|
-
|
29
|
-
slug: slug
|
30
|
-
description: Beskrivelse
|
68
|
+
<<: *common
|
31
69
|
category_article_assocations: Lenker mellom kategorier og artikler
|
32
70
|
categories: Kategorier
|
33
71
|
sections: Seksjoner
|
34
72
|
published_at: Publisert
|
35
|
-
created_at: Opprettet
|
36
|
-
updated_at: Oppdatert
|
37
73
|
knowledge_base/category_article_association:
|
74
|
+
<<: *common
|
38
75
|
category: Kategori
|
39
76
|
category_id: Kategori
|
40
77
|
article: Artikkel
|
41
78
|
article_id: Artikkel
|
42
|
-
position: Plassering
|
43
|
-
created_at: Opprettet
|
44
|
-
updated_at: Oppdatert
|
45
79
|
knowledge_base/section:
|
80
|
+
<<: *common
|
46
81
|
sectionable: Innhold
|
47
|
-
|
48
|
-
|
49
|
-
|
82
|
+
sectionable_type: Innholdstype
|
83
|
+
knowledge_base/sectionables/attachments/attachment:
|
84
|
+
<<: *common
|
85
|
+
title: Tittel
|
86
|
+
file: File
|
87
|
+
knowledge_base/sectionables/attachments/list:
|
88
|
+
<<: *common
|
89
|
+
<<: *sectionables
|
90
|
+
attachments: Vedlegg
|
91
|
+
title: Tittel
|
92
|
+
file: File
|
93
|
+
knowledge_base/sectionables/text:
|
94
|
+
<<: *common
|
95
|
+
<<: *sectionables
|
96
|
+
heading: Overskrift
|
97
|
+
lead: Ingress
|
98
|
+
body: Brødtekst
|
99
|
+
remove_image: Fjern bilde
|
100
|
+
knowledge_base/sectionables/image:
|
101
|
+
<<: *common
|
102
|
+
<<: *sectionables
|
103
|
+
image: Bilde
|
104
|
+
caption: Bildetekst
|
105
|
+
knowledge_base/sectionables/gallery:
|
106
|
+
<<: *common
|
107
|
+
<<: *sectionables
|
108
|
+
knowledge_base/sectionables/gallery/image:
|
109
|
+
<<: *common
|
110
|
+
caption: Bildetekst
|
111
|
+
image: Bilde
|
112
|
+
knowledge_base/sectionables/list:
|
113
|
+
<<: *common
|
114
|
+
<<: *sectionables
|
115
|
+
remove_image: Fjern bilde
|
116
|
+
knowledge_base/sectionables/list/item:
|
117
|
+
<<: *common
|
118
|
+
body: Brødtekst
|
119
|
+
knowledge_base/sectionables/links/list:
|
120
|
+
<<: *common
|
121
|
+
<<: *sectionables
|
122
|
+
knowledge_base/sectionables/links/link:
|
123
|
+
<<: *common
|
124
|
+
url: Adresse
|
125
|
+
knowledge_base/sectionables/video:
|
126
|
+
<<: *common
|
127
|
+
<<: *sectionables
|
128
|
+
url: Adresse
|
data/config/routes.rb
CHANGED
@@ -1,4 +1,6 @@
|
|
1
1
|
KnowledgeBase::Engine.routes.draw do
|
2
|
+
resources :articles, path: KnowledgeBase.config.articles_path, only: [:index, :show]
|
3
|
+
|
2
4
|
resources :categories, path: KnowledgeBase.config.categories_path, only: [:index, :show] do
|
3
5
|
resources :articles, path: KnowledgeBase.config.articles_path, only: [:show]
|
4
6
|
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
class DefaultPositionFields < ActiveRecord::Migration
|
2
|
+
def change
|
3
|
+
change_column :knowledge_base_categories, :position, :integer, default: 0
|
4
|
+
change_column :knowledge_base_category_article_associations, :position, :integer, default: 0
|
5
|
+
change_column :knowledge_base_sections, :position, :integer, default: 0
|
6
|
+
change_column :knowledge_base_sectionables_gallery_images, :position, :integer, default: 0
|
7
|
+
change_column :knowledge_base_sectionables_links_links, :position, :integer, default: 0
|
8
|
+
change_column :knowledge_base_sectionables_list_items, :position, :integer, default: 0
|
9
|
+
end
|
10
|
+
end
|
@@ -0,0 +1,9 @@
|
|
1
|
+
class ChangeKnowledgeBaseGalleryDescriptionToText < ActiveRecord::Migration
|
2
|
+
def up
|
3
|
+
change_column :knowledge_base_sectionables_galleries, :description, :text, limit: nil
|
4
|
+
end
|
5
|
+
|
6
|
+
def down
|
7
|
+
change_column :knowledge_base_sectionables_galleries, :description, :string
|
8
|
+
end
|
9
|
+
end
|
@@ -0,0 +1,8 @@
|
|
1
|
+
class AddAttachmentListReferenceToKnowledgeBaseSectionablesAttachments < ActiveRecord::Migration
|
2
|
+
def change
|
3
|
+
add_reference :knowledge_base_sectionables_attachments, :attachment_list
|
4
|
+
|
5
|
+
add_index :knowledge_base_sectionables_attachments, :attachment_list_id,
|
6
|
+
name: 'index_knowledge_base_attachments_on_attachment_list_id'
|
7
|
+
end
|
8
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
# This is mostly how the attachments looked at the time of the migration. They
|
2
|
+
# have later changed names, which would cause errors when running this
|
3
|
+
# migration. Hopefully, this is enough to run this through properly.
|
4
|
+
module KnowledgeBase::Sectionables
|
5
|
+
class Attachment < Sectionable
|
6
|
+
belongs_to :attachment_list
|
7
|
+
end
|
8
|
+
|
9
|
+
class AttachmentList < Sectionable
|
10
|
+
has_many :sections, as: :sectionable, dependent: :destroy
|
11
|
+
|
12
|
+
has_many :attachments, dependent: :destroy
|
13
|
+
accepts_nested_attributes_for :attachments, allow_destroy: true
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
class MigrateAttachmentsOverToLists < ActiveRecord::Migration
|
18
|
+
def up
|
19
|
+
KnowledgeBase::Sectionables::Attachment.all.each do |attachment|
|
20
|
+
sections = KnowledgeBase::Section
|
21
|
+
.where(sectionable_type: 'KnowledgeBase::Sectionables::Attachment')
|
22
|
+
.where(sectionable_id: attachment.id)
|
23
|
+
|
24
|
+
list = KnowledgeBase::Sectionables::AttachmentList.new
|
25
|
+
list.attachments << attachment
|
26
|
+
list.sections = sections
|
27
|
+
|
28
|
+
list.save!
|
29
|
+
end
|
30
|
+
rescue StandardError
|
31
|
+
# Do nothing
|
32
|
+
end
|
33
|
+
|
34
|
+
def down
|
35
|
+
KnowledgeBase::Sectionables::AttachmentList.all.each do |list|
|
36
|
+
sections = KnowledgeBase::Section
|
37
|
+
.where(sectionable_type: 'KnowledgeBase::Sectionables::AttachmentList')
|
38
|
+
.where(sectionable_id: list.id)
|
39
|
+
|
40
|
+
list.attachments.all.each do |attachment|
|
41
|
+
attachment.sections = sections
|
42
|
+
|
43
|
+
attachment.save!
|
44
|
+
end
|
45
|
+
end
|
46
|
+
rescue StandardError
|
47
|
+
# Do nothing
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
class FixSectionableTypesForAttachments < ActiveRecord::Migration
|
2
|
+
def up
|
3
|
+
KnowledgeBase::Section
|
4
|
+
.where(sectionable_type: 'KnowledgeBase::Sectionables::AttachmentList')
|
5
|
+
.update_all sectionable_type: 'KnowledgeBase::Sectionables::Attachments::List'
|
6
|
+
end
|
7
|
+
|
8
|
+
def down
|
9
|
+
KnowledgeBase::Section
|
10
|
+
.where(sectionable_type: 'KnowledgeBase::Sectionables::Attachments::List')
|
11
|
+
.update_all sectionable_type: 'KnowledgeBase::Sectionables::AttachmentList'
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
class FixSectionableTypesForLinks < ActiveRecord::Migration
|
2
|
+
def up
|
3
|
+
KnowledgeBase::Section
|
4
|
+
.where(sectionable_type: 'KnowledgeBase::Sectionables::Links')
|
5
|
+
.update_all sectionable_type: 'KnowledgeBase::Sectionables::Links::List'
|
6
|
+
end
|
7
|
+
|
8
|
+
def down
|
9
|
+
KnowledgeBase::Section
|
10
|
+
.where(sectionable_type: 'KnowledgeBase::Sectionables::Links::List')
|
11
|
+
.update_all sectionable_type: 'KnowledgeBase::Sectionables::Links'
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
class AddCustomStyleToKnowledgeBaseSectionables < ActiveRecord::Migration
|
2
|
+
def change
|
3
|
+
add_column :knowledge_base_sectionables_attachments_attachments, :custom_style, :string
|
4
|
+
add_column :knowledge_base_sectionables_attachments_lists, :custom_style, :string
|
5
|
+
|
6
|
+
add_column :knowledge_base_sectionables_galleries, :custom_style, :string
|
7
|
+
add_column :knowledge_base_sectionables_gallery_images, :custom_style, :string
|
8
|
+
|
9
|
+
add_column :knowledge_base_sectionables_images, :custom_style, :string
|
10
|
+
|
11
|
+
add_column :knowledge_base_sectionables_links_links, :custom_style, :string
|
12
|
+
add_column :knowledge_base_sectionables_links_lists, :custom_style, :string
|
13
|
+
|
14
|
+
add_column :knowledge_base_sectionables_list_items, :custom_style, :string
|
15
|
+
add_column :knowledge_base_sectionables_lists, :custom_style, :string
|
16
|
+
|
17
|
+
add_column :knowledge_base_sectionables_texts, :custom_style, :string
|
18
|
+
|
19
|
+
add_column :knowledge_base_sectionables_videos, :custom_style, :string
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,8 @@
|
|
1
|
+
class RemoveCustomStyleFromNonSectionables < ActiveRecord::Migration
|
2
|
+
def change
|
3
|
+
remove_column :knowledge_base_sectionables_attachments_attachments, :custom_style, :string
|
4
|
+
remove_column :knowledge_base_sectionables_gallery_images, :custom_style, :string
|
5
|
+
remove_column :knowledge_base_sectionables_links_links, :custom_style, :string
|
6
|
+
remove_column :knowledge_base_sectionables_list_items, :custom_style, :string
|
7
|
+
end
|
8
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
class RenameCustomStyleToStyle < ActiveRecord::Migration
|
2
|
+
def change
|
3
|
+
rename_column :knowledge_base_sectionables_attachments_lists, :custom_style, :style
|
4
|
+
rename_column :knowledge_base_sectionables_galleries, :custom_style, :style
|
5
|
+
rename_column :knowledge_base_sectionables_images, :custom_style, :style
|
6
|
+
rename_column :knowledge_base_sectionables_links_lists, :custom_style, :style
|
7
|
+
rename_column :knowledge_base_sectionables_lists, :custom_style, :style
|
8
|
+
rename_column :knowledge_base_sectionables_texts, :custom_style, :style
|
9
|
+
rename_column :knowledge_base_sectionables_videos, :custom_style, :style
|
10
|
+
end
|
11
|
+
end
|
data/fixtures/parrot.png
ADDED
Binary file
|
data/fixtures/sample.pdf
ADDED
Binary file
|
@@ -0,0 +1,92 @@
|
|
1
|
+
ActiveAdmin.register KnowledgeBase::Article do
|
2
|
+
menu parent: I18n.t('activerecord.models.knowledge_base')
|
3
|
+
|
4
|
+
index do
|
5
|
+
selectable_column
|
6
|
+
|
7
|
+
column :id
|
8
|
+
column :title
|
9
|
+
column :slug
|
10
|
+
column :published_at
|
11
|
+
|
12
|
+
column :published?, sortable: :published_at do |article|
|
13
|
+
css_class, label = article.published? ? [ :yes, t('texts.yes') ]
|
14
|
+
: [ :no, t('texts.no') ]
|
15
|
+
|
16
|
+
status_tag label, css_class
|
17
|
+
end
|
18
|
+
|
19
|
+
default_actions
|
20
|
+
end
|
21
|
+
|
22
|
+
show do |article|
|
23
|
+
columns do
|
24
|
+
column do
|
25
|
+
attributes_table do
|
26
|
+
row :id
|
27
|
+
row :title
|
28
|
+
row :slug
|
29
|
+
row :description do
|
30
|
+
simple_format article.description
|
31
|
+
end
|
32
|
+
row :published_at
|
33
|
+
row :created_at
|
34
|
+
row :updated_at
|
35
|
+
row :categories do
|
36
|
+
links = article.categories.map do |category|
|
37
|
+
link_to category.title, [ :admin, :knowledge_base, category ]
|
38
|
+
end
|
39
|
+
|
40
|
+
raw links.join(", ")
|
41
|
+
end
|
42
|
+
|
43
|
+
row :tags do
|
44
|
+
article.tags.map(&:title).join ", "
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
sectionables = [
|
52
|
+
'KnowledgeBase::Sectionables::Gallery',
|
53
|
+
'KnowledgeBase::Sectionables::Image',
|
54
|
+
'KnowledgeBase::Sectionables::Links',
|
55
|
+
'KnowledgeBase::Sectionables::List',
|
56
|
+
'KnowledgeBase::Sectionables::Text',
|
57
|
+
'KnowledgeBase::Sectionables::Video',
|
58
|
+
]
|
59
|
+
|
60
|
+
form do |f|
|
61
|
+
f.inputs do
|
62
|
+
f.input :title
|
63
|
+
f.input :slug
|
64
|
+
f.input :description
|
65
|
+
f.input :published_at
|
66
|
+
f.has_many :sections, sortable: :position do |section|
|
67
|
+
|
68
|
+
section.input :sectionable_type, input_html: { parent: true },
|
69
|
+
collection: sectionables.map { |sectionable|
|
70
|
+
[sectionable.constantize.model_name.human, sectionable]
|
71
|
+
}
|
72
|
+
|
73
|
+
sectionables.each do |sectionable|
|
74
|
+
section.input :sectionable, wrapper_html: { class: 'hide', child: true, model: sectionable },
|
75
|
+
collection: sectionable.constantize.all.map { |sectionable|
|
76
|
+
[sectionable.to_s, sectionable.id]
|
77
|
+
}
|
78
|
+
end
|
79
|
+
|
80
|
+
section.input :_destroy, as: :boolean, label: I18n.t('destroy')
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
f.actions
|
85
|
+
end
|
86
|
+
|
87
|
+
controller do
|
88
|
+
def find_resource
|
89
|
+
scoped_collection.friendly.find params[:id]
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|