drg_blog_news_forum 0.5.51.1 → 0.5.52.0
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.
- checksums.yaml +4 -4
- data/MIT-LICENSE +1 -1
- data/app/assets/stylesheets/drg_blog_news_forum.css +15 -6
- data/app/controllers/drgcms_controls/dc_news_dc_reply_control.rb +4 -2
- data/app/controllers/drgcms_controls/reply_control.rb +52 -0
- data/app/forms/dc_forum.yml +17 -16
- data/app/forms/dc_forum_topic.yml +6 -7
- data/app/forms/dc_news.yml +9 -8
- data/app/forms/dc_reply.yml +0 -1
- data/app/forms/forum_settings.yml +56 -0
- data/app/forms/news_settings.yml +91 -0
- data/app/forms/reply.yml +15 -0
- data/app/helpers/dc_blog_renderer.rb +21 -29
- data/app/helpers/{dc_forum_helper.rb → dc_bnf_helper.rb} +18 -1
- data/app/helpers/dc_forum_renderer.rb +2 -1
- data/app/helpers/dc_news_renderer.rb +45 -28
- data/app/models/dc_forum.rb +19 -8
- data/app/models/dc_reply.rb +4 -2
- data/app/views/dc_blog/_blogers.html.erb +1 -1
- data/app/views/dc_blog/_list.html.erb +13 -0
- data/app/views/dc_blog/{_entry.html.erb → _show.html.erb} +6 -6
- data/app/views/dc_news/_last_news.erb +3 -3
- data/app/views/dc_news/_list.html.erb +24 -0
- data/app/views/dc_news/_show.html.erb +26 -0
- data/app/views/dc_replay/_reply.html.erb +15 -13
- data/config/locales/{dc_forum_en.yml → dc_bnf_en.yml} +26 -0
- data/config/locales/{dc_forum_sl.yml → dc_bnf_sl.yml} +24 -4
- data/lib/drg_blog_news_forum/version.rb +1 -1
- metadata +13 -12
- data/app/forms/dc_forum_policy_rule.yml +0 -2
- data/app/views/dc_blog/_entries.html.erb +0 -19
- data/app/views/dc_news/_entries.html.erb +0 -15
- data/app/views/dc_news/_entry.html.erb +0 -23
- data/app/views/dc_news/_news.html.erb +0 -26
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 21376b47f6aebf241e6cd3053fe434b6cc1b430a
|
4
|
+
data.tar.gz: f7cbc383f3882a7fa36a385b0dd311d653f1eee4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 58171ad983f8d78c280f409be0992fef784cf64b7350fdf9e06710900fca5c8f17ce6025632c8e971f4d2162045c81cd75d2511c8ae7a60d399b6d690bf21e0e
|
7
|
+
data.tar.gz: 804ccf7bb9b4dded3b05684c8cf26616b52037d55f0e392d98f791a216d472844b107c0f8f22428869d72cd454c7456e15a889f3b761b8ce0828f4aec42bac4a
|
data/MIT-LICENSE
CHANGED
@@ -74,10 +74,10 @@ height: 1px;
|
|
74
74
|
|
75
75
|
#dc-reply-menu {
|
76
76
|
border: none;
|
77
|
-
padding:
|
77
|
+
padding: 1em 0px;
|
78
78
|
}
|
79
79
|
|
80
|
-
#dc-forum .reply-top
|
80
|
+
#dc-forum .reply-top.odd, #dc-forum .reply-top.even {
|
81
81
|
margin-top: 10px;
|
82
82
|
padding: 4px;
|
83
83
|
background: #eee;
|
@@ -86,7 +86,7 @@ padding: 5px 0px;
|
|
86
86
|
border-top-right-radius: 3px;
|
87
87
|
}
|
88
88
|
|
89
|
-
#dc-forum .reply-body
|
89
|
+
#dc-forum .reply-body.odd, #dc-forum .reply-body.even {
|
90
90
|
padding: 4px;
|
91
91
|
background: #f8f8f8;
|
92
92
|
border: 1px solid #ddd;
|
@@ -135,6 +135,10 @@ border-radius: 2px;
|
|
135
135
|
}
|
136
136
|
|
137
137
|
/******* dc_blog *******/
|
138
|
+
#blogs .title {
|
139
|
+
font-size: 1.4em;
|
140
|
+
padding-bottom: 5px;
|
141
|
+
}
|
138
142
|
.blog-subject {
|
139
143
|
font-size: 1.4em;
|
140
144
|
font-weight: bold;
|
@@ -149,16 +153,16 @@ margin-bottom: 20px;
|
|
149
153
|
}
|
150
154
|
.blog-replies {
|
151
155
|
}
|
152
|
-
.reply-top
|
156
|
+
.reply-top.even {
|
153
157
|
padding:5px;
|
154
158
|
background-color: #fff;
|
155
159
|
}
|
156
|
-
.reply-top
|
160
|
+
.reply-top.odd {
|
157
161
|
padding:5px;
|
158
162
|
background-color: #eee;
|
159
163
|
}
|
160
164
|
|
161
|
-
.reply-body
|
165
|
+
.reply-body.even p, .reply-body.odd p {
|
162
166
|
margin-top: 0em;
|
163
167
|
margin-bottom: 0em;
|
164
168
|
}
|
@@ -176,3 +180,8 @@ margin-bottom: 40px;
|
|
176
180
|
padding-top: 5px;
|
177
181
|
padding-bottom: 5px;
|
178
182
|
}
|
183
|
+
|
184
|
+
/**** news ****/
|
185
|
+
.news.one .author {
|
186
|
+
font-size: 1.2em;
|
187
|
+
}
|
@@ -32,8 +32,10 @@ module DrgcmsControls::DcNewsDcReplyControl
|
|
32
32
|
######################################################################
|
33
33
|
def dc_new_record()
|
34
34
|
# fill with quote when reply_to is present
|
35
|
-
|
36
|
-
|
35
|
+
bla
|
36
|
+
if params[:reply_to]
|
37
|
+
|
38
|
+
replyto = DcReply.find(params[:reply_to])
|
37
39
|
@record.subject = "Re: #{replyto.subject}"
|
38
40
|
@record.body = "<div class='dc-forum-quote'>#{replyto.body}</div><br>"
|
39
41
|
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
#encoding: utf-8
|
2
|
+
#--
|
3
|
+
# Copyright (c) 2014+ Damjan Rems
|
4
|
+
#
|
5
|
+
# Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
# a copy of this software and associated documentation files (the
|
7
|
+
# "Software"), to deal in the Software without restriction, including
|
8
|
+
# without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
# distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
# permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
# the following conditions:
|
12
|
+
#
|
13
|
+
# The above copyright notice and this permission notice shall be
|
14
|
+
# included in all copies or substantial portions of the Software.
|
15
|
+
#
|
16
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
23
|
+
#++
|
24
|
+
|
25
|
+
######################################################################
|
26
|
+
# DrgcmsControls for DcBlog.DcReply form
|
27
|
+
######################################################################
|
28
|
+
module DrgcmsControls::ReplyControl
|
29
|
+
|
30
|
+
######################################################################
|
31
|
+
# Called when new empty record is created
|
32
|
+
######################################################################
|
33
|
+
def dc_new_record()
|
34
|
+
# fill with quote when reply_to is present
|
35
|
+
if params[:reply_to]
|
36
|
+
replyto = DcReply.find(params[:reply_to])
|
37
|
+
@record.subject = (replyto.subject.match('Re:') ? '' : 'Re: ') + replyto.subject
|
38
|
+
@record.body = "<div class='dc-forum-quote'>#{replyto.body}</div><br>"
|
39
|
+
end
|
40
|
+
@record.created_by_name = session[:user_name] if session[:user_name]
|
41
|
+
end
|
42
|
+
|
43
|
+
######################################################################
|
44
|
+
# Called before save. Reloads browser.
|
45
|
+
######################################################################
|
46
|
+
def dc_before_save()
|
47
|
+
params[:return_to] = 'parent.reload'
|
48
|
+
# simple automatic robot trap
|
49
|
+
return false unless params[:record][:honey].blank?
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
data/app/forms/dc_forum.yml
CHANGED
@@ -10,10 +10,7 @@ result_set:
|
|
10
10
|
columns:
|
11
11
|
1:
|
12
12
|
name: name
|
13
|
-
2:
|
14
|
-
name: site_id
|
15
|
-
eval: dc_name4_id,dc_site,name
|
16
|
-
3:
|
13
|
+
2:
|
17
14
|
name: order
|
18
15
|
4:
|
19
16
|
name: active
|
@@ -28,28 +25,32 @@ form:
|
|
28
25
|
10:
|
29
26
|
name: name
|
30
27
|
type: text_field
|
31
|
-
|
32
|
-
size: 50
|
28
|
+
size: 50
|
33
29
|
|
34
30
|
20:
|
31
|
+
name: link
|
32
|
+
type: text_field
|
33
|
+
size: 50
|
34
|
+
|
35
|
+
30:
|
35
36
|
name: description
|
36
37
|
type: text_area
|
37
|
-
|
38
|
-
size: 80x10
|
38
|
+
size: 80x8
|
39
39
|
|
40
|
-
|
41
|
-
name:
|
40
|
+
40:
|
41
|
+
name: forum_groups
|
42
42
|
type: select
|
43
|
-
|
43
|
+
multiple: true
|
44
|
+
eval: dc_big_table 'forum-groups'
|
44
45
|
html:
|
45
|
-
include_blank: true
|
46
|
-
|
46
|
+
include_blank: true
|
47
|
+
|
48
|
+
50:
|
47
49
|
name: order
|
48
50
|
type: text_field
|
49
|
-
|
50
|
-
size: 3
|
51
|
+
size: 3
|
51
52
|
|
52
|
-
|
53
|
+
60:
|
53
54
|
name: dc_policy_rules
|
54
55
|
type: embedded
|
55
56
|
form_name: dc_policy_rule
|
@@ -9,12 +9,15 @@ form:
|
|
9
9
|
|
10
10
|
fields:
|
11
11
|
10:
|
12
|
+
name: created_by_name
|
13
|
+
type: readonly
|
14
|
+
|
15
|
+
20:
|
12
16
|
name: subject
|
13
17
|
type: text_field
|
14
|
-
|
15
|
-
size: 80
|
18
|
+
size: 80
|
16
19
|
|
17
|
-
|
20
|
+
30:
|
18
21
|
name: body
|
19
22
|
type: html_field
|
20
23
|
options: "height: 420, toolbar: 'basic'"
|
@@ -22,7 +25,3 @@ form:
|
|
22
25
|
100:
|
23
26
|
name: dc_forum_id
|
24
27
|
type: hidden_field
|
25
|
-
110:
|
26
|
-
name: created_by_name
|
27
|
-
type: hidden_field
|
28
|
-
|
data/app/forms/dc_news.yml
CHANGED
@@ -36,16 +36,17 @@ form:
|
|
36
36
|
30:
|
37
37
|
name: created_at
|
38
38
|
type: datetime_picker
|
39
|
-
|
39
|
+
|
40
40
|
40:
|
41
|
+
name: categories
|
42
|
+
type: select
|
43
|
+
multiple: true
|
44
|
+
eval: dc_big_table 'news-categories'
|
45
|
+
html:
|
46
|
+
include_blank: true
|
47
|
+
|
48
|
+
50:
|
41
49
|
name: body
|
42
50
|
type: html_field
|
43
51
|
options: 'height: 500'
|
44
52
|
|
45
|
-
50:
|
46
|
-
name: dc_replies
|
47
|
-
type: embedded
|
48
|
-
form_name: dc_reply
|
49
|
-
table: dc_reply
|
50
|
-
html:
|
51
|
-
height: 400
|
data/app/forms/dc_reply.yml
CHANGED
@@ -0,0 +1,56 @@
|
|
1
|
+
## Form for news settings
|
2
|
+
table: dc_memory
|
3
|
+
title: dc_forum.settings
|
4
|
+
controls: design_element_settings
|
5
|
+
|
6
|
+
form:
|
7
|
+
actions:
|
8
|
+
1: save
|
9
|
+
|
10
|
+
fields:
|
11
|
+
|
12
|
+
10:
|
13
|
+
name: forum_groups
|
14
|
+
type: select
|
15
|
+
multiple: true
|
16
|
+
eval: dc_big_table 'forum-groups'
|
17
|
+
text: helpers.label.dc_forum.forum_groups
|
18
|
+
help: helpers.help.dc_forum.forum_groups
|
19
|
+
html:
|
20
|
+
include_blank: true
|
21
|
+
|
22
|
+
100:
|
23
|
+
name: title
|
24
|
+
type: text_field
|
25
|
+
size: 30
|
26
|
+
text: dc_forum.title
|
27
|
+
help: dc_forum.title_help
|
28
|
+
top-line: 1
|
29
|
+
|
30
|
+
110:
|
31
|
+
name: clas
|
32
|
+
type: text_field
|
33
|
+
size: 10
|
34
|
+
text: dc_news.clas
|
35
|
+
help: dc_news.clas_help
|
36
|
+
|
37
|
+
120:
|
38
|
+
name: list
|
39
|
+
type: text_field
|
40
|
+
size: 30
|
41
|
+
text: dc_news.list
|
42
|
+
help: dc_news.list_help
|
43
|
+
|
44
|
+
130:
|
45
|
+
name: show
|
46
|
+
type: text_field
|
47
|
+
size: 30
|
48
|
+
text: dc_news.show
|
49
|
+
help: dc_news.show_help
|
50
|
+
|
51
|
+
140:
|
52
|
+
name: link
|
53
|
+
type: text_field
|
54
|
+
size: 30
|
55
|
+
text: dc_news.link
|
56
|
+
help: dc_news.link_help
|
@@ -0,0 +1,91 @@
|
|
1
|
+
## Form for news settings
|
2
|
+
table: dc_memory
|
3
|
+
title: dc_news.settings
|
4
|
+
controls: design_element_settings
|
5
|
+
|
6
|
+
form:
|
7
|
+
actions:
|
8
|
+
1: save
|
9
|
+
|
10
|
+
fields:
|
11
|
+
|
12
|
+
10:
|
13
|
+
name: categories
|
14
|
+
type: select
|
15
|
+
multiple: true
|
16
|
+
eval: dc_big_table 'news-categories'
|
17
|
+
text: dc_news.categories
|
18
|
+
help: dc_news.categories_help
|
19
|
+
html:
|
20
|
+
include_blank: true
|
21
|
+
|
22
|
+
20:
|
23
|
+
name: number
|
24
|
+
type: text_field
|
25
|
+
size: 3
|
26
|
+
text: dc_news.number
|
27
|
+
help: dc_news.number_help
|
28
|
+
|
29
|
+
30:
|
30
|
+
name: paging
|
31
|
+
type: check_box
|
32
|
+
text: dc_news.paging
|
33
|
+
help: dc_news.paging_help
|
34
|
+
|
35
|
+
40:
|
36
|
+
name: small
|
37
|
+
type: text_field
|
38
|
+
size: 2
|
39
|
+
text: dc_news.small
|
40
|
+
help: dc_news.small_help
|
41
|
+
group: 3
|
42
|
+
|
43
|
+
50:
|
44
|
+
name: medium
|
45
|
+
type: text_field
|
46
|
+
size: 2
|
47
|
+
text: dc_news.medium
|
48
|
+
help: dc_news.medium_help
|
49
|
+
|
50
|
+
60:
|
51
|
+
name: large
|
52
|
+
type: text_field
|
53
|
+
size: 2
|
54
|
+
text: dc_news.large
|
55
|
+
help: dc_news.large_help
|
56
|
+
|
57
|
+
100:
|
58
|
+
name: title
|
59
|
+
type: text_field
|
60
|
+
size: 30
|
61
|
+
text: dc_news.title
|
62
|
+
help: dc_news.title_help
|
63
|
+
top-line: 1
|
64
|
+
|
65
|
+
110:
|
66
|
+
name: clas
|
67
|
+
type: text_field
|
68
|
+
size: 10
|
69
|
+
text: dc_news.clas
|
70
|
+
help: dc_news.clas_help
|
71
|
+
|
72
|
+
120:
|
73
|
+
name: list
|
74
|
+
type: text_field
|
75
|
+
size: 30
|
76
|
+
text: dc_news.list
|
77
|
+
help: dc_news.list_help
|
78
|
+
|
79
|
+
130:
|
80
|
+
name: show
|
81
|
+
type: text_field
|
82
|
+
size: 30
|
83
|
+
text: dc_news.show
|
84
|
+
help: dc_news.show_help
|
85
|
+
|
86
|
+
140:
|
87
|
+
name: link
|
88
|
+
type: text_field
|
89
|
+
size: 30
|
90
|
+
text: dc_news.link
|
91
|
+
help: dc_news.link_help
|
data/app/forms/reply.yml
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
|
2
2
|
table: dc_reply
|
3
|
+
title: Reply
|
4
|
+
controls: reply
|
3
5
|
|
4
6
|
form:
|
5
7
|
height: 750
|
@@ -25,3 +27,16 @@ form:
|
|
25
27
|
type: html_field
|
26
28
|
options: "height: 420, toolbar: 'basic', allowedContent: false"
|
27
29
|
|
30
|
+
100:
|
31
|
+
name: doc_id
|
32
|
+
type: hidden_field
|
33
|
+
|
34
|
+
110:
|
35
|
+
name: doc_class
|
36
|
+
type: hidden_field
|
37
|
+
|
38
|
+
120:
|
39
|
+
name: honey
|
40
|
+
type: hidden_field
|
41
|
+
|
42
|
+
|
@@ -30,25 +30,23 @@ include DcApplicationHelper
|
|
30
30
|
########################################################################
|
31
31
|
# Show one blog entry
|
32
32
|
########################################################################
|
33
|
-
def
|
34
|
-
|
35
|
-
entry = DcBlog.find_by(created_by_name: @parent.params[:name], link: @parent.params[:link])
|
33
|
+
def show(link)
|
34
|
+
entry = DcBlog.find_by(link: link)
|
36
35
|
return t('dc_blog.entry_not_found') if entry.nil?
|
37
36
|
|
38
|
-
replies =
|
39
|
-
|
40
|
-
|
41
|
-
locals: { entry: entry, replies: replies, opts: @opts }
|
37
|
+
replies = DcReply.where(doc_id: entry.id, active: true).order(created_at: 1)
|
38
|
+
@parent.render partial: 'dc_blog/show', formats: [:html],
|
39
|
+
locals: { document: entry, replies: replies, opts: @opts }
|
42
40
|
end
|
43
41
|
|
44
42
|
########################################################################
|
45
43
|
# List all blogs from one bloger
|
46
44
|
########################################################################
|
47
|
-
def
|
48
|
-
|
49
|
-
.where(
|
45
|
+
def list(bloger)
|
46
|
+
documents = DcBlog.only(:created_by_name, :link, :subject, :created_at)
|
47
|
+
.where(active: true).order_by(created_at: -1)
|
50
48
|
.page(@parent.params[:page]).per(10)
|
51
|
-
@parent.render partial: 'dc_blog/
|
49
|
+
@parent.render partial: 'dc_blog/list', formats: [:html], locals: { documents: documents }
|
52
50
|
end
|
53
51
|
|
54
52
|
########################################################################
|
@@ -65,22 +63,14 @@ end
|
|
65
63
|
def last_blogs
|
66
64
|
limit = @opts[:limit] || 3
|
67
65
|
entries = DcBlog.only(:created_by_name, :link, :subject, :created_at)
|
68
|
-
.where(active: true)
|
66
|
+
.where(active: true)
|
69
67
|
.order_by(created_at: -1).limit(limit).to_a
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
path = @opts[:path] || 'blog'
|
74
|
-
@parent.render partial: 'dc_blog/last_blogs', formats: [:html], locals: { entries: entries, path: path }
|
75
|
-
else
|
76
|
-
''
|
77
|
-
end
|
78
|
-
=end
|
79
|
-
entries.inject('') do |result, element|
|
80
|
-
result << @parent.link_to("/blog/#{element.created_by_name}/#{element.link}") do
|
68
|
+
|
69
|
+
entries.inject('') do |result, document|
|
70
|
+
result << @parent.link_to("/blog/#{document.link}") do
|
81
71
|
%Q[
|
82
|
-
<span class="date">#{@parent.dc_pretty_date(
|
83
|
-
<span class="title">#{
|
72
|
+
<span class="date">#{@parent.dc_pretty_date(document.created_at)} : </span>
|
73
|
+
<span class="title">#{document.subject}</span><br><br>
|
84
74
|
].html_safe
|
85
75
|
end
|
86
76
|
end
|
@@ -92,12 +82,14 @@ end
|
|
92
82
|
# Default method will dispatch to proper method.
|
93
83
|
########################################################################
|
94
84
|
def default
|
95
|
-
|
85
|
+
document_link = @opts[:path].last
|
86
|
+
p @opts[:path]
|
87
|
+
if @opts[:path].size == 1 or document_link == 'blogers'
|
96
88
|
list_blogers
|
97
|
-
elsif @
|
98
|
-
|
89
|
+
elsif @opts[:path].size == 2
|
90
|
+
list(document_link)
|
99
91
|
else
|
100
|
-
|
92
|
+
show(document_link)
|
101
93
|
end
|
102
94
|
end
|
103
95
|
|
@@ -21,7 +21,7 @@
|
|
21
21
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
22
22
|
#++
|
23
23
|
|
24
|
-
module
|
24
|
+
module DcBnfHelper
|
25
25
|
#include DcApplicationHelper
|
26
26
|
|
27
27
|
########################################################################
|
@@ -36,4 +36,21 @@ def dc_pretty_date(time)
|
|
36
36
|
end
|
37
37
|
end
|
38
38
|
|
39
|
+
########################################################################
|
40
|
+
# Link for editing news settings
|
41
|
+
########################################################################
|
42
|
+
def news_settings(opts)
|
43
|
+
return '' unless opts[:edit_mode] > 1
|
44
|
+
# settings can be saved in dc_site or dc_page document
|
45
|
+
table = opts[:table] || @page.class.to_s
|
46
|
+
id = (table == 'dc_site') ? @site.id : @page.id
|
47
|
+
%Q[<div>
|
48
|
+
#{dc_link_for_edit(table: 'dc_memory', title: 'helpers.news.settings',
|
49
|
+
form_name: 'news_settings', icon: 'cog lg',
|
50
|
+
id: id, location: table, action: 'new',
|
51
|
+
element: opts[:element] )}
|
52
|
+
#{dc_link_for_create(table: 'dc_news', title: 'helpers.news.create')}
|
53
|
+
</div>].html_safe
|
54
|
+
end
|
55
|
+
|
39
56
|
end
|
@@ -48,7 +48,8 @@ include DcApplicationHelper
|
|
48
48
|
def topic
|
49
49
|
forum = DcForum.find(@parent.params[:forum])
|
50
50
|
topic = DcForumTopic.find(@parent.params[:topic])
|
51
|
-
replies =
|
51
|
+
replies = DcReply.where(doc_id: topic.id, active: true).order(created_at: 1)
|
52
|
+
.page(@parent.params[:page]).per(10)
|
52
53
|
@parent.render partial: 'dc_forum/topic', formats: [:html],
|
53
54
|
locals: { forum: forum, topic: topic, replies: replies }
|
54
55
|
end
|
@@ -28,45 +28,60 @@ class DcNewsRenderer < DcRenderer
|
|
28
28
|
include DcApplicationHelper
|
29
29
|
|
30
30
|
########################################################################
|
31
|
-
#
|
31
|
+
# Collects documents for list
|
32
32
|
########################################################################
|
33
|
-
def
|
34
|
-
|
35
|
-
|
33
|
+
def collect_documents()
|
34
|
+
categories = @opts.dig(:settings, @opts[:element], 'categories')
|
35
|
+
query = if categories
|
36
|
+
categories.map! {|e| (e.class == String and BSON::ObjectId.legal?(e)) ? BSON::ObjectId.from_string(e) : e }
|
37
|
+
DcNews.where(:categories.in => categories, active: true)
|
38
|
+
else
|
39
|
+
DcNews.where(active: true)
|
40
|
+
end
|
41
|
+
query = query.only(:id, :created_at, :subject, :created_by_name, :link)
|
42
|
+
# paging
|
43
|
+
if @opts.dig(:settings, @opts[:element], 'paging') == '1'
|
44
|
+
per_page = @opts.dig(:settings, @opts[:element], 'docs_per_page') || 15
|
45
|
+
query.order_by(created_at: -1).page(@parent.params[:page]).per(per_page)
|
46
|
+
else
|
47
|
+
query = query.and({"$or" => [{valid_from: nil}, {:valid_from.gt => Time.now.beginning_of_day}]})
|
48
|
+
|
49
|
+
limit = @opts.dig(:settings, @opts[:element], 'docs_per_view') || 5
|
50
|
+
query.order_by(created_at: -1).limit(limit)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
########################################################################
|
55
|
+
# Show one news document
|
56
|
+
########################################################################
|
57
|
+
def show(link)
|
58
|
+
document = DcNews.find_by(link: link)
|
59
|
+
return t('dc_news.entry_not_found') if document.nil?
|
36
60
|
|
37
|
-
replies =
|
38
|
-
|
39
|
-
@parent.render partial:
|
40
|
-
locals: {
|
61
|
+
replies = DcReply.where(doc_id: document.id, active: true).order(created_at: 1)
|
62
|
+
partial = @opts.dig(:settings, @opts[:element], 'show') || 'dc_news/show'
|
63
|
+
@parent.render partial: partial,
|
64
|
+
locals: { document: document, replies: replies, opts: @opts }
|
41
65
|
end
|
42
66
|
|
43
67
|
########################################################################
|
44
|
-
# List
|
68
|
+
# List news
|
45
69
|
########################################################################
|
46
|
-
def
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
@parent.render partial: 'dc_news/entries', formats: [:html], locals: { entries: entries }
|
70
|
+
def list
|
71
|
+
partial = @opts.dig(:settings, @opts[:element], 'view') || 'dc_news/list'
|
72
|
+
documents = collect_documents.to_a
|
73
|
+
@parent.render(partial: partial, formats: [:html], locals: { documents: documents, opts: @opts } )
|
51
74
|
end
|
52
75
|
|
53
76
|
########################################################################
|
54
|
-
# List last
|
77
|
+
# List last 3 news in footer.
|
55
78
|
########################################################################
|
56
79
|
def last_news
|
57
80
|
limit = @opts[:limit] || 3
|
58
81
|
entries = DcNews.only(:created_by_name, :link, :subject, :created_at)
|
59
|
-
.where(active: true)
|
82
|
+
.where(active: true)
|
60
83
|
.order_by(created_at: -1).limit(limit).to_a
|
61
|
-
|
62
|
-
if entries.size > 0
|
63
|
-
# for document link.
|
64
|
-
path = @opts[:path] || 'news'
|
65
|
-
@parent.render partial: 'dc_news/last_news', formats: [:html], locals: { entries: entries, path: path }
|
66
|
-
else
|
67
|
-
''
|
68
|
-
end
|
69
|
-
=end
|
84
|
+
|
70
85
|
entries.inject('') do |result, element|
|
71
86
|
result << @parent.link_to("/news/#{element.link}") do
|
72
87
|
%Q[
|
@@ -81,10 +96,12 @@ end
|
|
81
96
|
# Default method will dispatch to proper method.
|
82
97
|
########################################################################
|
83
98
|
def default
|
84
|
-
|
85
|
-
|
99
|
+
# if last part of url is page link show list otherwise it is document link
|
100
|
+
document_link = @opts[:path].last
|
101
|
+
if document_link == @parent.page.subject_link or document_link == @parent.site.homepage_link
|
102
|
+
list
|
86
103
|
else
|
87
|
-
|
104
|
+
show(document_link)
|
88
105
|
end
|
89
106
|
end
|
90
107
|
|
data/app/models/dc_forum.rb
CHANGED
@@ -30,17 +30,15 @@
|
|
30
30
|
# created_at Time created_at
|
31
31
|
# updated_at Time updated_at
|
32
32
|
# name String Forum name (short description)
|
33
|
+
# link String Forum link
|
33
34
|
# description String Long description of what is forum about
|
34
|
-
# site_id BSON::ObjectId Site that forums belongs to
|
35
35
|
# order Integer Order
|
36
36
|
# topics Integer No of topics
|
37
37
|
# replies Integer replies
|
38
38
|
# forum_groups Array forum_groups
|
39
|
-
# active
|
39
|
+
# active Boolean Is active
|
40
40
|
# created_by BSON::ObjectId created_by
|
41
41
|
# updated_by BSON::ObjectId updated_by
|
42
|
-
# created_by_name String created_by_name
|
43
|
-
# updated_by_name String updated_by_name
|
44
42
|
# dc_policy_rules Embedded:DcPolicyRule dc_policy_rules
|
45
43
|
#########################################################################
|
46
44
|
class DcForum
|
@@ -48,8 +46,8 @@ class DcForum
|
|
48
46
|
include Mongoid::Timestamps
|
49
47
|
|
50
48
|
field :name, type: String, default: ''
|
49
|
+
field :link, type: String
|
51
50
|
field :description, type: String, default: ''
|
52
|
-
field :site_id, type: BSON::ObjectId
|
53
51
|
field :order, type: Integer, default: 10
|
54
52
|
field :topics, type: Integer, default: 0
|
55
53
|
field :replies, type: Integer, default: 0
|
@@ -58,10 +56,23 @@ class DcForum
|
|
58
56
|
field :active, type: Boolean, default: true
|
59
57
|
field :created_by, type: BSON::ObjectId
|
60
58
|
field :updated_by, type: BSON::ObjectId
|
61
|
-
field :created_by_name, type: String
|
62
|
-
field :updated_by_name, type: String
|
63
59
|
|
64
60
|
embeds_many :dc_policy_rules, as: :policy_rules
|
65
61
|
|
66
|
-
index( {
|
62
|
+
index( { link: 1 } )
|
63
|
+
|
64
|
+
validates_length_of :name, minimum: 4
|
65
|
+
|
66
|
+
before_save :do_before_save
|
67
|
+
|
68
|
+
########################################################################
|
69
|
+
# Update link when left blank.
|
70
|
+
########################################################################
|
71
|
+
def do_before_save
|
72
|
+
if self.link.size < 5
|
73
|
+
self.link = self.name.strip.downcase.gsub(' ','-')
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
|
67
78
|
end
|
data/app/models/dc_reply.rb
CHANGED
@@ -32,6 +32,8 @@
|
|
32
32
|
# subject String Subject, short description of reply
|
33
33
|
# body String Body text of reply
|
34
34
|
# active Mongoid::Boolean Reply is active
|
35
|
+
# doc_id BSON::ObjectId Replied document id
|
36
|
+
# doc_class String Document origin class
|
35
37
|
# created_by BSON::ObjectId Created by
|
36
38
|
# created_by_name String Reply author's name
|
37
39
|
########################################################################
|
@@ -42,12 +44,12 @@ class DcReply
|
|
42
44
|
field :subject, type: String, default: ''
|
43
45
|
field :body, type: String, default: ''
|
44
46
|
field :active, type: Boolean, default: true
|
47
|
+
field :doc_id, type: BSON::ObjectId
|
48
|
+
field :doc_class, type: String
|
45
49
|
|
46
50
|
field :created_by, type: BSON::ObjectId
|
47
51
|
field :created_by_name, type: String
|
48
52
|
|
49
|
-
embedded_in :replies, polymorphic: true
|
50
|
-
|
51
53
|
validates_length_of :subject, minimum: 4
|
52
54
|
validates_length_of :body, minimum: 10
|
53
55
|
validates_length_of :created_by_name, minimum: 5
|
@@ -0,0 +1,13 @@
|
|
1
|
+
|
2
|
+
<div class="wrap">
|
3
|
+
<div id="blogs">
|
4
|
+
<h3><%= t('dc_blog.blogs') %></h3>
|
5
|
+
|
6
|
+
<% for document in documents %>
|
7
|
+
<div class="entry">
|
8
|
+
<div class="date"><%= dc_pretty_date(document.created_at) %></div>
|
9
|
+
<div class="title"><%= link_to( document.subject, path: "#{@page.link}/#{document.created_by_name}/#{document.link}" )%></div>
|
10
|
+
</div>
|
11
|
+
<% end %>
|
12
|
+
</div>
|
13
|
+
</div>
|
@@ -1,20 +1,20 @@
|
|
1
1
|
<div class="wrap">
|
2
2
|
<% if session[:edit_mode] > 1 %>
|
3
|
-
<%= dc_link_for_create(controller: 'cmsedit', table: 'dc_blog', title: 'dc_blog.
|
3
|
+
<%= dc_link_for_create(controller: 'cmsedit', table: 'dc_blog', title: 'dc_blog.new_document' ) %>
|
4
4
|
<br><br>
|
5
|
-
<%= dc_link_for_edit(controller: 'cmsedit', table: 'dc_blog', title: 'dc_blog.
|
5
|
+
<%= dc_link_for_edit(controller: 'cmsedit', table: 'dc_blog', title: 'dc_blog.edit_document', id: document.id ) %>
|
6
6
|
<% end %>
|
7
7
|
|
8
|
-
<div class="blog-subject"><
|
9
|
-
<div class="blog-date"><h4><%= t('dc_blog.published') + ' ' + dc_pretty_date(
|
8
|
+
<div class="blog-subject"><h2><%= document.subject %></h2></div>
|
9
|
+
<div class="blog-date"><h4><%= t('dc_blog.published') + ' ' + dc_pretty_date(document.created_at) %></h4></div>
|
10
10
|
|
11
|
-
<div class="blog-body"><%=
|
11
|
+
<div class="blog-body"><%= document.body.html_safe %></div>
|
12
12
|
<div class="social-sites"><%= social_sites %></div>
|
13
13
|
|
14
14
|
<div class="blog-replies">
|
15
15
|
<h2><%= t('dc_blog.comments') %></h2>
|
16
16
|
<%= render partial: 'dc_replay/reply', formats: [:html],
|
17
|
-
locals: { replies: replies,
|
17
|
+
locals: { replies: replies, parent_doc: document } %>
|
18
18
|
</div>
|
19
19
|
|
20
20
|
<iframe id="iframe_edit" name="iframe_edit" scrolling="no"></iframe>
|
@@ -2,10 +2,10 @@
|
|
2
2
|
<div id="last-news">
|
3
3
|
<h3><%= t('dc_news.last_news') %></h3>
|
4
4
|
|
5
|
-
<% for
|
5
|
+
<% for document in documents %>
|
6
6
|
<div class="entry">
|
7
|
-
<span class="date"><%= dc_pretty_date(
|
8
|
-
<span class="title"><%= link_to(
|
7
|
+
<span class="date"><%= dc_pretty_date(document.created_at) %></span>
|
8
|
+
<span class="title"><%= link_to( document.subject, "/#{path}/#{document.link}" )%></span>
|
9
9
|
</div>
|
10
10
|
<% end %>
|
11
11
|
</div>
|
@@ -0,0 +1,24 @@
|
|
1
|
+
<%
|
2
|
+
clas = (opts.dig(:settings, opts[:element], 'clas') || 'news') + ' list'
|
3
|
+
small = (opts.dig(:settings, opts[:element], 'small') || 1).to_i
|
4
|
+
medium = (opts.dig(:settings, opts[:element], 'medium') || small).to_i
|
5
|
+
large = (opts.dig(:settings, opts[:element], 'large') || medium).to_i
|
6
|
+
paging = opts.dig(:settings, opts[:element], 'paging') == '1'
|
7
|
+
link = opts.dig(:settings, opts[:element], 'link') || @page.subject_link
|
8
|
+
title = opts.dig(:settings, opts[:element], 'title') || t('dc_news.news')
|
9
|
+
%>
|
10
|
+
|
11
|
+
<div class="<%= clas %>">
|
12
|
+
<%= news_settings(opts) %>
|
13
|
+
<% unless title == '-' %><h2><%= title %></h2><% end %>
|
14
|
+
<%= if opts[:edit_mode] > 1
|
15
|
+
dc_link_for_create(controller: 'cmsedit', table: 'dc_news', title: 'dc_blog.new_entry' )
|
16
|
+
end %>
|
17
|
+
|
18
|
+
<% for document in documents %>
|
19
|
+
<div class="document">
|
20
|
+
<%= dc_pretty_date(document.created_at) %>
|
21
|
+
<h4><%= link_to( document.subject, { path: "#{link}/#{document.link}" } )%></h4>
|
22
|
+
</div>
|
23
|
+
<% end %>
|
24
|
+
</div>
|
@@ -0,0 +1,26 @@
|
|
1
|
+
<%
|
2
|
+
clas = (opts.dig(:settings, opts[:element], 'clas') || 'news') + ' one'
|
3
|
+
%>
|
4
|
+
|
5
|
+
<div class="<%= clas %>">
|
6
|
+
<% if session[:edit_mode] > 1 %>
|
7
|
+
<%= dc_link_for_edit(table: 'dc_news', title: 'dc_news.edit_document', id: document.id ) %>
|
8
|
+
<%= dc_link_for_create( table: 'dc_news', title: 'dc_news.new_document' ) %>
|
9
|
+
<% end %>
|
10
|
+
|
11
|
+
<h2><%= document.subject %></h2>
|
12
|
+
<div class="author">
|
13
|
+
<%= "#{t('dc_blog.author')} #{document.created_by_name}, #{dc_pretty_date(document.created_at)}" %>
|
14
|
+
</div><br>
|
15
|
+
|
16
|
+
<div class="body"><%= document.body.html_safe %></div>
|
17
|
+
<div class="social-sites"><%= social_sites %></div>
|
18
|
+
|
19
|
+
<div class="news-replies">
|
20
|
+
<h2><%= t('dc_blog.comments') %></h2>
|
21
|
+
<%= render partial: 'dc_replay/reply', formats: [:html],
|
22
|
+
locals: { replies: replies, parent_doc: document } %>
|
23
|
+
</div>
|
24
|
+
|
25
|
+
<iframe id="iframe_edit" name="iframe_edit" scrolling="no"></iframe>
|
26
|
+
</div>
|
@@ -1,24 +1,26 @@
|
|
1
1
|
|
2
2
|
<% for reply in replies %>
|
3
3
|
<% oddeven = cycle("odd", "even") %>
|
4
|
-
<div class="reply-top
|
4
|
+
<div class="reply-top <%= oddeven %>">
|
5
5
|
<span style="float: right; top-margin: 5px;">
|
6
|
-
<%= link_to( t('dc_forum.new_reply'), {
|
7
|
-
|
8
|
-
|
6
|
+
<%= link_to( t('dc_forum.new_reply'), { table: 'dc_reply', form_name: 'reply',
|
7
|
+
controller: :cmsedit, action: 'new', reply_to: reply.id,
|
8
|
+
p_doc_id: parent_doc.id, p_doc_class: parent_doc.class.to_s },
|
9
|
+
target: 'iframe_edit') %>
|
9
10
|
</span>
|
10
11
|
<b><%= reply.subject %></b><br>
|
11
12
|
<%= t('dc_forum.replied_by') %>: <%= reply.created_by_name %>,
|
12
13
|
<%= dc_pretty_date(reply.created_at) %> <br><br>
|
13
|
-
<div class="reply-body
|
14
|
+
<div class="reply-body <%= oddeven %>"><%= reply.body.html_safe %></div>
|
14
15
|
</div>
|
15
16
|
<% end %>
|
16
17
|
|
17
|
-
<
|
18
|
-
<
|
19
|
-
<%= link_to( t('dc_forum.new_reply'), { controller: 'cmsedit', table: "
|
20
|
-
form_name: 'reply', action: 'new',
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
18
|
+
<div id="dc-reply-menu">
|
19
|
+
<div class="dc-link dc-animate" style="float: left;">
|
20
|
+
<%= link_to( t('dc_forum.new_reply'), { controller: 'cmsedit', table: "dc_reply",
|
21
|
+
form_name: 'reply', action: 'new',
|
22
|
+
p_doc_id: parent_doc.id, p_doc_class: parent_doc.class.to_s},
|
23
|
+
{target: 'iframe_edit', class: 'dc-animate'}) %>
|
24
|
+
</div>
|
25
|
+
<%# = paginate replies %>
|
26
|
+
</div>
|
@@ -45,6 +45,7 @@ en:
|
|
45
45
|
my_blog: my blog
|
46
46
|
comments: Comments
|
47
47
|
last_blogs: Last blogs
|
48
|
+
blogs: Blogs
|
48
49
|
|
49
50
|
dc_news:
|
50
51
|
news: News
|
@@ -52,3 +53,28 @@ en:
|
|
52
53
|
edit_entry: Edit news entry
|
53
54
|
entry_not_found: News article not found
|
54
55
|
last_news: Last news
|
56
|
+
|
57
|
+
settings: News settings
|
58
|
+
categories: Categories
|
59
|
+
categories_help: Define categories shown by news agregator
|
60
|
+
number: Articles number
|
61
|
+
number_help: Number of articles shown by news agregator
|
62
|
+
paging: Add paging
|
63
|
+
paging_help: Add paging links for the agregator
|
64
|
+
small: Small
|
65
|
+
small_help: Number of articles per line on small screen
|
66
|
+
medium: Medium
|
67
|
+
medium_help: Number of articles per line on medium screen
|
68
|
+
large: Large
|
69
|
+
large_help: Number of articles per line on large screen
|
70
|
+
title: Title
|
71
|
+
title_help: Title displayed on top of news agregator. - for no title.
|
72
|
+
clas: CSS Class
|
73
|
+
clas_help: CSS Class wrapped around news agregator
|
74
|
+
list: List view
|
75
|
+
list_help: Rails view used for render news agregator. Default is dc_news/list.
|
76
|
+
show: Show view
|
77
|
+
show_help: Rails view used for render document. Default is dc_news/show.
|
78
|
+
link: Link
|
79
|
+
link_help: Link used to show document. Default is current page link.
|
80
|
+
|
@@ -45,6 +45,7 @@ sl:
|
|
45
45
|
my_blog: moj blog
|
46
46
|
comments: Komentarji
|
47
47
|
last_blogs: Zadnje objave na blogu
|
48
|
+
blogs: Blogi
|
48
49
|
|
49
50
|
dc_news:
|
50
51
|
news: Novice
|
@@ -53,7 +54,26 @@ sl:
|
|
53
54
|
entry_not_found: Novica ne obstaja
|
54
55
|
last_news: Zadnje novice
|
55
56
|
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
57
|
+
settings: Nastavitve za novice
|
58
|
+
categories: Kategorije
|
59
|
+
categories_help: Določi kategorije za prikaz novic
|
60
|
+
number: Število novic
|
61
|
+
number_help: Število novic prikazanih na eno strani
|
62
|
+
paging: Strani
|
63
|
+
paging_help: Dodaj kontrolnik za pomik po straneh
|
64
|
+
small: Mali
|
65
|
+
small_help: Število documentov v vrstici na malem zaslonu
|
66
|
+
medium: Srednji
|
67
|
+
medium_help: Število documentov v vrstici na srednjem zaslonu
|
68
|
+
large: Velik
|
69
|
+
large_help: Število documentov v vrstici na velikem zaslonu
|
70
|
+
title: Naslov
|
71
|
+
title_help: Naslov prikazan nad seznamom novic. - za brez naslova.
|
72
|
+
clas: CSS Class
|
73
|
+
clas_help: CSS razred v katerega bo ovit prikaz novic
|
74
|
+
list: Prikaz seznama
|
75
|
+
list_help: Rails view za prikaz seznama novic. Privzeto dc_news/list.
|
76
|
+
show: Prikaz dokumenta
|
77
|
+
show_help: Rails view za prikaz dokumenta. Privzeto dc_news/show.
|
78
|
+
link: Link
|
79
|
+
link_help: Nadrejena povezava za prikaz dokumenta. Privzeto je to povezava trenutne strani.
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: drg_blog_news_forum
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.52.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Damjan Rems
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-08-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -54,17 +54,19 @@ files:
|
|
54
54
|
- app/controllers/drgcms_controls/dc_forum_topic_control.rb
|
55
55
|
- app/controllers/drgcms_controls/dc_forum_topic_dc_reply_control.rb
|
56
56
|
- app/controllers/drgcms_controls/dc_news_dc_reply_control.rb
|
57
|
+
- app/controllers/drgcms_controls/reply_control.rb
|
57
58
|
- app/forms/cms_menu.yml
|
58
59
|
- app/forms/dc_blog.yml
|
59
60
|
- app/forms/dc_forum.yml
|
60
|
-
- app/forms/dc_forum_policy_rule.yml
|
61
61
|
- app/forms/dc_forum_topic.yml
|
62
62
|
- app/forms/dc_news.yml
|
63
63
|
- app/forms/dc_reply.yml
|
64
|
+
- app/forms/forum_settings.yml
|
65
|
+
- app/forms/news_settings.yml
|
64
66
|
- app/forms/reply.yml
|
65
67
|
- app/helpers/application_helper.rb
|
66
68
|
- app/helpers/dc_blog_renderer.rb
|
67
|
-
- app/helpers/
|
69
|
+
- app/helpers/dc_bnf_helper.rb
|
68
70
|
- app/helpers/dc_forum_renderer.rb
|
69
71
|
- app/helpers/dc_news_renderer.rb
|
70
72
|
- app/models/dc_blog.rb
|
@@ -75,19 +77,18 @@ files:
|
|
75
77
|
- app/models/dc_reply.rb
|
76
78
|
- app/views/dc_blog/_blog.html.erb
|
77
79
|
- app/views/dc_blog/_blogers.html.erb
|
78
|
-
- app/views/dc_blog/_entries.html.erb
|
79
|
-
- app/views/dc_blog/_entry.html.erb
|
80
80
|
- app/views/dc_blog/_last_blogs.erb
|
81
|
+
- app/views/dc_blog/_list.html.erb
|
82
|
+
- app/views/dc_blog/_show.html.erb
|
81
83
|
- app/views/dc_forum/_forums.html.erb
|
82
84
|
- app/views/dc_forum/_topic.html.erb
|
83
85
|
- app/views/dc_forum/_topics.html.erb
|
84
|
-
- app/views/dc_news/_entries.html.erb
|
85
|
-
- app/views/dc_news/_entry.html.erb
|
86
86
|
- app/views/dc_news/_last_news.erb
|
87
|
-
- app/views/dc_news/
|
87
|
+
- app/views/dc_news/_list.html.erb
|
88
|
+
- app/views/dc_news/_show.html.erb
|
88
89
|
- app/views/dc_replay/_reply.html.erb
|
89
|
-
- config/locales/
|
90
|
-
- config/locales/
|
90
|
+
- config/locales/dc_bnf_en.yml
|
91
|
+
- config/locales/dc_bnf_sl.yml
|
91
92
|
- config/locales/models_en.yml
|
92
93
|
- config/locales/models_sl.yml
|
93
94
|
- lib/drg_blog_news_forum.rb
|
@@ -117,7 +118,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
117
118
|
version: '0'
|
118
119
|
requirements: []
|
119
120
|
rubyforge_project:
|
120
|
-
rubygems_version: 2.6.14
|
121
|
+
rubygems_version: 2.6.14.1
|
121
122
|
signing_key:
|
122
123
|
specification_version: 4
|
123
124
|
summary: 'DRG CMS: Blog, news and forum plugin for DRG CMS'
|
@@ -1,19 +0,0 @@
|
|
1
|
-
<div class="wrap">
|
2
|
-
<div class="blog-title">
|
3
|
-
<h1><%= params[:name] %>, <%= t('dc_blog.my_blog') %></h1>
|
4
|
-
</div>
|
5
|
-
|
6
|
-
<%= if session[:edit_mode] > 1
|
7
|
-
dc_link_for_create(controller: 'cmsedit', table: 'dc_blog', title: 'dc_blog.new_entry' )
|
8
|
-
end %>
|
9
|
-
|
10
|
-
<% for entry in entries %>
|
11
|
-
<div class="blog-entry">
|
12
|
-
|
13
|
-
<%= link_to( entry.subject,
|
14
|
-
{ path: 'blog', name: params[:name], link: entry.link } )%>
|
15
|
-
|
16
|
-
<div class="blog-date"><h4><%= dc_pretty_date(entry.created_at) %></h4></div>
|
17
|
-
</div>
|
18
|
-
<% end %>
|
19
|
-
</div>
|
@@ -1,15 +0,0 @@
|
|
1
|
-
<div class="wrap">
|
2
|
-
<div class="news-title">
|
3
|
-
<h1><%= t('dc_news.news') %></h1>
|
4
|
-
</div>
|
5
|
-
<%= if session[:edit_mode] > 1
|
6
|
-
dc_link_for_create(controller: 'cmsedit', table: 'dc_news', title: 'dc_blog.new_entry' )
|
7
|
-
end %>
|
8
|
-
<% for entry in entries %>
|
9
|
-
|
10
|
-
<div class="news-entry">
|
11
|
-
<h4><%= link_to( entry.subject, { path: 'news', link: entry.link } )%></h4>
|
12
|
-
<%= dc_pretty_date(entry.created_at) %>
|
13
|
-
</div>
|
14
|
-
<% end %>
|
15
|
-
</div>
|
@@ -1,23 +0,0 @@
|
|
1
|
-
<div class="wrap">
|
2
|
-
<% if session[:edit_mode] > 1 %>
|
3
|
-
<%= dc_link_for_create(controller: 'cmsedit', table: 'dc_news', title: 'dc_news.new_entry' ) %>
|
4
|
-
<br><br>
|
5
|
-
<%= dc_link_for_edit(controller: 'cmsedit', table: 'dc_news', title: 'dc_news.edit_entry', id: entry.id ) %>
|
6
|
-
<% end %>
|
7
|
-
|
8
|
-
<div class="news-subject"><h2><%= entry.subject %></h2></div>
|
9
|
-
<div class="news-date"><h3>
|
10
|
-
<%= t('dc_blog.author') + ' ' + entry.created_by_name + ', ' + dc_pretty_date(entry.created_at) %>
|
11
|
-
</h3></div><br>
|
12
|
-
|
13
|
-
<div class="news-body"><%= entry.body.html_safe %></div>
|
14
|
-
<div class="social-sites"><%= social_sites %></div>
|
15
|
-
|
16
|
-
<div class="news-replies">
|
17
|
-
<h2><%= t('dc_blog.comments') %></h2>
|
18
|
-
<%= render partial: 'dc_replay/reply', formats: [:html],
|
19
|
-
locals: { replies: replies, parent_id: entry.id, parent_document: 'dc_news' } %>
|
20
|
-
</div>
|
21
|
-
|
22
|
-
<iframe id="iframe_edit" name="iframe_edit" scrolling="no"></iframe>
|
23
|
-
</div>
|
@@ -1,26 +0,0 @@
|
|
1
|
-
<div class="wrap">
|
2
|
-
<div class="news-title">
|
3
|
-
<%= title %>
|
4
|
-
</div>
|
5
|
-
|
6
|
-
<%= if session[:edit_mode] > 1
|
7
|
-
dc_link_for_create(controller: 'cmsedit', table: 'dc_news', title: 'dc_blog.new_entry' )
|
8
|
-
end %>
|
9
|
-
|
10
|
-
<% if news %>
|
11
|
-
<div class="news-date"><%= dc_pretty_date(news.created_at) %></div>
|
12
|
-
<div class="news-subject"><%= news.subject %></div>
|
13
|
-
<div style="clear:both;"></div>
|
14
|
-
|
15
|
-
<div class="news-body"><%= news.body%></div>
|
16
|
-
|
17
|
-
<div class="news-replies">
|
18
|
-
<%= render partial: 'dc_reply/reply', formats: [:html],
|
19
|
-
locals: { replies: replies, parent_id: news.id } %>
|
20
|
-
</div>
|
21
|
-
|
22
|
-
<iframe id="iframe_edit" name="iframe_edit" scrolling="no"></iframe>
|
23
|
-
<% else %>
|
24
|
-
<br><br><br>Sorry no news. Yet ;-)
|
25
|
-
<% end %>
|
26
|
-
</div>
|