drg_cms 0.6.1.11 → 0.7.0.8
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/CHANGELOG.md +260 -0
- data/MIT-LICENSE +1 -1
- data/README.md +9 -5
- data/app/assets/javascripts/drg_cms/drg_cms.js +95 -34
- data/app/assets/javascripts/drg_cms/jquery.bpopup.js +372 -0
- data/app/assets/javascripts/drg_cms_application.js +1 -3
- data/app/assets/javascripts/drg_cms_cms.js +3 -4
- data/app/assets/stylesheets/drg_cms/drg_cms.css +37 -5
- data/app/assets/stylesheets/drg_cms/jstree.css +32 -27
- data/app/assets/stylesheets/drg_cms/select-multiple.css +6 -4
- data/app/controllers/cmsedit_controller.rb +22 -24
- data/app/controllers/dc_application_controller.rb +10 -9
- data/app/controllers/dc_common_controller.rb +14 -11
- data/app/controllers/dc_main_controller.rb +0 -1
- data/app/controls/dc_gallery_control.rb +46 -0
- data/app/controls/dc_image_control.rb +180 -0
- data/app/controls/dc_page_control.rb +3 -3
- data/app/controls/dc_poll_result_control.rb +7 -8
- data/app/controls/dc_report.rb +9 -4
- data/app/controls/design_element_settings_control.rb +88 -37
- data/app/forms/all_options.yml +18 -7
- data/app/forms/cms_menu.yml +10 -4
- data/app/forms/dc_category.yml +17 -8
- data/app/forms/dc_category_as_tree.yml +31 -0
- data/app/forms/dc_gallery.yml +1 -1
- data/app/forms/dc_image.yml +122 -0
- data/app/forms/dc_image_search.yml +72 -0
- data/app/forms/dc_page.yml +11 -8
- data/app/forms/dc_steps_template.yml +2 -1
- data/app/forms/help/dc_category_as_tree.en +4 -0
- data/app/forms/help/dc_category_as_tree.sl +5 -0
- data/app/helpers/cms_common_helper.rb +24 -16
- data/app/helpers/cms_edit_helper.rb +28 -35
- data/app/helpers/cms_helper.rb +21 -5
- data/app/helpers/cms_index_helper.rb +53 -38
- data/app/helpers/dc_application_helper.rb +95 -121
- data/app/helpers/dc_category_helper.rb +129 -0
- data/app/helpers/dc_image_helper.rb +127 -0
- data/app/models/concerns/dc_policy_rule_concern.rb +1 -1
- data/app/models/concerns/dc_user_concern.rb +12 -4
- data/app/models/dc_category.rb +62 -24
- data/app/models/dc_design.rb +5 -4
- data/app/models/dc_filter.rb +19 -18
- data/app/models/dc_image.rb +237 -0
- data/app/models/dc_internals.rb +5 -9
- data/app/models/dc_policy_role.rb +8 -8
- data/app/models/drgcms_form_fields/date_picker.rb +10 -12
- data/app/models/drgcms_form_fields/datetime_picker.rb +10 -11
- data/app/models/drgcms_form_fields/drgcms_field.rb +55 -30
- data/app/models/drgcms_form_fields/embedded.rb +11 -8
- data/app/models/drgcms_form_fields/journal_diff.rb +2 -2
- data/app/models/drgcms_form_fields/multitext_autocomplete.rb +51 -47
- data/app/models/drgcms_form_fields/select.rb +20 -14
- data/app/models/drgcms_form_fields/text_with_select.rb +5 -9
- data/app/models/drgcms_form_fields/tree_select.rb +20 -19
- data/app/renderers/dc_gallery_renderer.rb +10 -4
- data/app/renderers/dc_page_renderer.rb +7 -7
- data/app/renderers/dc_poll_renderer.rb +13 -12
- data/app/views/cmsedit/_edit_stuff.html.erb +1 -1
- data/app/views/cmsedit/edit.html.erb +1 -1
- data/app/views/cmsedit/index.html.erb +1 -1
- data/app/views/cmsedit/new.html.erb +1 -0
- data/app/views/layouts/content.html.erb +1 -1
- data/config/locales/drgcms_en.yml +16 -2
- data/config/locales/drgcms_sl.yml +15 -2
- data/config/locales/models_en.yml +33 -0
- data/config/locales/models_sl.yml +44 -1
- data/drg_cms.gemspec +3 -3
- data/lib/drg_cms/version.rb +1 -1
- data/lib/drg_cms.rb +19 -5
- data/lib/generators/convert_to_ar/USAGE +8 -0
- data/lib/generators/convert_to_ar/convert_to_ar_generator.rb +158 -0
- data/lib/tasks/dc_cleanup.rake +20 -42
- metadata +25 -14
- data/History.log +0 -109
- data/app/assets/javascripts/drg_cms/jquery.bpopup.min.js +0 -7
- data/app/views/layouts/__cmsedit.html.erb +0 -16
@@ -59,6 +59,7 @@ class TreeSelect < Select
|
|
59
59
|
###########################################################################
|
60
60
|
def make_tree(parent)
|
61
61
|
return '' unless @choices[parent.to_s]
|
62
|
+
|
62
63
|
@html << '<ul>'
|
63
64
|
choices = if @choices[parent.to_s].first[3] != 0
|
64
65
|
@choices[parent.to_s].sort_by {|e| e[3].to_i } # sort by order if first is not 0
|
@@ -66,16 +67,16 @@ def make_tree(parent)
|
|
66
67
|
@choices[parent.to_s].sort_alphabetical_by(&:first) # use UTF-8 sort
|
67
68
|
end
|
68
69
|
choices.each do |choice|
|
69
|
-
data = [ %
|
70
|
+
data = [ %("selected" : #{choice.last ? 'true' : 'false'} ) ]
|
70
71
|
# only for parent objects
|
71
72
|
if @choices[ choice[1].to_s ]
|
72
|
-
|
73
|
+
# parent is not selectable
|
73
74
|
data << '"disabled" : true' unless @parent.dc_dont?(@yaml['parent_disabled'], true)
|
74
|
-
|
75
|
+
# parents are opened on start
|
75
76
|
data << '"opened" : true' unless @parent.dc_dont?(@yaml['parent_opened'], true)
|
76
77
|
end
|
77
78
|
# data-jstree must be singe quoted
|
78
|
-
@html << %
|
79
|
+
@html << %(<li data-id="#{choice[1]}" data-jstree='{#{data.join(' , ')}}'>#{choice.first}\n)
|
79
80
|
# call recursively for children
|
80
81
|
make_tree(choice[1]) if @choices[ choice[1].to_s ]
|
81
82
|
@html << "</li>"
|
@@ -87,25 +88,24 @@ end
|
|
87
88
|
# Render tree_select field html code
|
88
89
|
###########################################################################
|
89
90
|
def render
|
90
|
-
#return ro_standard if @readonly
|
91
91
|
set_initial_value('html','value')
|
92
92
|
require 'sort_alphabetical'
|
93
93
|
|
94
94
|
record = record_text_for(@yaml['name'])
|
95
95
|
clas = 'tree-select' + (@readonly ? ' dc-readonly' : '')
|
96
96
|
@html << "<div id=\"#{@yaml['name']}\" class=\"#{clas}\" #{set_style()} >"
|
97
|
-
# Fill @choices hash. The key is parent object id
|
97
|
+
# Fill @choices hash. The key is parent object id
|
98
98
|
@choices = {}
|
99
99
|
choices_in_eval(@yaml['eval']).each do |data|
|
100
100
|
@choices[ data[2].to_s ] ||= []
|
101
101
|
@choices[ data[2].to_s ] << (data << false)
|
102
102
|
end
|
103
|
-
# put current values hash with. To speed up selection when there is a lot of categories
|
103
|
+
# put current values hash with. To speed up selection when there is a lot of categories
|
104
104
|
current_values = {}
|
105
105
|
current = @record[@yaml['name']] || []
|
106
106
|
current = [current] unless current.class == Array # non array fields
|
107
|
-
current.each {|e| current_values[e.to_s] = true}
|
108
|
-
# set third element of @choices when selected
|
107
|
+
current.each { |e| current_values[e.to_s] = true }
|
108
|
+
# set third element of @choices when selected
|
109
109
|
@choices.keys.each do |key|
|
110
110
|
0.upto( @choices[key].size - 1 ) do |i|
|
111
111
|
choice = @choices[key][i]
|
@@ -114,16 +114,16 @@ def render
|
|
114
114
|
end
|
115
115
|
make_tree(nil)
|
116
116
|
@html << '</div>'
|
117
|
-
# add hidden communication field
|
117
|
+
# add hidden communication field
|
118
118
|
@html << @parent.hidden_field(record, @yaml['name'], value: current.join(','))
|
119
|
-
# save multiple indicator for data processing on return
|
119
|
+
# save multiple indicator for data processing on return
|
120
120
|
@html << @parent.hidden_field(record, "#{@yaml['name']}_multiple", value: 1) if @yaml['multiple']
|
121
|
-
# javascript to update hidden record field when tree looses focus
|
122
|
-
readonly_code = %
|
121
|
+
# javascript to update hidden record field when tree looses focus
|
122
|
+
readonly_code = %(
|
123
123
|
,
|
124
124
|
"conditionalselect" : function (node) {
|
125
125
|
return false; }
|
126
|
-
|
126
|
+
)
|
127
127
|
|
128
128
|
@js =<<EOJS
|
129
129
|
$(function(){
|
@@ -131,7 +131,7 @@ $(function(){
|
|
131
131
|
"checkbox" : {"three_state" : false},
|
132
132
|
"core" : { "themes" : { "icons": false },
|
133
133
|
"multiple" : #{@yaml['multiple'] ? 'true' : 'false'} },
|
134
|
-
"plugins" : ["checkbox","conditionalselect"]
|
134
|
+
"plugins" : ["checkbox", "conditionalselect"]
|
135
135
|
#{@readonly ? readonly_code : ''}
|
136
136
|
});
|
137
137
|
});
|
@@ -155,13 +155,14 @@ end
|
|
155
155
|
###########################################################################
|
156
156
|
def self.get_data(params, name)
|
157
157
|
return nil if params['record'][name].blank?
|
158
|
-
|
158
|
+
|
159
159
|
result = params['record'][name].split(',')
|
160
|
-
result.delete_if
|
160
|
+
result.delete_if(&:blank?)
|
161
161
|
return nil if result.size == 0
|
162
|
-
|
162
|
+
|
163
|
+
# convert to BSON objects if is BSON object ID
|
163
164
|
result = result.map{ |e| BSON::ObjectId.from_string(e) } if BSON::ObjectId.legal?(result.first)
|
164
|
-
# return only first element if multiple values select was not
|
165
|
+
# return only first element if multiple values select was not allowed
|
165
166
|
params['record']["#{name}_multiple"] == '1' ? result : result.first
|
166
167
|
end
|
167
168
|
|
@@ -52,14 +52,20 @@ end
|
|
52
52
|
def default
|
53
53
|
can_view, msg = dc_user_can_view(@parent, @page)
|
54
54
|
return msg unless can_view
|
55
|
-
|
55
|
+
|
56
56
|
html = '<div class="picture-gallery"><ul>'
|
57
57
|
DcGallery.where(doc_id: @opts[:doc_id], active: true).order_by(order: 1).each do |picture|
|
58
58
|
html << '<li>'
|
59
|
-
|
59
|
+
if @opts[:edit_mode] > 1
|
60
|
+
html << edit_menu(picture)
|
61
|
+
html << %(
|
62
|
+
<span class="dc-inline-link dc-link-ajax" data-url="/cmsedit/run?control=DcGalleryControl.picture_remove;id=#{picture.id};table=DcGallery"
|
63
|
+
data-confirm="#{t('drgcms.confirm_delete')}" title="#{t('drgcms.delete')}">
|
64
|
+
<i class="mi-o mi-delete"></i>
|
65
|
+
</span>)
|
66
|
+
end
|
60
67
|
html << "#{@parent.link_to(i@parent.mage_tag(picture.thumbnail, title: picture.title), picture.picture)}<li>"
|
61
68
|
end
|
62
|
-
#
|
63
69
|
html << '</ul></div>'
|
64
70
|
end
|
65
71
|
|
@@ -88,7 +94,7 @@ def edit_menu(picture)
|
|
88
94
|
opts[:id] = picture.id
|
89
95
|
opts[:table] = 'dc_gallery'
|
90
96
|
|
91
|
-
'<li>'+dc_link_for_edit(opts)+'</li>'
|
97
|
+
'<li>' + dc_link_for_edit(opts) + '</li>'
|
92
98
|
end
|
93
99
|
|
94
100
|
|
@@ -41,7 +41,7 @@ include CmsCommonHelper
|
|
41
41
|
########################################################################
|
42
42
|
# Object initialization.
|
43
43
|
########################################################################
|
44
|
-
def initialize( parent, opts={} ) #:nodoc:
|
44
|
+
def initialize( parent, opts = {} ) #:nodoc:
|
45
45
|
@parent = parent
|
46
46
|
@opts = opts
|
47
47
|
@page = @parent.page
|
@@ -74,11 +74,11 @@ def iframe
|
|
74
74
|
return '' if @page.if_url.blank?
|
75
75
|
|
76
76
|
html = "\n<iframe"
|
77
|
-
html << " id=\"#{@page.if_id}\""
|
78
|
-
html << " class=\"#{@page.if_class}\""
|
77
|
+
html << " id=\"#{@page.if_id}\"" if @page.if_id.present?
|
78
|
+
html << " class=\"#{@page.if_class}\"" if @page.if_class.present?
|
79
79
|
html << " border=\"#{@page.if_border}\""
|
80
|
-
html << " height=\"#{@page.if_height}\""
|
81
|
-
html << " width=\"#{@page.if_width}\""
|
80
|
+
html << " height=\"#{@page.if_height}\"" if @page.if_height.present?
|
81
|
+
html << " width=\"#{@page.if_width}\"" if @page.if_width.blank?
|
82
82
|
html << " scrolling=\"#{@page.if_scroll}\""
|
83
83
|
# Parameters
|
84
84
|
parameters = @page.if_url.match(/\?/) ? '' : '?'
|
@@ -88,7 +88,7 @@ def iframe
|
|
88
88
|
val = @parent.dc_internal_var(value['object'], value['method'])
|
89
89
|
parameters << "&#{key}=#{val}" if val # only when not nil
|
90
90
|
end
|
91
|
-
url = @page.if_url + (parameters.
|
91
|
+
url = @page.if_url + (parameters.blank? ? '' : parameters)
|
92
92
|
html << "src=\"#{url}\" ></iframe>\n"
|
93
93
|
html
|
94
94
|
end
|
@@ -106,7 +106,7 @@ def default
|
|
106
106
|
html << @page.body
|
107
107
|
# render poll if defined
|
108
108
|
if @page.dc_poll_id
|
109
|
-
@opts.merge!(:
|
109
|
+
@opts.merge!(poll_id: @page.dc_poll_id, return_to: @parent.request.url, method: nil)
|
110
110
|
comment = DcPollRenderer.new(@parent, @opts)
|
111
111
|
html << "<div class='wrap row'>#{comment.render_html}</div>"
|
112
112
|
@css << "\n#{comment.render_css}"
|
@@ -110,7 +110,7 @@ def do_one_item(poll, yaml)
|
|
110
110
|
if !@end_of_data
|
111
111
|
html << (poll.display == 'lr' ? "</div><br>\n" : "</div>\n")
|
112
112
|
# captcha
|
113
|
-
if poll.captcha_type.
|
113
|
+
if poll.captcha_type.present?
|
114
114
|
@opts.merge!(:captcha_type => poll.captcha_type)
|
115
115
|
captcha = DcCaptchaRenderer.new(@parent, @opts)
|
116
116
|
html << captcha.render_html
|
@@ -157,7 +157,7 @@ end
|
|
157
157
|
########################################################################
|
158
158
|
def default
|
159
159
|
# poll_id may be defined in params or opts
|
160
|
-
poll_id = @opts[:poll_id] || @parent.params[:poll_id]
|
160
|
+
poll_id = @opts[:id] || @opts[:poll_id] || @parent.params[:poll_id]
|
161
161
|
return '<br>Poll id is not defined?<br>' if poll_id.nil?
|
162
162
|
|
163
163
|
poll = DcPoll.find(poll_id)
|
@@ -191,18 +191,19 @@ def default
|
|
191
191
|
html << %(<div class="poll-div">\n)
|
192
192
|
# edit link
|
193
193
|
if @opts[:edit_mode] > 1
|
194
|
-
@opts[:editparams].merge!( controller:
|
194
|
+
@opts[:editparams].merge!( controller: :cmsedit, action: :edit, id: poll._id, table: :dc_poll, form_name: :dc_poll )
|
195
195
|
@opts[:editparams].merge!(title: "#{t('drgcms.edit')}: #{poll.name}")
|
196
196
|
@opts[:editparams].delete(:ids) # this is from page, but it gets in a way
|
197
197
|
html << dc_link_for_edit( @opts[:editparams] )
|
198
198
|
end
|
199
199
|
|
200
200
|
html << case
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
201
|
+
when poll.operation == 'poll_submit'
|
202
|
+
@parent.form_tag(action: poll.operation, method: :put, return_to: params[:return_to])
|
203
|
+
when poll.operation == 'link'
|
204
|
+
poll.parameters << "?return_to=#{params[:return_to]}" if params[:return_to]
|
205
|
+
@parent.form_tag( poll.parameters, method: :put)
|
206
|
+
end
|
206
207
|
# header, - on first position will not display title
|
207
208
|
html << %(<div class="poll-title">#{poll.title}</div>) unless poll.title[0] == '-'
|
208
209
|
html << %(<div class="poll-text">#{poll.sub_text}</div>)
|
@@ -212,10 +213,10 @@ def default
|
|
212
213
|
%(<div class="poll-data-div">\n)
|
213
214
|
end
|
214
215
|
# items. Convert each item to yaml
|
215
|
-
@
|
216
|
+
@end_of_data = false
|
216
217
|
if poll.form.to_s.size < 10
|
217
218
|
items = poll.dc_poll_items
|
218
|
-
items.sort! { |a,b| a.order <=> b.order }
|
219
|
+
items.sort! { |a, b| a.order <=> b.order }
|
219
220
|
items.each do |item|
|
220
221
|
next unless item.active # disabled items
|
221
222
|
# convert options to yaml
|
@@ -232,12 +233,12 @@ def default
|
|
232
233
|
html << do_one_item(poll, yaml)
|
233
234
|
end
|
234
235
|
else
|
235
|
-
yaml = YAML.load(poll.form.gsub(' ',' ')) # very annoying. They come with copy&paste ;-)
|
236
|
+
yaml = YAML.load(poll.form.gsub(' ', ' ')) # very annoying. They come with copy&paste ;-)
|
236
237
|
# if entered without numbering yaml is returned as Hash otherwise as Array
|
237
238
|
yaml.each { |i| html << do_one_item(poll, (i.class == Hash ? i : i.last)) } #
|
238
239
|
end
|
239
240
|
# hide some fields usefull as parameters
|
240
|
-
html << @parent.hidden_field_tag('return_to', @opts[:return_to] || @parent.params[:return_to]
|
241
|
+
html << @parent.hidden_field_tag('return_to', @opts[:return_to] || @parent.params[:return_to])
|
241
242
|
html << @parent.hidden_field_tag('return_to_error', @parent.request.url )
|
242
243
|
html << @parent.hidden_field_tag('poll_id', poll_id )
|
243
244
|
html << @parent.hidden_field_tag('page_id', @parent.page.id )
|
@@ -4,7 +4,7 @@
|
|
4
4
|
<title><%= @page_title %></title>
|
5
5
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
6
6
|
<%= stylesheet_link_tag "application", media: 'all' %>
|
7
|
-
<style
|
7
|
+
<style media="all"><%= "#{@site.css if @site}#{@design.css if @design}\n#{@page.css if @page}".html_safe %></style>
|
8
8
|
<%= @site.header.html_safe %>
|
9
9
|
<%= javascript_include_tag "application" %>
|
10
10
|
<%= csrf_meta_tags %>
|
@@ -1,5 +1,5 @@
|
|
1
1
|
#--
|
2
|
-
# Copyright (c) 2012
|
2
|
+
# Copyright (c) 2012+ Damjan Rems
|
3
3
|
#
|
4
4
|
# Permission is hereby granted, free of charge, to any person obtaining
|
5
5
|
# a copy of this software and associated documentation files (the
|
@@ -65,7 +65,8 @@ en:
|
|
65
65
|
no_class: Class [%{class}] not defined!
|
66
66
|
no_method: Method (helper) [%{method}] not defined!
|
67
67
|
img_alt_not_present: All images in body must have alternative text entered
|
68
|
-
|
68
|
+
not_valid: Value is not valid!
|
69
|
+
|
69
70
|
toggle_cms: Toggle CMS edit/view mode
|
70
71
|
edit: Edit
|
71
72
|
show: Show
|
@@ -87,6 +88,7 @@ en:
|
|
87
88
|
save: Save
|
88
89
|
save&back: Save & back
|
89
90
|
save&close: Save & close
|
91
|
+
search: Search
|
90
92
|
filter_on: Filter ON
|
91
93
|
filter_off: Filter OFF
|
92
94
|
filter_set: Set filter
|
@@ -113,6 +115,8 @@ en:
|
|
113
115
|
choices4_filter_operators: 'Equal to:eq,Contains:like,Greater then:gt,Less then:lt,Is empty:empty'
|
114
116
|
|
115
117
|
browse_collections: Browse all collections
|
118
|
+
category_has_subs: Category can't be deleted, because it contains sub-elements.
|
119
|
+
category_as_tree: Edit in treeview
|
116
120
|
|
117
121
|
dc_journal:
|
118
122
|
zero_selected: No data selected!
|
@@ -139,3 +143,13 @@ en:
|
|
139
143
|
1basic: Basic
|
140
144
|
2index: Index
|
141
145
|
3form: Form
|
146
|
+
|
147
|
+
dc_image:
|
148
|
+
wrong_type: Image type not allowed! Types allowed are (jpg jpeg png gif svg webp).
|
149
|
+
no_file: Original image file not present. Try to upload image file again.
|
150
|
+
invoke: Invoke images manager.
|
151
|
+
search: Search and select image
|
152
|
+
select: Click to select
|
153
|
+
preview: Click to view image
|
154
|
+
available: Available image sizes
|
155
|
+
offset_error: Enter either X or Y offset.
|
@@ -64,7 +64,8 @@ sl:
|
|
64
64
|
img_large: Klik za večjo sliko
|
65
65
|
no_class: Razred (class) [%{class}] ni definiran!
|
66
66
|
no_method: Metoda (helper) [%{method}] ne obstaja!
|
67
|
-
img_alt_not_present: Vse slike v vsebini morajo imeti vpisano nadomestno besedilo
|
67
|
+
img_alt_not_present: Vse slike v vsebini morajo imeti vpisano nadomestno besedilo
|
68
|
+
not_valid: Nedovoljena vrednost!
|
68
69
|
|
69
70
|
toggle_cms: Preklopi med CMS urejanjem in prikazom
|
70
71
|
edit: Urejanje
|
@@ -87,6 +88,7 @@ sl:
|
|
87
88
|
save: Shrani
|
88
89
|
save&back: Shrani in nazaj
|
89
90
|
save&close: Shrani in zapri
|
91
|
+
search: Išči
|
90
92
|
filter_on: Vklopi filter
|
91
93
|
filter_off: Izklopi filter
|
92
94
|
filter_set: Nastavi filter
|
@@ -113,6 +115,8 @@ sl:
|
|
113
115
|
choices4_filter_operators: 'Je enak:eq,Vsebuje:like,Je večji od:gt,Je manjši od:lt,Je prazen:empty'
|
114
116
|
|
115
117
|
browse_collections: Brskanje po definicijah zbirk
|
118
|
+
category_has_subs: Kategorije ni mogoče izbrisati, ker vsebuje podrejene elemente.
|
119
|
+
category_as_tree: Uredi v drevesnem pogledu
|
116
120
|
|
117
121
|
dc_journal:
|
118
122
|
zero_selected: Ni izbranih podatkov!
|
@@ -137,4 +141,13 @@ sl:
|
|
137
141
|
2index: Index
|
138
142
|
3form: Forma
|
139
143
|
|
140
|
-
|
144
|
+
dc_image:
|
145
|
+
wrong_type: Nedovoljena vrsta slike. Dovoljene so vrste (jpg jpeg png gif svg webp).
|
146
|
+
no_file: Nisem našel originalne slike. Predlagam, da sliko ponovno naložite.
|
147
|
+
invoke: Zagon iskalnika slik.
|
148
|
+
search: Poiščite in izberite sliko
|
149
|
+
select: Kliknite za izbiro
|
150
|
+
preview: Kliknite za ogled slike
|
151
|
+
image: Slika
|
152
|
+
available: Velikosti na voljo
|
153
|
+
offset_error: Vpišite samo X ali Y zamik.
|
@@ -570,6 +570,26 @@ en:
|
|
570
570
|
dc_json_lds: Schema sub element
|
571
571
|
active: Active
|
572
572
|
|
573
|
+
dc_image:
|
574
|
+
tabletitle: Images manager
|
575
|
+
|
576
|
+
upload_file: Upload
|
577
|
+
name: File name
|
578
|
+
short: Short description
|
579
|
+
text: Description text
|
580
|
+
keep_original: Keep original
|
581
|
+
size_o: Original dimension
|
582
|
+
size_l: Large dimension
|
583
|
+
size_m: Medium dimension
|
584
|
+
size_s: Small dimension
|
585
|
+
size_ls: Large dimension
|
586
|
+
size_ms: Medium dimension
|
587
|
+
size_ss: Small dimension
|
588
|
+
categories: Categories
|
589
|
+
cats_input: Categories
|
590
|
+
categories_line: Categories
|
591
|
+
created_by: Uploaded by
|
592
|
+
|
573
593
|
# help for forms #####################################################
|
574
594
|
|
575
595
|
help:
|
@@ -973,3 +993,16 @@ en:
|
|
973
993
|
active: Document is active
|
974
994
|
add_schema: Add new schema
|
975
995
|
add_error: Schema element %{schema} already exists!
|
996
|
+
|
997
|
+
dc_image:
|
998
|
+
upload_file: Select file to upload
|
999
|
+
name: Original file name
|
1000
|
+
short: Short image description
|
1001
|
+
text: Longer image description text
|
1002
|
+
keep_original: Keep original image
|
1003
|
+
size_o: Dimension of original image
|
1004
|
+
size_l: Dimension for large image
|
1005
|
+
size_m: Dimension form medium size image
|
1006
|
+
size_s: Dimension for small size image
|
1007
|
+
categories: Categories for later searching of image
|
1008
|
+
created_by: Image was uploaded by
|
@@ -1,5 +1,5 @@
|
|
1
1
|
#--
|
2
|
-
# Copyright (c) 2012
|
2
|
+
# Copyright (c) 2012+ Damjan Rems
|
3
3
|
#
|
4
4
|
# Permission is hereby granted, free of charge, to any person obtaining
|
5
5
|
# a copy of this software and associated documentation files (the
|
@@ -574,6 +574,36 @@ sl:
|
|
574
574
|
active: Aktiven
|
575
575
|
dc_json_lds: Podelement strukture
|
576
576
|
|
577
|
+
dc_image:
|
578
|
+
tabletitle: Organizator slik
|
579
|
+
|
580
|
+
upload_file: Naloži datoteko
|
581
|
+
name: Originalno ime
|
582
|
+
short: Kratek opis
|
583
|
+
text: Daljši opis
|
584
|
+
keep_original: Ohrani original
|
585
|
+
size_o: Prvotna dimenzija
|
586
|
+
size_l: Velika dimenzija
|
587
|
+
size_m: Srednja dimenzija
|
588
|
+
size_s: Mala dimenzija
|
589
|
+
size_ls: Velika dimenzija
|
590
|
+
size_ms: Srednja dimenzija
|
591
|
+
size_ss: Mala dimenzija
|
592
|
+
offset_lx: Zamik X
|
593
|
+
offset_ly: Zamik Y
|
594
|
+
offset_mx: Zamik X
|
595
|
+
offset_my: Zamik Y
|
596
|
+
offset_sx: Zamik X
|
597
|
+
offset_sy: Zamik Y
|
598
|
+
preview_s: Slika
|
599
|
+
preview_m: Slika
|
600
|
+
preview_l: Slika
|
601
|
+
|
602
|
+
categories: Kategorije
|
603
|
+
cats_input: Kategorije
|
604
|
+
categories_line: Kategorije
|
605
|
+
created_by: Naložil
|
606
|
+
|
577
607
|
# help pomoč na obrazcih ####################################################
|
578
608
|
|
579
609
|
help:
|
@@ -985,3 +1015,16 @@ sl:
|
|
985
1015
|
add_schema: Dodaj strukturo
|
986
1016
|
add_error: Element %{schema} že obstaja!
|
987
1017
|
|
1018
|
+
dc_image:
|
1019
|
+
upload_file: Naloži datotekov obdelavo
|
1020
|
+
name: Originalno ime datoteke
|
1021
|
+
short: Kratek opis slike
|
1022
|
+
text: Daljši opis slike
|
1023
|
+
keep_original: Ohrani originalno sliko
|
1024
|
+
size_o: Dimenzije originalne slike
|
1025
|
+
size_l: Dimenzije velike slike
|
1026
|
+
size_m: Dimenzije srednje velike slike
|
1027
|
+
size_s: Dimenzije male slike
|
1028
|
+
categories: Kategorije za poznejše lažje iskanje slike
|
1029
|
+
created_by: Uporabnik, ki je naložil sliko
|
1030
|
+
offset: Offset image before resizing. Offset origin is the top left corner.
|
data/drg_cms.gemspec
CHANGED
@@ -15,7 +15,7 @@ Gem::Specification.new do |s|
|
|
15
15
|
s.summary = 'DRG: Rapid web application development tool and CMS for Ruby, Rails and MongoDB'
|
16
16
|
s.description = 'DRG, development tool for rapid building of in-house (Intranet, private cloud) applications as well as CMS for creating complex, data-entry intensive web sites.'
|
17
17
|
s.license = 'MIT'
|
18
|
-
s.files = Dir['{app,config,db,lib}/**/*'] + %w[MIT-LICENSE Rakefile README.md
|
18
|
+
s.files = Dir['{app,config,db,lib}/**/*'] + %w[MIT-LICENSE Rakefile README.md CHANGELOG.md drg_cms.gemspec]
|
19
19
|
s.test_files = Dir['test/**/*']
|
20
20
|
|
21
21
|
s.required_ruby_version = '>= 2.7'
|
@@ -23,10 +23,10 @@ Gem::Specification.new do |s|
|
|
23
23
|
s.add_dependency 'rails'#, '~> 6.1'
|
24
24
|
s.add_dependency 'jquery-rails'
|
25
25
|
s.add_dependency 'jquery-ui-rails'
|
26
|
-
s.add_dependency 'non-
|
26
|
+
s.add_dependency 'non-digest-assets'
|
27
27
|
|
28
28
|
s.add_dependency 'bcrypt' #, '~> 3.0.0'
|
29
|
-
s.add_dependency 'mongoid'
|
29
|
+
s.add_dependency 'mongoid'#, '~> 7'
|
30
30
|
|
31
31
|
s.add_dependency 'kaminari-mongoid'
|
32
32
|
s.add_dependency 'kaminari-actionview'
|
data/lib/drg_cms/version.rb
CHANGED
data/lib/drg_cms.rb
CHANGED
@@ -29,7 +29,7 @@ end
|
|
29
29
|
# When new plugin with its own DRG forms is added to application, path to
|
30
30
|
# forms directory must be send to DrgCms module. Paths are saved into @@paths hash variable.
|
31
31
|
#
|
32
|
-
# Adding path is best done in plugin
|
32
|
+
# Adding path is best done in plugin module initialization code.
|
33
33
|
#
|
34
34
|
# Parameters:
|
35
35
|
# [path] String. Path to forms directory
|
@@ -54,7 +54,7 @@ def self.add_forms_path(path)
|
|
54
54
|
end
|
55
55
|
|
56
56
|
###############################################################################
|
57
|
-
# Patching is one of the rubies best
|
57
|
+
# Patching is one of the rubies best strengths and also its curse. Loading
|
58
58
|
# patches in development has become real problem for developers. This is my
|
59
59
|
# way of patch loading.
|
60
60
|
#
|
@@ -85,7 +85,7 @@ end
|
|
85
85
|
# General add path method. Paths are saved into @@paths hash variable. Paths can
|
86
86
|
# then be reused in different parts of application.
|
87
87
|
#
|
88
|
-
# Adding paths is best done in plugin
|
88
|
+
# Adding paths is best done in plugin module initialization code.
|
89
89
|
#
|
90
90
|
# Parameters:
|
91
91
|
# [type] Symbol. Defines type of data. Current used values are :forms, :patches
|
@@ -120,9 +120,9 @@ end
|
|
120
120
|
|
121
121
|
####################################################################
|
122
122
|
# Checks if any errors exist on document and writes error log. It can also
|
123
|
-
# crash if requested. This is mostly
|
123
|
+
# crash if requested. This is mostly useful in development for debugging
|
124
124
|
# model errors or when updating multiple collections and each save must be
|
125
|
-
# checked if
|
125
|
+
# checked if successful.
|
126
126
|
#
|
127
127
|
# @param [Document] Document object which will be checked
|
128
128
|
# @param [Boolean] If true method should end in runtime error. Default = false.
|
@@ -165,6 +165,7 @@ end
|
|
165
165
|
# @param [String] Optional key to be deleted
|
166
166
|
####################################################################
|
167
167
|
def self.cache_clear(key = nil)
|
168
|
+
return unless Rails.cache
|
168
169
|
return Rails.cache.clear if key.nil?
|
169
170
|
|
170
171
|
if redis_cache_store?
|
@@ -211,6 +212,19 @@ def self.cache_write(keys, data)
|
|
211
212
|
data
|
212
213
|
end
|
213
214
|
|
215
|
+
####################################################################
|
216
|
+
# Reads data from mongoid cache. Mongoid has it's own cache, which can be
|
217
|
+
# used to cache results on single request.
|
218
|
+
#
|
219
|
+
# @param [model] class: Model name
|
220
|
+
# @param [id] String || BSON::ObjectId : Id
|
221
|
+
#
|
222
|
+
# @return [Object] data document.
|
223
|
+
####################################################################
|
224
|
+
def self.cached(model, id)
|
225
|
+
Mongoid::QueryCache.cache { model.find(id) }
|
226
|
+
end
|
227
|
+
|
214
228
|
###############################################################################
|
215
229
|
# All Routes required by DrgCms.
|
216
230
|
#
|