drg_cms 0.6.0.6 → 0.6.0.8

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.
Files changed (57) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/drg_cms/drg_cms.js +92 -36
  3. data/app/assets/stylesheets/drg_cms/drg_cms.css +141 -101
  4. data/app/assets/stylesheets/drg_cms/select-multiple.css +9 -12
  5. data/app/assets/stylesheets/drg_cms_cms.css +1 -1
  6. data/app/controllers/cmsedit_controller.rb +100 -32
  7. data/app/controllers/dc_application_controller.rb +71 -12
  8. data/app/controls/dc_report.rb +227 -0
  9. data/app/forms/all_options.yml +24 -5
  10. data/app/forms/dc_big_table.yml +1 -0
  11. data/app/forms/dc_big_table_value.yml +1 -0
  12. data/app/forms/dc_poll.yml +12 -5
  13. data/app/forms/dc_poll_item.yml +2 -1
  14. data/app/forms/dc_poll_result.yml +9 -0
  15. data/app/forms/dc_site.yml +2 -6
  16. data/app/helpers/cms_common_helper.rb +311 -0
  17. data/app/helpers/{cmsedit_edit_helper.rb → cms_edit_helper.rb} +52 -25
  18. data/app/helpers/{cmsedit_helper.rb → cms_helper.rb} +38 -31
  19. data/app/helpers/{cmsedit_index_helper.rb → cms_index_helper.rb} +152 -155
  20. data/app/helpers/dc_application_helper.rb +20 -234
  21. data/app/models/concerns/dc_site_concern.rb +12 -1
  22. data/app/models/dc_filter.rb +10 -8
  23. data/app/models/dc_permission.rb +30 -0
  24. data/app/models/dc_poll.rb +1 -0
  25. data/app/models/dc_poll_result.rb +4 -2
  26. data/app/models/dc_temp.rb +5 -2
  27. data/app/models/drgcms_form_fields.rb +12 -1
  28. data/app/models/drgcms_form_fields/date_picker.rb +4 -3
  29. data/app/models/drgcms_form_fields/datetime_picker.rb +4 -3
  30. data/app/models/drgcms_form_fields/drgcms_field.rb +18 -4
  31. data/app/models/drgcms_form_fields/embedded.rb +17 -9
  32. data/app/models/drgcms_form_fields/file_field.rb +1 -1
  33. data/app/models/drgcms_form_fields/hidden_field.rb +1 -1
  34. data/app/models/drgcms_form_fields/method.rb +65 -0
  35. data/app/models/drgcms_form_fields/multitext_autocomplete.rb +17 -11
  36. data/app/models/drgcms_form_fields/radio.rb +10 -5
  37. data/app/models/drgcms_form_fields/readonly.rb +1 -1
  38. data/app/models/drgcms_form_fields/select.rb +49 -32
  39. data/app/models/drgcms_form_fields/text_autocomplete.rb +21 -21
  40. data/app/renderers/dc_big_menu_renderer.rb +1 -0
  41. data/app/renderers/dc_gallery_renderer.rb +1 -0
  42. data/app/renderers/dc_menu_renderer.rb +1 -0
  43. data/app/renderers/dc_page_renderer.rb +1 -0
  44. data/app/renderers/dc_part_renderer.rb +1 -0
  45. data/app/renderers/dc_piece_renderer.rb +1 -1
  46. data/app/renderers/dc_poll_renderer.rb +43 -38
  47. data/app/renderers/dc_renderer.rb +1 -0
  48. data/app/renderers/dc_simple_menu_renderer.rb +1 -0
  49. data/config/locales/drgcms_en.yml +3 -2
  50. data/config/locales/drgcms_sl.yml +5 -4
  51. data/config/locales/models_en.yml +9 -2
  52. data/config/locales/models_sl.yml +10 -3
  53. data/lib/drg_cms/version.rb +1 -1
  54. data/lib/generators/new_drg_form/new_drg_form_generator.rb +5 -3
  55. data/lib/tasks/database.rake +6 -56
  56. metadata +35 -33
  57. data/app/helpers/application_helper.rb +0 -2
