drg_cms 0.5.52.12 → 0.6.0.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (125) hide show
  1. checksums.yaml +5 -5
  2. data/app/assets/javascripts/drg_cms/drg_cms.js +395 -120
  3. data/app/assets/javascripts/drg_cms/jstree.min.js +6 -6
  4. data/app/assets/javascripts/drg_cms_application.js +1 -1
  5. data/app/assets/stylesheets/drg_cms/drg_cms.css +476 -215
  6. data/app/assets/stylesheets/drg_cms/jstree.css +6 -12
  7. data/app/assets/stylesheets/drg_cms/select-multiple.css +19 -13
  8. data/app/assets/stylesheets/drg_cms_cms.css +1 -1
  9. data/app/controllers/cmsedit_controller.rb +474 -233
  10. data/app/controllers/dc_application_controller.rb +264 -41
  11. data/app/controllers/dc_common_controller.rb +75 -63
  12. data/app/{controllers → controls}/browse_models_control.rb +0 -0
  13. data/app/{controllers → controls}/dc_page_control.rb +24 -8
  14. data/app/controls/dc_poll_result_control.rb +88 -0
  15. data/app/controls/dc_report.rb +227 -0
  16. data/app/{controllers → controls}/design_element_settings_control.rb +0 -0
  17. data/app/forms/all_options.yml +70 -12
  18. data/app/forms/cms_menu.yml +26 -17
  19. data/app/forms/dc_ad.yml +11 -22
  20. data/app/forms/dc_big_table.yml +1 -0
  21. data/app/forms/dc_big_table_value.yml +1 -0
  22. data/app/forms/dc_design.yml +19 -16
  23. data/app/forms/dc_filter.yml +3 -6
  24. data/app/forms/dc_gallery.yml +53 -0
  25. data/app/forms/dc_json_ld.yml +59 -0
  26. data/app/forms/dc_key_value.yml +32 -0
  27. data/app/forms/dc_link.yml +16 -10
  28. data/app/forms/dc_menu_item.yml +6 -0
  29. data/app/forms/dc_page.yml +2 -7
  30. data/app/forms/dc_poll.yml +16 -9
  31. data/app/forms/dc_poll_item.yml +2 -1
  32. data/app/forms/dc_poll_result.yml +83 -0
  33. data/app/forms/dc_poll_result_export.yml +35 -0
  34. data/app/forms/dc_removed_url.yml +42 -0
  35. data/app/forms/dc_seo.yml +33 -0
  36. data/app/forms/dc_site.yml +2 -6
  37. data/app/forms/json_ld_schema.yml +168 -0
  38. data/app/helpers/cms_common_helper.rb +311 -0
  39. data/app/helpers/cms_edit_helper.rb +498 -0
  40. data/app/helpers/cms_helper.rb +230 -0
  41. data/app/helpers/cms_index_helper.rb +564 -0
  42. data/app/helpers/dc_application_helper.rb +195 -268
  43. data/app/models/{dc_dummy.rb → __dc_dummy.rb} +0 -0
  44. data/app/models/concerns/dc_page_concern.rb +31 -6
  45. data/app/models/concerns/dc_seo_concern.rb +66 -0
  46. data/app/models/concerns/dc_site_concern.rb +12 -1
  47. data/app/models/concerns/dc_user_concern.rb +5 -3
  48. data/app/models/dc_design.rb +2 -0
  49. data/app/models/dc_filter.rb +37 -20
  50. data/app/models/dc_gallery.rb +64 -0
  51. data/app/models/dc_json_ld.rb +152 -0
  52. data/app/models/dc_key_value.rb +48 -0
  53. data/app/models/dc_link.rb +1 -0
  54. data/app/models/dc_memory.rb +26 -4
  55. data/app/models/dc_page.rb +1 -2
  56. data/app/models/dc_permission.rb +30 -0
  57. data/app/models/dc_poll.rb +39 -19
  58. data/app/models/dc_poll_result.rb +46 -0
  59. data/app/models/dc_removed_url.rb +54 -0
  60. data/app/models/dc_temp.rb +140 -0
  61. data/app/models/drgcms_form_fields.rb +6 -1642
  62. data/app/models/drgcms_form_fields/action.rb +61 -0
  63. data/app/models/drgcms_form_fields/check_box.rb +72 -0
  64. data/app/models/drgcms_form_fields/comment.rb +53 -0
  65. data/app/models/drgcms_form_fields/date_picker.rb +104 -0
  66. data/app/models/drgcms_form_fields/date_select.rb +68 -0
  67. data/app/models/drgcms_form_fields/datetime_picker.rb +89 -0
  68. data/app/models/drgcms_form_fields/datetime_select.rb +73 -0
  69. data/app/models/drgcms_form_fields/drgcms_field.rb +287 -0
  70. data/app/models/drgcms_form_fields/embedded.rb +97 -0
  71. data/app/models/drgcms_form_fields/file_field.rb +52 -0
  72. data/app/models/drgcms_form_fields/file_select.rb +70 -0
  73. data/app/models/drgcms_form_fields/hash_field.rb +86 -0
  74. data/app/models/drgcms_form_fields/hidden_field.rb +52 -0
  75. data/app/models/drgcms_form_fields/html_field.rb +70 -0
  76. data/app/models/drgcms_form_fields/journal_diff.rb +60 -0
  77. data/app/models/drgcms_form_fields/link_to.rb +69 -0
  78. data/app/models/drgcms_form_fields/method.rb +65 -0
  79. data/app/models/drgcms_form_fields/multitext_autocomplete.rb +204 -0
  80. data/app/models/drgcms_form_fields/number_field.rb +92 -0
  81. data/app/models/drgcms_form_fields/password_field.rb +62 -0
  82. data/app/models/drgcms_form_fields/radio.rb +96 -0
  83. data/app/models/drgcms_form_fields/readonly.rb +79 -0
  84. data/app/models/drgcms_form_fields/select.rb +226 -0
  85. data/app/models/drgcms_form_fields/submit_tag.rb +58 -0
  86. data/app/models/drgcms_form_fields/text_area.rb +68 -0
  87. data/app/models/drgcms_form_fields/text_autocomplete.rb +155 -0
  88. data/app/models/drgcms_form_fields/text_field.rb +56 -0
  89. data/app/models/drgcms_form_fields/text_with_select.rb +95 -0
  90. data/app/models/drgcms_form_fields/tree_select.rb +169 -0
  91. data/app/{helpers → renderers}/dc_ad_renderer.rb +0 -0
  92. data/app/{helpers → renderers}/dc_big_menu_renderer.rb +1 -0
  93. data/app/{helpers → renderers}/dc_captcha_renderer.rb +0 -0
  94. data/app/{helpers → renderers}/dc_common_renderer.rb +0 -0
  95. data/app/renderers/dc_gallery_renderer.rb +95 -0
  96. data/app/{helpers → renderers}/dc_menu_renderer.rb +11 -4
  97. data/app/{helpers → renderers}/dc_page_renderer.rb +21 -3
  98. data/app/{helpers → renderers}/dc_part_renderer.rb +5 -4
  99. data/app/{helpers → renderers}/dc_piece_renderer.rb +1 -1
  100. data/app/{helpers → renderers}/dc_poll_renderer.rb +86 -51
  101. data/app/{helpers → renderers}/dc_renderer.rb +1 -0
  102. data/app/{helpers → renderers}/dc_simple_menu_renderer.rb +1 -0
  103. data/app/views/cmsedit/{remove_edit_stuff.js.erb → __remove_edit_stuff.js.erb} +0 -0
  104. data/app/views/cmsedit/{show.html.erb → __show.html.erb} +0 -0
  105. data/app/views/cmsedit/_edit_stuff.html.erb +4 -25
  106. data/app/views/cmsedit/_form.html.erb +4 -3
  107. data/app/views/cmsedit/_result.html.erb +2 -3
  108. data/app/views/cmsedit/edit.html.erb +2 -1
  109. data/app/views/cmsedit/index.html.erb +6 -1
  110. data/app/views/cmsedit/new.html.erb +1 -1
  111. data/config/locales/drgcms_en.yml +15 -3
  112. data/config/locales/drgcms_sl.yml +18 -6
  113. data/config/locales/models_en.yml +103 -19
  114. data/config/locales/models_sl.yml +102 -17
  115. data/drg_cms.gemspec +3 -3
  116. data/lib/drg_cms.rb +6 -2
  117. data/lib/drg_cms/version.rb +2 -2
  118. data/lib/generators/new_drg_form/new_drg_form_generator.rb +9 -2
  119. data/lib/tasks/database.rake +6 -56
  120. data/lib/tasks/dc_cleanup.rake +1 -1
  121. metadata +106 -61
  122. data/app/assets/stylesheets/drg_cms/__jquery-ui.css +0 -339
  123. data/app/helpers/application_helper.rb +0 -2
  124. data/app/helpers/cmsedit_helper.rb +0 -844
  125. 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,7 +82,7 @@ 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
@@ -126,18 +127,21 @@ sl:
126
127
  dc_poll:
127
128
  tabletitle: Ankete
128
129
  choices4_operation: 'Poženi program:poll_submit,Povezava:link'
129
- choices4_display: 'Od zgoraj-navzdol:td,Od leve na desno:lr'
130
+ choices4_display: 'Zgoraj:td,Levo:lr,Znotraj:in'
130
131
  tab1: Podatki
131
- tab2: Forma
132
- tab3: Vrstice
132
+ tab2: Skriptna koda
133
+ tab3: Vsebina
134
+ tab4: Vsebina - napredno
133
135
 
134
136
  name: Ime
135
137
  title: Naslov
136
138
  sub_text: Kratek opis
137
139
  operation: Operacija
138
140
  parameters: Parametri
139
- display: Prikaz
141
+ display: Napis
140
142
  css: CSS
143
+ js: Skriptna koda
144
+ pre_display: Pred prikazom zaženi
141
145
  valid_from: Velja od
142
146
  valid_to: Velja do
143
147
  dc_poll_items: Vrstice
@@ -147,18 +151,26 @@ sl:
147
151
 
148
152
  dc_poll_item:
149
153
  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
154
+ 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
155
  choices4_separator: Presledek:&nbsp;,Prazna vrstica:<br />,Ravnilo:<hr>
152
156
 
153
157
  name: Naziv
154
158
  text: Napis
155
159
  type: Vrsta
156
- Size: Velikost
160
+ size: Velikost
157
161
  mandatory: Obvezen
158
162
  separator: Ločilo
159
163
  options: Opcije
160
164
  order: Zaporedje
161
- active: Active
165
+ active: Aktivna
166
+
167
+ dc_poll_result:
168
+ tabletitle: Rezultati anket
169
+
170
+ dc_poll_id: Anketa
171
+ created_at: Nastalo
172
+ data: Podatki
173
+ confirmed: Potrjen
162
174
 
163
175
  dc_policy:
164
176
  tabletitle: Politike za dostop
@@ -285,10 +297,8 @@ sl:
285
297
 
286
298
  subject: Zadeva
287
299
  subject_link: Povezava
288
- title: Naslov za brskalnik
289
300
  sub_subject: Povzetek
290
301
  picture: Slika
291
- gallery: Id galerije
292
302
  alt_link: Alt povezava
293
303
  css: CSS
294
304
  script: Skript
@@ -323,6 +333,13 @@ sl:
323
333
  if_class: CSS class
324
334
  _update_menu: Spremeni meni
325
335
 
336
+ dc_seo:
337
+ seo: SEO
338
+ title: Naslov za brskalnik
339
+ meta_description: Meta opis
340
+ canonical_link: Canonical link
341
+ dc_json_lds: Strukturni podatki
342
+
326
343
  dc_part:
327
344
  tabletitle: Elementi strani
328
345
  1base: Osnovno
@@ -397,6 +414,7 @@ sl:
397
414
 
398
415
  name: Ime povezave
399
416
  params: Parametri
417
+ redirect: prevezava
400
418
  page_id: Stran za prikaz
401
419
  dc_site_id: Spletišče
402
420
  active: Aktiven
@@ -515,11 +533,44 @@ sl:
515
533
  filter: Vsebina filtra
516
534
  public: Je javen
517
535
  sort: Privzeto razvrsti
536
+
518
537
 
519
538
  dc_memory:
520
539
  fields: Splošno
521
540
  ztab: Napredno
522
541
  dc_element: Ime elementa
542
+
543
+ dc_removed_url:
544
+ tabletitle: Nektivni URL naslovi
545
+
546
+ url: URL naslov
547
+ description: Razlog umika
548
+ dc_site_id: Spletišče
549
+ updated_at: Spremenjeno
550
+
551
+ dc_gallery:
552
+ tabletitle: Tabela slikovne galerije
553
+
554
+ title: Naslov
555
+ description: Opis
556
+ picture: Velika slika
557
+ thumbnail: Mala slika
558
+ doc_id: Dokument
559
+ order: Zaporedje
560
+ active: Aktiven
561
+ created_at: Ustvarjeno
562
+
563
+ dc_json_ld:
564
+ tabletitle: Struktirirani podatki za spletno stran
565
+ choices4_type: Organizacija:Organization,Kontakt:ContactPoint
566
+
567
+ name: Ime
568
+ type: Tip
569
+ data: Podatki
570
+ created_at: Narejeno
571
+ updated_at: Spremenjeno
572
+ active: Aktiven
573
+ dc_json_lds: Podelement strukture
523
574
 
524
575
  # help pomoč na obrazcih ####################################################
525
576
 
@@ -559,14 +610,14 @@ sl:
559
610
  body: Vsebina dizajna, ki se bo izvedla kot vsaka Rails view datoteka
560
611
  css: CSS za dizajn
561
612
  author: Ime avtorja
613
+ params: Parametri povezani z dizajnom strani
562
614
  updated_by: Zadnji spreminjal
563
615
  active: Ali je dizajn aktiven
564
616
  dc_parts: Elementi, sestavni deli dizajna
565
617
  rails_view: Ime Rails view datoteke, ki bo uporabljena za izris strani
566
618
  site_id: Izberite spletišče, če dizajn pripada samo enemu spletišču
567
619
  control: Izvorna datoteka z akcijami za izris dizajna
568
- control_method: Kontrolna metoda (akcija), ki se bo klicala v izvorni datoteki
569
-
620
+ control_method: Kontrolna metoda (akcija), ki se bo klicala v izvorni datoteki
570
621
 
571
622
  dc_user:
572
623
  username: Uporabniško ime
@@ -595,7 +646,6 @@ sl:
595
646
  password_confirmation: Še enkrat vpišite geslo
596
647
  signature: Podpis, ki se doda k vsakemu sporočilu tega uporabnika
597
648
 
598
-
599
649
  dc_user_role:
600
650
  dc_policy_role_id: Uporabnikova vloga
601
651
  has_cms_menu: Vloga dovoljuje prikaz opcije za CMS menu
@@ -610,8 +660,10 @@ sl:
610
660
  sub_text: Kratek opis ankete
611
661
  operation: Operacija, ki se izvede ob kliku na izbiro
612
662
  parameters: Dodatni parametri za operacijo
613
- display: Kako so posamezni podatki postavljeni na obrazcu
663
+ display: Postavitev napisa glede na vpisno polje
614
664
  css: CSS samo za to anketo
665
+ js: Javascript koda samo za to anketo
666
+ pre_display: Metoda. ki se zažene pred prikazom obrazca. Običajno za privzeto polnjenje podatkov obrazca
615
667
  valid_from: Anketa je veljavna od
616
668
  valid_to: Anketa je veljavna do
617
669
  dc_poll_items: Posamezni podatki ankete
@@ -628,6 +680,12 @@ sl:
628
680
  options: Opcije, odvisne od vrste vpisnega polja
629
681
  order: Zaporedje prikaza na anketi
630
682
  active: Vrstica je aktivna
683
+
684
+ dc_poll_result:
685
+ dc_poll_id: Naziv ankete
686
+ created_at: Čas nastanka zapisa
687
+ data: Podatki v YAML formatu
688
+ confirmed: Podatki potrjeni. Npr. Uporabnik mora klikniti povezavo v e-pošti.
631
689
 
632
690
  dc_policy:
633
691
  name: Naziv politike
@@ -719,10 +777,9 @@ sl:
719
777
  subject: Zadeva (kratek naslov) sestavka
720
778
  subject_link: Povezava (link) do sestavka
721
779
  sub_subject: Povzetek, kratek opis vsebine
722
- title: Naslov, ki se izpiše v gornji vrstici brskalnika. Optimiziraj za SEO.
723
780
  alt_link: Alternativna povezava do sestavka
724
781
  picture: Slika v povezavi s stranjo
725
- gallery: Id sestavnih elementov, ki sestavljajo slikovno galerijo te strani.
782
+ gallery: Dokument vsebuje slikovno galerijo.
726
783
  css: CSS
727
784
  script: Skript
728
785
  params: Dodatni parametri za prikaz strani.
@@ -742,7 +799,6 @@ sl:
742
799
  dc_design_id: Dizajn, mu pripada sestavek
743
800
  dc_site_id: Spletišče. ki mu pripada stran
744
801
  kats: Kategorije, ki jim pripada članek
745
- gallery: Posamezne slike so definirane v elementih strani. Podatek določa ime elementov, ki pripadajo galeriji.
746
802
  picture: Slika uporabljena za prikaz sestavka
747
803
  dc_poll_id: Anketa, če sestavek vsebuje tudi anketo
748
804
  if_url: URL naslov od koder bo naložena vsebina IFrame-a
@@ -754,6 +810,12 @@ sl:
754
810
  if_id: CSS id IFrame objekta
755
811
  if_class: CSS class IFrame objekta
756
812
  _update_menu: Popravi tudi povezavo do dokumenta v menuju
813
+
814
+ dc_seo:
815
+ title: Naslov, ki se izpiše v gornji vrstici brskalnika. Optimiziraj za SEO.
816
+ meta_description: SEO optimiziran opis strani
817
+ canonical_link: Canonical link, kadar je stran uporabljena z različnimi parametri
818
+ dc_json_lds: Schema strukturni podatki, ki dodatno opisujejo spletno stran
757
819
 
758
820
  dc_part:
759
821
  name: Naziv elementa
@@ -812,6 +874,7 @@ sl:
812
874
  dc_link:
813
875
  name: Ime povezave ali bližnjice npr. domov
814
876
  params: Dodatni parametri za program
877
+ redirect: Prevezava na drugo povezavo
815
878
  dc_site_id: Velja za spletno stran
816
879
  page_id: Stran na katero se bo preusmerila povezava
817
880
  active: Povezava je aktivna
@@ -897,3 +960,25 @@ sl:
897
960
  filter: Vsebina filtra
898
961
  public: Filter je na voljo vsem uporabnikom
899
962
  sort: Privzeto sortiranje ob izbiri filtra
963
+
964
+ dc_removed_url:
965
+ url: URL naslov, ki je bil umaknjen iz spletišča
966
+ description: OPis razloga umika
967
+ dc_site_id: Spletišče, ki mu URL pripada
968
+
969
+ dc_gallery:
970
+ title: Naslov slike
971
+ description: Kratek opis slike
972
+ picture: Datoteka uporabljena za veliko sliko
973
+ thumbnail: Datozeka uporabljena za malo sliko
974
+ doc_id: Dokument povezan z galerijo
975
+ order: Vrstni red slike v galeriji
976
+ active: Dokument je aktiven
977
+
978
+ dc_json_ld:
979
+ name: Naziv elementa podatkovne strukture
980
+ type: Tip podatkovne strukture
981
+ data: Podatki v YAML formatu
982
+ active: Podatki so aktivni
983
+ add_schema: Dodaj strukturo
984
+ add_error: Element %{schema} že obstaja!
@@ -18,15 +18,15 @@ Gem::Specification.new do |s|
18
18
  s.files = Dir["{app,config,db,lib}/**/*"] + ["MIT-LICENSE", "Rakefile", "README.md", "History.log", "drg_cms.gemspec"]
19
19
  s.test_files = Dir["test/**/*"]
20
20
 
21
- s.required_ruby_version = '>= 2.4'
21
+ s.required_ruby_version = '>= 2.5'
22
22
 
23
- s.add_dependency 'rails', '>= 5'
23
+ s.add_dependency 'rails', '~> 6'
24
24
  s.add_dependency 'jquery-rails'
25
25
  s.add_dependency 'jquery-ui-rails'
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'#, '~> 5'
29
+ s.add_dependency 'mongoid', '~> 7'
30
30
 
31
31
  s.add_dependency 'kaminari-mongoid'
32
32
  s.add_dependency 'kaminari-actionview'
@@ -129,19 +129,23 @@ def self.routes
129
129
  # match '/dc_common/:action' => 'dc_common#:action', via: [:get, :put, :post]
130
130
  controller :dc_common do
131
131
  post 'dc_common/autocomplete' => :autocomplete
132
- get 'dc_common/ad_click' => :ad_click
132
+ post 'dc_common/ad_click' => :ad_click
133
133
  get 'dc_common/toggle_edit_mode' => :toggle_edit_mode
134
134
  match 'dc_common/process_login' => :process_login, via: [:put, :post]
135
135
  get 'dc_common/logout' => :logout
136
136
  get 'dc_common/login' => :login
137
137
  get 'dc_common/copy_clipboard' => :copy_clipboard
138
- match 'dc_common/paste_clipboard' => :paste_clipboard, via: [:get, :post]
138
+ match 'dc_common/paste_clipboard' => :paste_clipboard, via: [:get, :post]
139
139
  put 'dc_common/restore_from_journal' => :restore_from_journal
140
+ get 'dc_common/add_json_ld_schema' => :add_json_ld_schema
140
141
  end
141
142
  match 'elfinder' => 'dc_elfinder#connector', via: [:get, :post]
143
+ match 'cmsedit/run' => 'cmsedit#run', via: [:get, :put, :post]
142
144
  resources :cmsedit
143
145
  resources :cms, controller: :cmsedit
144
146
  end
145
147
  end
146
148
 
147
149
  end
150
+
151
+ DrgCms.add_patches_path(File.dirname(__FILE__) + '../app/models/drgcms_form_fields/patches')
@@ -21,7 +21,7 @@
21
21
  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22
22
  #++
23
23
 
24
+ # drg_cms gem version
24
25
  module DrgCms #:nodoc:
25
- # drg_cms gem version
26
- VERSION = "0.5.52.12"
26
+ VERSION = '0.6.0.8'.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
@@ -53,7 +53,7 @@ namespace :drg_cms do
53
53
  # ActionDispatch::Session::MongoidStore::Session.where('$where' => 'this.created_at == this.updated_at').limit(1000).each do |doc|
54
54
  n = 0
55
55
  ActionDispatch::Session::MongoidStore::Session.batch_size(1000).all.each do |doc|
56
- if (doc.created_at == doc.updated_at)
56
+ if (doc.created_at + 2 > doc.updated_at or doc.updated_at < 1.year.ago)
57
57
  doc.delete
58
58
  p "Deleted #{n}" if (n+=1)%1000 == 0
59
59
  end
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: drg_cms
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.52.12
4
+ version: 0.6.0.8
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: 2018-07-29 00:00:00.000000000 Z
11
+ date: 2020-12-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '5'
19
+ version: '6'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '5'
26
+ version: '6'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: jquery-rails
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -84,16 +84,16 @@ dependencies:
84
84
  name: mongoid
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ">="
87
+ - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '0'
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: '0'
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,15 @@ 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_page_control.rb
214
+ - app/controls/dc_poll_result_control.rb
215
+ - app/controls/dc_report.rb
216
+ - app/controls/design_element_settings_control.rb
216
217
  - app/forms/all_options.yml
217
218
  - app/forms/cms_forms.yml
218
219
  - app/forms/cms_menu.yml
@@ -226,8 +227,11 @@ files:
226
227
  - app/forms/dc_design.yml
227
228
  - app/forms/dc_filter.yml
228
229
  - app/forms/dc_folder_permission.yml
230
+ - app/forms/dc_gallery.yml
229
231
  - app/forms/dc_ident.yml
230
232
  - app/forms/dc_journal.yml
233
+ - app/forms/dc_json_ld.yml
234
+ - app/forms/dc_key_value.yml
231
235
  - app/forms/dc_key_value_store.yml
232
236
  - app/forms/dc_link.yml
233
237
  - app/forms/dc_menu.yml
@@ -242,29 +246,27 @@ files:
242
246
  - app/forms/dc_policy_rule_nocms.yml
243
247
  - app/forms/dc_poll.yml
244
248
  - app/forms/dc_poll_item.yml
249
+ - app/forms/dc_poll_result.yml
250
+ - app/forms/dc_poll_result_export.yml
251
+ - app/forms/dc_removed_url.yml
252
+ - app/forms/dc_seo.yml
245
253
  - app/forms/dc_simple_menu.yml
246
254
  - app/forms/dc_simple_menu_item.yml
247
255
  - app/forms/dc_site.yml
248
256
  - app/forms/dc_user.yml
249
257
  - app/forms/dc_user_role.yml
250
258
  - app/forms/drgcms_cms.yml
251
- - app/helpers/application_helper.rb
252
- - app/helpers/cmsedit_helper.rb
253
- - app/helpers/dc_ad_renderer.rb
259
+ - app/forms/json_ld_schema.yml
260
+ - app/helpers/cms_common_helper.rb
261
+ - app/helpers/cms_edit_helper.rb
262
+ - app/helpers/cms_helper.rb
263
+ - app/helpers/cms_index_helper.rb
254
264
  - app/helpers/dc_application_helper.rb
255
- - app/helpers/dc_big_menu_renderer.rb
256
- - app/helpers/dc_captcha_renderer.rb
257
- - app/helpers/dc_common_renderer.rb
258
- - app/helpers/dc_menu_renderer.rb
259
- - app/helpers/dc_page_renderer.rb
260
- - app/helpers/dc_part_renderer.rb
261
- - app/helpers/dc_piece_renderer.rb
262
- - app/helpers/dc_poll_renderer.rb
263
- - app/helpers/dc_renderer.rb
264
- - app/helpers/dc_simple_menu_renderer.rb
265
+ - app/models/__dc_dummy.rb
265
266
  - app/models/concerns/dc_page_concern.rb
266
267
  - app/models/concerns/dc_piece_concern.rb
267
268
  - app/models/concerns/dc_policy_rule_concern.rb
269
+ - app/models/concerns/dc_seo_concern.rb
268
270
  - app/models/concerns/dc_site_concern.rb
269
271
  - app/models/concerns/dc_user_concern.rb
270
272
  - app/models/dc_ad.rb
@@ -275,12 +277,14 @@ files:
275
277
  - app/models/dc_big_table_value.rb
276
278
  - app/models/dc_category.rb
277
279
  - app/models/dc_design.rb
278
- - app/models/dc_dummy.rb
279
280
  - app/models/dc_filter.rb
280
281
  - app/models/dc_folder_permission.rb
