drg_cms 0.6.0.1 → 0.6.1.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (130) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/drg_cms/drg_cms.js +454 -145
  3. data/app/assets/javascripts/drg_cms_application.js +1 -1
  4. data/app/assets/stylesheets/drg_cms/drg_cms.css +635 -244
  5. data/app/assets/stylesheets/drg_cms/select-multiple.css +18 -12
  6. data/app/assets/stylesheets/drg_cms_cms.css +1 -1
  7. data/app/controllers/cmsedit_controller.rb +515 -335
  8. data/app/controllers/dc_application_controller.rb +378 -111
  9. data/app/controllers/dc_common_controller.rb +105 -14
  10. data/app/{controllers → controls}/browse_models_control.rb +0 -0
  11. data/app/controls/dc_help_control.rb +126 -0
  12. data/app/{controllers → controls}/dc_page_control.rb +24 -8
  13. data/app/controls/dc_poll_result_control.rb +88 -0
  14. data/app/controls/dc_report.rb +223 -0
  15. data/app/{controllers → controls}/design_element_settings_control.rb +0 -0
  16. data/app/forms/all_options.yml +44 -9
  17. data/app/forms/cms_menu.yml +28 -18
  18. data/app/forms/dc_ad.yml +11 -22
  19. data/app/forms/dc_big_table.yml +1 -0
  20. data/app/forms/dc_big_table_value.yml +1 -0
  21. data/app/forms/dc_category.yml +2 -1
  22. data/app/forms/dc_design.yml +20 -16
  23. data/app/forms/dc_filter.yml +3 -6
  24. data/app/forms/dc_help_1.yml +109 -0
  25. data/app/forms/dc_journal.yml +3 -1
  26. data/app/forms/dc_json_ld.yml +59 -0
  27. data/app/forms/dc_key_value.yml +32 -0
  28. data/app/forms/dc_link.yml +1 -1
  29. data/app/forms/dc_menu.yml +2 -0
  30. data/app/forms/dc_menu_item.yml +2 -0
  31. data/app/forms/dc_page.yml +3 -5
  32. data/app/forms/dc_part.yml +1 -0
  33. data/app/forms/dc_piece.yml +1 -0
  34. data/app/forms/dc_poll.yml +15 -5
  35. data/app/forms/dc_poll_item.yml +2 -1
  36. data/app/forms/dc_poll_result.yml +83 -0
  37. data/app/forms/dc_poll_result_export.yml +35 -0
  38. data/app/forms/dc_seo.yml +33 -0
  39. data/app/forms/dc_simple_menu.yml +2 -0
  40. data/app/forms/dc_site.yml +4 -12
  41. data/app/forms/dc_user.yml +27 -11
  42. data/app/forms/dc_user_role.yml +3 -0
  43. data/app/forms/json_ld_schema.yml +168 -0
  44. data/app/helpers/cms_common_helper.rb +375 -0
  45. data/app/helpers/cms_edit_helper.rb +506 -0
  46. data/app/helpers/cms_helper.rb +268 -0
  47. data/app/helpers/cms_index_helper.rb +580 -0
  48. data/app/helpers/dc_application_helper.rb +218 -306
  49. data/app/models/concerns/dc_page_concern.rb +40 -6
  50. data/app/models/concerns/dc_policy_rule_concern.rb +20 -8
  51. data/app/models/concerns/dc_seo_concern.rb +66 -0
  52. data/app/models/concerns/dc_site_concern.rb +67 -44
  53. data/app/models/concerns/dc_user_concern.rb +57 -18
  54. data/app/models/dc_design.rb +30 -18
  55. data/app/models/dc_filter.rb +22 -13
  56. data/app/models/dc_json_ld.rb +152 -0
  57. data/app/models/dc_key_value.rb +48 -0
  58. data/app/models/dc_key_value_store.rb +1 -0
  59. data/app/models/dc_memory.rb +8 -1
  60. data/app/models/dc_page.rb +0 -1
  61. data/app/models/dc_permission.rb +49 -9
  62. data/app/models/dc_policy.rb +25 -14
  63. data/app/models/dc_policy_role.rb +22 -11
  64. data/app/models/dc_poll.rb +39 -19
  65. data/app/models/dc_poll_result.rb +46 -0
  66. data/app/models/dc_temp.rb +140 -0
  67. data/app/models/dc_user_role.rb +2 -2
  68. data/app/models/drgcms_form_fields.rb +12 -1
  69. data/app/models/drgcms_form_fields/action.rb +61 -0
  70. data/app/models/drgcms_form_fields/comment.rb +8 -4
  71. data/app/models/drgcms_form_fields/date_picker.rb +11 -9
  72. data/app/models/drgcms_form_fields/date_select.rb +1 -1
  73. data/app/models/drgcms_form_fields/datetime_picker.rb +12 -10
  74. data/app/models/drgcms_form_fields/datetime_select.rb +1 -1
  75. data/app/models/drgcms_form_fields/drgcms_field.rb +55 -9
  76. data/app/models/drgcms_form_fields/embedded.rb +26 -16
  77. data/app/models/drgcms_form_fields/file_field.rb +52 -0
  78. data/app/models/drgcms_form_fields/file_select.rb +2 -2
  79. data/app/models/drgcms_form_fields/hash_field.rb +90 -0
  80. data/app/models/drgcms_form_fields/hidden_field.rb +1 -1
  81. data/app/models/drgcms_form_fields/html_field.rb +1 -1
  82. data/app/models/drgcms_form_fields/link_to.rb +2 -2
  83. data/app/models/drgcms_form_fields/method.rb +66 -0
  84. data/app/models/drgcms_form_fields/multitext_autocomplete.rb +23 -14
  85. data/app/models/drgcms_form_fields/number_field.rb +15 -6
  86. data/app/models/drgcms_form_fields/radio.rb +96 -0
  87. data/app/models/drgcms_form_fields/readonly.rb +2 -2
  88. data/app/models/drgcms_form_fields/select.rb +92 -29
  89. data/app/models/drgcms_form_fields/text_area.rb +1 -1
  90. data/app/models/drgcms_form_fields/text_autocomplete.rb +31 -17
  91. data/app/models/drgcms_form_fields/text_field.rb +1 -1
  92. data/app/models/drgcms_form_fields/text_with_select.rb +6 -3
  93. data/app/models/drgcms_form_fields/tree_select.rb +15 -4
  94. data/app/{helpers → renderers}/dc_ad_renderer.rb +0 -0
  95. data/app/{helpers → renderers}/dc_big_menu_renderer.rb +1 -0
  96. data/app/{helpers → renderers}/dc_captcha_renderer.rb +0 -0
  97. data/app/{helpers → renderers}/dc_common_renderer.rb +0 -0
  98. data/app/{helpers → renderers}/dc_gallery_renderer.rb +1 -0
  99. data/app/{helpers → renderers}/dc_menu_renderer.rb +11 -4
  100. data/app/{helpers → renderers}/dc_page_renderer.rb +1 -0
  101. data/app/{helpers → renderers}/dc_part_renderer.rb +5 -4
  102. data/app/{helpers → renderers}/dc_piece_renderer.rb +1 -1
  103. data/app/{helpers → renderers}/dc_poll_renderer.rb +91 -64
  104. data/app/{helpers → renderers}/dc_renderer.rb +1 -0
  105. data/app/{helpers → renderers}/dc_simple_menu_renderer.rb +1 -0
  106. data/app/views/cmsedit/{remove_edit_stuff.js.erb → __remove_edit_stuff.js.erb} +0 -0
  107. data/app/views/cmsedit/{show.html.erb → __show.html.erb} +0 -0
  108. data/app/views/cmsedit/_edit_stuff.html.erb +4 -25
  109. data/app/views/cmsedit/_form.html.erb +4 -3
  110. data/app/views/cmsedit/_result.html.erb +2 -3
  111. data/app/views/cmsedit/edit.html.erb +4 -1
  112. data/app/views/cmsedit/index.html.erb +7 -1
  113. data/app/views/cmsedit/new.html.erb +3 -1
  114. data/app/views/dc_common/_help.html.erb +17 -0
  115. data/app/views/layouts/models.html.erb +2 -1
  116. data/config/locales/drgcms_en.yml +27 -3
  117. data/config/locales/drgcms_sl.yml +32 -5
  118. data/config/locales/models_en.yml +65 -17
  119. data/config/locales/models_sl.yml +69 -18
  120. data/drg_cms.gemspec +1 -1
  121. data/lib/drg_cms.rb +61 -1
  122. data/lib/drg_cms/version.rb +1 -1
  123. data/lib/generators/new_drg_form/new_drg_form_generator.rb +9 -2
  124. data/lib/tasks/database.rake +6 -56
  125. metadata +73 -54
  126. data/app/assets/stylesheets/drg_cms/__jquery-ui.css +0 -339
  127. data/app/helpers/application_helper.rb +0 -2
  128. data/app/helpers/cmsedit_helper.rb +0 -888
  129. data/app/models/dc_dummy.rb +0 -102
  130. data/test/fixtures/drg_cms_test_data.rb +0 -87
