drg_cms 0.5.1 → 0.5.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 31aa0b6c5076624acd107471ba082d927e096cb5
4
- data.tar.gz: bf9048314d21555c052cca5394b7723fac605e85
3
+ metadata.gz: fd80aba913afa715795f1a5e814d44400b5f7f0a
4
+ data.tar.gz: ee6d578127bd8196b70f07b97e0b3245e4deb861
5
5
  SHA512:
6
- metadata.gz: 6e1df8ad23c73f14ad9094a7dc132dea6ceecebb2aadb89ec800a909007ff859b16d5b7f3f6b652b8dfc0b0c97623e69552f8dc107bae18d79485cff833aa9b4
7
- data.tar.gz: d6dc1617e911aa3924f0f8e00a546b4e9eb45c0a49e3352bd8d40523550feabf80b61858ec2e85a5ac5751e796e139b7789224de3a2b35153516c7f52e4d482c
6
+ metadata.gz: 857de918747abfe9c56afbe92ee350d60947f641f16648135474157ac0bf3faddec43194abffdf644dbaa1cfebb8c3a24b04e74cb0d98f57ba027f2bd3876903
7
+ data.tar.gz: 4a888718ed39eb65e58fd611feb82444121e53c2f218c6c0e1a6866c2840a87774f60f5c681752fc0f14c79f540b8e356e8d123cf7288d006807eac9077c7c89
@@ -241,7 +241,6 @@ background-color: #888;
241
241
  border: 0px;
242
242
  color: #888;
243
243
  font-weight: bold;
244
- font-size: 12px;
245
244
  box-shadow: none;
246
245
  background: none;
247
246
  /* background-color: none; */
@@ -18,10 +18,5 @@
18
18
  *= require font-awesome
19
19
  */
20
20
 
21
-
22
- /* IMPORTANT
23
-
24
- Don't forget to update elfinder.min.css and replace all occurences of ../img/ with /assets/elfinder/
25
- and copy elfinder/img to images/elfinder folder.
26
-
27
- */
21
+ /* Required for link buttons to look alike */
22
+ .dc-link a, .dc-link-submit input {font-weight: bold; font-family: helvetica; font-size: 12px; }
@@ -743,6 +743,7 @@ def save_data
743
743
  next if v['type'].match('embedded') # don't wipe embedded fields
744
744
  next if params[:edit_only] and params[:edit_only] != v['name'] # otherwise other fields would be wiped
745
745
  next unless @record.respond_to?(v['name']) # there can be temporary fields on the form
746
+ next if v['readonly'] # fields with readonly option don't retain value and would be wiped
746
747
  # return value from form field definition
747
748
  value = DrgcmsFormFields.const_get(v['type'].camelize).get_data(params, v['name'])
748
749
  @record.send("#{v['name']}=", value)
@@ -114,7 +114,7 @@ EOT
114
114
  end
115
115
 
116
116
  ############################################################################
117
- # Will return field form definition. Subroutine of dc_div_filter
117
+ # Will return field form definition if field is defined on form. Subroutine of dc_div_filter
118
118
  ############################################################################
119
119
  def _get_field_def(name) #:nodoc:
120
120
  @form['form']['tabs'].each do |tab|
@@ -125,7 +125,7 @@ def _get_field_def(name) #:nodoc:
125
125
  end if @form['form']['tabs'] # I know. But nice.
126
126
  #
127
127
  @form['form']['fields'].each do |field|
128
- field.last.each {|k,v| return v if v['name'] == name }
128
+ return field.last if field.last['name'] == name
129
129
  end if @form['form']['fields']
130
130
  nil
131
131
  end
@@ -451,7 +451,7 @@ def dc_page_edit_menu(opts=@opts)
451
451
  title = "#{t('drgcms.edit')}: #{@page.subject}"
452
452
  dc_link_menu_tag(title) do |html|
453
453
  opts[:editparams].merge!( controller: 'cmsedit', action: 'edit', 'icon' => 'edit' )
454
- opts[:editparams].merge!( :id => @page.id, :table => _origin.site.page_table, formname: nil, edit_only: 'body' )
454
+ opts[:editparams].merge!( :id => @page.id, :table => _origin.site.page_table, formname: opts[:formname], edit_only: 'body' )
455
455
  html << dc_link_for_edit1( opts[:editparams], t('drgcms.edit_content') )
456
456
 
457
457
  # opts[:editparams][:edit_only] = nil
@@ -95,7 +95,7 @@ def do_one_item(poll, yaml)
95
95
  html << if poll.display == 'lr'
96
96
  "</table><br>\n"
97
97
  else
98
- "</div><br>\n"
98
+ "</div>\n"
99
99
  end
100
100
  # captcha
101
101
  if poll.captcha_type.to_s.size > 1
@@ -107,7 +107,7 @@ def do_one_item(poll, yaml)
107
107
  @end_od_data = true