@@ -30,7 +30,7 @@ module DrgcmsFormFields
30
30
  # * +type:+ text_autocomplete (required)
31
31
  # * +table+ Collection (table) name. When defined search must contain field name
32
32
  # * +with_new+ Will add an icon for shortcut to add new document to collection
33
- # * +not_id+ Field value represent value not an id. Field will save entered value when not selected wit autocomplete.
33
+ # * +is_id+ Field value represent value as id. If false, field will use entered value and not value selected with autocomplete. Default is true.
34
34
  # * +search:+ Search may consist of three parameters from which are separated either by dot (.)
35
35
  # * search_field_name; when table option is defined search must define field name which will be used for search query
36
36
  # * collection_name.search_field_name; Same as above except that table options must be ommited.
@@ -42,6 +42,7 @@ module DrgcmsFormFields
42
42
  # name: user_id
43
43
  # type: text_autocomplete
44
44
  # search: dc_user.name
45
+ # is_id: false
45
46
  # html:
46
47
  # size: 30
47
48
  ###########################################################################
@@ -51,8 +52,8 @@ class TextAutocomplete < DrgcmsField
51
52
  # Render text_autocomplete field html code
52
53
  ###########################################################################
53
54
  def render
54
- # Return descriptive text and put it into input field
55
- # search field name
55
+ # Return descriptive text and put it into input field
56
+ # search field name
56
57
  if @yaml['search'].class == Hash
57
58
  table = @yaml['search']['table']
58
59
  ret_name = @yaml['search']['field']
@@ -62,59 +63,58 @@ def render
62
63
  else
63
64
  ret_name = @yaml['search']
64
65
  end
65
- # determine table name
66
+ # determine table name
66
67
  if @yaml['table']
67
68
  table = if @yaml['table'].class == String
68
69
  @yaml['table']
69
- # eval(how_to_get_my_table_name)
70
70
  elsif @yaml['table']['eval']
71
71
  eval @yaml['table']['eval']
72
72
  else
73
- Rails.logger.error "Field #{@yaml['name']}: Invalid table parameter!"
73
+ Rails.logger.error "Field #{ @yaml['name'] }: Invalid table parameter!"
74
74
  nil
75
75
  end
76
76
  end
77
77
  return 'Table or field keyword not defined!' unless (table and ret_name)
78
- # TODO check if table exists
78
+ # TODO check if table exists
79
79
  t = table.classify.constantize
80
- # find record and return value of field
80
+ # find record and return value of field
81
81
  value_send_as = 'p_' + @yaml['name']
82
82
  value = if @parent.params[value_send_as]
83
83
  @parent.params[value_send_as]
84
84
  elsif @record and @record[@yaml['name']]
85
85
  @record[@yaml['name']]
86
86
  end
87
- # Found value to be written in field. If field is not found write out value.
87
+ # Found value to be written in field. If field is not found write out value.
88
88
  if value
89
89
  record = t.find(value) unless @yaml['not_id'] # don't if it's is not an id
90
90
  value_displayed = record ? record.send(ret_name) : value
91
91
  end
92
- # return if readonly
93
- #return ro_standard(value_displayed) if @readonly
94
- # Add method back, so autocomplete will know that it must search for method inside class
92
+ # return if readonly
93
+ return ro_standard(value_displayed) if @readonly
94
+ # Add method back, so autocomplete will know that it must search for method inside class
95
95
  ret_name = "#{ret_name}.#{method}" if method
96
96
  @yaml['html'] ||= {}
97
97
  @yaml['html']['value'] = value_displayed
98
98
  @yaml['html']['placeholder'] ||= t('drgcms.search_placeholder') || nil
99
- #
99
+ #
100
100
  _name = '_' + @yaml['name']
101
101
  record = record_text_for(@yaml['name'])
