drg_cms 0.6.1.0 → 0.6.1.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +25 -10
- data/app/assets/fonts/ibm-plex-sans-300.woff2 +0 -0
- data/app/assets/fonts/ibm-plex-sans-400.woff2 +0 -0
- data/app/assets/fonts/ibm-plex-sans-500.woff2 +0 -0
- data/app/assets/fonts/ibm-plex-sans-600.woff2 +0 -0
- data/app/assets/fonts/ibm-plex-sans-700.woff2 +0 -0
- data/app/assets/fonts/ibm-plex-sans-italic.woff2 +0 -0
- data/app/assets/javascripts/drg_cms/drg_cms.js +178 -55
- data/app/assets/stylesheets/drg_cms/drg_cms.css +218 -94
- data/app/assets/stylesheets/drg_cms/select-multiple.css +1 -1
- data/app/controllers/cmsedit_controller.rb +29 -24
- data/app/controllers/dc_application_controller.rb +78 -166
- data/app/controllers/dc_common_controller.rb +56 -47
- data/app/controls/dc_help_control.rb +12 -0
- data/app/controls/dc_report.rb +7 -9
- data/app/controls/design_element_settings_control.rb +1 -1
- data/app/forms/all_options.yml +25 -6
- data/app/forms/dc_big_table.yml +0 -2
- data/app/forms/dc_big_table_value.yml +0 -2
- data/app/forms/dc_design.yml +1 -2
- data/app/forms/dc_folder_permission.yml +0 -2
- data/app/forms/dc_help_1.yml +2 -1
- data/app/forms/dc_json_ld.yml +0 -3
- data/app/forms/dc_menu.yml +6 -12
- data/app/forms/dc_menu_item.yml +1 -3
- data/app/forms/dc_page.yml +5 -2
- data/app/forms/dc_policy.yml +2 -5
- data/app/forms/dc_poll.yml +10 -16
- data/app/forms/dc_seo.yml +1 -2
- data/app/forms/dc_simple_menu.yml +1 -2
- data/app/forms/dc_site.yml +5 -7
- data/app/helpers/cms_common_helper.rb +2 -3
- data/app/helpers/cms_edit_helper.rb +41 -31
- data/app/helpers/cms_helper.rb +6 -6
- data/app/helpers/cms_index_helper.rb +79 -34
- data/app/helpers/dc_application_helper.rb +99 -85
- data/app/models/concerns/dc_page_concern.rb +3 -2
- data/app/models/concerns/dc_piece_concern.rb +1 -1
- data/app/models/concerns/dc_site_concern.rb +10 -4
- data/app/models/concerns/dc_user_concern.rb +3 -3
- data/app/models/dc_big_table.rb +2 -2
- data/app/models/dc_filter.rb +28 -22
- data/app/models/dc_site.rb +0 -1
- data/app/models/dc_temp.rb +7 -0
- data/app/models/drgcms_form_fields/comment.rb +11 -2
- data/app/models/drgcms_form_fields/date_picker.rb +2 -0
- data/app/models/drgcms_form_fields/drgcms_field.rb +2 -1
- data/app/models/drgcms_form_fields/embedded.rb +4 -2
- data/app/models/drgcms_form_fields/number_field.rb +4 -3
- data/app/models/drgcms_form_fields/readonly.rb +13 -17
- data/app/models/drgcms_form_fields/select.rb +16 -18
- data/app/models/drgcms_form_fields/text_autocomplete.rb +39 -23
- data/app/renderers/dc_page_renderer.rb +7 -6
- data/app/renderers/dc_poll_renderer.rb +16 -20
- data/app/views/cmsedit/_edit_stuff.html.erb +5 -2
- data/app/views/cmsedit/_form.html.erb +3 -2
- data/app/views/cmsedit/_result.html.erb +21 -18
- data/app/views/cmsedit/edit.html.erb +2 -1
- data/app/views/cmsedit/index.html.erb +1 -1
- data/app/views/cmsedit/new.html.erb +3 -2
- data/app/views/dc_common/_help.html.erb +12 -3
- data/app/views/layouts/cms.html.erb +3 -5
- data/config/locales/drgcms_en.yml +5 -2
- data/config/locales/drgcms_sl.yml +5 -2
- data/config/locales/models_en.yml +2 -0
- data/config/locales/models_sl.yml +5 -3
- data/drg_cms.gemspec +16 -16
- data/lib/drg_cms/version.rb +1 -1
- data/lib/drg_cms.rb +46 -12
- metadata +35 -29
@@ -45,30 +45,36 @@ layout false
|
|
45
45
|
########################################################################
|
46
46
|
def autocomplete
|
47
47
|
# table parameter must be defined. If not, get it from search parameter
|
48
|
-
if params['table'].nil?
|
48
|
+
if params['table'].nil? && params['search'].match(/\./)
|
49
49
|
name = params['search'].split('.').first
|
50
50
|
params['table'] = name.underscore
|
51
51
|
end
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
table = params['table'].classify.constantize
|
56
|
-
id = [params['id']] || '_id'
|
57
|
-
# call method in class if search parameter has . This is for user defined searches
|
58
|
-
# result must be returned as array of [id, search_field_value]
|
59
|
-
a = if params['search'].match(/\./)
|
60
|
-
name, method = params['search'].split('.')
|
61
|
-
table.send(method, params['input']).inject([]) do |r,v|
|
62
|
-
r << { label: v[0], value: v[0], id: (v[1] || v[0]).to_s }
|
63
|
-
end
|
64
|
-
# simply search which will search and return field_name defined in params['search']
|
52
|
+
if params['table'].match('_control')
|
53
|
+
# it must be at least logged on
|
54
|
+
return render json: { label: t('drgcms.not_authorized') } unless dc_user_can(DcPermission::CAN_VIEW, 'dc_memory')
|
65
55
|
else
|
66
|
-
|
67
|
-
r << { label: v[params['search']], value: v[params['search']], id: v.id.to_s }
|
68
|
-
end
|
56
|
+
return render json: { label: t('drgcms.not_authorized') } unless dc_user_can(DcPermission::CAN_VIEW)
|
69
57
|
end
|
70
58
|
|
71
|
-
|
59
|
+
table = params['table'].classify.constantize
|
60
|
+
input = params['input'].gsub(/\(|\)|\[|\]|\{|\|\.|\,}/, '')
|
61
|
+
# call method in class if search parameter contains . This is for user defined searches
|
62
|
+
a = if params['search'].match(/\./)
|
63
|
+
#method, additional_params = params['search'].split('.')
|
64
|
+
#data = additional_params ? table.send(method, input, additional_params, self) : table.send(method, input)
|
65
|
+
name, method = params['search'].split('.')
|
66
|
+
data = table.send(method, input)
|
67
|
+
data.map do |v|
|
68
|
+
{ label: v[0], value: v[0], id: (v[1] || v[0]).to_s }
|
69
|
+
end
|
70
|
+
# will search and return field_name defined in params['search']
|
71
|
+
else
|
72
|
+
table.where(params['search'] => /#{input}/i).limit(20).map do |v|
|
73
|
+
{ label: v[params['search']], value: v[params['search']], id: v.id.to_s }
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
render json: a
|
72
78
|
end
|
73
79
|
|
74
80
|
########################################################################
|
@@ -92,18 +98,19 @@ end
|
|
92
98
|
##########################################################################
|
93
99
|
def toggle_edit_mode
|
94
100
|
session[:edit_mode] ||= 0
|
95
|
-
# error when not logged in
|
96
|
-
return dc_render_404 if session[:edit_mode] < 1
|
97
|
-
|
98
|
-
#
|
101
|
+
# error when not logged in
|
102
|
+
return dc_render_404 if session[:edit_mode] < 1
|
103
|
+
|
104
|
+
# if return_to_ypos parameter is present it will forward it and thus scroll to
|
105
|
+
# aproximate position it was when toggle was clicked
|
99
106
|
session[:edit_mode] = (session[:edit_mode] == 1) ? 2 : 1
|
100
107
|
uri = Rack::Utils.parse_nested_query(request.url)
|
101
|
-
# it parses only on & so first (return_to) parameter also contains url
|
108
|
+
# it parses only on & so first (return_to) parameter also contains url
|
102
109
|
url = uri.first.last
|
103
110
|
if (i = url.index('return_to_ypos')).to_i > 0
|
104
|
-
url = url[0,i-1]
|
111
|
+
url = url[0, i-1]
|
105
112
|
end
|
106
|
-
# offset CMS menu
|
113
|
+
# offset CMS menu
|
107
114
|
if (ypos = uri['return_to_ypos'].to_i) > 0
|
108
115
|
ypos += session[:edit_mode] == 2 ? 250 : -250
|
109
116
|
end
|
@@ -116,8 +123,8 @@ end
|
|
116
123
|
# Default user login action.
|
117
124
|
####################################################################
|
118
125
|
def process_login
|
119
|
-
# Somebody is probably playing
|
120
|
-
return dc_render_404 unless ( params[:record]
|
126
|
+
# Somebody is probably playing
|
127
|
+
return dc_render_404 unless ( params[:record] && params[:record][:username] && params[:record][:password] )
|
121
128
|
|
122
129
|
unless params[:record][:password].blank? #password must not be empty
|
123
130
|
user = DcUser.find_by(username: params[:record][:username], active: true)
|
@@ -154,7 +161,7 @@ def login
|
|
154
161
|
clear_login_data # on the safe side
|
155
162
|
end
|
156
163
|
end
|
157
|
-
# Display login
|
164
|
+
# Display login
|
158
165
|
route = params[:route] || 'poll'
|
159
166
|
redirect_to "/#{route}?poll_id=login&return_to=#{params[:return_to]}"
|
160
167
|
end
|
@@ -163,23 +170,23 @@ end
|
|
163
170
|
# Action for restoring document data from journal document.
|
164
171
|
####################################################################
|
165
172
|
def restore_from_journal
|
166
|
-
# Only administrators can perform this operation
|
173
|
+
# Only administrators can perform this operation
|
167
174
|
unless dc_user_has_role('admin')
|
168
175
|
return render plain: { 'msg_info' => (t ('drgcms.not_authorized')) }.to_json
|
169
176
|
end
|
170
|
-
# selected fields to hash
|
177
|
+
# selected fields to hash
|
171
178
|
restore = {}
|
172
|
-
params[:select].each {|key,value| restore[key] = value if value == '1' }
|
179
|
+
params[:select].each { |key,value| restore[key] = value if value == '1' }
|
173
180
|
result = if restore.size == 0
|
174
181
|
{ 'msg_error' => (t ('drgcms.dc_journal.zero_selected')) }
|
175
182
|
else
|
176
183
|
journal_doc = DcJournal.find(params[:id])
|
177
|
-
# update hash with data to be restored
|
184
|
+
# update hash with data to be restored
|
178
185
|
JSON.parse(journal_doc.diff).each {|k,v| restore[k] = v.first if restore[k] }
|
179
|
-
# determine tables and document ids
|
186
|
+
# determine tables and document ids
|
180
187
|
tables = journal_doc.tables.split(';')
|
181
188
|
ids = (journal_doc.ids.blank? ? [] : journal_doc.ids.split(';') ) << journal_doc.doc_id
|
182
|
-
# find document
|
189
|
+
# find document
|
183
190
|
doc = nil
|
184
191
|
tables.each_index do |i|
|
185
192
|
doc = if doc.nil?
|
@@ -188,10 +195,10 @@ def restore_from_journal
|
|
188
195
|
doc.send(tables[i].pluralize).find(ids[i])
|
189
196
|
end
|
190
197
|
end
|
191
|
-
# restore and save values
|
198
|
+
# restore and save values
|
192
199
|
restore.each { |field,value| doc.send("#{field}=",value) }
|
193
200
|
doc.save
|
194
|
-
# TODO Error checking
|
201
|
+
# TODO Error checking
|
195
202
|
{ 'msg_info' => (t ('drgcms.dc_journal.restored')) }
|
196
203
|
end
|
197
204
|
render plain: result.to_json
|
@@ -202,10 +209,11 @@ end
|
|
202
209
|
# window with data formatted as json.
|
203
210
|
########################################################################
|
204
211
|
def copy_clipboard
|
205
|
-
# Only administrators can perform this operation
|
212
|
+
# Only administrators can perform this operation
|
206
213
|
return render(plain: t('drgcms.not_authorized') ) unless dc_user_can(DcPermission::CAN_ADMIN,'dc_site')
|
214
|
+
|
207
215
|
respond_to do |format|
|
208
|
-
# just open new window to same url and come back with html request
|
216
|
+
# just open new window to same url and come back with html request
|
209
217
|
format.json { dc_render_ajax(operation: 'window', url: request.url ) }
|
210
218
|
|
211
219
|
format.html do
|
@@ -213,7 +221,6 @@ def copy_clipboard
|
|
213
221
|
text = "<br><br>[#{params[:table]},#{params[:id]},#{params[:ids]}]<br>"
|
214
222
|
render plain: text + doc.as_document.to_json
|
215
223
|
end
|
216
|
-
|
217
224
|
end
|
218
225
|
end
|
219
226
|
|
@@ -223,17 +230,19 @@ end
|
|
223
230
|
# ajax call for processing data.
|
224
231
|
########################################################################
|
225
232
|
def paste_clipboard
|
226
|
-
# Only administrators can perform this operation
|
233
|
+
# Only administrators can perform this operation
|
227
234
|
return render(plain: t('drgcms.not_authorized') ) unless dc_user_can(DcPermission::CAN_ADMIN,'dc_site')
|
235
|
+
|
228
236
|
result = ''
|
229
237
|
respond_to do |format|
|
230
|
-
# just open new window to same url and come back with html request
|
238
|
+
# just open new window to same url and come back with html request
|
231
239
|
format.html { return render('paste_clipboard', layout: 'cms') }
|
232
240
|
format.json {
|
233
241
|
table, id, ids = nil
|
234
242
|
params[:data].split("\n").each do |line|
|
235
243
|
line.chomp!
|
236
244
|
next if line.size < 5 # empty line. Skip
|
245
|
+
|
237
246
|
begin
|
238
247
|
if line[0] == '[' # id(s)
|
239
248
|
result << "<br>#{line}"
|
@@ -260,7 +269,7 @@ def add_json_ld_schema
|
|
260
269
|
edited_document = DcJsonLd.find_document_by_ids(params[:table], params[:ids])
|
261
270
|
yaml = YAML.load_file( dc_find_form_file('json_ld_schema') )
|
262
271
|
schema_data = yaml[params[:schema]]
|
263
|
-
# Existing document
|
272
|
+
# Existing document
|
264
273
|
if edited_document.dc_json_lds.find_by(type: "@#{params[:schema]}")
|
265
274
|
return render json: {'msg_error' => t('helpers.help.dc_json_ld.add_error', schema: params[:schema] ) }
|
266
275
|
else
|
@@ -337,7 +346,7 @@ def update_json(json, is_update=false) #:nodoc:
|
|
337
346
|
json.each do |k,v|
|
338
347
|
if v.class == Hash
|
339
348
|
result[k] = v['$oid'] unless is_update
|
340
|
-
#TODO Double check if unless works as expected
|
349
|
+
# TODO Double check if unless works as expected
|
341
350
|
elsif v.class == Array
|
342
351
|
result[k] = []
|
343
352
|
v.each {|e| result[k] << update_json(e, is_update)}
|
@@ -354,22 +363,22 @@ end
|
|
354
363
|
def process_document(line, table, id, ids)
|
355
364
|
if params[:do_update] == '1'
|
356
365
|
doc = dc_find_document(table, id, ids)
|
357
|
-
# document found. Update it and return
|
366
|
+
# document found. Update it and return
|
358
367
|
if doc
|
359
368
|
doc.update( update_json(ActiveSupport::JSON.decode(line), true) )
|
360
369
|
msg = dc_check_model(doc)
|
361
370
|
return (msg ? " ERROR! #{msg}" : " UPDATE. OK.")
|
362
371
|
end
|
363
372
|
end
|
364
|
-
# document will be added to collection
|
373
|
+
# document will be added to collection
|
365
374
|
if ids.to_s.size > 5
|
366
|
-
#TODO Add embedded document
|
375
|
+
#TODO Add embedded document
|
367
376
|
" NOT SUPPORTED YET!"
|
368
377
|
else
|
369
378
|
doc = table.classify.constantize.new( update_json(ActiveSupport::JSON.decode(line)) )
|
370
379
|
doc.save
|
371
380
|
end
|
372
|
-
msg =
|
381
|
+
msg = DrgCms.model_check(doc)
|
373
382
|
msg ? " ERROR! #{msg}" : " NEW. OK."
|
374
383
|
end
|
375
384
|
|
@@ -116,6 +116,18 @@ def self.choices_for_form_name(session)
|
|
116
116
|
Dir["#{session[:help_project]}/*.yml"].map { |file_name| File.basename(file_name,'.*') }.sort
|
117
117
|
end
|
118
118
|
|
119
|
+
######################################################################
|
120
|
+
# Will return choices for language select on form. Choices can be either set by dc_locales document in dc_big_table
|
121
|
+
# or can be acquired from Rails default locale
|
122
|
+
######################################################################
|
123
|
+
def self.choices_for_locales
|
124
|
+
choices = DcBigTable.choices4('dc_locales')
|
125
|
+
return choices unless choices[0,0] == I18n.t('drgcms.error')
|
126
|
+
|
127
|
+
choices = [I18n.default_locale] + I18n.fallbacks.inject([]) { |r, e| r << e.first }
|
128
|
+
choices.map(&:to_s).uniq
|
129
|
+
end
|
130
|
+
|
119
131
|
######################################################################
|
120
132
|
# Will return temp key for data saved in dc_temp file
|
121
133
|
######################################################################
|
data/app/controls/dc_report.rb
CHANGED
@@ -153,8 +153,9 @@ def export_to_excel(report_id)
|
|
153
153
|
excel[n, i] = value
|
154
154
|
end
|
155
155
|
end
|
156
|
-
|
157
|
-
|
156
|
+
file_name = "#{report_id}-#{Time.now.to_i}.xls"
|
157
|
+
workbook.write Rails.root.join('public', 'tmp', file_name)
|
158
|
+
dc_render_ajax(operation: :window, value: "/tmp/#{file_name}")
|
158
159
|
end
|
159
160
|
|
160
161
|
############################################################################
|
@@ -200,15 +201,12 @@ end
|
|
200
201
|
# @param [Object] txt : Text or object. Result of to_s method of the object is
|
201
202
|
# @param [Hash] opts
|
202
203
|
###############################################################################
|
203
|
-
def pdf_text(txt, opts={})
|
204
|
-
box_opts =
|
204
|
+
def pdf_text(txt, opts = {})
|
205
|
+
box_opts = opts.dup
|
205
206
|
ypos = @pdf.cursor
|
206
207
|
xpos = opts.delete(:atx) || 0
|
207
|
-
box_opts
|
208
|
-
box_opts
|
209
|
-
box_opts.merge!(width: opts[:width]) if opts[:width]
|
210
|
-
box_opts.merge!(align: opts[:align]) if opts[:align]
|
211
|
-
box_opts.merge!(inline_format: opts[:inline_format]) if opts[:inline_format]
|
208
|
+
box_opts[:single_line] ||= true
|
209
|
+
box_opts[:at] ||= [xpos, ypos]
|
212
210
|
|
213
211
|
@pdf.text_box(txt.to_s, box_opts)
|
214
212
|
end
|
@@ -58,7 +58,7 @@ def get_settings()
|
|
58
58
|
# Check fild name
|
59
59
|
begin
|
60
60
|
document = model.find(params[:id])
|
61
|
-
params[:field_name] ||= (params[:location] == 'dc_site' ? '
|
61
|
+
params[:field_name] ||= (params[:location] == 'dc_site' ? 'settings' : 'params')
|
62
62
|
# field not defined on document
|
63
63
|
raise unless document.respond_to?(params[:field_name])
|
64
64
|
yaml = document[params[:field_name]] || ''
|
data/app/forms/all_options.yml
CHANGED
@@ -51,6 +51,14 @@ index:
|
|
51
51
|
eval: ModulClassName.menu_for(self)
|
52
52
|
caption: Some caption
|
53
53
|
|
54
|
+
# result_set method
|
55
|
+
result_set:
|
56
|
+
type: method
|
57
|
+
eval: my_helper_method
|
58
|
+
# or
|
59
|
+
view: path_to/_partial
|
60
|
+
|
61
|
+
# result_set default
|
54
62
|
result_set:
|
55
63
|
filter: custom_filter
|
56
64
|
footer: custom_footer
|
@@ -140,7 +148,15 @@ form:
|
|
140
148
|
method: (get),put,post
|
141
149
|
caption: ajax_call
|
142
150
|
control: control_name.method_to_call
|
143
|
-
|
151
|
+
show: default || always || readonly
|
152
|
+
|
153
|
+
active: not_new_record
|
154
|
+
active: new_record
|
155
|
+
active: SomeClass.is_active_method
|
156
|
+
or
|
157
|
+
active:
|
158
|
+
method: SomeClass.is_active_method
|
159
|
+
|
144
160
|
5:
|
145
161
|
type: window
|
146
162
|
controller: cmsedit
|
@@ -149,15 +165,17 @@ form:
|
|
149
165
|
action: edit
|
150
166
|
method: (get),put,post
|
151
167
|
caption: Edit linked document
|
152
|
-
when_new: false
|
153
168
|
params:
|
154
169
|
id:
|
155
170
|
object: record (can be omitted)
|
156
171
|
method: page_id
|
157
172
|
user:
|
158
173
|
object: session
|
159
|
-
method: user_id
|
160
|
-
|
174
|
+
method: user_id
|
175
|
+
html:
|
176
|
+
data-x: 800
|
177
|
+
data-y: 400
|
178
|
+
data-fields: field1,field2,...
|
161
179
|
6:
|
162
180
|
type: script
|
163
181
|
caption: Cancle
|
@@ -165,7 +183,6 @@ form:
|
|
165
183
|
7:
|
166
184
|
type: submit
|
167
185
|
caption: Send
|
168
|
-
when_new: false
|
169
186
|
params:
|
170
187
|
before-save: send_mail
|
171
188
|
after-save: return_to parent.reload
|
@@ -251,6 +268,7 @@ form:
|
|
251
268
|
type: embedded
|
252
269
|
load: default,delay,always
|
253
270
|
form_name: dc_poll_item
|
271
|
+
readonly: no
|
254
272
|
html:
|
255
273
|
height: 800
|
256
274
|
20:
|
@@ -264,7 +282,8 @@ form:
|
|
264
282
|
40:
|
265
283
|
name: customer_id
|
266
284
|
type: text_autocomplete
|
267
|
-
search:
|
285
|
+
search: model_name.method.additional_parameter
|
286
|
+
search:
|
268
287
|
table: customer
|
269
288
|
field: custumer_name
|
270
289
|
method: search
|
data/app/forms/dc_big_table.yml
CHANGED
data/app/forms/dc_design.yml
CHANGED
data/app/forms/dc_help_1.yml
CHANGED
data/app/forms/dc_json_ld.yml
CHANGED
data/app/forms/dc_menu.yml
CHANGED
@@ -32,25 +32,21 @@ form:
|
|
32
32
|
10:
|
33
33
|
name: name
|
34
34
|
type: text_field
|
35
|
-
|
36
|
-
size: 20
|
35
|
+
size: 20
|
37
36
|
|
38
37
|
20:
|
39
38
|
name: description
|
40
39
|
type: text_field
|
41
|
-
|
42
|
-
size: 20
|
40
|
+
size: 20
|
43
41
|
|
44
42
|
30:
|
45
43
|
name: div_name
|
46
44
|
type: text_field
|
47
|
-
|
48
|
-
size: 20
|
45
|
+
size: 20
|
49
46
|
40:
|
50
47
|
name: link_prepend
|
51
48
|
type: text_field
|
52
|
-
|
53
|
-
size: 20
|
49
|
+
size: 20
|
54
50
|
50:
|
55
51
|
name: dc_site_id
|
56
52
|
type: select
|
@@ -64,13 +60,11 @@ form:
|
|
64
60
|
type: embedded
|
65
61
|
caption: false
|
66
62
|
form_name: dc_menu_item
|
67
|
-
|
68
|
-
height: 1000
|
63
|
+
load: delay
|
69
64
|
|
70
65
|
tab3:
|
71
66
|
20:
|
72
67
|
name: css
|
73
68
|
caption: false
|
74
69
|
type: text_area
|
75
|
-
|
76
|
-
size: 100x50
|
70
|
+
size: 100x50
|
data/app/forms/dc_menu_item.yml
CHANGED
data/app/forms/dc_page.yml
CHANGED
@@ -99,6 +99,10 @@ form:
|
|
99
99
|
eval: DcDesign.choices4_design(@parent.dc_get_site)
|
100
100
|
html:
|
101
101
|
include_blank: true
|
102
|
+
15:
|
103
|
+
name: div_class
|
104
|
+
type: text_field
|
105
|
+
size: 20
|
102
106
|
|
103
107
|
20:
|
104
108
|
name: menu_id
|
@@ -153,8 +157,7 @@ form:
|
|
153
157
|
caption: false
|
154
158
|
type: embedded
|
155
159
|
form_name: dc_part
|
156
|
-
|
157
|
-
height: 600
|
160
|
+
load: delay
|
158
161
|
|
159
162
|
5iframe:
|
160
163
|
10:
|
data/app/forms/dc_policy.yml
CHANGED
data/app/forms/dc_poll.yml
CHANGED
@@ -37,14 +37,12 @@ form:
|
|
37
37
|
10:
|
38
38
|
name: name
|
39
39
|
type: text_field
|
40
|
-
|
41
|
-
size: 50
|
40
|
+
size: 50
|
42
41
|
|
43
42
|
20:
|
44
43
|
name: title
|
45
44
|
type: text_field
|
46
|
-
|
47
|
-
size: 50
|
45
|
+
size: 50
|
48
46
|
|
49
47
|
30:
|
50
48
|
name: sub_text
|
@@ -54,8 +52,7 @@ form:
|
|
54
52
|
35:
|
55
53
|
name: pre_display
|
56
54
|
type: text_field
|
57
|
-
|
58
|
-
size: 50
|
55
|
+
size: 50
|
59
56
|
40:
|
60
57
|
name: operation
|
61
58
|
type: select
|
@@ -63,8 +60,7 @@ form:
|
|
63
60
|
50:
|
64
61
|
name: parameters
|
65
62
|
type: text_field
|
66
|
-
|
67
|
-
size: 50
|
63
|
+
size: 50
|
68
64
|
|
69
65
|
60:
|
70
66
|
name: display
|
@@ -73,8 +69,7 @@ form:
|
|
73
69
|
70:
|
74
70
|
name: captcha_type
|
75
71
|
type: text_field
|
76
|
-
|
77
|
-
size: 10
|
72
|
+
size: 10
|
78
73
|
|
79
74
|
80:
|
80
75
|
name: valid_from
|
@@ -92,8 +87,7 @@ form:
|
|
92
87
|
100:
|
93
88
|
name: css
|
94
89
|
type: text_area
|
95
|
-
|
96
|
-
size: 100x20
|
90
|
+
size: 100x20
|
97
91
|
|
98
92
|
110:
|
99
93
|
name: active
|
@@ -103,8 +97,8 @@ form:
|
|
103
97
|
name: js
|
104
98
|
type: text_area
|
105
99
|
caption: false
|
100
|
+
size: 100x50
|
106
101
|
html:
|
107
|
-
size: 100x50
|
108
102
|
style: 'font-family:courier;'
|
109
103
|
tab3:
|
110
104
|
20:
|
@@ -112,13 +106,13 @@ form:
|
|
112
106
|
caption: false
|
113
107
|
type: embedded
|
114
108
|
form_name: dc_poll_item
|
115
|
-
|
116
|
-
|
109
|
+
load: delay
|
110
|
+
|
117
111
|
tab4:
|
118
112
|
10:
|
119
113
|
name: form
|
120
114
|
caption: false
|
121
115
|
type: text_area
|
116
|
+
size: 100x50
|
122
117
|
html:
|
123
|
-
size: 100x50
|
124
118
|
style: 'font-family:courier;'
|
data/app/forms/dc_seo.yml
CHANGED
data/app/forms/dc_site.yml
CHANGED
@@ -84,12 +84,8 @@ form:
|
|
84
84
|
name: document_extension
|
85
85
|
type: text_field
|
86
86
|
size: 10
|
87
|
-
25:
|
88
|
-
name: site_layout
|
89
|
-
type: text_field
|
90
|
-
size: 20
|
91
87
|
30:
|
92
|
-
name:
|
88
|
+
name: site_layout
|
93
89
|
type: text_field
|
94
90
|
size: 20
|
95
91
|
40:
|
@@ -132,8 +128,7 @@ form:
|
|
132
128
|
type: text_area
|
133
129
|
size: 130x40
|
134
130
|
|
135
|
-
5permissions:
|
136
|
-
|
131
|
+
5permissions:
|
137
132
|
10:
|
138
133
|
name: inherit_policy
|
139
134
|
type: select
|
@@ -145,9 +140,12 @@ form:
|
|
145
140
|
type: embedded
|
146
141
|
caption: false
|
147
142
|
form_name: dc_policy
|
143
|
+
load: delay
|
144
|
+
|
148
145
|
6parts:
|
149
146
|
10:
|
150
147
|
name: dc_parts
|
151
148
|
caption: false
|
152
149
|
type: embedded
|
153
150
|
form_name: dc_part
|
151
|
+
load: delay
|
@@ -345,7 +345,7 @@ def dc_help_for_tab(tab)
|
|
345
345
|
label, help = dc_label_help(field.last)
|
346
346
|
next if help.blank?
|
347
347
|
|
348
|
-
html << %(<div class="help-field"><div class="help-label">#{label}</div><div class="help-text">#{help}</div></div>)
|
348
|
+
html << %(<div class="help-field"><div class="help-label">#{label}</div><div class="help-text">#{help.gsub("\n",'<br>')}</div></div>)
|
349
349
|
end
|
350
350
|
html
|
351
351
|
end
|
@@ -356,13 +356,12 @@ end
|
|
356
356
|
def dc_help_fields
|
357
357
|
return '' if @form['form'].nil?
|
358
358
|
|
359
|
-
html = '<
|
359
|
+
html = '<a id="fields"></a>'
|
360
360
|
if @form['form']['tabs']
|
361
361
|
@form['form']['tabs'].each { |tab| html << dc_help_for_tab(tab) }
|
362
362
|
else
|
363
363
|
html << dc_help_for_tab(@form['form']['fields'])
|
364
364
|
end
|
365
|
-
html << '</div>'
|
366
365
|
html.html_safe
|
367
366
|
end
|
368
367
|
|