drg_cms 0.7.0.8 → 0.7.1.1
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/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
|