drg_cms 0.5.51.1 → 0.5.52

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 28c4645b1f1f465ae3f3678fd8b154a657769533
4
- data.tar.gz: 8d994123e909afe602059a65c266ff8843384fa8
3
+ metadata.gz: a614de80487c062c05877045536c7cb2c5eec76c
4
+ data.tar.gz: ad4b065e2b97c8c16f1a5024bb7d23b745553071
5
5
  SHA512:
6
- metadata.gz: 7718848e9cbe9b01f9c01313032ee1bb697e7939d6daf35afac702008fdfc146aee0d33f446e8530f30767909613ed0e812c5561ff038a479b8cb382f0852faa
7
- data.tar.gz: 67583a0e7c488d72a08c87f7fec10f62e3051647caf27b3cb9f42c1e8002af22293b640d5eef57b181463800666c0d5aceda4b3221d64eb45591f506fd2068f4
6
+ metadata.gz: 97e1cef3db8fd9b1afdf629aa7c24b273522064ed9368c7016f7a6525ca067048fdc2781b4ac403bc86ecf1514591dba01ce9f2460f9ac0bb3837701e256e400
7
+ data.tar.gz: b5131f8e268aa68f7450e8f50379cce65e3b4938dc95d71bf4ac06febe44fad27f603822b4fab9e4323426a2312ba66afd2a64a95c7df12fc4a3ebb5111f7315
@@ -96,61 +96,69 @@ $(function() {
96
96
  * render json: {'record_name' => "Damjan", 'record_surname' => 'Rems'}.to_json
97
97
  * will replace values of two fields on the form.
98
98
  *******************************************************************/
99
+
99
100
  process_json_result = function(json) {
100
- var c = '';
101
+ var i,operation,what, selector;
101
102
  $.each(json, function(key, val) {
102
103
  i = key.search('_');
103
104
  if (i > 1) {
104
- oper = key.substring(0,i);
105
+ operation = key.substring(0,i);
105
106
  what = key.substring(i+1,100);
106
- switch (oper) {
107
- /* update field */
108
- case 'record':
109
- $('#'+key).val(val);
110
- break;
111
- /* display message */
112
- case 'msg':
113
- selector = 'dc-form-' + what;
114
- if ($('.'+selector).length == 0) {
115
- val = '<div class="' + selector + '">' + val + '</div>';
116
- $('.dc-title').after(val);
117
- } else
118
- $('.'+selector).html(val);
119
- break;
120
- /* update div */
121
- case '#div+':
122
- $('#'+what).append(val);
123
- break;
124
- case '#+div':
125
- $('#'+what).prepend(val);
126
- break;
127
- case '#div':
128
- $('#'+what).html(val);
129
- break;
130
- case '.div+':
131
- $('.'+what).append(val);
132
- break;
133
- case '.+div':
134
- $('.'+what).prepend(val);
135
- break;
136
- case '.div':
137
- $('.'+what).html(val);
138
- break;
139
- /* goto url */
140
- case 'url':
141
- window.location.href = val;
142
- break;
143
- case 'alert':
144
- alert(val);
145
- break;
146
- case 'window':
147
- w = window.open(val, what);
148
- w.focus();
149
- break;
150
- case 'reload':
151
- location.reload();
152
- break;
107
+ } else {
108
+ operation = key;
109
+ what = '';
110
+ }
111
+ //
112
+ switch (operation) {
113
+ // update field
114
+ case 'record':
115
+ $('#'+key).val(val);
116
+ break;
117
+ // display message
118
+ case 'msg':
119
+ selector = 'dc-form-' + what;
120
+ if ( $('.'+selector).length == 0 ) {
121
+ val = '<div class="' + selector + '">' + val + '</div>';
122
+ $('.dc-title').after(val);
123
+ } else {
124
+ $('.'+selector).html(val);
153
125
  }
126
+ break;
127
+ // update div
128
+ case '#div+':
129
+ $('#'+what).append(val);
130
+ break;
131
+ case '#+div':
132
+ $('#'+what).prepend(val);
133
+ break;
134
+ case '#div':
135
+ $('#'+what).html(val);
136
+ break;
137
+ case '.div+':
138
+ $('.'+what).append(val);
139
+ break;
140
+ case '.+div':
141
+ $('.'+what).prepend(val);
142
+ break;
143
+ case '.div':
144
+ $('.'+what).html(val);
145
+ break;
146
+ // goto url
147
+ case 'url':
148
+ window.location.href = val;
149
+ break;
150
+ case 'alert':
151
+ alert(val);
152
+ break;
153
+ case 'window':
154
+ w = window.open(val, what);
155
+ w.focus();
156
+ break;
157
+ case 'reload':
158
+ location.reload();
159
+ break;
160
+ default:
161
+ console.log("DRGCMS: Invalid ajax result operation: " + operation);
154
162
  }
155
163
  });
156
164
  };
@@ -771,11 +771,11 @@ end
771
771
  def fields_on_form() #:nodoc:
772
772
  fields = []
773
773
  if @form['form']['fields']
774
- # read only field elements (key is Fixnum)
775
- @form['form']['fields'].each {|key,options| fields << options if key.class == Fixnum }
774
+ # read only field elements (key is Integer)
775
+ @form['form']['fields'].each {|key,options| fields << options if key.class == Integer }
776
776
  else
777
777
  @form['form']['tabs'].keys.each do |tab|
778
- @form['form']['tabs'][tab].each {|key,options| fields << options if key.class == Fixnum }
778
+ @form['form']['tabs'][tab].each {|key,options| fields << options if key.class == Integer }
779
779
  end
780
780
  end
781
781
  fields
@@ -327,6 +327,7 @@ def dc_process_default_request()
327
327
  params[:path] = @site.homepage_link if params[:id].nil? and params[:path].nil?
328
328
  # some other process request. It shoud fail if not defined
329
329
  return eval(@site.request_processor) if !@site.request_processor.blank?
330
+
330
331
  # Search for page
331
332
  pageclass = @site.page_table.classify.constantize
332
333
  if params[:id]
@@ -365,20 +366,6 @@ def dc_process_default_request()
365
366
  dc_log_visit()
366
367
  end
367
368
  @page_title = @page.title.blank? ? "#{@site.page_title}-#{@page.subject}" : @page.title
368
- # define design
369
- =begin
370
- design = @design ? @design.body : @site.design
371
- # render view. inline if defined in design
372
- view_filename = @design ? @design.rails_view.to_s : ''
373
- view_filename = @site.rails_view.to_s if view_filename.blank?
374
- if view_filename.size < 5
375
- design = "<%= render partial: 'cmsedit/edit_stuff' %>\n" + design if session[:edit_mode] > 0
376
- design << '<style type="text/css"><%= @css.html_safe %></style><%= javascript_tag @js %>'
377
- render(inline: design, layout: layout)
378
- else
379
- render view_filename, layout: layout
380
- end
381
- =end
382
369
  get_design_and_render @design
383
370
  end
384
371
 
@@ -412,16 +399,6 @@ def dc_single_sitedoc_request
412
399
  #
413
400
  @page_title = "#{@site.page_title} #{@part.name}"
414
401
  @js, @css = '', ''
415
- =begin
416
- layout = @site.site_layout.blank? ? 'content' : @site.site_layout
417
- if @site.rails_view.blank?
418
- design = @site.design + '<style type="text/css"><%= @css.html_safe %></style><%= javascript_tag @js %>'
419
- design = "<%= render partial: 'cmsedit/edit_stuff' %>\n" + design if session[:edit_mode] > 0
420
- render(inline: design, layout: layout)
421
- else
422
- render @site.rails_view, layout: layout
423
- end
424
- =end
425
402
  get_design_and_render nil
426
403
  end
427
404
 
@@ -71,7 +71,7 @@ end
71
71
  # Register and record click when ad link is clicked.
72
72
  ########################################################################
73
73
  def ad_click
74
- if (ad = DcAd.find(params[:id]))
74
+ if params[:id] and (ad = DcAd.find(params[:id]))
75
75
  ad.clicked += 1
76
76
  ad.save
77
77
  DcAdStat.create!(dc_ad_id: params[:id], ip: request.ip, type: 2 )
@@ -79,7 +79,7 @@ def ad_click
79
79
  logger.error "ERROR ADS: Invalid ad id=#{params[:id]} ip=#{request.ip}."
80
80
  end
81
81
 
82
- render :nothing => true
82
+ render body: nil
83
83
  end
84
84
 
85
85
  ##########################################################################
@@ -119,10 +119,14 @@ def dc_before_save()
119
119
  v['readonly'] # fields with readonly option don't return value and would be wiped
120
120
  # return value from form field definition
121
121
  value = DrgcmsFormFields.const_get(v['type'].camelize).get_data(params, v['name'])
122
+ # set to nil if blank
123
+ value = nil if value.blank?
122
124
  data['settings'] ||= {}
123
125
  data['settings'][ params[:element] ] ||= {}
124
126
  data['settings'][ params[:element] ][ v['name'] ] = value
125
127
  end
128
+ # remove nil elements
129
+ data['settings'][ params[:element] ].compact!
126
130
  # save data to document field
127
131
  document.send("#{params[:field_name]}=", data.to_yaml)
128
132
  document.save
@@ -3,7 +3,7 @@
3
3
  table: dc_page
4
4
 
5
5
  index:
6
- filter: subject, sub_subject as text_field, subject_link, author_name, dc_site_id, body as text_field
6
+ filter: subject, sub_subject as text_field, subject_link, alt_link, author_name, dc_site_id, body as text_field
7
7
  actions: standard
8
8
 
9
9
  result_set:
@@ -34,23 +34,19 @@ form:
34
34
  10:
35
35
  name: subject
36
36
  type: text_field
37
- html:
38
- size: 50
37
+ size: 50
39
38
  20:
40
39
  name: subject_link
41
40
  type: text_field
42
- html:
43
- size: 50
41
+ size: 50
44
42
  30:
45
43
  name: title
46
44
  type: text_field
47
- html:
48
- size: 50
45
+ size: 50
49
46
  40:
50
47
  name: alt_link
51
48
  type: text_field
52
- html:
53
- size: 50
49
+ size: 50
54
50
  text: Alternative link
55
51
  50:
56
52
  name: sub_subject
@@ -60,8 +56,7 @@ form:
60
56
  60:
61
57
  name: author_name
62
58
  type: text_field
63
- html:
64
- size: 30
59
+ size: 30
65
60
 
66
61
  70:
67
62
  name: publish_date
@@ -70,13 +65,11 @@ form:
70
65
  80:
71
66
  name: picture
72
67
  type: file_select
73
- html:
74
- size: 50
68
+ size: 50
75
69
  90:
76
70
  name: gallery
77
71
  type: text_field
78
- html:
79
- size: 20
72
+ size: 20
80
73
  100:
81
74
  name: valid_from
82
75
  type: datetime_select
@@ -100,7 +93,7 @@ form:
100
93
  type: tree_select
101
94
  eval: "DcCategory.choices4_categories(@parent.dc_get_site)"
102
95
  style: 'max-height: 300px'
103
-
96
+ multiple: true
104
97
 
105
98
  2advanced:
106
99
  10:
@@ -115,7 +108,6 @@ form:
115
108
  type: tree_select
116
109
  eval: '@parent.dc_menu_class.choices4_menu_as_tree(@record.dc_site_id)'
117
110
  style: 'max-height: 300px'
118
- single: true
119
111
 
120
112
  # 20:
121
113
  # name: menu_id
@@ -125,8 +117,7 @@ form:
125
117
  30:
126
118
  name: params
127
119
  type: text_area
128
- html:
129
- size: 100x10
120
+ size: 100x10
130
121
  40:
131
122
  name: dc_site_id
132
123
  type: select
@@ -155,8 +146,8 @@ form:
155
146
  20:
156
147
  name: css
157
148
  type: text_area
158
- html:
159
- size: 100x20
149
+ size: 100x20
150
+
160
151
  4parts:
161
152
  10:
162
153
  name: dc_parts
@@ -164,4 +155,37 @@ form:
164
155
  formname: dc_part
165
156
  html:
166
157
  height: 1000
158
+
159
+ 5iframe:
160
+ 10:
161
+ name: if_url
162
+ type: text_field
163
+ size: 80
164
+ 20:
165
+ name: if_border
166
+ type: text_field
167
+ size: 2
168
+ 30:
169
+ name: if_width
170
+ type: text_field
171
+ size: 5
172
+ 40:
173
+ name: if_height
174
+ type: text_field
175
+ size: 5
176
+ 50:
177
+ name: if_scroll
178
+ type: select
179
+ 60:
180
+ name: if_id
181
+ type: text_field
182
+ size: 10
183
+ 70:
184
+ name: if_class
185
+ type: text_field
186
+ size: 10
187
+ 80:
188
+ name: if_params
189
+ type: text_area
190
+ size: 80x10
167
191
 
@@ -53,7 +53,7 @@ def dc_actions_for_index()
53
53
  EOT
54
54
  # Remove actions settings and sort
55
55
  only_actions = []
56
- actions.each { |key, value| only_actions << [key, value] if key.class == Fixnum }
56
+ actions.each { |key, value| only_actions << [key, value] if key.class == Integer }
57
57
  only_actions.sort_by!(&:first)
58
58
  only_actions.each do |element|
59
59
  k,v = element
@@ -649,10 +649,10 @@ def dc_fields_for_tab(fields) #:nodoc:
649
649
  odd_even = nil
650
650
  reset_cycle()
651
651
  # options and fields must be separated before sorting
652
- form_options = fields.select {|field| field.class != Fixnum }
652
+ form_options = fields.select {|field| field.class != Integer }
653
653
  columns = form_options.try(:[],'columns') || 1
654
654
  # Select form fields and sort them by key
655
- form_fields = fields.select {|field| field.class == Fixnum }
655
+ form_fields = fields.select {|field| field.class == Integer }
656
656
  form_fields.to_a.sort.each do |element|
657
657
  options = element.last
658
658
  session[:form_processing] = "form:fields: #{element.first}=#{options}"
@@ -671,14 +671,14 @@ def dc_fields_for_tab(fields) #:nodoc:
671
671
  # label
672
672
  text = if options['text']
673
673
  t(options['text'], options['text'])
674
- else
674
+ elsif options['name']
675
675
  t_name(options['name'], options['name'].capitalize.gsub('_',' ') )
676
676
  end
677
677
  # help text can be defined in form or in translations starting with helpers. or as helpers.help.collection.field
678
678
  help = if options['help']
679
679
  options['help'].match('helpers.') ? t(options['help']) : options['help']
680
680
  end
681
- help ||= t('helpers.help.' + @form['table'] + '.' + options['name'],' ')
681
+ help ||= t('helpers.help.' + @form['table'] + '.' + options['name'],' ') if options['name']
682
682
  # create field object from class and call its render method
683
683
  klas_string = options['type'].camelize
684
684
  field_html = if DrgcmsFormFields.const_defined?(klas_string) # check if field type is defined
@@ -735,7 +735,7 @@ def dc_fields_for_form()
735
735
  next unless is_on_tab
736
736
  end
737
737
  # first div is displayed all other are hidden
738
- tdata << "<div id='data_#{tabname}'"
738
+ tdata << "<div id='data_#{tabname.delete("\s\n")}'"
739
739
  tdata << ' class="div-hidden"' unless first
740
740
  tdata << " style=\"height: #{@form['form']['height']}px;\"" if @form['form']['height']
741
741
  tdata << ">#{dc_fields_for_tab(@form['form']['tabs'][tabname])}</div>"
@@ -746,7 +746,7 @@ def dc_fields_for_form()
746
746
  html << '<ul class="dc-form-ul" >'
747
747
  first = true # first tab must be selected
748
748
  tabs.each do |tab|
749
- html << "<li id='li_#{tab}' data-div='#{tab}' class='dc-form-li #{'dc-form-li-selected' if first }'>#{t_name(tab, tab)}</li>"
749
+ html << "<li id='li_#{tab}' data-div='#{tab.delete("\s\n")}' class='dc-form-li #{'dc-form-li-selected' if first }'>#{t_name(tab, tab)}</li>"
750
750
  first = false
751
751
  end
752
752
  html << '</ul>'
@@ -170,8 +170,9 @@ end
170
170
  # This helper is replacement dc_render_from_site method which will soon be deprecated.
171
171
  ########################################################################
172
172
  def dc_render_design_part(part)
173
+
173
174
  case
174
- when part.nil? then ''
175
+ when part.nil? then logger.error('ERROR dc_render_design_part! part is NIL !'); ''
175
176
  # Send as array. Part may be defined with options on page. First element has
176
177
  # name of element which defines what to do. If not defined default behaviour is
177
178
  # called. That is what is defined in second part of array.
@@ -506,7 +507,7 @@ def dc_link_for_edit(opts)
506
507
  icon = opts.delete('icon') || 'edit lg'
507
508
  opts['controller'] ||= 'cmsedit'
508
509
  opts['action'] ||= 'edit'
509
- opts['formname'] ||= opts['table'].split(';').last
510
+ opts['formname'] ||= opts['table'].to_s.split(';').last
510
511
  js = "$('##{target}').attr('src', '#{_origin.url_for(opts)}'); return false;"
511
512
  dc_link_to(nil, _origin.fa_icon(icon, class: 'dc-inline-link'), '#',
512
513
  { onclick: js, title: title, alt: 'Edit'})
@@ -1226,4 +1227,37 @@ def dc_iframe_edit(table, opts={})
1226
1227
  ret.html_safe
1227
1228
  end
1228
1229
 
1230
+ ########################################################################
1231
+ # Will return value from internal DRG variables.
1232
+ # This objects can be params, session, ...
1233
+ #
1234
+ # Parameters:
1235
+ # [object] String: Internal object holding variable. Current values can be session, params, site, page
1236
+ # [var_name] String[symbol]: Variable name (:user_name, 'user_id', ...)
1237
+ #
1238
+ # Example:
1239
+ # # called when constructiong iframe for display
1240
+ # dc_internal_var(session, :user_id)
1241
+ # dc_internal_var(params, :some_external_parameter)
1242
+ # dc_internal_var(site, :name)
1243
+ #
1244
+ # Returns:
1245
+ # Value of variable or nil when not found
1246
+ ########################################################################
1247
+ def dc_internal_var(object, var_name)
1248
+ begin
1249
+ case
1250
+ when object == 'session' then _origin.session[var_name]
1251
+ when object == 'params' then _origin.params[var_name]
1252
+ when object == 'site' then _origin.dc_get_site.send(var_name)
1253
+ when object == 'page' then _origin.page.send(var_name)
1254
+ else
1255
+ 'VARIABLE: UNKNOWN OBJECT'
1256
+ end
1257
+ rescue Exception => e
1258
+ Rails.logger.debug "Method dc_internal var. Runtime error. #{e.message}"
1259
+ 'VARIABLE: ERROR'
1260
+ end
1261
+ end
1262
+
1229
1263
  end
@@ -47,17 +47,53 @@ def initialize( parent, opts={} ) #:nodoc:
47
47
  @css = ''
48
48
  end
49
49
 
50
+ #########################################################################
51
+ # Render IFrame part if defined on page
52
+ #########################################################################
53
+ def iframe
54
+ return '' if @page.if_url.blank?
55
+ html = "\n<iframe"
56
+ html << " id=\"#{@page.if_id}\"" unless @page.if_id.blank?
57
+ html << " class=\"#{@page.if_class}\"" unless @page.if_class.blank?
58
+ html << " border=\"#{@page.if_border}\""
59
+ html << " height=\"#{@page.if_height}\"" unless @page.if_height.blank?
60
+ html << " width=\"#{@page.if_width}\"" unless @page.if_width.blank?
61
+ html << " scrolling=\"#{@page.if_scroll}\""
62
+ # Parameters
63
+ parameters = @page.if_url.match(/\?/) ? '' : '?'
64
+ params = YAML.load(@page.if_params) rescue {}
65
+ params = {} unless params.class == Hash
66
+ params.each do |key, value|
67
+ val = @parent.dc_internal_var(value['object'], value['variable'])
68
+ parameters << "&#{key}=#{val}" if val # only when not nil
69
+ end
70
+ url = @page.if_url + (parameters.size > 1 ? parameters : '')
71
+ html << "src=\"#{url}\" ></iframe>\n"
72
+ html
73
+ end
74
+
50
75
  #########################################################################
51
76
  # Default DcPage render method
52
77
  #########################################################################
53
78
  def default
54
79
  can_view, msg = dc_user_can_view(@parent, @page)
55
80
  return msg unless can_view
56
- #
81
+ #
57
82
  html = ''
58
83
  html << dc_page_edit_menu() if @opts[:edit_mode] > 1
59
84
  @parent.page_title = @page.title.blank? ? @page.subject : @page.title
60
85
  html << @page.body
86
+ # render poll if defined
87
+ if @page.dc_poll_id
88
+ @opts.merge!(:poll_id => @page.dc_poll_id, :return_to => @parent.request.url, method: nil)
89
+ comment = DcPollRenderer.new(@parent, @opts)
90
+ html << "<div class='wrap row'>#{comment.render_html}</div>"
91
+ @css << "\n#{comment.render_css}"
92
+ end
93
+ # also add iframe
94
+ html << iframe()
95
+ html
96
+
61
97
  end
62
98
 
63
99
  #########################################################################
@@ -67,6 +67,7 @@ def render_particle(particle, opts)
67
67
  html << dc_link_for_edit( opts[:editparams] )
68
68
  end
69
69
  #
70
+ =begin
70
71
  if particle.piece_id
71
72
  opts[:id] = particle.piece_id
72
73
  piece = DcPieceRenderer.new(@parent, opts)
@@ -76,7 +77,9 @@ def render_particle(particle, opts)
76
77
  html << particle.body
77
78
  @part_css << particle.css.to_s
78
79
  end
79
- html
80
+ =end
81
+ @part_css << particle.css.to_s
82
+ html << particle.body
80
83
  end
81
84
 
82
85
  ########################################################################
@@ -58,6 +58,7 @@ def link_4edit()
58
58
  html = ''
59
59
  return html if @opts[:edit_mode] < 2
60
60
  @opts[:editparams].merge!( { table: 'dc_piece',
61
+ formname: 'dc_piece',
61
62
  controller: 'cmsedit',
62
63
  action: 'edit',
63
64
  id: @piece.id,
@@ -100,12 +100,14 @@ def link_4menu(item)
100
100
 
101
101
  caption = ''
102
102
  unless item.picture.blank?
103
- caption = if item.picture.match(/\./)
104
- @parent.image_tag(item.picture)
105
- elsif item.picture.match('<i')
106
- item.picture
107
- else
108
- @parent.fa_icon(item.picture)
103
+ caption = case
104
+ when item.picture[0] == '@' then # call method
105
+ method = item.picture.sub('@','')
106
+ return eval(method) rescue 'ERROR!'
107
+ when item.picture.match(/\./) then @parent.image_tag(item.picture)
108
+ when item.picture.match('<i') then item.picture
109
+ else
110
+ @parent.fa_icon(item.picture)
109
111
  end
110
112
  caption << ' '
111
113
  end
@@ -57,6 +57,15 @@ field :created_by, type: BSON::ObjectId
57
57
  field :updated_by, type: BSON::ObjectId
58
58
  field :kats, type: Array # Categories
59
59
 
60
+ field :if_url, type: String
61
+ field :if_border, type: Integer, default: 0
62
+ field :if_width, type: Integer
63
+ field :if_height, type: Integer
64
+ field :if_scroll, type: String
65
+ field :if_id, type: String
66
+ field :if_class, type: String
67
+ field :if_params, type: String
68
+
60
69
  field :policy_id, type: BSON::ObjectId
61
70
 
62
71
  embeds_many :dc_parts
@@ -89,11 +89,11 @@ def self.get_field_form_definition(name, parent) #:nodoc:
89
89
  form['form']['tabs'].each do |tab|
90
90
  # Array with 2 elements. First is tabname, second is data
91
91
  fields = tab.last
92
- fields.each {|k,v| return v if (k.class == Fixnum and v['name'] == name) }
92
+ fields.each {|k,v| return v if (k.class == Integer and v['name'] == name) }
93
93
  end if form['form']['tabs'] # I know. But nice.
94
94
  #
95
95
  form['form']['fields'].each do |field|
96
- next unless field.first.class == Fixnum # options
96
+ next unless field.first.class == Integer # options
97
97
  return field.last if field.last['name'] == name
98
98
  end if form['form']['fields']
99
99
  nil
@@ -445,7 +445,12 @@ end
445
445
  ###########################################################################
446
446
  def render
447
447
  # search field name
448
- if @yaml['search'].to_s.match(/\./)
448
+ if @yaml['search'].class == Hash
449
+ table = @yaml['search']['table']
450
+ field_name = @yaml['search']['field']
451
+ method = @yaml['search']['method']
452
+ search = method.nil? ? field_name : "#{field_name}.#{method}"
453
+ elsif @yaml['search'].to_s.match(/\./)
449
454
  table, field_name, method = @yaml['search'].split(/\.|\,/)
450
455
  search = method.nil? ? field_name : "#{field_name}.#{method}"
451
456
  else # search and table name are separated
@@ -765,7 +770,7 @@ class Comment < DrgcmsField
765
770
  # Render comment field html code
766
771
  ###########################################################################
767
772
  def render
768
- @html << t(@yaml['text'], @yaml['text'])
773
+ @html << t(@yaml['comment'], @yaml['comment'])
769
774
  self
770
775
  end
771
776
  end
@@ -1124,7 +1129,7 @@ end
1124
1129
  # * +name:+ field name (required)
1125
1130
  # * +type:+ text_autocomplete (required)
1126
1131
  # * +table+ Collection (table) name. When defined search must contain field name
1127
- # * +search:+ Search may consist of three parameters from which are separated either by dot (.) or comma(,)
1132
+ # * +search:+ Search may consist of three parameters from which are separated either by dot (.)
1128
1133
  # * search_field_name; when table option is defined search must define field name which will be used for search query
1129
1134
  # * collection_name.search_field_name; Same as above except that table options must be ommited.
1130
1135
  # * collection_name.search_field_name.method_name; When searching is more complex custom search
@@ -1479,7 +1484,8 @@ def render
1479
1484
  $(function(){
1480
1485
  $("##{@yaml['name']}").jstree( {
1481
1486
  "checkbox" : {"three_state" : false},
1482
- "core" : { "themes" : { "icons": false } },
1487
+ "core" : { "themes" : { "icons": false },
1488
+ "multiple" : #{@yaml['multiple'] ? 'true' : 'false'} },
1483
1489
  "plugins" : ["checkbox"]
1484
1490
  });
1485
1491
  });
@@ -248,10 +248,12 @@ en:
248
248
  dc_page:
249
249
  tabletitle: Pages
250
250
  choices4_comments: 'Allowed:1,Not allowed:0'
251
+ choices4_if_scroll: 'Auto,Yes,No'
251
252
  1base: Base
252
253
  2advanced: Advanced
253
254
  3content: Content
254
255
  4parts: Parts
256
+ 5iframe: IFrame
255
257
 
256
258
  subject: Subject
257
259
  subject_link: Subject link
@@ -279,6 +281,14 @@ en:
279
281
  kats: Categories
280
282
  gallery: Gallery name
281
283
  updated_at: Updated
284
+ if_url: URL
285
+ if_width: Width
286
+ if_height: Height
287
+ if_scroll: Scrolling
288
+ if_border: Border
289
+ if_params: Parameters
290
+ if_id: CSS id
291
+ if_class: CSS class
282
292
 
283
293
  dc_part:
284
294
  tabletitle: Parts of page
@@ -703,6 +713,15 @@ en:
703
713
  kats: Categories for this article
704
714
  gallery: Gallery pictures are defined in parts of page. Value defines name of parts which hold data about pictures in gallary.
705
715
  body: Content of this page
716
+ if_url: URL adress of page which will be loaded into IFrame
717
+ if_width: IFrame area width
718
+ if_height: IFrame area height
719
+ if_scroll: Scroll bars visibility
720
+ if_border: Thickness of border around IFrame area. When 0, no border is shown.
721
+ if_params: Parameters added to URL address
722
+ if_id: CSS id of IFrame object
723
+ if_class: CSS class of IFrame object
724
+
706
725
 
707
726
  dc_part:
708
727
  name: Parts can be searched by name or by id
@@ -276,10 +276,12 @@ sl:
276
276
  dc_page:
277
277
  tabletitle: Strani
278
278
  choices4_comments: 'Dovoljeno:1,Ni dovoljeno:0'
279
+ choices4_if_scroll: 'Avto:Auto,Da:Yes,Ne:No'
279
280
  1base: Osnovno
280
281
  2advanced: Napredno
281
282
  3content: Vsebina
282
283
  4parts: Elementi
284
+ 5iframe: IFrame
283
285
 
284
286
  subject: Zadeva
285
287
  subject_link: Povezava
@@ -311,7 +313,15 @@ sl:
311
313
  updated_at: Spremenjeno
312
314
  picture: Slika
313
315
  dc_poll_id: Anketa
314
-
316
+ if_url: URL naslov
317
+ if_width: Širina
318
+ if_height: Višina
319
+ if_scroll: Pomikanje
320
+ if_border: Okvir
321
+ if_params: Parametri
322
+ if_id: CSS id
323
+ if_class: CSS class
324
+
315
325
  dc_part:
316
326
  tabletitle: Elementi strani
317
327
  1base: Osnovno
@@ -734,7 +744,14 @@ sl:
734
744
  gallery: Posamezne slike so definirane v elementih strani. Podatek določa ime elementov, ki pripadajo galeriji.
735
745
  picture: Slika uporabljena za prikaz sestavka
736
746
  dc_poll_id: Anketa, če sestavek vsebuje tudi anketo
737
-
747
+ if_url: URL naslov od koder bo naložena vsebina IFrame-a
748
+ if_width: Širina IFrame področja
749
+ if_height: Višina IFrame področja
750
+ if_scroll: Prikaz drsnikov za pomikanje okna
751
+ if_border: Debelina okvira IFrame okna. 0 je brez okvirja.
752
+ if_params: Pramateri posredovani v URL naslovu
753
+ if_id: CSS id IFrame objekta
754
+ if_class: CSS class IFrame objekta
738
755
 
739
756
  dc_part:
740
757
  name: Naziv elementa
@@ -878,4 +895,3 @@ sl:
878
895
  filter: Vsebina filtra
879
896
  public: Filter je na voljo vsem uporabnikom
880
897
  sort: Privzeto sortiranje ob izbiri filtra
881
-
@@ -18,7 +18,9 @@ Gem::Specification.new do |s|
18
18
  s.files = Dir["{app,config,db,lib}/**/*"] + ["MIT-LICENSE", "Rakefile", "README.md", "History.log", "drg_cms.gemspec"]
19
19
  s.test_files = Dir["test/**/*"]
20
20
 
21
- s.add_dependency 'rails'#, '~> 4'
21
+ s.required_ruby_version = '>= 2.4'
22
+
23
+ s.add_dependency 'rails', '>= 5'
22
24
  s.add_dependency 'jquery-rails'
23
25
  s.add_dependency 'jquery-ui-rails'
24
26
  s.add_dependency 'non-stupid-digest-assets'
@@ -128,7 +128,7 @@ def self.routes
128
128
  get 'dc_common/logout' => :logout
129
129
  get 'dc_common/login' => :login
130
130
  get 'dc_common/copy_clipboard' => :copy_clipboard
131
- post 'dc_common/paste_clipboard' => :paste_clipboard
131
+ match 'dc_common/paste_clipboard' => :paste_clipboard, via: [:get, :post]
132
132
  put 'dc_common/restore_from_journal' => :restore_from_journal
133
133
  end
134
134
  match 'elfinder' => 'dc_elfinder#connector', via: [:get, :post]
@@ -1,4 +1,4 @@
1
1
  module DrgCms #:nodoc:
2
2
  # drg_cms gem version
3
- VERSION = "0.5.51.1"
3
+ VERSION = "0.5.52"
4
4
  end
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.5.51.1
4
+ version: 0.5.52
5
5
  platform: ruby
6
6
  authors:
7
7
  - Damjan Rems
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-09-11 00:00:00.000000000 Z
11
+ date: 2017-11-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: '5'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '0'
26
+ version: '5'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: jquery-rails
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -387,7 +387,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
387
387
  requirements:
388
388
  - - ">="
389
389
  - !ruby/object:Gem::Version
390
- version: '0'
390
+ version: '2.4'
391
391
  required_rubygems_version: !ruby/object:Gem::Requirement
392
392
  requirements:
393
393
  - - ">="
@@ -395,7 +395,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
395
395
  version: '0'
396
396
  requirements: []
397
397
  rubyforge_project:
398
- rubygems_version: 2.5.1
398
+ rubygems_version: 2.6.13
399
399
  signing_key:
400
400
  specification_version: 4
401
401
  summary: 'DRG CMS: Rapid web application development tool for Ruby, Rails and MongoDB'