102
- @html << @parent.text_field(record, _name, @yaml['html'])
102
+ @html << '<span class="dc-text-autocomplete">' + @parent.text_field(record, _name, @yaml['html']) + '<span></span>'
103
103
  if @yaml['with_new']
104
104
  @html << ' ' +
105
105
  @parent.fa_icon('plus-square lg', class: 'in-edit-add', title: t('drgcms.new'),
106
106
  style: "vertical-align: top;", 'data-table' => @yaml['with_new'] )
107
107
  end
108
- @html << @parent.hidden_field(record, @yaml['name'], value: value) # actual value will be in hidden field
109
- # JS stuff
110
- # allow unselected values on not_id: true option
111
- not_id_code = %Q[
108
+ @html << '</span>' + @parent.hidden_field(record, @yaml['name'], value: value) # actual value will be in hidden field
109
+ # JS stuff
110
+ # allow unselected values on is_id: false option
111
+ not_id = @parent.dc_dont?(@yaml['is_id'], false)
112
+ not_id_code = %(
112
113
  if (ui.item == null) {
113
114
  $("##{record}_#{@yaml['name']}").val($("##{record}__#{@yaml['name']}").val() );
114
115
  return;
115
- }
116
- ] if @yaml['not_id']
117
- #
116
+ } ) if not_id
117
+ #
118
118
  @js << <<EOJS
