drg_blog_news_forum 0.5.51.1 → 0.5.52.0
Sign up to get free protection for your applications and to get access to all the features.
- 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>
|