@@ -72,6 +72,7 @@ sl:
72
72
  name: Ime
73
73
  description: Opis
74
74
  body: Vsebina
75
+ params: Parametri
75
76
  css: CSS
76
77
  author: Avtor
77
78
  updated_by: Spremenil
@@ -81,23 +82,24 @@ sl:
81
82
  site_id: Spletišče
82
83
  control: Kontrolna datoteka
83
84
  control_method: Kontrolna metoda
84
-
85
+ updated_at: Spremenjeno
85
86
 
86
87
  dc_user:
87
88
  tabletitle: Uporabniki
88
- tab1: Osnova
89
+ 1base: Osnova
89
90
 
90
91
  id: Id
91
92
  username: Uporabnik
92
93
  title: Titula
93
94
  first_name: Ime
95
+ middle_name: Srednje ime
94
96
  last_name: Priimek
95
97
  name: Naziv
96
98
  address: Naslov
97
99
  post: Pošta
98
100
  country: Država
99
101
  phone: Telefon
100
- email: e-Pošta
102
+ email: e-Naslov
101
103
  picture: Slika
102
104
  birthdate: Datum rojstva
103
105
  about: Več o
@@ -106,8 +108,8 @@ sl:
106
108
  valid_from: Velja od
107
109
  valid_to: Velja do
108
110
  updated_by: Spremenil
109
- type: Vrsta
110
- members: Člani
111
+ group: Je skupina
112
+ member: Član v skupinah
111
113
  dc_user_roles: Uporabniške vloge
112
114
  password: Geslo
113
115
  password_confirmation: Potrdi geslo
@@ -126,18 +128,21 @@ sl:
126
128
  dc_poll:
127
129
  tabletitle: Ankete
128
130
  choices4_operation: 'Poženi program:poll_submit,Povezava:link'
129
- choices4_display: 'Od zgoraj-navzdol:td,Od leve na desno:lr'
131
+ choices4_display: 'Zgoraj:td,Levo:lr,Znotraj:in'
130
132
  tab1: Podatki
131
- tab2: Forma
132
- tab3: Vrstice
133
+ tab2: Skriptna koda
134
+ tab3: Vsebina
135
+ tab4: Vsebina - napredno
133
136
 
134
137
  name: Ime
135
138
  title: Naslov
136
139
  sub_text: Kratek opis
137
140
  operation: Operacija
138
141
  parameters: Parametri
139
- display: Prikaz
142
+ display: Napis
140
143
  css: CSS
144
+ js: Skriptna koda
145
+ pre_display: Pred prikazom zaženi
141
146
  valid_from: Velja od
142
147
  valid_to: Velja do
143
148
  dc_poll_items: Vrstice
@@ -147,7 +152,7 @@ sl:
147
152
 
148
153
  dc_poll_item:
149
154
  tabletitle: Vnosne vrstice
150
- choices4_type: Podatek:text_field,Tekst:text_area,Izbirno:select,Izbirni gumb:check_box,Zaključek:submit_tag,Povezava:link_to,Geslo:password_field,Komentar:comment
155
+ choices4_type: Podatek:text_field,Tekst:text_area,Izbirno:select,Izbirni gumb:check_box,Zaključek:submit_tag,Povezava:link_to,Geslo:password_field,Komentar:comment,Radio:radio
151
156
  choices4_separator: Presledek:&nbsp;,Prazna vrstica:<br />,Ravnilo:<hr>
152
157
 
153
158
  name: Naziv
@@ -159,6 +164,14 @@ sl:
159
164
  options: Opcije
160
165
  order: Zaporedje
161
166
  active: Aktivna
167
+
168
+ dc_poll_result:
169
+ tabletitle: Rezultati anket
170
+
171
+ dc_poll_id: Anketa
172
+ created_at: Nastalo
173
+ data: Podatki
174
+ confirmed: Potrjen
162
175
 
163
176
  dc_policy:
164
177
  tabletitle: Politike za dostop
@@ -285,7 +298,6 @@ sl:
285
298
 
286
299
  subject: Zadeva
287
300
  subject_link: Povezava
288
- title: Naslov za brskalnik
289
301
  sub_subject: Povzetek
290
302
  picture: Slika
291
303
  alt_link: Alt povezava
@@ -322,6 +334,13 @@ sl:
322
334
  if_class: CSS class
323
335
  _update_menu: Spremeni meni
324
336
 
337
+ dc_seo:
338
+ seo: SEO
339
+ title: Naslov za brskalnik
340
+ meta_description: Meta opis
341
+ canonical_link: Canonical link
342
+ dc_json_lds: Strukturni podatki
343
+
325
344
  dc_part:
326
345
  tabletitle: Elementi strani
327
346
  1base: Osnovno
@@ -542,6 +561,18 @@ sl:
542
561
  active: Aktiven
543
562
  created_at: Ustvarjeno
544
563
 
564
+ dc_json_ld:
565
+ tabletitle: Struktirirani podatki za spletno stran
566
+ choices4_type: Organizacija:Organization,Kontakt:ContactPoint
567
+
568
+ name: Ime
569
+ type: Tip
570
+ data: Podatki
571
+ created_at: Narejeno
572
+ updated_at: Spremenjeno
573
+ active: Aktiven
574
+ dc_json_lds: Podelement strukture
575
+
545
576
  # help pomoč na obrazcih ####################################################
546
577
 
547
578
  help:
@@ -580,14 +611,14 @@ sl:
580
611
  body: Vsebina dizajna, ki se bo izvedla kot vsaka Rails view datoteka
581
612
  css: CSS za dizajn
582
613
  author: Ime avtorja
614
+ params: Parametri povezani z dizajnom strani
583
615
  updated_by: Zadnji spreminjal
584
616
  active: Ali je dizajn aktiven
585
617
  dc_parts: Elementi, sestavni deli dizajna
586
618
  rails_view: Ime Rails view datoteke, ki bo uporabljena za izris strani
587
619
  site_id: Izberite spletišče, če dizajn pripada samo enemu spletišču
588
620
  control: Izvorna datoteka z akcijami za izris dizajna
589
- control_method: Kontrolna metoda (akcija), ki se bo klicala v izvorni datoteki
590
-
621
+ control_method: Kontrolna metoda (akcija), ki se bo klicala v izvorni datoteki
591
622
 
592
623
  dc_user:
593
624
  username: Uporabniško ime
@@ -609,14 +640,13 @@ sl:
609
640
  valid_from: Začetni datum veljavnosti
610
641
  valid_to: Končni datum veljavnosti
611
642
  updated_by: Spremenil
