drg_cms 0.6.1.5 → 0.6.1.11
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/README.md +203 -24
- 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 +253 -106
- data/app/assets/stylesheets/drg_cms/drg_cms.css +670 -521
- data/app/assets/stylesheets/drg_cms_application.css +1 -1
- data/app/assets/stylesheets/drg_cms_cms.css +1 -4
- data/app/controllers/cmsedit_controller.rb +33 -211
- data/app/controllers/dc_application_controller.rb +98 -22
- data/app/controllers/dc_common_controller.rb +9 -22
- data/app/controls/browse_models_control.rb +18 -27
- data/app/controls/cmsedit_control.rb +129 -0
- data/app/controls/dc_help_control.rb +1 -1
- data/app/controls/dc_page_control.rb +0 -1
- data/app/controls/dc_poll_result_control.rb +1 -1
- data/app/controls/dc_report.rb +2 -2
- data/app/controls/design_element_settings_control.rb +1 -1
- data/app/forms/all_options.yml +25 -7
- data/app/forms/cms_menu.yml +24 -24
- data/app/forms/dc_browse_fields.yml +13 -9
- data/app/forms/dc_browse_models.yml +24 -2
- data/app/forms/dc_poll_result_export.yml +1 -1
- data/app/forms/dc_site.yml +2 -5
- data/app/forms/dc_steps_template.yml +51 -0
- data/app/helpers/cms_common_helper.rb +73 -6
- data/app/helpers/cms_edit_helper.rb +275 -159
- data/app/helpers/cms_helper.rb +152 -59
- data/app/helpers/cms_index_helper.rb +220 -172
- data/app/helpers/dc_application_helper.rb +40 -67
- data/app/models/concerns/dc_page_concern.rb +1 -1
- data/app/models/concerns/dc_site_concern.rb +9 -3
- data/app/models/dc_filter.rb +30 -22
- data/app/models/dc_journal.rb +2 -2
- data/app/models/dc_json_ld.rb +19 -42
- data/app/models/dc_part.rb +19 -9
- data/app/models/dc_site.rb +0 -1
- data/app/models/drgcms_form_fields/drgcms_field.rb +10 -4
- data/app/models/drgcms_form_fields/link_to.rb +1 -1
- data/app/models/drgcms_form_fields/multitext_autocomplete.rb +5 -5
- data/app/models/drgcms_form_fields/readonly.rb +4 -1
- data/app/models/drgcms_form_fields/select.rb +10 -9
- data/app/models/drgcms_form_fields/text_autocomplete.rb +20 -12
- data/app/models/drgcms_form_fields/text_with_select.rb +1 -0
- data/app/renderers/dc_common_renderer.rb +20 -3
- data/app/renderers/dc_part_renderer.rb +1 -1
- data/app/renderers/dc_poll_renderer.rb +1 -1
- data/app/views/cmsedit/_edit_stuff.html.erb +12 -12
- data/app/views/cmsedit/_form.html.erb +19 -12
- data/app/views/cmsedit/edit.html.erb +10 -6
- data/app/views/cmsedit/index.html.erb +5 -3
- data/app/views/cmsedit/login.html.erb +1 -1
- data/app/views/cmsedit/new.html.erb +9 -5
- data/app/views/dc_common/_help.html.erb +1 -0
- data/app/views/dc_common/paste_clipboard.html.erb +1 -1
- data/app/views/layouts/cms.html.erb +3 -5
- data/config/locales/drgcms_en.yml +7 -1
- data/config/locales/drgcms_sl.yml +7 -1
- data/config/locales/kaminari.yml +1 -1
- data/drg_cms.gemspec +2 -2
- data/lib/drg_cms/version.rb +1 -1
- data/lib/drg_cms.rb +4 -4
- metadata +16 -10
- data/app/views/cmsedit/__remove_edit_stuff.js.erb +0 -6
- data/app/views/cmsedit/__show.html.erb +0 -21
@@ -1,4 +1,3 @@
|
|
1
|
-
#encoding: utf-8
|
2
1
|
#--
|
3
2
|
# Copyright (c) 2014+ Damjan Rems
|
4
3
|
#
|
@@ -26,31 +25,19 @@
|
|
26
25
|
#
|
27
26
|
######################################################################
|
28
27
|
module BrowseModelsControl
|
29
|
-
include DcApplicationHelper
|
30
|
-
|
31
|
-
#########################################################################
|
32
|
-
# Determine model class from filename.
|
33
|
-
#########################################################################
|
34
|
-
def determine_model(path)
|
35
|
-
path =~ /(.*)\/(.*).rb/
|
36
|
-
begin
|
37
|
-
$2.camelize.constantize
|
38
|
-
$2
|
39
|
-
rescue Exception # it happends
|
40
|
-
nil
|
41
|
-
end
|
42
|
-
end
|
43
28
|
|
44
29
|
#########################################################################
|
45
30
|
# Return array of all models found in application.
|
46
31
|
#########################################################################
|
47
|
-
def all_collections
|
32
|
+
def all_collections
|
48
33
|
collections = []
|
49
34
|
DrgCms.paths(:forms).each do |path|
|
50
35
|
models_dir = File.expand_path("../models", path)
|
51
|
-
Dir["#{models_dir}/*.rb"].each do |model_file|
|
52
|
-
|
53
|
-
|
36
|
+
Dir["#{models_dir}/*.rb"].each do |model_file|
|
37
|
+
model_file =~ /(.*)\/(.*).rb/
|
38
|
+
# check if model exists
|
39
|
+
collection = $2.camelize.constantize.new rescue nil
|
40
|
+
collections << collection.class.to_s.underscore if collection&.respond_to?(:_id)
|
54
41
|
end
|
55
42
|
end
|
56
43
|
collections.sort
|
@@ -59,10 +46,12 @@ end
|
|
59
46
|
######################################################################
|
60
47
|
# List all collections
|
61
48
|
######################################################################
|
62
|
-
def collections
|
49
|
+
def collections
|
63
50
|
@records = []
|
64
51
|
all_collections.each do |collection|
|
65
|
-
|
52
|
+
next if params[:filter] && !collection.match(/#{params[:filter]}/i)
|
53
|
+
|
54
|
+
@records << DcMemory.new({'id' => collection, 'description' => t("helpers.label.#{collection}.tabletitle") })
|
66
55
|
end
|
67
56
|
@records
|
68
57
|
end
|
@@ -70,7 +59,7 @@ end
|
|
70
59
|
######################################################################
|
71
60
|
# List field definition for single model
|
72
61
|
######################################################################
|
73
|
-
def all_fields
|
62
|
+
def all_fields
|
74
63
|
@records = []
|
75
64
|
model = params[:id].classify.constantize
|
76
65
|
document = model.new
|
@@ -80,25 +69,27 @@ def all_fields()
|
|
80
69
|
description = I18n.t("helpers.label.#{params[:id]}.#{attribute_name}") if description.match('missing:')
|
81
70
|
description = attribute_name if description.match('missing:')
|
82
71
|
|
83
|
-
@records << {
|
72
|
+
@records << DcMemory.new({id: attribute_name,
|
73
|
+
'collection' => params[:id],
|
84
74
|
'field' => attribute_name,
|
85
75
|
'type' => options[:type],
|
86
76
|
'description' => description,
|
87
77
|
'_default' => options[:default]
|
88
|
-
}
|
78
|
+
})
|
89
79
|
end
|
90
|
-
# embedded documents
|
80
|
+
# embedded documents
|
91
81
|
document.embedded_relations.each do |a_embedded|
|
92
82
|
embedded = a_embedded.last
|
93
83
|
description = I18n.t("helpers.help.#{params[:id]}.#{embedded.key}")
|
94
84
|
description = I18n.t("helpers.label.#{params[:id]}.#{embedded.key}") if description.match('missing:')
|
95
85
|
description = embedded.key if description.match('missing:')
|
96
86
|
|
97
|
-
@records << {
|
87
|
+
@records << DcMemory.new({ id: embedded.key,
|
88
|
+
'collection' => params[:id],
|
98
89
|
'field' => embedded.key,
|
99
90
|
'type' => 'Embedded:' + embedded.class_name,
|
100
91
|
'description' => description
|
101
|
-
}
|
92
|
+
})
|
102
93
|
end
|
103
94
|
|
104
95
|
@records
|
@@ -0,0 +1,129 @@
|
|
1
|
+
#--
|
2
|
+
# Copyright (c) 2022+ Damjan Rems
|
3
|
+
#
|
4
|
+
# Permission is hereby granted, free of charge, to any person obtaining
|
5
|
+
# a copy of this software and associated documentation files (the
|
6
|
+
# "Software"), to deal in the Software without restriction, including
|
7
|
+
# without limitation the rights to use, copy, modify, merge, publish,
|
8
|
+
# distribute, sublicense, and/or sell copies of the Software, and to
|
9
|
+
# permit persons to whom the Software is furnished to do so, subject to
|
10
|
+
# the following conditions:
|
11
|
+
#
|
12
|
+
# The above copyright notice and this permission notice shall be
|
13
|
+
# included in all copies or substantial portions of the Software.
|
14
|
+
#
|
15
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
16
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
17
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
18
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
19
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
20
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
21
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
22
|
+
#++
|
23
|
+
|
24
|
+
######################################################################
|
25
|
+
# Common controls for cms controller
|
26
|
+
######################################################################
|
27
|
+
module CmseditControl
|
28
|
+
|
29
|
+
######################################################################
|
30
|
+
# Clear current form filter
|
31
|
+
######################################################################
|
32
|
+
def filter_off
|
33
|
+
table_name = CmsHelper.table_param(params).strip.split(';').first.underscore
|
34
|
+
session[table_name][:filter] = nil
|
35
|
+
session[table_name][:page] = 1
|
36
|
+
url = url_for( controller: 'cmsedit', t: table_name, f: CmsHelper.form_param(params))
|
37
|
+
|
38
|
+
render json: { url: url }
|
39
|
+
end
|
40
|
+
|
41
|
+
######################################################################
|
42
|
+
# Set current form filter
|
43
|
+
######################################################################
|
44
|
+
def filter_on
|
45
|
+
table_name = CmsHelper.table_param(params).strip.split(';').first.underscore
|
46
|
+
session[table_name] ||= {}
|
47
|
+
session[table_name][:page] = 1
|
48
|
+
set_session_filter(table_name)
|
49
|
+
url = url_for( controller: 'cmsedit', t: table_name, f: CmsHelper.form_param(params))
|
50
|
+
|
51
|
+
respond_to do |format|
|
52
|
+
format.json { render json: { url: url } }
|
53
|
+
format.html { redirect_to url }
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
########################################################################
|
58
|
+
# Will check and set sorting options for current result set. Subroutine of index method.
|
59
|
+
########################################################################
|
60
|
+
def sort
|
61
|
+
return if params['sort'].nil?
|
62
|
+
|
63
|
+
table_name = CmsHelper.table_param(params).strip.split(';').first.underscore
|
64
|
+
old_sort = session[table_name][:sort].to_s
|
65
|
+
sort, direction = old_sort.split(' ')
|
66
|
+
# reverse sort if same selected
|
67
|
+
direction = (direction == '1') ? '-1' : '1' if params['sort'] == sort
|
68
|
+
direction ||= '1'
|
69
|
+
session[table_name][:sort] = "#{params[:sort]} #{direction}"
|
70
|
+
session[table_name][:page] = 1
|
71
|
+
params['sort'] = nil # otherwise there is problem with other links
|
72
|
+
url = url_for( controller: 'cmsedit', t: table_name, f: CmsHelper.form_param(params))
|
73
|
+
|
74
|
+
render json: { url: url }
|
75
|
+
end
|
76
|
+
|
77
|
+
private
|
78
|
+
########################################################################
|
79
|
+
# Will set session[table_name][:filter] and save last filter settings to session.
|
80
|
+
# subroutine of check_filter_options.
|
81
|
+
########################################################################
|
82
|
+
def set_session_filter(table_name)
|
83
|
+
# models that can not be filtered (for now)
|
84
|
+
return if %w(dc_temp dc_memory).include?(CmsHelper.table_param(params))
|
85
|
+
# field_name should exist on set filter condition
|
86
|
+
return if params[:filter_oper] && params[:filter_field].blank?
|
87
|
+
|
88
|
+
filter_value = if params[:filter_value].nil?
|
89
|
+
#NIL indicates that no filtering is needed
|
90
|
+
'#NIL'
|
91
|
+
else
|
92
|
+
if params[:filter_value].class == String && params[:filter_value][0] == '@'
|
93
|
+
# Internal value. Remove leading @ and evaluate expression
|
94
|
+
expression = DcInternals.get(params[:filter_value])
|
95
|
+
eval(expression) rescue '#NIL'
|
96
|
+
else
|
97
|
+
# No filter when empty
|
98
|
+
params[:filter_value] == '' ? '#NIL' : params[:filter_value]
|
99
|
+
end
|
100
|
+
end
|
101
|
+
# if filter field parameter is omitted then just set filter value
|
102
|
+
session[table_name][:filter] =
|
103
|
+
if params[:filter_field].nil?
|
104
|
+
saved = YAML.load(session[table_name][:filter])
|
105
|
+
saved['value'] = filter_value
|
106
|
+
saved.to_yaml
|
107
|
+
else
|
108
|
+
# as field defined. Split name and alternative input field
|
109
|
+
field = if params[:filter_field].match(' as ')
|
110
|
+
params[:filter_input] = params[:filter_field].split(' as ').last.strip
|
111
|
+
params[:filter_field].split(' as ').first.strip
|
112
|
+
else
|
113
|
+
params[:filter_field]
|
114
|
+
end
|
115
|
+
|
116
|
+
{'field' => field,
|
117
|
+
'operation' => params[:filter_oper],
|
118
|
+
'value' => filter_value,
|
119
|
+
'input' => params[:filter_input],
|
120
|
+
'table' => table_name }.to_yaml
|
121
|
+
end
|
122
|
+
# must be. Otherwise kaminari includes parames on paging links
|
123
|
+
params[:filter_id] = nil
|
124
|
+
params[:filter_oper] = nil
|
125
|
+
params[:filter_input] = nil
|
126
|
+
params[:filter_field] = nil
|
127
|
+
end
|
128
|
+
|
129
|
+
end
|
@@ -49,7 +49,7 @@ def project_refresh
|
|
49
49
|
updated_at: File.mtime(file_name)).save
|
50
50
|
end
|
51
51
|
end
|
52
|
-
render json: { url: url_for(controller:
|
52
|
+
render json: { url: url_for(controller: 'cmsedit', table: :dc_temp, form_name: :dc_help_1) }
|
53
53
|
end
|
54
54
|
|
55
55
|
######################################################################
|
@@ -38,7 +38,7 @@ end
|
|
38
38
|
# Filter action called. Update url to reflect filter conditions and reload form.
|
39
39
|
######################################################################
|
40
40
|
def do_filter
|
41
|
-
url = url_for(controller:
|
41
|
+
url = url_for(controller: 'cmsedit', action: :index, table: :dc_poll_result,
|
42
42
|
'record[dc_poll_id]' => params[:record][:dc_poll_id],
|
43
43
|
'record[start_date]' => params[:record][:start_date],
|
44
44
|
'record[end_date]' => params[:record][:end_date]
|
data/app/controls/dc_report.rb
CHANGED
@@ -39,7 +39,7 @@ end
|
|
39
39
|
# If exists, set report section as form, so it can be used to display result.
|
40
40
|
######################################################################
|
41
41
|
def dc_update_form
|
42
|
-
return unless @form && @form['report'] && params
|
42
|
+
return unless @form && @form['report'] && CmsHelper.table_param(params) == 'dc_temp'
|
43
43
|
|
44
44
|
@form = @form['report']
|
45
45
|
end
|
@@ -132,7 +132,7 @@ end
|
|
132
132
|
# Export data to Excel
|
133
133
|
######################################################################
|
134
134
|
def export_to_excel(report_id)
|
135
|
-
|
135
|
+
dc_form_read if @form.blank?
|
136
136
|
# use report options if present
|
137
137
|
columns = (@form['report'] ? @form['report'] : @form)['result_set']['columns'].sort
|
138
138
|
|
@@ -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
|
@@ -86,7 +94,7 @@ result_set:
|
|
86
94
|
type: delete
|
87
95
|
title: Delete it
|
88
96
|
icon: delete.png
|
89
|
-
icon:
|
97
|
+
icon: arrow_back
|
90
98
|
icon: home
|
91
99
|
4:
|
92
100
|
type: link
|
@@ -140,8 +148,17 @@ form:
|
|
140
148
|
method: (get),put,post
|
141
149
|
caption: ajax_call
|
142
150
|
control: control_name.method_to_call
|
143
|
-
|
144
|
-
|
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
|
+
html:
|
160
|
+
data-validate: no
|
161
|
+
|
145
162
|
5:
|
146
163
|
type: window
|
147
164
|
controller: cmsedit
|
@@ -150,15 +167,17 @@ form:
|
|
150
167
|
action: edit
|
151
168
|
method: (get),put,post
|
152
169
|
caption: Edit linked document
|
153
|
-
when_new: false
|
154
170
|
params:
|
155
171
|
id:
|
156
172
|
object: record (can be omitted)
|
157
173
|
method: page_id
|
158
174
|
user:
|
159
175
|
object: session
|
160
|
-
method: user_id
|
161
|
-
|
176
|
+
method: user_id
|
177
|
+
html:
|
178
|
+
data-x: 800
|
179
|
+
data-y: 400
|
180
|
+
data-fields: field1,field2,...
|
162
181
|
6:
|
163
182
|
type: script
|
164
183
|
caption: Cancle
|
@@ -166,7 +185,6 @@ form:
|
|
166
185
|
7:
|
167
186
|
type: submit
|
168
187
|
caption: Send
|
169
|
-
when_new: false
|
170
188
|
params:
|
171
189
|
before-save: send_mail
|
172
190
|
after-save: return_to parent.reload
|
data/app/forms/cms_menu.yml
CHANGED
@@ -24,124 +24,124 @@
|
|
24
24
|
menu:
|
25
25
|
10_system_menu:
|
26
26
|
caption: drgcms.cms_main
|
27
|
-
icon: support
|
27
|
+
icon: support
|
28
28
|
|
29
29
|
items:
|
30
30
|
10:
|
31
31
|
caption: helpers.label.dc_site.tabletitle
|
32
32
|
controller: cmsedit
|
33
|
-
icon:
|
33
|
+
icon: public
|
34
34
|
table: dc_site
|
35
35
|
20:
|
36
36
|
caption: helpers.label.dc_design.tabletitle
|
37
37
|
controller: cmsedit
|
38
|
-
icon:
|
38
|
+
icon: web
|
39
39
|
table: dc_design
|
40
40
|
30:
|
41
41
|
caption: helpers.label.dc_page.tabletitle
|
42
42
|
controller: cmsedit
|
43
|
-
icon:
|
43
|
+
icon: description-o
|
44
44
|
table: dc_page
|
45
45
|
50:
|
46
46
|
caption: helpers.label.dc_piece.tabletitle
|
47
47
|
controller: cmsedit
|
48
|
-
icon:
|
48
|
+
icon: extension-o
|
49
49
|
table: dc_piece
|
50
50
|
60:
|
51
51
|
caption: helpers.label.dc_link.tabletitle
|
52
52
|
controller: cmsedit
|
53
|
-
icon: link
|
53
|
+
icon: link
|
54
54
|
table: dc_link
|
55
55
|
70:
|
56
56
|
caption: helpers.label.dc_menu.tabletitle
|
57
57
|
controller: cmsedit
|
58
|
-
icon:
|
58
|
+
icon: menu
|
59
59
|
table: dc_menu
|
60
60
|
80:
|
61
61
|
caption: helpers.label.dc_simple_menu.tabletitle
|
62
62
|
controller: cmsedit
|
63
|
-
icon:
|
63
|
+
icon: more_horiz-o
|
64
64
|
table: dc_simple_menu
|
65
65
|
90:
|
66
66
|
caption: helpers.label.dc_category.tabletitle
|
67
67
|
controller: cmsedit
|
68
|
-
icon: list
|
68
|
+
icon: list
|
69
69
|
table: dc_category
|
70
70
|
100:
|
71
71
|
caption: helpers.label.dc_poll.tabletitle
|
72
72
|
controller: cmsedit
|
73
|
-
icon:
|
73
|
+
icon: poll-o
|
74
74
|
table: dc_poll
|
75
75
|
110:
|
76
76
|
caption: helpers.label.dc_poll_result.tabletitle
|
77
77
|
controller: cmsedit
|
78
|
-
icon:
|
78
|
+
icon: leaderboard
|
79
79
|
table: dc_poll_result
|
80
80
|
120:
|
81
81
|
caption: helpers.label.dc_ad.tabletitle
|
82
82
|
controller: cmsedit
|
83
|
-
icon:
|
83
|
+
icon: ads_click
|
84
84
|
table: dc_ad
|
85
85
|
|
86
86
|
11_system_menu:
|
87
87
|
caption: drgcms.cms_advanced
|
88
|
-
icon: star
|
88
|
+
icon: star
|
89
89
|
items:
|
90
90
|
10:
|
91
91
|
caption: helpers.label.dc_user.tabletitle
|
92
92
|
controller: cmsedit
|
93
|
-
icon:
|
93
|
+
icon: account_circle-o
|
94
94
|
table: dc_user
|
95
95
|
20:
|
96
96
|
caption: helpers.label.dc_policy_role.tabletitle
|
97
97
|
controller: cmsedit
|
98
|
-
icon:
|
98
|
+
icon: manage_accounts
|
99
99
|
table: dc_policy_role
|
100
100
|
30:
|
101
101
|
caption: helpers.label.dc_permission.tabletitle
|
102
102
|
controller: cmsedit
|
103
|
-
icon:
|
103
|
+
icon: security
|
104
104
|
table: dc_permission
|
105
105
|
40:
|
106
106
|
caption: helpers.label.dc_folder_permission.tabletitle
|
107
107
|
controller: cmsedit
|
108
|
-
icon: shield
|
108
|
+
icon: shield-o
|
109
109
|
table: dc_folder_permission
|
110
110
|
60:
|
111
111
|
caption: helpers.label.dc_big_table.tabletitle
|
112
112
|
controller: cmsedit
|
113
|
-
icon:
|
113
|
+
icon: topic-o
|
114
114
|
table: dc_big_table
|
115
115
|
70:
|
116
116
|
caption: helpers.label.dc_key_value_store.tabletitle
|
117
117
|
controller: cmsedit
|
118
|
-
icon:
|
118
|
+
icon: view_list
|
119
119
|
table: dc_key_value_store
|
120
120
|
80:
|
121
121
|
caption: helpers.label.dc_filter.tabletitle
|
122
122
|
controller: cmsedit
|
123
|
-
icon:
|
123
|
+
icon: topic-o
|
124
124
|
table: dc_filter
|
125
125
|
90:
|
126
126
|
caption: helpers.label.dc_removed_url.tabletitle
|
127
127
|
controller: cmsedit
|
128
|
-
icon:
|
128
|
+
icon: link_off
|
129
129
|
table: dc_removed_url
|
130
130
|
400:
|
131
131
|
caption: drgcms.dc_help.title
|
132
132
|
controller: cmsedit
|
133
|
-
icon:
|
133
|
+
icon: help-o
|
134
134
|
table: dc_temp
|
135
135
|
form_name: dc_help_1
|
136
136
|
500:
|
137
137
|
caption: helpers.label.dc_journal.tabletitle
|
138
138
|
controller: cmsedit
|
139
|
-
icon: history
|
139
|
+
icon: history
|
140
140
|
table: dc_journal
|
141
141
|
|
142
142
|
600:
|
143
143
|
caption: drgcms.browse_collections
|
144
144
|
controller: cmsedit
|
145
|
-
icon:
|
145
|
+
icon: list_alt
|
146
146
|
table: dc_memory
|
147
147
|
form_name: dc_browse_models
|
@@ -6,27 +6,31 @@ controls: browse_models
|
|
6
6
|
permissions:
|
7
7
|
can_view: admin
|
8
8
|
|
9
|
+
index:
|
10
|
+
actions:
|
11
|
+
1: back
|
12
|
+
|
9
13
|
result_set:
|
10
|
-
filter:
|
11
|
-
tr_style:
|
12
|
-
eval: "document['field'] == document['description'] ? 'color: #669;' : 'color: #000;'"
|
14
|
+
filter: all_fields
|
13
15
|
|
14
16
|
columns:
|
15
17
|
10:
|
16
18
|
name: collection
|
17
19
|
caption: Collection
|
18
|
-
|
19
|
-
20:
|
20
|
+
width: 10%
|
21
|
+
20:
|
20
22
|
name: field
|
21
23
|
caption: Field name
|
22
|
-
|
23
|
-
30:
|
24
|
+
30:
|
24
25
|
name: type
|
25
26
|
caption: Field type
|
26
|
-
40:
|
27
|
+
40:
|
27
28
|
name: description
|
28
29
|
caption: description
|
29
|
-
|
30
|
+
width: 25%
|
31
|
+
style:
|
32
|
+
eval: "document['field'] == document['description'] ? 'color: #f43;' : 'color: #000;'"
|
33
|
+
50:
|
30
34
|
name: _default
|
31
35
|
caption: Default
|
32
36
|
|
@@ -6,6 +6,16 @@ controls: browse_models
|
|
6
6
|
permissions:
|
7
7
|
can_view: admin
|
8
8
|
|
9
|
+
index:
|
10
|
+
actions:
|
11
|
+
10:
|
12
|
+
type: field
|
13
|
+
name: filter
|
14
|
+
field_type: text_field
|
15
|
+
caption: Filter
|
16
|
+
size: 10
|
17
|
+
|
18
|
+
|
9
19
|
result_set:
|
10
20
|
filter: collections
|
11
21
|
|
@@ -19,8 +29,20 @@ result_set:
|
|
19
29
|
10:
|
20
30
|
name: id
|
21
31
|
caption: Collection
|
22
|
-
td_style: 'font-weight: bold;
|
23
|
-
|
32
|
+
td_style: 'font-weight: bold;'
|
33
|
+
|
24
34
|
20:
|
25
35
|
name: description
|
26
36
|
caption: Decription
|
37
|
+
|
38
|
+
script: '
|
39
|
+
$(document).ready( function() {
|
40
|
+
$("#record_filter").keydown( function(e) {
|
41
|
+
if (e.which == "13" || e.which == "9") {
|
42
|
+
let url = "/cmsedit?form_name=dc_browse_models&table=dc_memory&filter=" + this.value;
|
43
|
+
window.location.href = url;
|
44
|
+
e.preventDefault();
|
45
|
+
};
|
46
|
+
});
|
47
|
+
});
|
48
|
+
'
|
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:
|
@@ -152,3 +148,4 @@ form:
|
|
152
148
|
caption: false
|
153
149
|
type: embedded
|
154
150
|
form_name: dc_part
|
151
|
+
load: delay
|
@@ -0,0 +1,51 @@
|
|
1
|
+
## Template for standard options on wizard form
|
2
|
+
form:
|
3
|
+
css: '#dc-form-left {display: block;width: 20%}'
|
4
|
+
actions:
|
5
|
+
1:
|
6
|
+
type: ajax
|
7
|
+
caption: drgcms.cancel
|
8
|
+
icon: cancel
|
9
|
+
method: post
|
10
|
+
form_name: x
|
11
|
+
action: run
|
12
|
+
control: x.steps_cancel
|
13
|
+
params:
|
14
|
+
step: x
|
15
|
+
next_step: x
|
16
|
+
|
17
|
+
10:
|
18
|
+
type: ajax
|
19
|
+
caption: drgcms.back
|
20
|
+
icon: arrow-back
|
21
|
+
method: post
|
22
|
+
form_name: x
|
23
|
+
action: run
|
24
|
+
control: x.steps
|
25
|
+
params:
|
26
|
+
step: x
|
27
|
+
next_step: x
|
28
|
+
|
29
|
+
20:
|
30
|
+
type: ajax
|
31
|
+
caption: drgcms.next
|
32
|
+
icon: arrow-forward
|
33
|
+
method: post
|
34
|
+
form_name: x
|
35
|
+
action: run
|
36
|
+
control: x.steps
|
37
|
+
params:
|
38
|
+
step: x
|
39
|
+
next_step: x
|
40
|
+
|
41
|
+
100:
|
42
|
+
type: ajax
|
43
|
+
caption: drgcms.finish
|
44
|
+
icon: done
|
45
|
+
method: post
|
46
|
+
form_name: x
|
47
|
+
action: run
|
48
|
+
control: x.steps_finish
|
49
|
+
params:
|
50
|
+
step: x
|
51
|
+
next_step: x
|