108
108
  end
109
109
  # submit and link tag
110
- html << "<span class='poll-data-submit'>#{field_html}#{yaml['separator']}</span>"
110
+ html << "<span class='dc-link-submit dc-animate'>#{field_html}#{yaml['separator']}</span>"
111
111
  # other elements
112
112
  else
113
113
  html << if poll.display == 'lr'
@@ -123,7 +123,7 @@ end
123
123
  ########################################################################
124
124
  def default
125
125
  # poll_id may be defined in params or opts
126
- poll_id = @parent.params[:poll_id] || @opts[:poll_id]
126
+ poll_id = @opts[:poll_id] || @parent.params[:poll_id]
127
127
  return '<br>Poll id is not defined?<br>' if poll_id.nil?
128
128
  #
129
129
  poll = DcPoll.find(poll_id)
@@ -187,10 +187,9 @@ def default
187
187
  yaml['name'] = item.name
188
188
  yaml['html'] ||= {}
189
189
  yaml['html']['size'] = item.size
190
- (yaml['html']['class'] ||= 'poll-submit') if item.type == 'submit_tag'
190
+ (yaml['html']['class'] ||= 'dc-submit') if item.type == 'submit_tag'
191
191
  yaml['text'] = item.text
192
192
  yaml['mandatory'] = item.mandatory
193
- # y['options'] = item.options
194
193
  yaml['type'] = item.type
195
194
  html << do_one_item(poll, yaml)
196
195
  end
@@ -206,7 +205,7 @@ def default
206
205
  html << @parent.hidden_field_tag('return_to_error', @parent.request.url )
207
206
  html << @parent.hidden_field_tag('poll_id', poll_id )
208
207
  html << @parent.hidden_field_tag('page_id', @parent.page.id )
209
- html << "</form><br /></div>"
208
+ html << "</form></div>"
210
209
 
211
210
  @part_css = poll.css
212
211
  html
@@ -854,7 +854,7 @@ end
854
854
  # Create datetime_select form field
855
855
  #
856
856
  # ===Form options:
857
- # * +type:+ date_select (required)
857
+ # * +type:+ datetime_select (required)
858
858
  # * +name:+ Field name (required)
859
859
  # * +options:+ options which apply to date_select field (optional)
860
860
  # * +html:+ html options which apply to password field (optional)
@@ -862,7 +862,7 @@ end
862
862
  # Form example:
863
863
  # 60:
864
864
  # name: end_time
865
- # type: date_time_select
865
+ # type: datetime_select
866
866
  # options:
867
867
  # include_blank: true
868
868
  ###########################################################################
@@ -974,7 +974,7 @@ end
974
974
  # Implementation of date_time_picker DRG CMS form field with help of jQuery DateTimePicker plugin
975
975
  #
976
976
  # ===Form options:
977
- # * +type:+ date_time_picker (required)
977
+ # * +type:+ datetime_picker (required)
978
978
  # * +name:+ Field name (required)
979
979
  # * +options:+ options which apply to date_picker field. All options can be found here http://xdsoft.net/jqplugins/datetimepicker/ .
980
980
  # Options can be defined in single line like:
@@ -990,7 +990,7 @@ end
990
990
  # Form example:
991
991
  # 10:
992
992
  # name: valid_to
993
- # type: date_time_picker
993
+ # type: datetime_picker
994
994
  # options: 'step: 60'
995
995
  ###########################################################################
996
996
  class DatetimePicker < DrgcmsField
@@ -1,4 +1,4 @@
1
1
  module DrgCms #:nodoc:
2
2
  # drg_cms gem version
3
- VERSION = "0.5.1"
3
+ VERSION = "0.5.2"
4
4
  end
@@ -3,19 +3,19 @@
3
3
  #########################################################################
4
4
  def ok_to_start
5
5
  p ''
6
- DcPermission.all.delete
7
- DcPolicyRole.all.delete
8
- DcUser.all.delete
6
+ # DcPermission.all.delete
7
+ # DcPolicyRole.all.delete
8
+ # DcUser.all.delete
9
9
  if DcPermission.all.size > 0
10
- p 'DcPermission (Permissions) collection is not empty!'
10
+ p 'DcPermission (Permissions) collection is not empty! Aborting.'
11
11
  return false
12
12
  end
13
13
  if DcPolicyRole.all.size > 0
14
- p 'DcUserRole (User roles) collection is not empty!'
14
+ p 'DcUserRole (User roles) collection is not empty! Aborting.'
15
15
  return false
16
16
  end
17
17
  if DcUser.all.size > 0
18
- p 'DcUser (Users) collection is not empty!'
18
+ p 'DcUser (Users) collection is not empty! Aborting.'
19
19
  return false
20
20
  end
21
21
  true
