drg_cms 0.6.0.1 → 0.6.1.1.1

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 (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