612
- type: Vrsta uporabniškega računa
613
- members: Člani (če skupina uporabnikov)
643
+ group: Račun predstavlja uporabniško skupino
644
+ member: Seznam skupin za uporabnika
614
645
  dc_user_roles: Vloge, ki pripadajo temu uporabniku
615
646
  password: Geslo
616
647
  password_confirmation: Še enkrat vpišite geslo
617
648
  signature: Podpis, ki se doda k vsakemu sporočilu tega uporabnika
618
649
 
619
-
620
650
  dc_user_role:
621
651
  dc_policy_role_id: Uporabnikova vloga
622
652
  has_cms_menu: Vloga dovoljuje prikaz opcije za CMS menu
@@ -631,8 +661,10 @@ sl:
631
661
  sub_text: Kratek opis ankete
632
662
  operation: Operacija, ki se izvede ob kliku na izbiro
633
663
  parameters: Dodatni parametri za operacijo
634
- display: Kako so posamezni podatki postavljeni na obrazcu
664
+ display: Postavitev napisa glede na vpisno polje
635
665
  css: CSS samo za to anketo
666
+ js: Javascript koda samo za to anketo
667
+ pre_display: Metoda. ki se zažene pred prikazom obrazca. Običajno za privzeto polnjenje podatkov obrazca
636
668
  valid_from: Anketa je veljavna od
637
669
  valid_to: Anketa je veljavna do
638
670
  dc_poll_items: Posamezni podatki ankete
@@ -649,6 +681,12 @@ sl:
649
681
  options: Opcije, odvisne od vrste vpisnega polja
650
682
  order: Zaporedje prikaza na anketi
651
683
  active: Vrstica je aktivna
684
+
685
+ dc_poll_result:
686
+ dc_poll_id: Naziv ankete
687
+ created_at: Čas nastanka zapisa
688
+ data: Podatki v YAML formatu
689
+ confirmed: Podatki potrjeni. Npr. Uporabnik mora klikniti povezavo v e-pošti.
652
690
 
653
691
  dc_policy:
654
692
  name: Naziv politike
@@ -740,7 +778,6 @@ sl:
740
778
  subject: Zadeva (kratek naslov) sestavka
741
779
  subject_link: Povezava (link) do sestavka
742
780
  sub_subject: Povzetek, kratek opis vsebine
743
- title: Naslov, ki se izpiše v gornji vrstici brskalnika. Optimiziraj za SEO.
744
781
  alt_link: Alternativna povezava do sestavka
745
782
  picture: Slika v povezavi s stranjo
746
783
  gallery: Dokument vsebuje slikovno galerijo.
@@ -774,6 +811,12 @@ sl:
774
811
  if_id: CSS id IFrame objekta
775
812
  if_class: CSS class IFrame objekta
776
813
  _update_menu: Popravi tudi povezavo do dokumenta v menuju
814
+
815
+ dc_seo:
816
+ title: Naslov, ki se izpiše v gornji vrstici brskalnika. Optimiziraj za SEO.
817
+ meta_description: SEO optimiziran opis strani
818
+ canonical_link: Canonical link, kadar je stran uporabljena z različnimi parametri
819
+ dc_json_lds: Schema strukturni podatki, ki dodatno opisujejo spletno stran
777
820
 
778
821
  dc_part:
779
822
  name: Naziv elementa
@@ -932,3 +975,11 @@ sl:
932
975
  doc_id: Dokument povezan z galerijo
933
976
  order: Vrstni red slike v galeriji
934
977
  active: Dokument je aktiven
978
+
979
+ dc_json_ld:
980
+ name: Naziv elementa podatkovne strukture
981
+ type: Tip podatkovne strukture
982
+ data: Podatki v YAML formatu
983
+ active: Podatki so aktivni
984
+ add_schema: Dodaj strukturo
985
+ add_error: Element %{schema} že obstaja!
data/drg_cms.gemspec CHANGED
@@ -26,7 +26,7 @@ Gem::Specification.new do |s|
26
26
  s.add_dependency 'non-stupid-digest-assets'
27
27
 
28
28
  s.add_dependency 'bcrypt' #, '~> 3.0.0'
29
- s.add_dependency 'mongoid', '~> 7.0.5'
29
+ s.add_dependency 'mongoid', '~> 7'
30
30
 
31
31
  s.add_dependency 'kaminari-mongoid'
32
32
  s.add_dependency 'kaminari-actionview'
data/lib/drg_cms.rb CHANGED
@@ -118,6 +118,63 @@ def self.from_root(file=nil)
118
118
  File.expand_path("../../#{file}", __FILE__).to_s
119
119
  end
120
120
 
121
+ ####################################################################
122
+ # Checks if any errors exist on document and writes error log. It can also
123
+ # crash if requested. This is mostly usefull in development for debuging
124
+ # model errors or when updating multiple collections and each save must be
125
+ # checked if succesfull.
126
+ #
127
+ # @param [Document] Document object which will be checked
128
+ # @param [Boolean] If true method should end in runtime error. Default = false.
129
+ #
130
+ # @return [String] Error messages or empty string if everything is OK.
131
+ #
132
+ # @Example Check for error when data is saved.
133
+ # model.save
134
+ # if (msg = DrgCms.model_check(model) ).size > 0
135
+ # p msg
136
+ # error process ......
137
+ # end
138
+ #
139
+ ####################################################################
140
+ def self.model_check(document, crash = false)
141
+ return nil unless document.errors.any?
142
+
143
+ msg = ""
144
+ document.errors.each do |attribute, errors_array|
145
+ msg << "#{attribute}: #{errors_array}\n"
146
+ end
147
+ #
148
+ if crash and msg.size > 0
149
+ msg = "Validation errors in #{document.class}:\n" + msg
150
+ pp msg
151
+ Rails.logger.error(msg)
152
+ raise "Validation error. See log for more information."
153
+ end
154
+ msg
155
+ end
156
+
157
+ ####################################################################
158
+ # Clear cache. If key is specified only this key will be deleted.
159
+ #
160
+ # @param [String] Optional key to be deleted
161
+ ####################################################################
162
+ def self.cache_clear(key = nil)
163
+ return Rails.cache.clear if key.nil?
164
+
165
+ if ((Rails.application.config.cache_store.first == :redis_cache_store) rescue false)
166
+ Rails.cache.redis.del(key)
167
+ else
168
+ Rails.cache.delete_matched("#{key}*")
169
+ end
170
+ end
171
+
172
+ def self.__cache_clear(key = nil)
173
+ return Rails.cache.clear if key.nil?
174
+
175
+ Rails.cache.delete_matched("#{key}*")
176
+ end
177
+
121
178
  ###############################################################################
122
179
  # All Routes required by DrgCms.
123
180
  #
@@ -135,10 +192,13 @@ def self.routes
135
192
  get 'dc_common/logout' => :logout
136
193
  get 'dc_common/login' => :login
137
194
  get 'dc_common/copy_clipboard' => :copy_clipboard
138
- match 'dc_common/paste_clipboard' => :paste_clipboard, via: [:get, :post]
195
+ match 'dc_common/paste_clipboard' => :paste_clipboard, via: [:get, :post]
139
196
  put 'dc_common/restore_from_journal' => :restore_from_journal
197
+ get 'dc_common/add_json_ld_schema' => :add_json_ld_schema
198
+ get 'dc_common/help' => :help
140
199
  end
141
200
  match 'elfinder' => 'dc_elfinder#connector', via: [:get, :post]
201
+ match 'cmsedit/run' => 'cmsedit#run', via: [:get, :put, :post]
142
202
  resources :cmsedit
143
203
  resources :cms, controller: :cmsedit
144
204
  end
@@ -23,5 +23,5 @@
23
23
 
24
24
  # drg_cms gem version
25
25
  module DrgCms #:nodoc:
26
- VERSION = '0.6.0.1'
26
+ VERSION = '0.6.1.1.1'.freeze
27
27
  end
@@ -12,8 +12,15 @@ def create_form_file
12
12
  #:TODO: find out how to prevent error when model class is not defined
13
13
  @file_name = file_name
14
14
  form_name = file_name #if formname.size == 0
15
- @model = file_name.classify.constantize rescue nil
16
- return (p "Model #{file_name.classify} not found! Aborting.") if @model.nil?
15
+ begin
16
+ @model = file_name.classify.constantize
17
+ rescue Exception => e
18
+ msg = ([e.message]+e.backtrace).join($/)
19
+ Rails.logger.error(msg)
20
+ pp msg
21
+ @model = nil
22
+ end
23
+ return (pp "Error loading #{file_name.classify} model! Aborting.") if @model.nil?
17
24
  #
18
25
  yml = top_level_options + index_options + result_set_options + form_top_options + form_fields_options + localize_options
19
26
  create_file "app/forms/#{form_name}.yml", yml
@@ -6,61 +6,9 @@
6
6
  #########################################################################
7
7
  def determine_model(path)
8
8
  path =~ /(.*)\/(.*).rb/
9
- begin
10
- $2.camelize.constantize
11
- rescue Exception # it happends
12
- nil
13
- end
9
+ $2.camelize.constantize rescue nil # nil happens
14
10
  end
15
11
 
16
- #########################################################################
17
- # Create index for single module
18
- #########################################################################
19
- def create_index(model)
20
- return if model.index_specifications.empty?
21
- #
22
- if !model.embedded? || model.cyclic?
23
- @logger.info("DRGCMS: Creating indexes on #{model}:")
24
- model.create_indexes
25
- model.index_specifications.each do |spec|
26
- @logger.info("DRGCMS: Index: #{spec.key}, Options: #{spec.options}")
27
- end
28
- model
29
- else
30
- @logger.info("DRGCMS: Index ignored on: #{model}, please define in the root model.")
31
- nil
32
- end
33
- end
34
-
35
- #########################################################################
36
- # Will remove all undefined indexes from collection.
37
- #########################################################################
38
- def remove_undefined_indexes(model)
39
- return if model.embedded?
40
- #
41
- begin
42
- undefined = []
43
- model.collection.indexes.each do |index|
44
- # ignore default index
45
- next if index['name'] == '_id_'
46
-
47
- key = index['key'].symbolize_keys
48
- spec = model.index_specification(key)
49
- undefined << index unless spec
50
- end
51
- rescue Mongo::Error::OperationFailure; end
52
- #
53
- undefined.each do |index|
54
- key = index['key'].symbolize_keys
55
- collection = model.collection
56
- collection.indexes.drop(key)
57
- @logger.info(
58
- "MONGOID: Removed index '#{index['name']}' on collection " +
59
- "'#{collection.name}' in database '#{collection.database.name}'."
60
- )
61
- end
62
- end
63
-
64
12
  #########################################################################
65
13
  # Return array of all models found in application.
66
14
  #########################################################################
@@ -70,7 +18,7 @@ def all_models()
70
18
  models_dir = File.expand_path("../models", path)
71
19
  Dir["#{models_dir}/*.rb"].each do |model_file|
72
20
  model = determine_model(model_file)
73
- models << model if !model.nil? and model.respond_to?(:index_specifications)
21
+ models << model if model and model.respond_to?(:index_specifications)
74
22
  end
75
23
  end
76
24
  models
@@ -82,12 +30,14 @@ end
82
30
  namespace :drg_cms do
83
31
  desc "Create indexes for all mongoid models. Including those in gem plugins."
84
32
  task :create_indexes => :environment do
85
- all_models.each {|model| create_index(model)}
33
+ @logger.info( "MONGOID: Checking indexes.")
34
+ Mongoid::Tasks::Database.create_indexes(all_models)
86
35
  end
87
36
 
88
37
  desc "Remove undefined indexes for all mongoid models. Including those in gem plugins."
89
38
  task :remove_undefined_indexes => :environment do
90
- all_models.each {|model| remove_undefined_indexes(model)}
39
+ @logger.info( "MONGOID: Remove undefined indexes.")
40
+ Mongoid::Tasks::Database.remove_undefined_indexes(all_models)
91
41
  end
92
42
 
93
43
  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.6.0.1
4
+ version: 0.6.1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Damjan Rems
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-09-22 00:00:00.000000000 Z
11
+ date: 2021-04-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -86,14 +86,14 @@ dependencies:
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: 7.0.5
89
+ version: '7'
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: 7.0.5
96
+ version: '7'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: kaminari-mongoid
99
99
  requirement: !ruby/object:Gem::Requirement
@@ -197,7 +197,6 @@ files:
197
197
  - app/assets/javascripts/drg_cms/some_scripts.js
198
198
  - app/assets/javascripts/drg_cms_application.js
199
199
  - app/assets/javascripts/drg_cms_cms.js
200
- - app/assets/stylesheets/drg_cms/__jquery-ui.css
201
200
  - app/assets/stylesheets/drg_cms/drg_cms.css
202
201
  - app/assets/stylesheets/drg_cms/jquery.datetimepicker.css
203
202
  - app/assets/stylesheets/drg_cms/jstree.css
@@ -206,13 +205,16 @@ files:
206
205
  - app/assets/stylesheets/drg_cms/theme.css
207
206
  - app/assets/stylesheets/drg_cms_application.css
208
207
  - app/assets/stylesheets/drg_cms_cms.css
209
- - app/controllers/browse_models_control.rb
210
208
  - app/controllers/cmsedit_controller.rb
211
209
  - app/controllers/dc_application_controller.rb
212
210
  - app/controllers/dc_common_controller.rb
213
211
  - app/controllers/dc_main_controller.rb
214
- - app/controllers/dc_page_control.rb
215
- - app/controllers/design_element_settings_control.rb
212
+ - app/controls/browse_models_control.rb
213
+ - app/controls/dc_help_control.rb
214
+ - app/controls/dc_page_control.rb
215
+ - app/controls/dc_poll_result_control.rb
216
+ - app/controls/dc_report.rb
217
+ - app/controls/design_element_settings_control.rb
216
218
  - app/forms/all_options.yml
217
219
  - app/forms/cms_forms.yml
218
220
  - app/forms/cms_menu.yml
@@ -227,8 +229,11 @@ files:
227
229
  - app/forms/dc_filter.yml
228
230
  - app/forms/dc_folder_permission.yml
229
231
  - app/forms/dc_gallery.yml
232
+ - app/forms/dc_help_1.yml
230
233
  - app/forms/dc_ident.yml
231
234
  - app/forms/dc_journal.yml
235
+ - app/forms/dc_json_ld.yml
236
+ - app/forms/dc_key_value.yml
232
237
  - app/forms/dc_key_value_store.yml
233
238
  - app/forms/dc_link.yml
234
239
  - app/forms/dc_menu.yml
@@ -243,31 +248,26 @@ files:
243
248
  - app/forms/dc_policy_rule_nocms.yml
244
249
  - app/forms/dc_poll.yml
245
250
  - app/forms/dc_poll_item.yml
251
+ - app/forms/dc_poll_result.yml
252
+ - app/forms/dc_poll_result_export.yml
246
253
  - app/forms/dc_removed_url.yml
254
+ - app/forms/dc_seo.yml
247
255
  - app/forms/dc_simple_menu.yml
248
256
  - app/forms/dc_simple_menu_item.yml
249
257
  - app/forms/dc_site.yml
250
258
  - app/forms/dc_user.yml
251
259
  - app/forms/dc_user_role.yml
252
260
  - app/forms/drgcms_cms.yml
253
- - app/helpers/application_helper.rb
254
- - app/helpers/cmsedit_helper.rb
255
- - app/helpers/dc_ad_renderer.rb
261
+ - app/forms/json_ld_schema.yml
262
+ - app/helpers/cms_common_helper.rb
263
+ - app/helpers/cms_edit_helper.rb
264
+ - app/helpers/cms_helper.rb
265
+ - app/helpers/cms_index_helper.rb
256
266
  - app/helpers/dc_application_helper.rb
257
- - app/helpers/dc_big_menu_renderer.rb
258
- - app/helpers/dc_captcha_renderer.rb
259
- - app/helpers/dc_common_renderer.rb
260
- - app/helpers/dc_gallery_renderer.rb
261
- - app/helpers/dc_menu_renderer.rb
262
- - app/helpers/dc_page_renderer.rb
263
- - app/helpers/dc_part_renderer.rb
264
- - app/helpers/dc_piece_renderer.rb
265
- - app/helpers/dc_poll_renderer.rb
266
- - app/helpers/dc_renderer.rb
267
- - app/helpers/dc_simple_menu_renderer.rb
268
267
  - app/models/concerns/dc_page_concern.rb
269
268
  - app/models/concerns/dc_piece_concern.rb
270
269
  - app/models/concerns/dc_policy_rule_concern.rb
270
+ - app/models/concerns/dc_seo_concern.rb
271
271
  - app/models/concerns/dc_site_concern.rb
272
272
  - app/models/concerns/dc_user_concern.rb
273
273
  - app/models/dc_ad.rb
@@ -278,13 +278,14 @@ files:
278
278
  - app/models/dc_big_table_value.rb
279
279
  - app/models/dc_category.rb
280
280
  - app/models/dc_design.rb
281
- - app/models/dc_dummy.rb
282
281
  - app/models/dc_filter.rb
283
282
  - app/models/dc_folder_permission.rb
284
283
  - app/models/dc_gallery.rb
285
284
  - app/models/dc_ident.rb
286
285
  - app/models/dc_internals.rb
287
286
  - app/models/dc_journal.rb
287
+ - app/models/dc_json_ld.rb
288
+ - app/models/dc_key_value.rb
288
289
  - app/models/dc_key_value_store.rb
289
290
  - app/models/dc_link.rb
290
291
  - app/models/dc_memory.rb
@@ -299,15 +300,18 @@ files:
299
300
  - app/models/dc_policy_rule.rb
300
301
  - app/models/dc_poll.rb
301
302
  - app/models/dc_poll_item.rb
303
+ - app/models/dc_poll_result.rb
302
304
  - app/models/dc_removed_url.rb
303
305
  - app/models/dc_simple_menu.rb
304
306
  - app/models/dc_simple_menu_item.rb
305
307
  - app/models/dc_site.rb
306
308
  - app/models/dc_stat.rb
309
+ - app/models/dc_temp.rb
307
310
  - app/models/dc_user.rb
308
311
  - app/models/dc_user_role.rb
309
312
  - app/models/dc_visit.rb
310
313
  - app/models/drgcms_form_fields.rb
314
+ - app/models/drgcms_form_fields/action.rb
311
315
  - app/models/drgcms_form_fields/check_box.rb
312
316
  - app/models/drgcms_form_fields/comment.rb
313
317
  - app/models/drgcms_form_fields/date_picker.rb
@@ -316,14 +320,18 @@ files:
316
320
  - app/models/drgcms_form_fields/datetime_select.rb
317
321
  - app/models/drgcms_form_fields/drgcms_field.rb
318
322
  - app/models/drgcms_form_fields/embedded.rb
323
+ - app/models/drgcms_form_fields/file_field.rb
319
324
  - app/models/drgcms_form_fields/file_select.rb
325
+ - app/models/drgcms_form_fields/hash_field.rb
320
326
  - app/models/drgcms_form_fields/hidden_field.rb
321
327
  - app/models/drgcms_form_fields/html_field.rb
322
328
  - app/models/drgcms_form_fields/journal_diff.rb
323
329
  - app/models/drgcms_form_fields/link_to.rb
330
+ - app/models/drgcms_form_fields/method.rb
324
331
  - app/models/drgcms_form_fields/multitext_autocomplete.rb
325
332
  - app/models/drgcms_form_fields/number_field.rb
326
333
  - app/models/drgcms_form_fields/password_field.rb
334
+ - app/models/drgcms_form_fields/radio.rb
327
335
  - app/models/drgcms_form_fields/readonly.rb
328
336
  - app/models/drgcms_form_fields/select.rb
329
337
  - app/models/drgcms_form_fields/submit_tag.rb
@@ -332,6 +340,20 @@ files:
332
340
  - app/models/drgcms_form_fields/text_field.rb
333
341
  - app/models/drgcms_form_fields/text_with_select.rb
334
342
  - app/models/drgcms_form_fields/tree_select.rb
343
+ - app/renderers/dc_ad_renderer.rb
344
+ - app/renderers/dc_big_menu_renderer.rb
345
+ - app/renderers/dc_captcha_renderer.rb
346
+ - app/renderers/dc_common_renderer.rb
347
+ - app/renderers/dc_gallery_renderer.rb
348
+ - app/renderers/dc_menu_renderer.rb
349
+ - app/renderers/dc_page_renderer.rb
350
+ - app/renderers/dc_part_renderer.rb
351
+ - app/renderers/dc_piece_renderer.rb
352
+ - app/renderers/dc_poll_renderer.rb
353
+ - app/renderers/dc_renderer.rb
354
+ - app/renderers/dc_simple_menu_renderer.rb
355
+ - app/views/cmsedit/__remove_edit_stuff.js.erb
356
+ - app/views/cmsedit/__show.html.erb
335
357
  - app/views/cmsedit/_edit_stuff.html.erb
336
358
  - app/views/cmsedit/_form.html.erb
337
359
  - app/views/cmsedit/_result.html.erb
@@ -340,8 +362,7 @@ files:
340
362
  - app/views/cmsedit/index.html.erb
341
363
  - app/views/cmsedit/login.html.erb
342
364
  - app/views/cmsedit/new.html.erb
343
- - app/views/cmsedit/remove_edit_stuff.js.erb
344
- - app/views/cmsedit/show.html.erb
365
+ - app/views/dc_common/_help.html.erb
345
366
  - app/views/dc_common/_iframe_edit.html.erb
346
367
  - app/views/dc_common/paste_clipboard.html.erb
347
368
  - app/views/layouts/__cmsedit.html.erb
@@ -402,14 +423,13 @@ files:
402
423
  - test/dummy/public/500.html
403
424
  - test/dummy/public/favicon.ico
404
425
  - test/dummy/script/rails
405
- - test/fixtures/drg_cms_test_data.rb
406
426
  - test/integration/navigation_test.rb
407
427
  - test/lib/generators/new_drg_form_generator_test.rb
408
428
  homepage: http://www.drgcms.org
409
429
  licenses:
410
430
  - MIT
411
431
  metadata: {}
412
- post_install_message:
432
+ post_install_message:
413
433
  rdoc_options: []
414
434
  require_paths:
415
435
  - lib
@@ -424,41 +444,40 @@ required_rubygems_version: !ruby/object:Gem::Requirement
424
444
  - !ruby/object:Gem::Version
425
445
  version: '0'
426
446
  requirements: []
427
- rubygems_version: 3.0.3
428
- signing_key:
447
+ rubygems_version: 3.1.2
448
+ signing_key:
429
449
  specification_version: 4
430
450
  summary: 'DRG: Rapid web application development tool and CMS for Ruby, Rails and
431
451
  MongoDB'
432
452
  test_files:
433
- - test/lib/generators/new_drg_form_generator_test.rb
434
453
  - test/drg_cms_test.rb
435
454
  - test/integration/navigation_test.rb
436
- - test/fixtures/drg_cms_test_data.rb
455
+ - test/lib/generators/new_drg_form_generator_test.rb
456
+ - test/dummy/script/rails
437
457
  - test/dummy/README.rdoc
438
- - test/dummy/config/locales/en.yml
439
- - test/dummy/config/initializers/secret_token.rb
440
- - test/dummy/config/initializers/backtrace_silencers.rb
441
- - test/dummy/config/initializers/inflections.rb
442
- - test/dummy/config/initializers/session_store.rb
443
- - test/dummy/config/initializers/mime_types.rb
444
- - test/dummy/config/initializers/wrap_parameters.rb
458
+ - test/dummy/app/views/layouts/application.html.erb
459
+ - test/dummy/app/helpers/application_helper.rb
460
+ - test/dummy/app/controllers/application_controller.rb
461
+ - test/dummy/app/assets/stylesheets/application.css
462
+ - test/dummy/app/assets/javascripts/application.js
463
+ - test/dummy/public/422.html
464
+ - test/dummy/public/404.html
465
+ - test/dummy/public/favicon.ico
466
+ - test/dummy/public/500.html
467
+ - test/dummy/Rakefile
468
+ - test/dummy/config.ru
445
469
  - test/dummy/config/environment.rb
470
+ - test/dummy/config/boot.rb
471
+ - test/dummy/config/routes.rb
446
472
  - test/dummy/config/application.rb
447
473
  - test/dummy/config/database.yml
448
- - test/dummy/config/routes.rb
449
- - test/dummy/config/boot.rb
450
- - test/dummy/config/environments/development.rb
451
474
  - test/dummy/config/environments/test.rb
452
475
  - test/dummy/config/environments/production.rb
453
- - test/dummy/public/favicon.ico
454
- - test/dummy/public/404.html
455
- - test/dummy/public/422.html
456
- - test/dummy/public/500.html
457
- - test/dummy/Rakefile
458
- - test/dummy/app/controllers/application_controller.rb
459
- - test/dummy/app/views/layouts/application.html.erb
460
- - test/dummy/app/helpers/application_helper.rb
461
- - test/dummy/app/assets/javascripts/application.js
462
- - test/dummy/app/assets/stylesheets/application.css
463
- - test/dummy/config.ru
464
- - test/dummy/script/rails
476
+ - test/dummy/config/environments/development.rb
477
+ - test/dummy/config/locales/en.yml
478
+ - test/dummy/config/initializers/secret_token.rb
479
+ - test/dummy/config/initializers/inflections.rb
480
+ - test/dummy/config/initializers/mime_types.rb
481
+ - test/dummy/config/initializers/backtrace_silencers.rb
482
+ - test/dummy/config/initializers/wrap_parameters.rb
483
+ - test/dummy/config/initializers/session_store.rb