@@ -43,12 +43,17 @@ def create_superadmin
43
43
  password2 = read_input("Please repeat password for #{username} user :")
44
44
  return p 'Passwords are not equal' unless password2 == password1
45
45
  #
46
- # New role
46
+ # Guest role first
47
47
  role = DcPolicyRole.new
48
- role.name = 'superadmin'
49
- role.system_name = 'superadmin'
48
+ role.name = 'guest'
49
+ role.system_name = 'guest'
50
50
  role.save
51
- # User
51
+ # Superadmin role
52
+ sa = DcPolicyRole.new
53
+ sa.name = 'superadmin'
54
+ sa.system_name = 'superadmin'
55
+ sa.save
56
+ # Superadmin user
52
57
  usr = DcUser.new
53
58
  usr.username = username
54
59
  usr.password = password1
@@ -60,7 +65,7 @@ def create_superadmin
60
65
  # r.dc_policy_role_id = role._id
61
66
  # r.save
62
67
  r = DcUserRole.new
63
- r.dc_policy_role_id = role._id
68
+ r.dc_policy_role_id = sa._id
64
69
  usr.dc_user_roles << r
65
70
  # cmsedit permission
66
71
  permission = DcPermission.new
@@ -69,7 +74,7 @@ def create_superadmin
69
74
  permission.save
70
75
  #
71
76
  r = DcPolicyRule.new
72
- r.dc_policy_role_id = role._id
77
+ r.dc_policy_role_id = sa._id
73
78
  r.permission = DcPermission::SUPERADMIN
74
79
  permission.dc_policy_rules << r
75
80
  # create login poll
@@ -104,6 +109,75 @@ def create_superadmin
104
109
  p "Superadmin user created. Please remember login data #{username}/#{password1}"
105
110
  end
106
111
 
112
+ ########################################################################
113
+ # Initial database seed
114
+ ########################################################################
115
+ def seed
116
+ if DcSite.all.size > 0
117
+ p 'DcSite (Sites) collection is not empty! Aborting.'
118
+ return
119
+ end
120
+ #
121
+ if (sa = DcPolicyRole.find_by(system_name: 'superadmin')).nil?
122
+ p 'superadmin role not defined! Aborting.'
123
+ return
124
+ end
125
+ #
126
+ if (guest = DcPolicyRole.find_by(system_name: 'guest')).nil?
127
+ p 'guest role not defined! Aborting.'
128
+ return
129
+ end
130
+ # Site document
131
+ site = DcSite.new(
132
+ name: 'www.mysite.com',
133
+ homepage_link: "home",
134
+ menu_class: "DcSimpleMenu",
135
+ menu_name: "site-menu",
136
+ page_class: "DcPage",
137
+ page_table: "dc_page",
138
+ files_directory: "files",
139
+ settings: "ckeditor:\n config_file: /files/ck_config.js\n css_file: /files/ck_css.css\n",
140
+ site_layout: "content")
141
+ site.save
142
+ #
143
+ policy = DcPolicy.new(
144
+ description: "Default policy",
145
+ is_default: true,
146
+ message: "Access denied.",
147
+ name: "Default policy")
148
+ site.dc_policies << policy
149
+ #
150
+ rule = DcPolicyRule.new( dc_policy_role_id: sa._id, permission: 4)
151
+ policy << rule
152
+ rule = DcPolicyRule.new( dc_policy_role_id: guest._id, permission: 1)
153
+ policy << rule
154
+ # Design document
155
+ design = DcDesign.new(name: 'simple',description: 'Simple page')
156
+ design.body =<<EOT
157
+ <div id="site">
158
+ <div id="site-top">
159
+ <a href="/">SITE LOGO</a>
160
+ </div>
161
+ <div id="site-menu"
162
+ <%= dc_render(:dc_simple_menu, method: 'as_table') %>\
163
+ </div>
164
+ <div id="site-main">
165
+ <%= dc_render(:dc_page) %>
166
+ </div>
167
+ <div id="site-bottom">
168
+ <%= dc_render(:dc_piece, name: 'site-bottom') %>
169
+ </div>
170
+ </div>
171
+ EOT
172
+ design.save
173
+ #
174
+ page = DcPage.new(
175
+ subject: 'Home page',
176
+ subject_link: 'home',
177
+ dc_design_id: design._id,
178
+ dc_site_id: site._id,
179
+ )
180
+ end
107
181
 
108
182
  #########################################################################
109
183
  #
@@ -115,4 +189,10 @@ namespace :drg_cms do
115
189
  create_superadmin
116
190
  end
117
191
  end
192
+
193
+ desc "Seed initial data"
194
+ task :seed => :environment do
195
+ seed
196
+ end
197
+
118
198
  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.1
4
+ version: 0.5.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Damjan Rems
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-05-24 00:00:00.000000000 Z
11
+ date: 2015-05-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails