drg_cms 0.7.0.8 → 0.7.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/javascripts/drg_cms/drg_cms.js +50 -20
- data/app/assets/stylesheets/drg_cms/drg_cms.css +89 -31
- data/app/assets/stylesheets/drg_cms/select-multiple.css +5 -6
- data/app/controllers/cmsedit_controller.rb +57 -24
- data/app/controllers/dc_application_controller.rb +18 -21
- data/app/controls/dc_poll_result_control.rb +36 -36
- data/app/controls/dc_setup_control.rb +53 -0
- data/app/forms/all_options.yml +3 -3
- data/app/forms/cms_menu.yml +7 -0
- data/app/forms/dc_image_search.yml +2 -2
- data/app/forms/dc_poll.yml +2 -1
- data/app/forms/dc_poll_result.yml +10 -7
- data/app/forms/dc_setup.yml +45 -0
- data/app/forms/dc_steps_template.yml +4 -1
- data/app/helpers/cms_common_helper.rb +14 -10
- data/app/helpers/cms_helper.rb +8 -7
- data/app/helpers/cms_index_helper.rb +56 -42
- data/app/helpers/dc_application_helper.rb +46 -16
- data/app/helpers/dc_image_helper.rb +2 -2
- data/app/models/concerns/dc_user_concern.rb +1 -1
- data/app/models/dc_big_table.rb +1 -1
- data/app/models/dc_filter.rb +5 -9
- data/app/models/dc_image.rb +1 -1
- data/app/models/dc_memory.rb +2 -2
- data/app/models/dc_setup.rb +111 -0
- data/app/models/drgcms_form_fields/datetime_picker.rb +1 -1
- data/app/models/drgcms_form_fields/embedded.rb +17 -9
- data/app/models/drgcms_form_fields/multitext_autocomplete.rb +44 -36
- data/app/models/drgcms_form_fields/select.rb +21 -5
- data/app/renderers/dc_big_menu_renderer.rb +18 -20
- data/app/renderers/dc_menu_renderer.rb +21 -58
- data/app/renderers/dc_simple_menu_renderer.rb +1 -1
- data/app/views/cmsedit/_edit_stuff.html.erb +3 -0
- data/config/locales/drgcms_en.yml +8 -0
- data/config/locales/drgcms_sl.yml +12 -4
- data/config/locales/models_en.yml +17 -1
- data/config/locales/models_sl.yml +17 -1
- data/lib/drg_cms/version.rb +1 -1
- data/lib/drg_cms.rb +22 -23
- data/lib/generators/new_drg_form/new_drg_form_generator.rb +32 -14
- metadata +5 -2
@@ -1,4 +1,3 @@
|
|
1
|
-
#coding: utf-8
|
2
1
|
#--
|
3
2
|
# Copyright (c) 2013+ Damjan Rems
|
4
3
|
#
|
@@ -51,9 +50,7 @@ def find_selected #:nodoc:
|
|
51
50
|
while ret and ret.parent != nil
|
52
51
|
ret = DcBigMenu.find( ret.parent )
|
53
52
|
end
|
54
|
-
|
55
|
-
# p ret
|
56
|
-
ret ||= DcBigMenu.where(dc_site_id: @site._id, parent: nil, active: true).limit(1).first
|
53
|
+
ret || DcBigMenu.where(dc_site_id: @site._id, parent: nil, active: true).limit(1).first
|
57
54
|
end
|
58
55
|
|
59
56
|
########################################################################
|
@@ -78,7 +75,7 @@ def link_4menu(item) #:nodoc:
|
|
78
75
|
html = ''
|
79
76
|
link = item.link
|
80
77
|
link = "/#{@site.route_name}/#{item.page_id}" #if link.blank?
|
81
|
-
|
78
|
+
|
82
79
|
html << @parent.link_to(item.picture, link) unless item.picture.blank?
|
83
80
|
html << if !item.caption.blank?
|
84
81
|
# TODO Translation
|
@@ -91,23 +88,23 @@ end
|
|
91
88
|
########################################################################
|
92
89
|
def left_menu
|
93
90
|
html = ''
|
94
|
-
|
95
|
-
# Show menu on same level if selected has no children
|
91
|
+
menu = DcBigMenu.find( @parent.page.menu_id )
|
92
|
+
# Show menu on same level if selected has no children
|
96
93
|
if DcBigMenu.where( parent: @parent.page.menu_id ).limit(1).to_a.size == 0
|
97
|
-
|
94
|
+
menu = DcBigMenu.find( m.parent )
|
98
95
|
end
|
99
|
-
|
100
|
-
html << "<div class='menu-left-item-top'>#{
|
101
|
-
DcBigMenu.where( parent:
|
96
|
+
|
97
|
+
html << "<div class='menu-left-item-top'>#{menu.caption}</div>"
|
98
|
+
DcBigMenu.where( parent: menu.id ).order(order: 1).each do |item|
|
102
99
|
html << (item._id == @parent.page.menu_id ? '<div class="menu-left-item-selected">' : '<div class="menu-left-item">')
|
103
100
|
html << link_4menu(item)
|
104
101
|
html << '</div>'
|
105
102
|
end
|
106
|
-
|
103
|
+
|
107
104
|
html << "<div class='menu-left-item-bottom'>"
|
108
|
-
if
|
109
|
-
|
110
|
-
html << "▲ #{link_4menu(
|
105
|
+
if menu.parent
|
106
|
+
parent = DcBigMenu.find( menu.parent )
|
107
|
+
html << "▲ #{link_4menu(parent)}"
|
111
108
|
end
|
112
109
|
html << ' </div>'
|
113
110
|
end
|
@@ -124,14 +121,14 @@ def path
|
|
124
121
|
m = DcBigMenu.find( m.parent )
|
125
122
|
a << m
|
126
123
|
end
|
127
|
-
|
124
|
+
|
128
125
|
(a.size - 1).downto(0) do |i|
|
129
126
|
html << "<span id=menu-path-#{a.size - 1 - i}>"
|
130
127
|
html << link_4menu(a[i])
|
131
128
|
html << (i > 0 ? ' » ' : '') #›➔
|
132
129
|
html << '</span>'
|
133
130
|
end
|
134
|
-
# Save level to parents params object
|
131
|
+
# Save level to parents params object
|
135
132
|
@parent.params[:menu_level] = a.size
|
136
133
|
html
|
137
134
|
end
|
@@ -144,20 +141,21 @@ def default
|
|
144
141
|
@selected = find_selected
|
145
142
|
level_0 = DcBigMenu.where(dc_site_id: @site._id, parent: nil, active: true).sort(order: 1).to_a
|
146
143
|
level_0.each do |item|
|
147
|
-
# menu can be hidden from user
|
144
|
+
# menu can be hidden from user
|
148
145
|
can_view, msg = dc_user_can_view(@parent, item)
|
149
146
|
next unless can_view
|
147
|
+
|
150
148
|
klas = item.id == @selected.id ? "menu0-selected" : "menu0-item"
|
151
149
|
html << "<li class='#{klas}'>#{ link_4menu(item) }</li>\n"
|
152
150
|
end
|
153
151
|
html << "</ul></div>"
|
154
|
-
# submenu
|
152
|
+
# submenu
|
155
153
|
level_1 = DcBigMenu.where(dc_site_id: @site._id, parent: @selected.id, active: true).sort(order: 1).to_a
|
156
154
|
html << "<div class='menu1-div'><ul>\n"
|
157
155
|
level_1.each do |item1|
|
158
|
-
# menu can be hidden from user
|
159
156
|
can_view, msg = dc_user_can_view(@parent, item1)
|
160
157
|
next unless can_view
|
158
|
+
|
161
159
|
html << " <li class='menu1-item'>#{link_4menu(item1)}</li>\n"
|
162
160
|
end
|
163
161
|
html << '</ul></div>'
|
@@ -55,7 +55,7 @@ def find_selected
|
|
55
55
|
top_menu_id = @parent.page.menu_id.split(';')[1] if @parent.page.menu_id.match(';')
|
56
56
|
ret = @menu.dc_menu_items.find(top_menu_id)
|
57
57
|
end
|
58
|
-
# return first if not found (something is wrong)
|
58
|
+
# return first if not found (something is wrong)
|
59
59
|
ret ||= @menu.dc_menu_items[0]
|
60
60
|
end
|
61
61
|
|
@@ -64,50 +64,11 @@ end
|
|
64
64
|
########################################################################
|
65
65
|
def link_4edit(opts) #:nodoc:
|
66
66
|
html = ''
|
67
|
-
# return html unless @opts[:edit_mode] > 1
|
68
|
-
|
69
67
|
opts.merge!( { controller: 'cmsedit', action: 'edit' } )
|
70
68
|
title = "#{t('drgcms.edit')}: "
|
71
69
|
opts[:title] = "#{title} #{opts[:title]}"
|
72
70
|
|
73
|
-
html <<
|
74
|
-
end
|
75
|
-
|
76
|
-
########################################################################
|
77
|
-
# Returns html code required to create single link in a menu. Subroutine of do_menu_level.
|
78
|
-
########################################################################
|
79
|
-
def link_4menu(item)
|
80
|
-
# prepand to link
|
81
|
-
link = if !item.link_prepend.blank?
|
82
|
-
item.link_prepend
|
83
|
-
elsif !@menu.link_prepend.blank?
|
84
|
-
@menu.link_prepend
|
85
|
-
else
|
86
|
-
''
|
87
|
-
end
|
88
|
-
|
89
|
-
if item.link.match('http')
|
90
|
-
link = item.link
|
91
|
-
else
|
92
|
-
link += (item.link[0] == '/' ? '' : '/') + item.link
|
93
|
-
link = '/' + link unless link[0] == '/' # link should start with '/'
|
94
|
-
end
|
95
|
-
|
96
|
-
target = item.target.blank? ? nil : item.target
|
97
|
-
# - in first place won't write caption text
|
98
|
-
caption = item.caption[0] == '-' ? '' : item.caption.to_s
|
99
|
-
img_title = item.caption.to_s.sub('-','')
|
100
|
-
# add picture if picture is not blank
|
101
|
-
html = ''
|
102
|
-
if !item.picture.blank?
|
103
|
-
if item.picture[0,3] == 'fa-'
|
104
|
-
caption << @parent.fa_icon(item.picture[3,20])
|
105
|
-
else
|
106
|
-
html = @parent.link_to( @parent.image_tag(item.picture), link, {title: img_title, target: target} ) rescue ''
|
107
|
-
end
|
108
|
-
end
|
109
|
-
html << @parent.link_to(caption.html_safe, link, {target: target}) unless caption.blank?
|
110
|
-
html
|
71
|
+
html << "<li>#{dc_link_for_edit(opts)}</li>"
|
111
72
|
end
|
112
73
|
|
113
74
|
########################################################################
|
@@ -117,9 +78,9 @@ end
|
|
117
78
|
# [item] MenuItem.
|
118
79
|
########################################################################
|
119
80
|
def link_4menu(item)
|
120
|
-
# just horizontal line
|
81
|
+
# just horizontal line
|
121
82
|
return item.caption if item.caption == '<hr>'
|
122
|
-
# prepand to link
|
83
|
+
# prepand to link
|
123
84
|
link = if !item.link_prepend.blank?
|
124
85
|
item.link_prepend
|
125
86
|
elsif !@menu.link_prepend.blank?
|
@@ -160,27 +121,29 @@ end
|
|
160
121
|
########################################################################
|
161
122
|
# Creates HTML code required for submenu on single level. Subroutine of default.
|
162
123
|
########################################################################
|
163
|
-
def do_menu_level(menu, options={})
|
124
|
+
def do_menu_level(menu, options = {})
|
164
125
|
html = "<ul>"
|
165
126
|
if @opts[:edit_mode] > 1
|
166
127
|
options[:title] = menu.respond_to?('name') ? menu.name : menu.caption # 1. level or submenus
|
167
|
-
options[:id]
|
128
|
+
options[:id] = menu._id
|
168
129
|
html << link_4edit(options)
|
169
130
|
end
|
170
|
-
# sort items
|
131
|
+
# sort items according to :order
|
171
132
|
menu.dc_menu_items.order_by(order: 1).each do |item|
|
172
133
|
next unless item.active
|
173
|
-
# menu can be hidden from user
|
134
|
+
# menu can be hidden from user
|
174
135
|
can_view, msg = dc_user_can_view(@parent, item)
|
175
136
|
next unless can_view
|
176
|
-
|
177
|
-
html << if item.
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
137
|
+
|
138
|
+
html << if @opts[:path]&.include?(item.link)
|
139
|
+
%(<li class="menu-selected">#{ link_4menu(item) })
|
140
|
+
elsif item.id == @selected.id
|
141
|
+
%(<li class="menu-selected">#{ link_4menu(item) })
|
142
|
+
else
|
143
|
+
"<li>#{ link_4menu(item) }"
|
144
|
+
end
|
145
|
+
# do submenu
|
146
|
+
if item.dc_menu_items.size > 0
|
184
147
|
if @opts[:edit_mode] > 1
|
185
148
|
opts = options.clone
|
186
149
|
opts['ids'] = (opts['ids'] ? "#{opts['ids']};" : '') + menu._id.to_s
|
@@ -199,12 +162,12 @@ end
|
|
199
162
|
########################################################################
|
200
163
|
def default
|
201
164
|
return "(#{@opts[:name]}) menu not found!" if @menu.nil?
|
202
|
-
|
165
|
+
|
203
166
|
@selected = find_selected
|
204
167
|
html = ''
|
205
|
-
html << "<div id='#{@menu.div_name}'>"
|
168
|
+
html << "<div id='#{@menu.div_name}'>" if @menu.div_name.present?
|
206
169
|
html << do_menu_level(@menu, table: 'dc_menu')
|
207
|
-
html << "</div>"
|
170
|
+
html << "</div>" if @menu.div_name.present?
|
208
171
|
html
|
209
172
|
end
|
210
173
|
|
@@ -162,8 +162,8 @@ def as_responsive
|
|
162
162
|
items.each do |item|
|
163
163
|
# menu can be hidden from user
|
164
164
|
can_view, msg = dc_user_can_view(@parent, item)
|
165
|
-
p msg unless can_view
|
166
165
|
next unless can_view
|
166
|
+
|
167
167
|
html << "<li class=\"#{klas}#{(item.id == @selected.id) ? 'selected' : 'item'}\">#{ link_4menu(item) }</li>" #
|
168
168
|
end
|
169
169
|
html
|
@@ -35,6 +35,9 @@
|
|
35
35
|
{controller: 'dc_common', action: 'paste_clipboard'}, target: 'iframe_cms') %>
|
36
36
|
|
37
37
|
<%= DrgcmsFormFields::Elfinder.file_manager_url(self) %>
|
38
|
+
<span>|</span>
|
39
|
+
|
40
|
+
<%= link_to(session[:user_name], '/cms/logout', { title: t('drgcms.logout') }) %>
|
38
41
|
|
39
42
|
</div>
|
40
43
|
</div>
|
@@ -40,6 +40,7 @@ en:
|
|
40
40
|
doc_paste_update: Update existing document if document._id exists
|
41
41
|
doc_no_delete: Document can not be deleted!
|
42
42
|
doc_no_update: Document can not be updated!
|
43
|
+
doc_no_edit: Document can not be edited!
|
43
44
|
edit_content: Edit content
|
44
45
|
edit_advanced: Advanced edit
|
45
46
|
edit_new_page: Create new page
|
@@ -53,11 +54,13 @@ en:
|
|
53
54
|
menu_plus: Show alternative menu
|
54
55
|
not_email: is not valid e-mail address!
|
55
56
|
updated_by_other: Document was updated by other user. Please reenter your data.
|
57
|
+
dfs: Double submit error! Returning back in history is prohibited.
|
56
58
|
not_id: Value entered is not ID!
|
57
59
|
cms_main: CMS main tables
|
58
60
|
cms_advanced: CMS advanced
|
59
61
|
search_placeholder: Start typing to search
|
60
62
|
login: Login into CMS
|
63
|
+
logout: Logout
|
61
64
|
username: User name
|
62
65
|
password: Password
|
63
66
|
form_error: Error loading form %{form_name}
|
@@ -99,6 +102,9 @@ en:
|
|
99
102
|
errors_no: 'No. of errors:'
|
100
103
|
runtime_error: Runtime error!
|
101
104
|
two_chars: type in at least two chars
|
105
|
+
print: Print
|
106
|
+
export: Export
|
107
|
+
result: Result
|
102
108
|
|
103
109
|
created_by: Created by
|
104
110
|
updated_by: Updated by
|
@@ -118,6 +124,8 @@ en:
|
|
118
124
|
category_has_subs: Category can't be deleted, because it contains sub-elements.
|
119
125
|
category_as_tree: Edit in treeview
|
120
126
|
|
127
|
+
iframe_save_to_view: Data must be saved in order to view content
|
128
|
+
|
121
129
|
dc_journal:
|
122
130
|
zero_selected: No data selected!
|
123
131
|
restored: Data has been restored.
|
@@ -32,17 +32,18 @@ sl:
|
|
32
32
|
not_authorized: Uporabnik nima pravic za to operacijo!
|
33
33
|
doc_disabled: Dokument onemogočen!
|
34
34
|
doc_enabled: Dokument omogočen!
|
35
|
-
|
36
|
-
doc_info: Info
|
37
|
-
doc_copy_clipboard: Kopija vsebine dokumenta v novem oknu.
|
38
|
-
doc_paste_clipboard: Obdelaj podatke
|
35
|
+
doc_paste_clipboard: Obdelaj podatke
|
39
36
|
doc_paste_title: Ustvari (spremeni) dokumente iz JSON zapisa
|
40
37
|
doc_paste_update: Spremeni obstoječ dokument, če dokument._id obstaja
|
41
38
|
doc_no_delete: Dokumenta ni možno izbrisati!
|
42
39
|
doc_no_update: Dokumenta ni možno spremeniti!
|
40
|
+
doc_no_edit: Dokumenta ni možno urejati!
|
43
41
|
edit_content: Urejanje vsebine
|
44
42
|
edit_advanced: Napredno urejanje
|
45
43
|
edit_new_page: Ustvarite novo stran
|
44
|
+
doc_saved: Dokument zapisan!
|
45
|
+
doc_info: Info
|
46
|
+
doc_copy_clipboard: Kopija vsebine dokumenta v novem oknu.
|
46
47
|
edit_new_part: Ustvarite nov element na strani
|
47
48
|
edit_design: 'Uredi: Dizajn'
|
48
49
|
edit_site: 'Uredi: Spletišče'
|
@@ -53,11 +54,13 @@ sl:
|
|
53
54
|
menu_plus: Malo drugačen menu
|
54
55
|
not_email: ni veljaven e-naslov!
|
55
56
|
updated_by_other: Dokument je spremenil drug uporabnik. Prosimo ponovite vpis podatkov.
|
57
|
+
dfs: Dvojno shranjevanje. Vračanje v zgodovino brskalnika ni dovoljeno.
|
56
58
|
not_id: Vsebina polja ni ključ ID!
|
57
59
|
cms_main: CMS tabele
|
58
60
|
cms_advanced: CMS napredne opcije
|
59
61
|
search_placeholder: Vpišite pojem za iskanje
|
60
62
|
login: Prijava v CMS
|
63
|
+
logout: Odjava
|
61
64
|
username: Uporabnik
|
62
65
|
password: Geslo
|
63
66
|
form_error: Napaka pri branju forme %{form_name}
|
@@ -99,6 +102,9 @@ sl:
|
|
99
102
|
errors_no: 'Število napak:'
|
100
103
|
runtime_error: Napaka med izvajanjem programa!
|
101
104
|
two_chars: vpišite vsaj dva znaka
|
105
|
+
print: Tiskanje
|
106
|
+
export: Izvoz
|
107
|
+
result: Rezultat
|
102
108
|
|
103
109
|
created_by: Ustvaril
|
104
110
|
updated_by: Spremenil
|
@@ -118,6 +124,8 @@ sl:
|
|
118
124
|
category_has_subs: Kategorije ni mogoče izbrisati, ker vsebuje podrejene elemente.
|
119
125
|
category_as_tree: Uredi v drevesnem pogledu
|
120
126
|
|
127
|
+
iframe_save_to_view: Za prikaz vsebine je potrebno predhodno shraniti podatke.
|
128
|
+
|
121
129
|
dc_journal:
|
122
130
|
zero_selected: Ni izbranih podatkov!
|
123
131
|
restored: Podatki so restavrirani.
|
@@ -590,7 +590,17 @@ en:
|
|
590
590
|
categories_line: Categories
|
591
591
|
created_by: Uploaded by
|
592
592
|
|
593
|
-
|
593
|
+
dc_setup:
|
594
|
+
tabletitle: Applications settings
|
595
|
+
tab0: Options
|
596
|
+
tab00: Form
|
597
|
+
|
598
|
+
name: Setup name
|
599
|
+
form: Form
|
600
|
+
data: Data
|
601
|
+
editors: Editors
|
602
|
+
|
603
|
+
# help for forms ##############################################################################################
|
594
604
|
|
595
605
|
help:
|
596
606
|
dc_site:
|
@@ -1006,3 +1016,9 @@ en:
|
|
1006
1016
|
size_s: Dimension for small size image
|
1007
1017
|
categories: Categories for later searching of image
|
1008
1018
|
created_by: Image was uploaded by
|
1019
|
+
|
1020
|
+
dc_setup:
|
1021
|
+
name: Setup name (typically application or module name)
|
1022
|
+
form: Form definition for entering settings. Edit fields must be defined on tabs
|
1023
|
+
data: Actual data saved
|
1024
|
+
editors: List of users, which can edit this setup beside administrators
|
@@ -604,6 +604,16 @@ sl:
|
|
604
604
|
categories_line: Kategorije
|
605
605
|
created_by: Naložil
|
606
606
|
|
607
|
+
dc_setup:
|
608
|
+
tabletitle: Tabela nastavitev aplikacij
|
609
|
+
tab0: Nastavitve
|
610
|
+
tab00: Form
|
611
|
+
|
612
|
+
name: Naziv nastavitev
|
613
|
+
form: Obrazec za zajem
|
614
|
+
data: Vsebina
|
615
|
+
editors: Urejevalci
|
616
|
+
|
607
617
|
# help pomoč na obrazcih ####################################################
|
608
618
|
|
609
619
|
help:
|
@@ -1027,4 +1037,10 @@ sl:
|
|
1027
1037
|
size_s: Dimenzije male slike
|
1028
1038
|
categories: Kategorije za poznejše lažje iskanje slike
|
1029
1039
|
created_by: Uporabnik, ki je naložil sliko
|
1030
|
-
offset: Offset image before resizing. Offset origin is the top left corner.
|
1040
|
+
offset: Offset image before resizing. Offset origin is the top left corner.
|
1041
|
+
|
1042
|
+
dc_setup:
|
1043
|
+
name: Naziv nastavitev (tipično ime aplikacije, modula)
|
1044
|
+
form: Definicija posamezne nastavitve in obrazec za zajem
|
1045
|
+
data: Vsebina nastavitev (kot je shranjena v bazi podatkov)
|
1046
|
+
editors: Seznam zaposlenih, ki lahko poleg administratorjev urejajo zapis
|
data/lib/drg_cms/version.rb
CHANGED
data/lib/drg_cms.rb
CHANGED
@@ -27,7 +27,7 @@ end
|
|
27
27
|
|
28
28
|
###############################################################################
|
29
29
|
# When new plugin with its own DRG forms is added to application, path to
|
30
|
-
# forms directory must be send to DrgCms module. Paths are saved into @@paths
|
30
|
+
# forms directory must be send to DrgCms module. Paths are saved into internal @@paths variable.
|
31
31
|
#
|
32
32
|
# Adding path is best done in plugin module initialization code.
|
33
33
|
#
|
@@ -40,17 +40,14 @@ end
|
|
40
40
|
# module MyPlugin
|
41
41
|
# end
|
42
42
|
#
|
43
|
-
# DrgCms.add_forms_path
|
43
|
+
# DrgCms.add_forms_path(Rails.root.join('app/forms'), Rails.root.join('app/reports/forms'))
|
44
44
|
###############################################################################
|
45
|
-
def self.add_forms_path(
|
45
|
+
def self.add_forms_path(*paths)
|
46
46
|
if @@paths[:forms].nil?
|
47
|
-
|
48
|
-
|
49
|
-
# @@paths[:forms] << Rails.root.join('app/forms')
|
50
|
-
# DrgCms forms path
|
51
|
-
@@paths[:forms] << File.expand_path("../../app/forms", __FILE__)
|
47
|
+
# DrgCms own forms path by default
|
48
|
+
@@paths[:forms] = [File.expand_path("../../app/forms", __FILE__)]
|
52
49
|
end
|
53
|
-
@@paths[:forms]
|
50
|
+
@@paths[:forms] += paths
|
54
51
|
end
|
55
52
|
|
56
53
|
###############################################################################
|
@@ -77,8 +74,6 @@ end
|
|
77
74
|
###############################################################################
|
78
75
|
def self.add_patches_path(path)
|
79
76
|
self.add_path(:patches, path)
|
80
|
-
# Dir["#{path}/**/*.rb"].each { |path| p path; require_dependency path }
|
81
|
-
# Dir["#{path}/**/*.rb"].each { |file| p file; require file }
|
82
77
|
end
|
83
78
|
|
84
79
|
###############################################################################
|
@@ -183,14 +178,18 @@ end
|
|
183
178
|
# @return [Object] Data returned from cache
|
184
179
|
####################################################################
|
185
180
|
def self.cache_read(keys)
|
186
|
-
if redis_cache_store?
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
181
|
+
data = if redis_cache_store?
|
182
|
+
tmp_keys = keys.dup
|
183
|
+
first_key = tmp_keys.shift
|
184
|
+
cached = Rails.cache.redis.hget(first_key, tmp_keys.join(''))
|
185
|
+
cached ? Marshal.load(cached) : nil
|
186
|
+
else
|
187
|
+
Rails.cache.read(keys.join(''))
|
188
|
+
end
|
189
|
+
return data if data
|
190
|
+
return nil unless block_given?
|
191
|
+
|
192
|
+
self.cache_write(keys, yield)
|
194
193
|
end
|
195
194
|
|
196
195
|
####################################################################
|
@@ -203,9 +202,9 @@ end
|
|
203
202
|
####################################################################
|
204
203
|
def self.cache_write(keys, data)
|
205
204
|
if redis_cache_store?
|
206
|
-
|
207
|
-
|
208
|
-
Rails.cache.redis.hset(
|
205
|
+
tmp_keys = keys.dup
|
206
|
+
first_key = tmp_keys.shift
|
207
|
+
Rails.cache.redis.hset(first_key, tmp_keys.join(''), Marshal.dump(data))
|
209
208
|
else
|
210
209
|
Rails.cache.write(keys.join(''), data)
|
211
210
|
end
|
@@ -222,7 +221,7 @@ end
|
|
222
221
|
# @return [Object] data document.
|
223
222
|
####################################################################
|
224
223
|
def self.cached(model, id)
|
225
|
-
|
224
|
+
id ? Mongo::QueryCache.cache { model.find(id) } : nil
|
226
225
|
end
|
227
226
|
|
228
227
|
###############################################################################
|
@@ -147,22 +147,24 @@ end
|
|
147
147
|
###########################################################################
|
148
148
|
#
|
149
149
|
###########################################################################
|
150
|
-
def form_field(
|
151
|
-
helper = I18n.t("helpers.label.#{@file_name}.choices4_#{
|
150
|
+
def form_field(field_name, index, offset, field_type)
|
151
|
+
helper = I18n.t("helpers.label.#{@file_name}.choices4_#{field_name}")
|
152
152
|
type, eval = 'select',''
|
153
|
-
if helper.class == Hash
|
154
|
-
if
|
155
|
-
eval = "eval: dc_choices4('#{
|
153
|
+
if helper.class == Hash || helper.match( 'Translation missing' )
|
154
|
+
if field_name[-3, 3] == '_id'
|
155
|
+
eval = "eval: dc_choices4('#{field_name[0, field_name.size - 3]}', 'description_field_name', 'id')\n"
|
156
|
+
elsif field_type.match('Boolean')
|
157
|
+
type = 'check_box'
|
156
158
|
else
|
157
159
|
type = 'text_field'
|
158
160
|
end
|
159
161
|
end
|
160
|
-
|
162
|
+
|
161
163
|
yml = ' '*offset
|
162
164
|
yml << "#{index}:\n"
|
163
165
|
offset += 2
|
164
|
-
|
165
|
-
yml << ' '*offset + "name: #{
|
166
|
+
|
167
|
+
yml << ' '*offset + "name: #{field_name}\n"
|
166
168
|
yml << ' '*offset + "type: #{type}\n"
|
167
169
|
yml << ' '*offset + eval if eval.size > 0
|
168
170
|
yml << ' '*offset + "size: 50\n" if type == 'text_field'
|
@@ -196,40 +198,56 @@ end
|
|
196
198
|
#
|
197
199
|
###########################################################################
|
198
200
|
def form_fields_options
|
199
|
-
forbidden = [
|
201
|
+
forbidden = %w[_id created_by updated_by created_at updated_at]
|
200
202
|
tab_index = 1
|
201
203
|
field_index = 0
|
202
204
|
if options.tabs?
|
203
205
|
yml = " tabs:\n"
|
204
|
-
@model.
|
206
|
+
@model.fields.each do |attr_name, field|
|
205
207
|
next if forbidden.include?(attr_name)
|
208
|
+
|
206
209
|
if field_index%100 == 0
|
207
210
|
yml << " tab#{tab_index}:\n"
|
208
211
|
field_index = 0
|
209
212
|
tab_index += 1
|
210
213
|
end
|
211
214
|
field_index += 10
|
212
|
-
yml << form_field(attr_name, field_index, 6)
|
215
|
+
yml << form_field(attr_name, field_index, 6, field.options[:type].to_s)
|
213
216
|
end
|
214
217
|
yml << " tab#{tab_index}:\n"
|
215
218
|
yml << embedded_form_field(6)
|
219
|
+
|
216
220
|
else
|
217
221
|
yml = " fields:\n"
|
218
|
-
@model.
|
222
|
+
@model.fields.each do |attr_name, field|
|
219
223
|
next if forbidden.include?(attr_name)
|
224
|
+
|
220
225
|
field_index += 10
|
221
|
-
yml << form_field(attr_name, field_index, 4)
|
226
|
+
yml << form_field(attr_name, field_index, 4, field.options[:type].to_s)
|
222
227
|
end
|
223
228
|
yml << embedded_form_field(4)
|
224
229
|
end
|
225
230
|
yml
|
226
231
|
end
|
227
232
|
|
233
|
+
###########################################################################
|
234
|
+
#
|
235
|
+
###########################################################################
|
236
|
+
def xform_fields_options
|
237
|
+
forbidden = %w[_id created_by updated_by created_at updated_at]
|
238
|
+
tab_index = 1
|
239
|
+
field_index = 0
|
240
|
+
@model.fields.each do |name, field|
|
241
|
+
pp [name, field.options[:type].to_s]
|
242
|
+
#pp [name, type]
|
243
|
+
end
|
244
|
+
end
|
245
|
+
|
228
246
|
###########################################################################
|
229
247
|
#
|
230
248
|
###########################################################################
|
231
249
|
def localize_options
|
232
|
-
forbidden = [
|
250
|
+
forbidden = %w[_id created_by updated_by created_at updated_at]
|
233
251
|
yml =<<EOT
|
234
252
|
|
235
253
|
#################################################################
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: drg_cms
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Damjan Rems
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-03-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -223,6 +223,7 @@ files:
|
|
223
223
|
- app/controls/dc_page_control.rb
|
224
224
|
- app/controls/dc_poll_result_control.rb
|
225
225
|
- app/controls/dc_report.rb
|
226
|
+
- app/controls/dc_setup_control.rb
|
226
227
|
- app/controls/design_element_settings_control.rb
|
227
228
|
- app/forms/all_options.yml
|
228
229
|
- app/forms/cms_forms.yml
|
@@ -264,6 +265,7 @@ files:
|
|
264
265
|
- app/forms/dc_poll_result_export.yml
|
265
266
|
- app/forms/dc_removed_url.yml
|
266
267
|
- app/forms/dc_seo.yml
|
268
|
+
- app/forms/dc_setup.yml
|
267
269
|
- app/forms/dc_simple_menu.yml
|
268
270
|
- app/forms/dc_simple_menu_item.yml
|
269
271
|
- app/forms/dc_site.yml
|
@@ -320,6 +322,7 @@ files:
|
|
320
322
|
- app/models/dc_poll_item.rb
|
321
323
|
- app/models/dc_poll_result.rb
|
322
324
|
- app/models/dc_removed_url.rb
|
325
|
+
- app/models/dc_setup.rb
|
323
326
|
- app/models/dc_simple_menu.rb
|
324
327
|
- app/models/dc_simple_menu_item.rb
|
325
328
|
- app/models/dc_site.rb
|