282
+ - app/models/dc_gallery.rb
281
283
  - app/models/dc_ident.rb
282
284
  - app/models/dc_internals.rb
283
285
  - app/models/dc_journal.rb
286
+ - app/models/dc_json_ld.rb
287
+ - app/models/dc_key_value.rb
284
288
  - app/models/dc_key_value_store.rb
285
289
  - app/models/dc_link.rb
286
290
  - app/models/dc_memory.rb
@@ -295,14 +299,60 @@ files:
295
299
  - app/models/dc_policy_rule.rb
296
300
  - app/models/dc_poll.rb
297
301
  - app/models/dc_poll_item.rb
302
+ - app/models/dc_poll_result.rb
303
+ - app/models/dc_removed_url.rb
298
304
  - app/models/dc_simple_menu.rb
299
305
  - app/models/dc_simple_menu_item.rb
300
306
  - app/models/dc_site.rb
301
307
  - app/models/dc_stat.rb
308
+ - app/models/dc_temp.rb
302
309
  - app/models/dc_user.rb
303
310
  - app/models/dc_user_role.rb
304
311
  - app/models/dc_visit.rb
305
312
  - app/models/drgcms_form_fields.rb
313
+ - app/models/drgcms_form_fields/action.rb
314
+ - app/models/drgcms_form_fields/check_box.rb
315
+ - app/models/drgcms_form_fields/comment.rb
316
+ - app/models/drgcms_form_fields/date_picker.rb
317
+ - app/models/drgcms_form_fields/date_select.rb
318
+ - app/models/drgcms_form_fields/datetime_picker.rb
319
+ - app/models/drgcms_form_fields/datetime_select.rb
320
+ - app/models/drgcms_form_fields/drgcms_field.rb
321
+ - app/models/drgcms_form_fields/embedded.rb
322
+ - app/models/drgcms_form_fields/file_field.rb
323
+ - app/models/drgcms_form_fields/file_select.rb
324
+ - app/models/drgcms_form_fields/hash_field.rb
325
+ - app/models/drgcms_form_fields/hidden_field.rb
326
+ - app/models/drgcms_form_fields/html_field.rb
327
+ - app/models/drgcms_form_fields/journal_diff.rb
328
+ - app/models/drgcms_form_fields/link_to.rb
329
+ - app/models/drgcms_form_fields/method.rb
330
+ - app/models/drgcms_form_fields/multitext_autocomplete.rb
331
+ - app/models/drgcms_form_fields/number_field.rb
332
+ - app/models/drgcms_form_fields/password_field.rb
333
+ - app/models/drgcms_form_fields/radio.rb
334
+ - app/models/drgcms_form_fields/readonly.rb
335
+ - app/models/drgcms_form_fields/select.rb
336
+ - app/models/drgcms_form_fields/submit_tag.rb
337
+ - app/models/drgcms_form_fields/text_area.rb
338
+ - app/models/drgcms_form_fields/text_autocomplete.rb
339
+ - app/models/drgcms_form_fields/text_field.rb
340
+ - app/models/drgcms_form_fields/text_with_select.rb
341
+ - app/models/drgcms_form_fields/tree_select.rb
342
+ - app/renderers/dc_ad_renderer.rb
343
+ - app/renderers/dc_big_menu_renderer.rb
344
+ - app/renderers/dc_captcha_renderer.rb
345
+ - app/renderers/dc_common_renderer.rb
346
+ - app/renderers/dc_gallery_renderer.rb
347
+ - app/renderers/dc_menu_renderer.rb
348
+ - app/renderers/dc_page_renderer.rb
349
+ - app/renderers/dc_part_renderer.rb
350
+ - app/renderers/dc_piece_renderer.rb
351
+ - app/renderers/dc_poll_renderer.rb
352
+ - app/renderers/dc_renderer.rb
353
+ - app/renderers/dc_simple_menu_renderer.rb
354
+ - app/views/cmsedit/__remove_edit_stuff.js.erb
355
+ - app/views/cmsedit/__show.html.erb
306
356
  - app/views/cmsedit/_edit_stuff.html.erb
307
357
  - app/views/cmsedit/_form.html.erb
308
358
  - app/views/cmsedit/_result.html.erb
@@ -311,8 +361,6 @@ files:
311
361
  - app/views/cmsedit/index.html.erb
312
362
  - app/views/cmsedit/login.html.erb
313
363
  - app/views/cmsedit/new.html.erb
314
- - app/views/cmsedit/remove_edit_stuff.js.erb
315
- - app/views/cmsedit/show.html.erb
316
364
  - app/views/dc_common/_iframe_edit.html.erb