119
119
  $(document).ready(function() {
120
120
  $("##{record}_#{_name}").autocomplete( {
@@ -32,6 +32,7 @@
32
32
  class DcBigMenuRenderer
33
33
 
34
34
  include DcApplicationHelper
35
+ include CmsCommonHelper
35
36
  ########################################################################
36
37
  # Object initialization.
37
38
  ########################################################################
@@ -33,6 +33,7 @@
33
33
  class DcGalleryRenderer
34
34
 
35
35
  include DcApplicationHelper
36
+ include CmsCommonHelper
36
37
 
37
38
  ########################################################################
38
39
  # Object initialization.
@@ -35,6 +35,7 @@
35
35
  class DcMenuRenderer
36
36
 
37
37
  include DcApplicationHelper
38
+ include CmsCommonHelper
38
39
  ########################################################################
39
40
  # Object initialization. Will also prepare DcMenu document.
40
41
  ########################################################################
@@ -36,6 +36,7 @@
36
36
  class DcPageRenderer
37
37
 
38
38
  include DcApplicationHelper
39
+ include CmsCommonHelper
39
40
 
40
41
  ########################################################################
41
42
  # Object initialization.
@@ -42,6 +42,7 @@
42
42
  class DcPartRenderer
43
43
 
44
44
  include DcApplicationHelper
45
+ include CmsCommonHelper
45
46
 
46
47
  ########################################################################
47
48
  # Object initialization.
@@ -33,7 +33,7 @@
33
33
  class DcPieceRenderer
34
34
 
35
35
  include DcApplicationHelper
36
-
36
+ include CmsCommonHelper
37
37
  ########################################################################
38
38
  # Object initialization. It also loads requested dc_piece document.
39
39
  ########################################################################
@@ -27,9 +27,9 @@
27
27
  ########################################################################
28
28
  class DcPollRenderer
29
29
 
30
- include CmseditHelper
30
+ include CmsCommonHelper
31
31
  include DcApplicationHelper
32
- include ActionView::Helpers::FormHelper # for form hepers
32
+ include ActionView::Helpers::FormHelper # for form helpers
33
33
  include ActionView::Helpers::FormOptionsHelper # for select helper
34
34
 
35
35
  ########################################################################
@@ -39,6 +39,7 @@ def initialize( parent, opts={} ) #:nodoc:
39
39
  @parent = parent
40
40
  @opts = opts
41
41
  @part_css = ''
42
+ @part_js = ''
42
43
  self
43
44
  end
44
45
 
@@ -56,7 +57,7 @@ def do_one_item(poll, yaml)
56
57
  html = ''
57
58
  yaml['separator'] ||= ''
58
59
  yaml['text'] ||= ''
59
- #
60
+ # label
60
61
  text = yaml['text'].match(/\./) ? t(yaml['text']) : yaml['text']
61
62
  if yaml['mandatory']
62
63
  text << ( poll.display == 'in' ? ' *' : '<font color="red"> *</font>' )
@@ -66,7 +67,7 @@ def do_one_item(poll, yaml)
66
67
  text << " &nbsp;" if poll.display == 'lr' and !yaml['type'].match(/submit_tag|link_to/)
67
68
  end
68
69
 
69
- # Just add text if comment and go to next one
70
+ # Just add text if comment and go to next one
70
71
  if yaml['type'] == 'comment'
71
72
  html << if poll.display == 'lr'
72
73
  "<div class='row-div'><div class='dc-form-label poll-data-text comment'>#{text}</div></div>"
@@ -75,34 +76,37 @@ def do_one_item(poll, yaml)
75
76
  end
76
77
  return html
77
78
  end
78
- # Set default value, if not already set
79
+
80
+ # Set default value, if not already set
79
81
  if yaml['default']
80
82
  if yaml['default'].match('eval')
81
83
  e = yaml['default'].match(/\((.*?)\)/)[1]
82
84
  yaml['default'] = eval e
85
+ elsif yaml['default'].match('params')
86
+ param_name = yaml['default'].split(/\.|\ |\,/)[1]
87
+ yaml['default'] = @parent.params[param_name]
83
88
  end
84
89
  key = "p_#{yaml['name']}"
85
90
  params[key] = yaml['default'] unless params[key]
86
91
  end
87
- # Label as placeholder
92
+ # Label as placeholder
88
93
  if poll.display == 'in'
89
94
  yaml['html'] ||= {}
90
95
  yaml['html']['placeholder'] = text
91
96
  end
92
- # create form_field object and retrieve html code
97
+ # create form_field object and retrieve html code
93
98
  clas_string = yaml['type'].camelize
94
99
  field_html = if DrgcmsFormFields.const_defined?(clas_string)
95
100
  clas = DrgcmsFormFields.const_get(clas_string)
96
101
  field = clas.new(@parent, @record, yaml).render
97
- #TODO collect all javascript and add it at the end
98
- field.html + (field.js.size > 0 ? @parent.javascript_tag(field.js) : '')
99
- else # litle error string
102
+ @part_js << field.js
103
+ field.html
104
+ else # error string
100
105
  "Error: Code for field type #{yaml['type']} not defined!"
101
106
  end
102
107
 
103
- # field = send('dc_' + yaml['type'], yaml) # call dc_xxx method to get field html code
104
108
  if yaml['type'].match(/submit_tag|link_to/)
105
- # There can be more than one links on form. End the data at first link or submit.
109
+ # There can be more than one links on form. End the data at first link or submit.
106
110
  if !@end_of_data
107
111
  html << if poll.display == 'lr'
108
112
  "</div><br>\n"
@@ -118,10 +122,10 @@ def do_one_item(poll, yaml)
118
122
  end
119
123
  @end_of_data = true
120
124
  end
121
- # submit and link tag
125
+ # submit and link tag
122
126
  clas = yaml['type'].match(/submit_tag/) ? '' : 'dc-link-submit'
123
127
  html << "<span class='#{clas} dc-animate'>#{field_html}#{yaml['separator']}</span>"
124
- # other fields
128
+ # other fields
125
129
  else
126
130
  html << case
127
131
  when poll.display == 'lr' then
@@ -156,20 +160,19 @@ end
156
160
  # Default poll renderer method. Renders data for specified pool.
157
161
  ########################################################################
158
162
  def default
159
- # poll_id may be defined in params or opts
163
+ # poll_id may be defined in params or opts
160
164
  poll_id = @opts[:poll_id] || @parent.params[:poll_id]
161
165
  return '<br>Poll id is not defined?<br>' if poll_id.nil?
162
- #
166
+
163
167
  poll = DcPoll.find(poll_id)
164
168
  poll = DcPoll.find_by(name: poll_id) if poll.nil? # name instead of id
165
169
  return "<div class=\"dc-form-error\">Invalid Poll id #{poll_id}</div>" if poll.nil?
166
- # If parent cant be seen. so cant be polls
170
+ # If parent cant be seen. so cant be polls
167
171
  can_view, message = dc_user_can_view(@parent, @parent.page)
168
172
  return "<div class=\"dc-form-error\">#{message}</div>" unless can_view
169
-
173
+
170
174
  html = @opts[:div] ? "<div id='#{@opts[:div]}'>" : ''
171
175
  html << '<a name="poll-top"></a>'
172
- #
173
176
  unless poll.pre_display.blank?
174
177
  begin
175
178
  continue, message = eval_pre_display(poll.pre_display)
@@ -177,48 +180,49 @@ def default
177
180
  return "<div class=\"dc-form-error\">Error! Poll pre display. Error: #{e.message}</div>"
178
181
  end
179
182
  return message unless continue
183
+
180
184
  html << message if message
181
185
  end
182
- # there might be more than one poll displayed on page. Check if messages and values are for me
183
- if @parent.flash[:poll_id].nil? or @parent.flash[:poll_id].to_s == poll_id.to_s
184
- # If flash[:record] is present copy content to params record hash
186
+ # there might be more than one poll displayed on page. Check if messages and values are for me
187
+ if @parent.flash[:poll_id].nil? || @parent.flash[:poll_id].to_s == poll_id.to_s
188
+ # If flash[:record] is present copy content to params record hash
185
189
  @parent.flash[:record].each {|k,v| @parent.params["p_#{k}"] = v } if @parent.flash[:record]
186
- # Error during procesing request
190
+ # Error during procesing request
187
191
  html << "<div class=\"dc-form-error\">#{@parent.flash[:error]}</div>\n" if @parent.flash[:error].to_s.size > 0
188
192
  html << "<div class=\"dc-form-info\">#{@parent.flash[:info]}</div>\n" if @parent.flash[:info]
189
193
  end
190
- # div and form tag
194
+ # div and form tag
191
195
  html << "<div class=\"poll-div\">\n"
192
- # edit link
196
+ # edit link
193
197
  if @opts[:edit_mode] > 1
194
198
  @opts[:editparams].merge!( controller: 'cmsedit', action: 'edit', id: poll._id, table: 'dc_poll', form_name: 'dc_poll' )
195
199
  @opts[:editparams].merge!(title: "#{t('drgcms.edit')}: #{poll.name}")
196
200
  @opts[:editparams].delete(:ids) # this is from page, but it gets in a way
197
201
  html << dc_link_for_edit( @opts[:editparams] )
198
202
  end
199
- #
203
+
200
204
  html << case
201
205
  when poll.operation == 'poll_submit' then
202
206
  @parent.form_tag(action: poll.operation, method: :put)
203
207
  when poll.operation == 'link' then
204
208
  @parent.form_tag( poll.parameters, method: :put)
205
209
  end
206
- # header
207
- html << "<div class='poll-title'>#{poll.title}</div>" unless poll.title[0] == '-' # - on first position will not display title
208
- html << poll.sub_text.to_s # if poll.sub_text.to_s.size > 5
210
+ # header, - on first position will not display title
211
+ html << "<div class='poll-title'>#{poll.title}</div>" unless poll.title[0] == '-'
212
+ html << poll.sub_text.to_s
209
213
  html << if poll.display == 'lr'
210
214
  "\n" + '<div class="poll-data-table">'
211
215
  else
212
216
  '<div class="poll-data-div">' + "\n"
213
217
  end
214
- # items. Convert each item to yaml
218
+ # items. Convert each item to yaml
215
219
  @end_od_data = false
216
220
  if poll.form.to_s.size < 10
217
221
  items = poll.dc_poll_items
218
- items.sort! {|a,b| a.order <=> b.order }
222
+ items.sort! { |a,b| a.order <=> b.order }
219
223
  items.each do |item|
220
224
  next unless item.active # disabled items
221
- # convert options to yaml
225
+ # convert options to yaml
222
226
  yaml = YAML.load(item.options) || {}
223
227
  yaml = {} if yaml.class == String
224
228
  yaml['name'] = item.name
@@ -226,22 +230,23 @@ def default
226
230
  yaml['html']['size'] = item.size
227
231
  (yaml['html']['class'] ||= 'dc-submit') if item.type == 'submit_tag'
228
232
  yaml['text'] = item.text
229
- yaml['mandatory'] = item.mandatory
230
- yaml['type'] = item.type
233
+ yaml['mandatory'] = item.mandatory
234
+ yaml['type'] = item.type
231
235
  html << do_one_item(poll, yaml)
232
236
  end
233
- # Form. Just call do_one_item for each form item
237
+ # FORM. Just call do_one_item for each form item
234
238
  else
235
239
  yaml = YAML.load(poll.form.gsub('&nbsp;',' ')) # very annoying. They come with copy&paste ;-)
236
- # if entered without numbering yaml is returned as Hash otherwise as Array
240
+ # if entered without numbering yaml is returned as Hash otherwise as Array
237
241
  yaml.each { |i| html << do_one_item(poll, (i.class == Hash ? i : i.last)) } #
238
242
  end
239
- # hide some fields usefull as parameters
240
- # was html << @parent.hidden_field_tag('return_to', @opts[:return_to] || @parent.params[:return_to] || '/')
243
+ # hide some fields usefull as parameters
241
244
  html << @parent.hidden_field_tag('return_to', @opts[:return_to] || @parent.params[:return_to] || @parent.request.url)
242
245
  html << @parent.hidden_field_tag('return_to_error', @parent.request.url )
243
246
  html << @parent.hidden_field_tag('poll_id', poll_id )
244
247
  html << @parent.hidden_field_tag('page_id', @parent.page.id )
248
+ # Add javascript code
249
+ html << @parent.javascript_tag(@part_js + poll.js.to_s)
245
250
  html << "</form></div>"
246
251
  html << '</div>' if @opts[:div]
247
252
 
@@ -32,6 +32,7 @@ class DcRenderer
32
32
  ########################################################################
33
33
  def initialize( parent, opts={} )
34
34
  @parent = parent
35
+ @page = parent.page
35
36
  @opts = opts
36
37
  @css = ''
37
38
  self
@@ -34,6 +34,7 @@
34
34
  class DcSimpleMenuRenderer
35
35
 
36
36
  include DcApplicationHelper
37
+ include CmsCommonHelper
37
38
  ########################################################################
38
39
  # Object initialization.
39
40
  ########################################################################
@@ -34,8 +34,8 @@ en:
34
34
  doc_enabled: Document enabled!
35
35
  doc_saved: Document saved!
36
36
  doc_info: Info
37
- doc_copy_clipboard: Display document data in new window
38
- doc_paste_clipboard: Start update
37
+ doc_copy_clipboard: Copy document data into new window
38
+ doc_paste_clipboard: Update or create document
39
39
  doc_paste_title: Insert (update) documents from JSON data
40
40
  doc_paste_update: Update existing document if document._id exists
41
41
  doc_no_delete: Document can not be deleted!
@@ -89,6 +89,7 @@ en:
89
89
  reload: Reload
90
90
  error: Error!
91
91
  errors_no: 'No. of errors:'
92
+ runtime_error: Runtime error!
92
93
  two_chars: type in at least two chars
93
94
 
94
95
  created_by: Created by
@@ -1,5 +1,5 @@
1
1
  #--
2
- # Copyright (c) 2012-2013 Damjan Rems
2
+ # Copyright (c) 2012+ Damjan Rems
3
3
  #
4
4
  # Permission is hereby granted, free of charge, to any person obtaining
5
5
  # a copy of this software and associated documentation files (the
@@ -28,13 +28,13 @@ sl:
28
28
  "false": "ne"
29
29
  record_deleted: Dokument izbrisan!
30
30
  confirm_delete: Potrdite izbris dokumenta!
31
- confirm_dup: Potrdite podvajanje dokumenta!
31
+ confirm_dup: Potrdite podvajanja dokumenta!
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
35
  doc_saved: Dokument zapisan!
36
36
  doc_info: Info
37
- doc_copy_clipboard: Pripravi vsebino dokumenta v novem oknu.
37
+ doc_copy_clipboard: Kopija vsebine dokumenta v novem oknu.
38
38
  doc_paste_clipboard: Obdelaj podatke
39
39
  doc_paste_title: Ustvari (spremeni) dokumente iz JSON zapisa
40
40
  doc_paste_update: Spremeni obstoječ dokument, če dokument._id obstaja
@@ -88,7 +88,8 @@ sl:
88
88
  minimize: Pomanjšaj
89
89
  reload: Osveži
90
90
  error: Napaka!
91
- errors_no: 'Število napak:'
91
+ errors_no: 'Število napak:'
92
+ runtime_error: Napaka med izvajanjem programa!
92
93
  two_chars: vpišite vsaj dva znaka
93
94
 
94
95
  created_by: Ustvaril
@@ -127,8 +127,9 @@ en:
127
127
  choices4_operation: 'Submit poll:poll_submit,Link:link'
128
128
  choices4_display: 'Top:td,Left:lr,Inside:in'
129
129
  tab1: Base
130
- tab2: Form
130
+ tab2: Script
131
131
  tab3: Items
132
+ tab4: Items - advanced
132
133
 
133
134
  name: Poll name
134
135
 
@@ -137,7 +138,9 @@ en:
137
138
  operation: Operation
138
139
  parameters: Parameters
139
140
  display: Label
141
+ pre_display: Pre display code
140
142
  css: CSS
143
+ js: Javascript
141
144
  valid_from: Valid from
142
145
  valid_to: Valid to
143
146
  dc_poll_items: Items
@@ -146,7 +149,7 @@ en:
146
149
 
147
150
  dc_poll_item:
148
151
  tabletitle: Poll items
149
- choices4_type: Text:text_field,Text area:text_area,Select:select,Check box:check_box,Submit:submit_tag,Link:link_to,Password:password_field
152
+ choices4_type: Text:text_field,Text area:text_area,Select:select,Check box:check_box,Submit:submit_tag,Link:link_to,Password:password_field,Radio:radio
150
153
  choices4_separator: Space:&nbsp;,Empty line:<br />,Horizontal line:<hr>
151
154
 
152
155
  name: Name
@@ -165,6 +168,7 @@ en:
165
168
  dc_poll_id: Poll name
166
169
  created_at: Created date
167
170
  data: Data
171
+ confirmed: Confirmed
168
172
 
169
173
  dc_policy:
170
174
  tabletitle: Access policy declarations
@@ -654,6 +658,8 @@ en:
654
658
  parameters: Aditional parameters for operation
655
659
  display: How label is positioned related to input field
656
660
  css: CSS specific to this poll
661
+ js: Javascript code specific to this poll
662
+ pre_display: Method to be run before poll is displayed. Usually for initial filling of form.
657
663
  valid_from: Pole is valid from
658
664
  valid_to: Pole is valid to
659
665
  dc_poll_items: Items for this poll
@@ -675,6 +681,7 @@ en:
675
681
  dc_poll_id: Poll name
676
682
  created_at: Date when poll result was submited
677
683
  data: Data saved in YAML format
684
+ confirmed: Poll data was confirmed. Ex. User must click on link in email.
678
685
 
679
686
  dc_policy:
680
687
  name: Unique policy name