317
365
  - app/views/dc_common/paste_clipboard.html.erb
318
366
  - app/views/layouts/__cmsedit.html.erb
@@ -373,14 +421,13 @@ files:
373
421
  - test/dummy/public/500.html
374
422
  - test/dummy/public/favicon.ico
375
423
  - test/dummy/script/rails
376
- - test/fixtures/drg_cms_test_data.rb
377
424
  - test/integration/navigation_test.rb
378
425
  - test/lib/generators/new_drg_form_generator_test.rb
379
426
  homepage: http://www.drgcms.org
380
427
  licenses:
381
428
  - MIT
382
429
  metadata: {}
383
- post_install_message:
430
+ post_install_message:
384
431
  rdoc_options: []
385
432
  require_paths:
386
433
  - lib
@@ -388,49 +435,47 @@ required_ruby_version: !ruby/object:Gem::Requirement
388
435
  requirements:
389
436
  - - ">="
390
437
  - !ruby/object:Gem::Version
391
- version: '2.4'
438
+ version: '2.5'
392
439
  required_rubygems_version: !ruby/object:Gem::Requirement
393
440
  requirements:
394
441
  - - ">="
395
442
  - !ruby/object:Gem::Version
396
443
  version: '0'
397
444
  requirements: []
398
- rubyforge_project:
399
- rubygems_version: 2.6.14.1
400
- signing_key:
445
+ rubygems_version: 3.1.2
446
+ signing_key:
401
447
  specification_version: 4
402
448
  summary: 'DRG: Rapid web application development tool and CMS for Ruby, Rails and
403
449
  MongoDB'
404
450
  test_files:
405
- - test/lib/generators/new_drg_form_generator_test.rb
406
451
  - test/drg_cms_test.rb
407
452
  - test/integration/navigation_test.rb
408
- - test/fixtures/drg_cms_test_data.rb
453
+ - test/lib/generators/new_drg_form_generator_test.rb
454
+ - test/dummy/script/rails
409
455
  - test/dummy/README.rdoc
410
- - test/dummy/config/locales/en.yml
411
- - test/dummy/config/initializers/secret_token.rb
412
- - test/dummy/config/initializers/backtrace_silencers.rb
413
- - test/dummy/config/initializers/inflections.rb
414
- - test/dummy/config/initializers/session_store.rb
415
- - test/dummy/config/initializers/mime_types.rb
416
- - test/dummy/config/initializers/wrap_parameters.rb
456
+ - test/dummy/app/views/layouts/application.html.erb
457
+ - test/dummy/app/helpers/application_helper.rb
458
+ - test/dummy/app/controllers/application_controller.rb
459
+ - test/dummy/app/assets/stylesheets/application.css
460
+ - test/dummy/app/assets/javascripts/application.js
461
+ - test/dummy/public/422.html
462
+ - test/dummy/public/404.html
463
+ - test/dummy/public/favicon.ico
464
+ - test/dummy/public/500.html
465
+ - test/dummy/Rakefile
466
+ - test/dummy/config.ru
417
467
  - test/dummy/config/environment.rb
468
+ - test/dummy/config/boot.rb
469
+ - test/dummy/config/routes.rb
418
470
  - test/dummy/config/application.rb
419
471
  - test/dummy/config/database.yml
420
- - test/dummy/config/routes.rb
421
- - test/dummy/config/boot.rb
422
- - test/dummy/config/environments/development.rb
423
472
  - test/dummy/config/environments/test.rb
424
473
  - test/dummy/config/environments/production.rb
425
- - test/dummy/public/favicon.ico
426
- - test/dummy/public/404.html
427
- - test/dummy/public/422.html
428
- - test/dummy/public/500.html
429
- - test/dummy/Rakefile
430
- - test/dummy/app/controllers/application_controller.rb
431
- - test/dummy/app/views/layouts/application.html.erb
432
- - test/dummy/app/helpers/application_helper.rb
433
- - test/dummy/app/assets/javascripts/application.js
434
- - test/dummy/app/assets/stylesheets/application.css
435
- - test/dummy/config.ru
436
- - test/dummy/script/rails
474
+ - test/dummy/config/environments/development.rb
475
+ - test/dummy/config/locales/en.yml
476
+ - test/dummy/config/initializers/secret_token.rb
477
+ - test/dummy/config/initializers/inflections.rb
478
+ - test/dummy/config/initializers/mime_types.rb
479
+ - test/dummy/config/initializers/backtrace_silencers.rb
480
+ - test/dummy/config/initializers/wrap_parameters.rb
481
+ - test/dummy/config/initializers/session_store.rb