camaleon_cms 2.1.1 → 2.1.1.4

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of camaleon_cms might be problematic. Click here for more details.

Files changed (180) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +35 -1
  3. data/app/apps/plugins/attack/config/locales/translation.yml +20 -1
  4. data/app/apps/plugins/contact_form/config/locales/translation.yml +106 -1
  5. data/app/apps/plugins/contact_form/contact_form_helper.rb +44 -27
  6. data/app/apps/plugins/front_cache/config/locales/translation.yml +21 -1
  7. data/app/apps/plugins/front_cache/front_cache_helper.rb +1 -1
  8. data/app/apps/plugins/visibility_post/assets/js/form.js +1 -3
  9. data/app/apps/plugins/visibility_post/visibility_post_helper.rb +2 -4
  10. data/app/assets/images/camaleon_cms/language/de.png +0 -0
  11. data/app/assets/images/camaleon_cms/language/en.png +0 -0
  12. data/app/assets/images/camaleon_cms/language/es.png +0 -0
  13. data/app/assets/images/camaleon_cms/language/fr.png +0 -0
  14. data/app/assets/images/camaleon_cms/language/it.png +0 -0
  15. data/app/assets/images/camaleon_cms/language/nl.png +0 -0
  16. data/app/assets/images/camaleon_cms/language/pl.png +0 -0
  17. data/app/assets/images/camaleon_cms/language/pt.png +0 -0
  18. data/app/assets/images/camaleon_cms/language/pt_br.png +0 -0
  19. data/app/assets/images/camaleon_cms/language/ru.png +0 -0
  20. data/app/assets/images/camaleon_cms/language/zh.png +0 -0
  21. data/app/assets/javascripts/camaleon_cms/admin/_custom_fields.js +3 -11
  22. data/app/assets/javascripts/camaleon_cms/admin/_data.js +2 -6
  23. data/app/assets/javascripts/camaleon_cms/admin/_libraries.js +11 -229
  24. data/app/assets/javascripts/camaleon_cms/admin/_modal.js +11 -37
  25. data/app/assets/javascripts/camaleon_cms/admin/_post.js +27 -22
  26. data/app/assets/javascripts/camaleon_cms/admin/_translator.js +2 -1
  27. data/app/assets/javascripts/camaleon_cms/admin/admin-manifest.js +6 -2
  28. data/app/assets/javascripts/camaleon_cms/admin/bootstrap-datepicker.js +2557 -1689
  29. data/app/assets/javascripts/camaleon_cms/admin/jquery.validate.js +119 -1361
  30. data/app/assets/javascripts/camaleon_cms/admin/jquery_validate/nl.js +33 -0
  31. data/app/assets/javascripts/camaleon_cms/admin/momentjs/_moment.js +3606 -0
  32. data/app/assets/javascripts/camaleon_cms/admin/momentjs/ar.js +136 -0
  33. data/app/assets/javascripts/camaleon_cms/admin/momentjs/ca.js +79 -0
  34. data/app/assets/javascripts/camaleon_cms/admin/momentjs/de.js +76 -0
  35. data/app/assets/javascripts/camaleon_cms/admin/momentjs/es.js +79 -0
  36. data/app/assets/javascripts/camaleon_cms/admin/momentjs/fr.js +62 -0
  37. data/app/assets/javascripts/camaleon_cms/admin/momentjs/it.js +70 -0
  38. data/app/assets/javascripts/camaleon_cms/admin/momentjs/ja.js +65 -0
  39. data/app/assets/javascripts/camaleon_cms/admin/momentjs/nl.js +71 -0
  40. data/app/assets/javascripts/camaleon_cms/admin/momentjs/pl.js +105 -0
  41. data/app/assets/javascripts/camaleon_cms/admin/momentjs/pt.js +64 -0
  42. data/app/assets/javascripts/camaleon_cms/admin/momentjs/pt_br.js +60 -0
  43. data/app/assets/javascripts/camaleon_cms/admin/momentjs/ru.js +166 -0
  44. data/app/assets/javascripts/camaleon_cms/admin/momentjs/zh.js +127 -0
  45. data/app/assets/javascripts/camaleon_cms/admin/nav-menu.js +15 -25
  46. data/app/assets/javascripts/camaleon_cms/admin/tinymce/langs/nl.js +219 -0
  47. data/app/assets/javascripts/camaleon_cms/admin/uploader/_media_manager.js.coffee +82 -19
  48. data/app/assets/javascripts/camaleon_cms/admin/user_profile.js +8 -8
  49. data/app/assets/stylesheets/camaleon_cms/admin/_custom_admin.css.scss +19 -2
  50. data/app/assets/stylesheets/camaleon_cms/admin/admin-manifest.css +0 -4
  51. data/app/assets/stylesheets/camaleon_cms/admin/bootstrap-datepicker.css.scss +315 -414
  52. data/app/assets/stylesheets/camaleon_cms/admin/uploader/_uploadfile.css.scss +7 -3
  53. data/app/controllers/camaleon_cms/admin/appearances/nav_menus_controller.rb +9 -5
  54. data/app/controllers/camaleon_cms/admin/categories_controller.rb +5 -0
  55. data/app/controllers/camaleon_cms/admin/media_controller.rb +27 -10
  56. data/app/controllers/camaleon_cms/admin/posts_controller.rb +9 -19
  57. data/app/controllers/camaleon_cms/admin/sessions_controller.rb +3 -10
  58. data/app/controllers/camaleon_cms/admin/settings/custom_fields_controller.rb +0 -1
  59. data/app/controllers/camaleon_cms/admin/settings/sites_controller.rb +6 -1
  60. data/app/controllers/camaleon_cms/admin/users_controller.rb +1 -8
  61. data/app/controllers/camaleon_cms/admin_controller.rb +5 -4
  62. data/app/controllers/camaleon_cms/apps/plugins_front_controller.rb +0 -8
  63. data/app/controllers/camaleon_cms/camaleon_controller.rb +6 -1
  64. data/app/controllers/camaleon_cms/frontend_controller.rb +11 -8
  65. data/app/decorators/camaleon_cms/category_decorator.rb +2 -1
  66. data/app/decorators/camaleon_cms/post_decorator.rb +28 -1
  67. data/app/decorators/camaleon_cms/post_tag_decorator.rb +1 -0
  68. data/app/decorators/camaleon_cms/post_type_decorator.rb +17 -0
  69. data/app/decorators/camaleon_cms/site_decorator.rb +22 -7
  70. data/app/decorators/camaleon_cms/user_decorator.rb +1 -0
  71. data/app/helpers/camaleon_cms/admin/application_helper.rb +3 -2
  72. data/app/helpers/camaleon_cms/admin/custom_fields_helper.rb +13 -25
  73. data/app/helpers/camaleon_cms/admin/post_type_helper.rb +27 -2
  74. data/app/helpers/camaleon_cms/camaleon_helper.rb +0 -16
  75. data/app/helpers/camaleon_cms/captcha_helper.rb +9 -3
  76. data/app/helpers/camaleon_cms/email_helper.rb +27 -8
  77. data/app/helpers/camaleon_cms/frontend/nav_menu_helper.rb +21 -17
  78. data/app/helpers/camaleon_cms/frontend/seo_helper.rb +5 -3
  79. data/app/helpers/camaleon_cms/html_helper.rb +2 -2
  80. data/app/helpers/camaleon_cms/site_helper.rb +10 -14
  81. data/app/helpers/camaleon_cms/uploader_helper.rb +119 -31
  82. data/app/mailers/camaleon_cms/html_mailer.rb +26 -20
  83. data/app/models/camaleon_cms/custom_field.rb +1 -0
  84. data/app/models/camaleon_cms/custom_field_group.rb +2 -1
  85. data/app/models/camaleon_cms/nav_menu.rb +6 -7
  86. data/app/models/camaleon_cms/nav_menu_item.rb +2 -1
  87. data/app/models/camaleon_cms/post.rb +29 -2
  88. data/app/models/camaleon_cms/post_type.rb +20 -1
  89. data/app/models/camaleon_cms/site.rb +19 -19
  90. data/app/models/camaleon_cms/term_taxonomy.rb +1 -1
  91. data/app/models/concerns/camaleon_cms/custom_fields_read.rb +6 -4
  92. data/app/models/concerns/camaleon_cms/metas.rb +5 -4
  93. data/app/views/camaleon_cms/admin/appearances/nav_menus/_custom_fields.html.erb +4 -2
  94. data/app/views/camaleon_cms/admin/appearances/nav_menus/_external_menu.html.erb +1 -1
  95. data/app/views/camaleon_cms/admin/appearances/nav_menus/index.html.erb +3 -6
  96. data/app/views/camaleon_cms/admin/categories/index.html.erb +1 -0
  97. data/app/views/camaleon_cms/admin/media/_files_list.html.erb +3 -3
  98. data/app/views/camaleon_cms/admin/media/_render_file_item.html.erb +3 -2
  99. data/app/views/camaleon_cms/admin/media/index.html.erb +31 -4
  100. data/app/views/camaleon_cms/admin/posts/_sidebar.html.erb +10 -1
  101. data/app/views/camaleon_cms/admin/posts/form.html.erb +6 -2
  102. data/app/views/camaleon_cms/admin/posts/index.html.erb +4 -4
  103. data/app/views/camaleon_cms/admin/search.html.erb +5 -3
  104. data/app/views/camaleon_cms/admin/settings/_file_system_settings.html.erb +5 -5
  105. data/app/views/camaleon_cms/admin/settings/custom_fields/_get_items.html.erb +2 -1
  106. data/app/views/camaleon_cms/admin/settings/custom_fields/_render.html.erb +1 -1
  107. data/app/views/camaleon_cms/admin/settings/custom_fields/fields/_date.html.erb +3 -4
  108. data/app/views/camaleon_cms/admin/settings/custom_fields/fields/_image.html.erb +1 -1
  109. data/app/views/camaleon_cms/admin/settings/custom_fields/form.html.erb +2 -2
  110. data/app/views/camaleon_cms/admin/settings/post_types/_form.html.erb +11 -1
  111. data/app/views/camaleon_cms/admin/settings/post_types/index.html.erb +1 -0
  112. data/app/views/camaleon_cms/admin/users/form.html.erb +30 -55
  113. data/app/views/camaleon_cms/html_mailer/mailer.html.erb +1 -1
  114. data/app/views/camaleon_cms/html_mailer/password_reset.html.erb +3 -0
  115. data/app/views/layouts/camaleon_cms/admin.html.erb +4 -1
  116. data/app/views/layouts/camaleon_cms/admin/_ajax.html.erb +3 -1
  117. data/app/views/layouts/camaleon_cms/admin/_footer.html.erb +1 -1
  118. data/app/views/layouts/camaleon_cms/admin/_header.html.erb +1 -1
  119. data/config/initializers/assets.rb +4 -2
  120. data/config/initializers/model_alias.rb +11 -0
  121. data/config/locales/camaleon_cms/admin/en.yml +2 -0
  122. data/config/locales/camaleon_cms/admin/es.yml +2 -1
  123. data/config/locales/camaleon_cms/admin/it.yml +1 -0
  124. data/config/locales/camaleon_cms/admin/js.yml +42 -1
  125. data/config/locales/camaleon_cms/admin/nl.yml +659 -0
  126. data/config/locales/camaleon_cms/admin/pt_br.yml +1 -0
  127. data/config/locales/camaleon_cms/admin/ru.yml +659 -0
  128. data/config/locales/camaleon_cms/common.yml +127 -0
  129. data/config/locales/camaleon_cms/languages.yml +16 -0
  130. data/config/locales/camaleon_cms/routes.yml +8 -0
  131. data/config/locales/nl.yml +209 -0
  132. data/config/routes.rb +1 -1
  133. data/config/routes/admin.rb +5 -4
  134. data/config/routes/frontend.rb +16 -3
  135. data/config/system.json +2 -3
  136. data/lib/camaleon_cms/engine.rb +5 -1
  137. data/lib/camaleon_cms/version.rb +1 -1
  138. data/lib/ext/array.rb +5 -0
  139. data/lib/generators/camaleon_cms/gem_plugin_generator.rb +1 -1
  140. data/lib/generators/camaleon_cms/gem_plugin_template/app/models/plugins/my_plugin/my_plugin.rb +1 -2
  141. data/lib/generators/camaleon_cms/gem_plugin_template/config/{custom_models.rb → initializers/custom_models.rb} +0 -0
  142. data/lib/plugin_routes.rb +38 -63
  143. data/lib/tasks/camaleon_cms/camaleon_tasks.rake +18 -0
  144. data/lib/tasks/camaleon_cms/rspec_test.rake +7 -4
  145. metadata +43 -54
  146. data/app/assets/javascripts/camaleon_cms/admin/bootstrap-datetimepicker.min.js +0 -26
  147. data/app/assets/javascripts/camaleon_cms/admin/plugins.js +0 -637
  148. data/app/assets/javascripts/camaleon_cms/admin/tinymce/plugins/emoticons/img/smiley-cool.gif +0 -0
  149. data/app/assets/javascripts/camaleon_cms/admin/tinymce/plugins/emoticons/img/smiley-cry.gif +0 -0
  150. data/app/assets/javascripts/camaleon_cms/admin/tinymce/plugins/emoticons/img/smiley-embarassed.gif +0 -0
  151. data/app/assets/javascripts/camaleon_cms/admin/tinymce/plugins/emoticons/img/smiley-foot-in-mouth.gif +0 -0
  152. data/app/assets/javascripts/camaleon_cms/admin/tinymce/plugins/emoticons/img/smiley-frown.gif +0 -0
  153. data/app/assets/javascripts/camaleon_cms/admin/tinymce/plugins/emoticons/img/smiley-innocent.gif +0 -0
  154. data/app/assets/javascripts/camaleon_cms/admin/tinymce/plugins/emoticons/img/smiley-kiss.gif +0 -0
  155. data/app/assets/javascripts/camaleon_cms/admin/tinymce/plugins/emoticons/img/smiley-laughing.gif +0 -0
  156. data/app/assets/javascripts/camaleon_cms/admin/tinymce/plugins/emoticons/img/smiley-money-mouth.gif +0 -0
  157. data/app/assets/javascripts/camaleon_cms/admin/tinymce/plugins/emoticons/img/smiley-sealed.gif +0 -0
  158. data/app/assets/javascripts/camaleon_cms/admin/tinymce/plugins/emoticons/img/smiley-smile.gif +0 -0
  159. data/app/assets/javascripts/camaleon_cms/admin/tinymce/plugins/emoticons/img/smiley-surprised.gif +0 -0
  160. data/app/assets/javascripts/camaleon_cms/admin/tinymce/plugins/emoticons/img/smiley-tongue-out.gif +0 -0
  161. data/app/assets/javascripts/camaleon_cms/admin/tinymce/plugins/emoticons/img/smiley-undecided.gif +0 -0
  162. data/app/assets/javascripts/camaleon_cms/admin/tinymce/plugins/emoticons/img/smiley-wink.gif +0 -0
  163. data/app/assets/javascripts/camaleon_cms/admin/tinymce/plugins/emoticons/img/smiley-yell.gif +0 -0
  164. data/app/assets/javascripts/camaleon_cms/admin/tinymce/plugins/visualblocks/css/visualblocks.css +0 -135
  165. data/app/assets/javascripts/camaleon_cms/admin/tinymce/skins/lightgray/content.min.css.scss +0 -4
  166. data/app/assets/javascripts/camaleon_cms/admin/tinymce/skins/lightgray/fonts/tinymce-small.eot +0 -0
  167. data/app/assets/javascripts/camaleon_cms/admin/tinymce/skins/lightgray/fonts/tinymce-small.svg +0 -62
  168. data/app/assets/javascripts/camaleon_cms/admin/tinymce/skins/lightgray/fonts/tinymce-small.ttf +0 -0
  169. data/app/assets/javascripts/camaleon_cms/admin/tinymce/skins/lightgray/fonts/tinymce-small.woff +0 -0
  170. data/app/assets/javascripts/camaleon_cms/admin/tinymce/skins/lightgray/fonts/tinymce.eot +0 -0
  171. data/app/assets/javascripts/camaleon_cms/admin/tinymce/skins/lightgray/fonts/tinymce.svg +0 -83
  172. data/app/assets/javascripts/camaleon_cms/admin/tinymce/skins/lightgray/fonts/tinymce.ttf +0 -0
  173. data/app/assets/javascripts/camaleon_cms/admin/tinymce/skins/lightgray/fonts/tinymce.woff +0 -0
  174. data/app/assets/javascripts/camaleon_cms/admin/tinymce/skins/lightgray/img/anchor.gif +0 -0
  175. data/app/assets/javascripts/camaleon_cms/admin/tinymce/skins/lightgray/img/loader.gif +0 -0
  176. data/app/assets/javascripts/camaleon_cms/admin/tinymce/skins/lightgray/img/object.gif +0 -0
  177. data/app/assets/javascripts/camaleon_cms/admin/tinymce/skins/lightgray/img/trans.gif +0 -0
  178. data/app/assets/javascripts/camaleon_cms/admin/tinymce/themes/modern/theme.min.js +0 -1
  179. data/app/assets/javascripts/camaleon_cms/admin/tinymce/tinymce.min.js +0 -11
  180. data/app/assets/stylesheets/camaleon_cms/admin/bootstrap-datetimepicker.css.scss +0 -339
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3698af8315ca5b054ca6200eda9bf56f1db13860
4
- data.tar.gz: 51f8fa5c8350f0c5fd6f1be10c2bea2e6f6d448f
3
+ metadata.gz: 55105ca687257360b00b9e763f06c950b613f6e9
4
+ data.tar.gz: 49bacd61084356f6485f9efe1dccea81e658adca
5
5
  SHA512:
6
- metadata.gz: 2f5133339ddc655a70acdc28f6aadb002c73f78f2001bd56a8f8f163b1cb3e59cd51ea56f2b43dcc05aa16360e24cd9ae5a532d83477e77e95727a1e3829a667
7
- data.tar.gz: 64e28c83cbc3b82486483944787db419a385b0f110b2db4e9c65f81213702804a9647e81c6f51261df1051ac5cec5a657349d2e6fe33b1c96800c226dd2784b3
6
+ metadata.gz: 3763309423e6121c7f35c031d56a435ec2a65ca0d1f3a280140f93e95192a802d2c83c4ac1cd8fe1d6dcbfbcfa646336149a0ac51f3a4c61dc103b3d9f0e2036
7
+ data.tar.gz: 253888712e1939233bc2763f0e0f6b8678140efec1fc737a3d2e16499d10342d4b3af4db3bc33cad6f1dbaef926686d5f7368e635a634ae29f1d880cda175174
data/README.md CHANGED
@@ -162,4 +162,38 @@ Visit the web site for more information: http://camaleon.tuzitio.com/
162
162
  - Added support of multiples permalinks, I.E. you can define the permalink structure for each of content type
163
163
  - Added PT-br language
164
164
 
165
- See more here: http://camaleon.tuzitio.com/version-history.html
165
+ See more here: http://camaleon.tuzitio.com/version-history.html
166
+
167
+ ## For Testing with Rspec (In progress creating new test and rebuilding current tests)
168
+ - Add this gem into your Gemfile
169
+
170
+ ```
171
+ gem 'rspec-rails'
172
+ gem 'capybara'
173
+ ```
174
+ - In your console
175
+
176
+ ```
177
+ rails generate rspec:install
178
+ ```
179
+ - Add this to spec/rails_helper.rb (Insert before line of "RSpec.configure do |config|")
180
+
181
+ ```
182
+ Dir[File.join($camaleon_engine_dir, 'spec/support/**/*.rb')].each { |f| require f }
183
+ ```
184
+ - Execute single test file
185
+
186
+ ```
187
+ rake camaleon_cms:rspec[spec/routing/post_type_routes_spec.rb]
188
+ ```
189
+ - Execute many files within directory (read more rspec gem)
190
+
191
+ ```
192
+ rake camaleon_cms:rspec[spec/decorators]
193
+ ```
194
+
195
+ - Execute all test of camaleon cms (In progress fixing wrong test files)
196
+
197
+ ```
198
+ rake camaleon_cms:rspec
199
+ ```
@@ -33,4 +33,23 @@ es:
33
33
  request_limit_exceeded: 'Solicitud Límite excedido!'
34
34
  messages:
35
35
  settings_saved: 'Ajustes guardados!'
36
- settings: 'Ajustes'
36
+ settings: 'Ajustes'
37
+
38
+
39
+ nl:
40
+ plugin:
41
+ attack:
42
+ title: 'Aanval'
43
+ attack_security: 'Beveiliging tegen aanvallen'
44
+ form:
45
+ in: 'in'
46
+ seconds: 'seconden'
47
+ minutes: 'minuten'
48
+ type_max_requests_time: 'Max. %{type} Aanvragen'
49
+ type_time_requests_seconds: '%{type} tijd verzoek [seconds]'
50
+ ban_time_minutes: 'Tijdduur ban'
51
+ ban_messages: 'Melding bij ban'
52
+ request_limit_exceeded: 'Verzoek limiet overschreden!'
53
+ messages:
54
+ settings_saved: 'instellingen opgeslagen!'
55
+ settings: 'instellingen'
@@ -207,4 +207,109 @@ es:
207
207
  form_details: 'Detalle Formulario'
208
208
  to: 'Para'
209
209
  untitled: 'Sin Título'
210
- upload_file: 'Subir Archivo'
210
+ upload_file: 'Subir Archivo'
211
+ nl:
212
+ recaptcha:
213
+ errors:
214
+ incorrect-captcha-sol: 'Oh! Er heeft zich een fout voorgedaan met reCAPTCHA!'
215
+ plugin:
216
+ contact_form:
217
+ actions: 'Acties'
218
+ add_form: 'Formulier aanmaken'
219
+ add_field: 'Veld toevoegen'
220
+ add_new_field: 'Veld toevoegen'
221
+ add_option: 'Optie toevoegen'
222
+ body: 'Body'
223
+ body_value: 'Deze mail is verstuurd door het contactformulier.'
224
+ button:
225
+ back: 'Terug'
226
+ submit: 'Verstuur'
227
+ captcha: 'Captcha'
228
+ created_at: 'Aangemaakt op'
229
+ custom_class: 'Aangepaste CSS class'
230
+ copy_shortcode_post: 'kopieer shortcode naar post:'
231
+ count: 'Tel'
232
+ contact_form: 'Contactformulieren'
233
+ default: 'Standaard'
234
+ description: 'Omschrijving'
235
+ delete: 'Verwijder'
236
+ duplicate_field: 'Dubbel Veld'
237
+ edit: 'Bewerk'
238
+ edit_field: 'Veld bewerken'
239
+ error_captcha: 'Oh! Er heeft zich een fout voorgedaan met CAPTCHA!'
240
+ form_settings_email: 'Formulier e-mail instellingen'
241
+ form_settings_messages: 'Formulier berichtgeving instellingen'
242
+ include_lank: 'Lege toevoegen'
243
+ include_other: 'Andere toevoegen'
244
+ message:
245
+ save: 'Het contactformulier is gemaakt.'
246
+ delete: 'Het contactformulier is verwijderd.'
247
+ msg_data_found_list: 'Geen Contactformulieren gevonden.'
248
+ msg_delete: 'Weet je het zeker?'
249
+ lbl_message_has_been_success: 'Uw bericht is verzonden.'
250
+ msg_message_has_been_sent_success_tank_you: 'Uw bericht is verzonden. Veel dank.'
251
+ lbl_failed_sending_message: 'Het is niet gelkukt om het bericht te versturen '
252
+ msg_failed_sending_message_please_contact_admin: 'Bericht is niet verstuurd. Probeer het later opnieuw of neem contact met de beheerder op een andere manier.'
253
+ lbl_there_was_validation_error: 'There was a validation error.'
254
+ msg_there_was_validation_error_please_confirm_submit_form: 'Er was een validatie fout. Kunt u bevestigen dat de velden goed zijn ingevuld? en verzend het formulier opnieuw.'
255
+ lbl_shipment_considered_spam: 'Zending wordt beschouwd als spam.'
256
+ msg_falied_sending_message_please_contact_admin: 'Bericht versturen mislukt. Probeer het later opnieuw of neem contact met de beheerder op een andere manier.'
257
+ lbl_you_must_accept_all_terms: 'U dient alle voorwaarden te accepteren.'
258
+ msg_please_accept_terms_conditions_contiue: 'Accepteer de voorwaarden om door te gaan.'
259
+ lbl_you_must_complete_all_fields: 'U moet alle velden invullen.'
260
+ msg_please_fill_the_required_field: 'Vul alsjeblieft het verplichte veld in'
261
+ lbl_there_field_user_input_longer_maximum_allowed_length: 'Er is een veld dat de gebruikersinvoer is langer dan de maximaal toegestane lengte.'
262
+ mgs_this_input_too_long: 'De invoer is te lang.'
263
+ lbl_there_field_user_input_shorter_minimum_allowed_length: 'Er is een veld dat de gebruikersinvoer korter is dan de minimaal toegestane lengte.'
264
+ mgs_this_input_too_short: 'De invoer is te kort.'
265
+ lbl_the_code_entered_did_not_match_the_captcha: 'De code matcht niet met de CAPTCHA.'
266
+ msg_the_entered_code_incorrect: 'De ingevoerde code is onjuist.'
267
+ lbl_the_entered_number_format_invalid: 'Het ingevoerde nummer formaat is ongeldig.'
268
+ msg_the_numeric_format_seems_invalid: 'De numerieke indeling lijkt ongeldig.'
269
+ lbl_the_number_entered_less_allowable_limit: 'Het ingevoerde nummer is minder dan de toegestane limiet.'
270
+ msg_number_too_samll: 'Nummer te klein.'
271
+ lbl_the_number_entered_greater_than_allowable_limit: 'Het ingevoerde nummer is groter dan de toegestane limiet.'
272
+ msg_number_too_large: 'Nummer te groot'
273
+ lbl_the_email_is_invalid: 'Het ingevoerde e-mailadres is ongeldig.'
274
+ msg_the_email_address_appears_invalid: 'Het e-mailadres is ongeldig.'
275
+ lbl_url_invalid: 'De ingevoerde URL is ongeldig.'
276
+ msg_url_appearse_invalid: 'De URL is ongeldig.'
277
+ lbl_phone_invalid: 'Het telefoonnummer is ongeldig.'
278
+ msg_phone_appearse_invalid: 'Het telefoonnummer is ongeldig.'
279
+ lbl_have_not_correct_answer: 'U heeft het juiste antwoord op het raadsel niet ingevoerd.'
280
+ msg_answer_not_correct: 'Het antwoord is niet correct.'
281
+ lbl_date_format_invalid: 'De opgegeven datumnotatie is ongeldig.'
282
+ msg_date_appears_invalid: 'De datumnotatie is ongeldig.'
283
+ lbl_date_is_earlier_allowable_limit: 'De ingevoerde datum is eerder dan de toegestane limiet.'
284
+ msg_date_early: 'Datom is te vroeg.'
285
+ lbl_date_later_than_allowable_limit: 'De ingevoerde datum is late dan de toegestane limiet.'
286
+ msg_date_too_late: 'Datum is te laat.'
287
+ lbl_file_upload_failed_some_reason: 'De bestandsupload is mislukt om een onbekende reden.'
288
+ msg_failed_upload_file: 'Bestandsupload mislukt'
289
+ lbl_upload_file_not_valid_format: 'Het geüploade bestand is niet in een geldig formaat.'
290
+ msg_invalid_file_format: 'Onjuist bestandsformaat'
291
+ lbl_uploaded_file_too_large: 'Het geuploade bestand is te groot'
292
+ msg_file_too_large: 'Bestand is te groot.'
293
+ lbl_file_upload_failed_rails_error: 'De besandsupload is mistlukt door een Rails fout.'
294
+ msg_failed_upload_file_was_error: 'FDe besandsupload is mistlukt er wast een fout.'
295
+ msg_add_longer_description_field: 'Voeg een langere beschrijving voor dit veld.'
296
+ label: 'Label'
297
+ label_required: 'Verplicht label'
298
+ placeholder_required: 'Verplichte placeholder'
299
+ list: 'Overzicht'
300
+ list_responses: 'Overzicht reacties'
301
+ name: 'Naam'
302
+ name_button: 'Knop naam'
303
+ options: 'Opties'
304
+ remove_field: 'Verwijder veld'
305
+ remove_option: 'Verwijder optie'
306
+ required: 'Verplicht'
307
+ slug: 'Slug'
308
+ shortcode: 'Shortcode'
309
+ subject: 'Onderwerp'
310
+ title_plugin: 'Contactformulier'
311
+ title_panel:
312
+ form_details: 'Formulier Details'
313
+ to: 'Naar'
314
+ untitled: 'Naamloos'
315
+ upload_file: 'Bestand uploaden'
@@ -104,34 +104,14 @@ module Plugins::ContactForm::ContactFormHelper
104
104
  form_new = current_site.contact_forms.new(name: "response-#{Time.now}", description: form.description, settings: fix_meta_value(new_settings), site_id: form.site_id, parent_id: form.id)
105
105
 
106
106
  if form_new.save
107
- begin
108
- content = render_to_string partial: 'contact_form/submission',
109
- layout: false,
110
- locals: {
111
- file_attachments: attachments,
112
- fields: convert_form_values(
113
- values[:fields],
114
- fields
115
- )
116
- }
117
- rescue ActionView::MissingTemplate
118
- content = render_to_string partial: 'contact_form/views/contact_form/submission',
119
- layout: false,
120
- locals: {
121
- file_attachments: attachments,
122
- fields: convert_form_values(
123
- values[:fields],
124
- fields
125
- )
126
- }
107
+ content = get_content_from_submission_partial(attachments, values, fields)
108
+ content = get_content_from_views_submission_partial(attachments, values, fields) unless content.nil?
109
+ if content.nil?
110
+ extra_data = {fields: convert_form_values(values[:fields], fields)}
111
+ cama_send_email(settings[:railscf_mail][:to], settings[:railscf_mail][:subject], {attachments: attachments, content: content, template_name: 'contact_form_email', layout_name: 'camaleon_cms/mailer', extra_data: extra_data})
112
+ else
113
+ cama_send_email(settings[:railscf_mail][:to], settings[:railscf_mail][:subject], {attachments: attachments, content: content})
127
114
  end
128
-
129
- sendmail(
130
- settings[:railscf_mail][:to], settings[:railscf_mail][:subject],
131
- content,
132
- settings[:railscf_mail][:to],
133
- attachments
134
- )
135
115
  success << settings[:railscf_message][:mail_sent_ok]
136
116
  else
137
117
  errors << settings[:railscf_message][:mail_sent_ng]
@@ -175,4 +155,41 @@ module Plugins::ContactForm::ContactFormHelper
175
155
  end
176
156
  value
177
157
  end
158
+
159
+ private
160
+
161
+ def get_content_from_submission_partial(attachments, values, fields)
162
+ begin
163
+ content = render_to_string partial: 'contact_form/submission',
164
+ layout: false,
165
+ locals: {
166
+ file_attachments: attachments,
167
+ fields: convert_form_values(
168
+ values[:fields],
169
+ fields
170
+ )
171
+ }
172
+ rescue ActionView::MissingTemplate
173
+ content = nil
174
+ end
175
+ content
176
+ end
177
+
178
+ def get_content_from_views_submission_partial(attachments, values, fields)
179
+ begin
180
+ content = render_to_string partial: 'contact_form/views/contact_form/submission',
181
+ layout: false,
182
+ locals: {
183
+ file_attachments: attachments,
184
+ fields: convert_form_values(
185
+ values[:fields],
186
+ fields
187
+ )
188
+ }
189
+ rescue ActionView::MissingTemplate
190
+ content = nil
191
+ end
192
+ content
193
+ end
194
+
178
195
  end
@@ -34,4 +34,24 @@ es:
34
34
  enabled_cache_inner_content_logged_users: 'Habilitar caché de contenido interno para usuarios registrados'
35
35
  settings_saved: 'Ajustes guardados!'
36
36
  cache_destroyed: 'Caché destruida!'
37
- settings: 'Ajustes'
37
+ settings: 'Ajustes'
38
+
39
+
40
+ nl:
41
+ plugin:
42
+ front_cache:
43
+ button:
44
+ add_new_path: 'URL toevoegen'
45
+ custom_url_paths: "Aangepaste URL's"
46
+ clean_cache: 'Cache opschonen'
47
+ title: "Frontend cache"
48
+ home_page: 'Home Page'
49
+ pages: "Pagina's"
50
+ pages_of: "Inhoud van"
51
+ skip_cache_pages: 'Cache overslaan'
52
+ message:
53
+ please_checkpost_need_cache: "Kijk alle berichten of inhoud type's na die je wil cachen."
54
+ enabled_cache_inner_content_logged_users: 'Activeer cache voor gelogde gebruikers'
55
+ settings_saved: 'instellingen opgeslagen!'
56
+ cache_destroyed: 'Cache opgeschoond!'
57
+ settings: 'instellingen'
@@ -15,7 +15,7 @@ module Plugins::FrontCache::FrontCacheHelper
15
15
  current_site.set_option("refresh_cache", false)
16
16
  end
17
17
 
18
- return if signin? || Rails.env == "development" || Rails.env == "test" # avoid cache if current visitor is logged in or development environment
18
+ return if signin? || Rails.env == "development" || Rails.env == "test" || !request.get? # avoid cache if current visitor is logged in or development environment
19
19
  # return if signin? # avoid cache if current visitor is logged in or development environment
20
20
 
21
21
  cache_key = front_cache_get_key
@@ -23,7 +23,5 @@ jQuery(function($){
23
23
  }).filter(":checked").trigger("change");
24
24
 
25
25
  var cal_input = $("#form-post").find('#published_from');
26
- cal_input.datetimepicker({
27
- language: CURRENT_LOCALE
28
- });
26
+ cal_input.datetimepicker({format: 'YYYY-MM-DD HH:mm'});
29
27
  });
@@ -85,14 +85,12 @@ module Plugins::VisibilityPost::VisibilityPostHelper
85
85
  end
86
86
 
87
87
  def form_html(post)
88
- add_asset_library('datetimepicker')
89
88
  append_asset_libraries({"plugin_visibility"=> { js: [plugin_asset_path("js/form.js")] }})
90
-
91
89
  "
92
90
  <div class='form-group'>
93
91
  <label class='control-label'>#{t('camaleon_cms.admin.post_type.published_date')}</label>
94
- <div id='published_from' data-locale='#{current_locale}' class='input-append date'>
95
- <input type='text' name='post[published_at]' data-format='yyyy-MM-dd hh:mm:ss' value='#{@post[:published_at]}' />
92
+ <div id='published_from' data-locale='#{current_locale}' class='input-group date'>
93
+ <input type='text' name='post[published_at]' data-format='yyyy-MM-dd hh:mm:ss' class='form-control ' value='#{@post[:published_at]}' />
96
94
  <span class='add-on input-group-addon'><span class='glyphicon glyphicon-calendar'></span></span>
97
95
  </div>
98
96
  </div><!-- calendar for published at -->
@@ -74,18 +74,9 @@ function custom_field_date($field) {
74
74
  if ($field) {
75
75
  var box = $field.find(".date-input-box");
76
76
  if (box.hasClass('is_datetimepicker')) {
77
- box.datetimepicker({
78
- language: 'es',
79
- pick12HourFormat: true,
80
- format: 'yyyy-MM-dd hh:mm'
81
- });
77
+ box.datetimepicker({ format: 'YYYY-MM-DD HH:mm' });
82
78
  } else {
83
- box.datepicker({
84
- language: 'es',
85
- format: 'yyyy-mm-dd',
86
- autoclose: true,
87
- todayBtn: "linked"
88
- });
79
+ box.datepicker();
89
80
  }
90
81
  }
91
82
  }
@@ -162,6 +153,7 @@ function load_upload_image_field(dom) {
162
153
  var $input = $(dom).parents('li:first').find('input');
163
154
  $.fn.upload_filemanager({
164
155
  formats: "image",
156
+ dimension: $input.attr("data-dimension"),
165
157
  selected: function (file, response) {
166
158
  $input.val(file.url);
167
159
  }
@@ -3,12 +3,7 @@ function cama_get_tinymce_settings(settings){
3
3
  if(!settings) settings = {};
4
4
  var def = {
5
5
  selector: ".tinymce_textarea",
6
- plugins: [
7
- "advlist autolink lists link image charmap print preview hr anchor pagebreak",
8
- "searchreplace wordcount visualblocks visualchars code fullscreen",
9
- "insertdatetime media nonbreaking save table contextmenu directionality",
10
- "emoticons template paste textcolor colorpicker textpattern filemanager"
11
- ],
6
+ plugins: "advlist autolink lists link image charmap print preview hr anchor pagebreak searchreplace wordcount visualblocks visualchars code fullscreen insertdatetime media nonbreaking save table contextmenu directionality emoticons template paste textcolor colorpicker textpattern filemanager",
12
7
  menubar: "edit insert view format table tools",
13
8
  image_advtab: true,
14
9
  statusbar: true,
@@ -19,6 +14,7 @@ function cama_get_tinymce_settings(settings){
19
14
  //forced_root_block: '',
20
15
  extended_valid_elements: 'i[*],div[*],p[*],li[*],a[*],ol[*],ul[*],span[*]',
21
16
  toolbar: "bold italic | alignleft aligncenter alignright alignjustify | fontselect fontsizeselect | bullist numlist | outdent indent | undo redo | link unlink image media | forecolor backcolor | styleselect template "+tinymce_global_settings["custom_toolbar"].join(","),
17
+ image_caption: true,
22
18
  language: CURRENT_LOCALE,
23
19
  relative_urls: false,
24
20
  remove_script_host: false,
@@ -58,53 +58,17 @@ var init_form_validations = function (form) {
58
58
  });
59
59
  };
60
60
 
61
-
62
- !(function ($) {
63
- // serialize form into json
64
- jQuery.fn.serializeObject = function () {
65
- var json = {};
66
- jQuery.map(jQuery(this).serializeArray(), function (n, i) {
67
- var __i = n.name.indexOf('[');
68
- if (__i > -1) {
69
- var o = json;
70
- _name = n.name.replace(/\]/gi, '').split('[');
71
- for (var i = 0, len = _name.length; i < len; i++) {
72
- if (i == len - 1) {
73
- if (o[_name[i]] && $.trim(_name[i]) == '') {
74
- if (typeof o[_name[i]] == 'string') {
75
- o[_name[i]] = [o[_name[i]]];
76
- }
77
- o[_name[i]].push(n.value);
78
- }
79
- else o[_name[i]] = n.value || '';
80
- }
81
- else o = o[_name[i]] = o[_name[i]] || {};
82
- }
83
- }
84
- else {
85
- if (json[n.name] !== undefined) {
86
- if (!json[n.name].push) {
87
- json[n.name] = [json[n.name]];
88
- }
89
- json[n.name].push(n.value || '');
90
- }
91
- else json[n.name] = n.value || '';
92
- }
93
- });
94
- return json;
95
- };
96
- })(jQuery);
97
-
98
-
99
61
  // file uploader
100
62
  (function ($) {
63
+ // sample: <input name="icon" class="upload_input" type="hidden" data-dimension="23x22" value="current_image_url"/>
64
+ // $(".upload_input").input_upload({label: '', title: 'Select Images', type: 'image', dimension: '30x30'});
101
65
  $.fn.input_upload = function (options_init) {
102
66
  var default_options = {label: I18n("msg.upload_image"), type: "image", ext: "none", icon: "upload", full_url: true, height: '100px'};
103
67
  default_options = $.extend({}, default_options, options_init || {});
104
68
  $(this).each(function () {
105
69
  var $that = $(this);
106
70
  var options = $.extend({}, default_options, $that.data() || {});
107
- var $content_image = $("<div class='content-upload-plugin'><a style='' href='#' target='_blank'><img src=''><br><span class='rm-file btn btn-xs btn-danger'><i class='fa fa-trash'></i></span> <strong></strong></a></div>").hide();
71
+ var $content_image = $("<div class='content-upload-plugin'><a style='' href='#' target='_blank'><img src=''><br><span class='rm-file btn btn-xs btn-danger'><i class='fa fa-trash'></i></span></a></div>").hide();
108
72
  if (options.type != 'image') $content_image.find('img').remove();
109
73
  var $btn_upload = $('<a class="btn btn-default" href="#"><i class="fa fa-upload"></i> ' + options.label + '</a>')
110
74
  $content_image.find('img').css('max-height', options.height);
@@ -115,7 +79,9 @@ var init_form_validations = function (form) {
115
79
  formats: options.type,
116
80
  selected: function (file, response) {
117
81
  $that.val(file.url).trigger("change");
118
- }
82
+ },
83
+ dimension: $that.attr('data-dimension') || options["dimension"],
84
+ title: $that.attr('title') || options["title"],
119
85
  });
120
86
  return false;
121
87
  });
@@ -126,7 +92,7 @@ var init_form_validations = function (form) {
126
92
  if(url){
127
93
  $content_image.find('img').attr('src', url);
128
94
  $content_image.find('a').attr('href', url);
129
- $content_image.find('strong').html(_.last(url.split('/')));
95
+ //$content_image.find('strong').html(_.last(url.split('/')));
130
96
  $content_image.show();
131
97
  }else{
132
98
  $content_image.hide();
@@ -159,192 +125,8 @@ var init_form_validations = function (form) {
159
125
  }
160
126
  })(jQuery);
161
127
 
162
- // jquery custom validations and default values
163
- (function ($) {
164
-
165
- // file formats
166
- $.file_formats = {
167
- jpg: "image",
168
- gif: "image",
169
- png: "image",
170
- bmp: "image",
171
- jpeg: "image",
172
-
173
- mp3: "audio",
174
- ogg: "audio",
175
- mid: "audio",
176
- mod: "audio",
177
- wav: "audio",
128
+ // serialize form into json
129
+ !(function ($) { jQuery.fn.serializeObject = function () { var json = {}; jQuery.map(jQuery(this).serializeArray(), function (n, i) { var __i = n.name.indexOf('['); if (__i > -1) { var o = json; _name = n.name.replace(/\]/gi, '').split('['); for (var i = 0, len = _name.length; i < len; i++) { if (i == len - 1) { if (o[_name[i]] && $.trim(_name[i]) == '') { if (typeof o[_name[i]] == 'string') { o[_name[i]] = [o[_name[i]]]; } o[_name[i]].push(n.value); } else o[_name[i]] = n.value || ''; } else o = o[_name[i]] = o[_name[i]] || {}; } } else { if (json[n.name] !== undefined) { if (!json[n.name].push) { json[n.name] = [json[n.name]]; } json[n.name].push(n.value || ''); } else json[n.name] = n.value || ''; } }); return json; }; })(jQuery);
178
130
 
179
- mp4: "video",
180
- wmv: "video",
181
- avi: "video",
182
- swf: "video",
183
- mov: "video",
184
- mpeg: "video",
185
- mjpg: "video"
186
- }
187
-
188
- // return the video id of a video url
189
- // http://lasnv.net/foro/839/Javascript_parsear_URL_de_YouTube
190
- $.cama_youtube_key = function(url){
191
- var regExp = /^.*((youtu.be\/)|(v\/)|(\/u\/\w\/)|(embed\/)|(watch\?))\??v?=?([^#\&\?]*).*/;
192
- var match = url.match(regExp);
193
- var b = false;
194
- if (match&&match[7].length==11){
195
- b=match[7];
196
- }
197
- return b;
198
- }
199
-
200
- // verify the url for youtube, vimeo...
201
- // return youtube | metcafe|dailymotion|vimeo
202
- $.cama_check_video_url = function (url) {
203
- var regYoutube = new RegExp(/^.*((youtu.be\/)|(v\/)|(\/u\/w\/)|(embed\/)|(watch?))??v?=?([^#&?]*).*/);
204
- var regVimeo = new RegExp(/^.*(vimeo.com\/)((channels\/[A-z]+\/)|(groups\/[A-z]+\/videos\/))?([0-9]+)/);
205
- var regDailymotion = new RegExp(/^.+dailymotion.com\/(video|hub)\/([^_]+)[^#]*(#video=([^_&]+))?/);
206
- var regMetacafe = new RegExp(/^.*(metacafe.com)(\/watch\/)(d+)(.*)/i);
207
- if (regYoutube.test(url)) {
208
- return 'youtube';
209
- } else if (regMetacafe.test(url)) {
210
- return 'metacafe';
211
- } else if (regDailymotion.test(url)) {
212
- return 'dailymotion';
213
- } else if (regVimeo.test(url)) {
214
- return 'vimeo';
215
- } else {
216
- return false;
217
- }
218
- }
219
-
220
- // helper validate only letters latin
221
- var regex = /^[a-z\sÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏàáâãäåæçèéêëìíîïÐÑÒÓÔÕÖØÙÚÛÜÝÞßðñòóôõöøùúûüýþÿ]+$/i;
222
- jQuery.validator.addMethod("lettersonly", function (value, element) {
223
- return this.optional(element) || regex.test(value);
224
- }, "Only alphabetical characters");
225
-
226
- /************ Custom jquery validation as defaults ***************/
227
- jQuery.validator.setDefaults({
228
- focusInvalid: true,
229
- ignore: ".translated-item",
230
- errorPlacement: function (a, b) {
231
- if (!a.text()) return;
232
- if (b.parent().hasClass('trans_tab_item')) { // tabs
233
- var parent = b.parent();
234
- $("a[href='#" + parent.attr('id') + "']").addClass('has-error').trigger('click');
235
- parent.addClass('has-error').append(a.addClass('help-block'));
236
- } else if (b.parent().hasClass('form-group')) {
237
- b.parent().addClass('has-error').append(a.addClass('help-block'));
238
- } else {
239
- if (b.attr('name') == 'categories[]')
240
- b.parent().before(a.addClass('help-block')).parent().addClass('has-error');
241
- else
242
- b.parent().after(a.addClass('help-block')).parent().addClass('has-error');
243
- }
244
- },
245
- success: function (error, element) {
246
- $(element).parent().removeClass('has-error').parent().removeClass('has-error')
247
- if ($(element).parent().hasClass('tab-pane')) $("a[href='#" + $(element).parent().attr('id') + "']").removeClass('has-error');
248
- },
249
- highlight: function(element, errorClass){ //fix for error fields in hidden tab
250
- var tab = "";
251
- if(!$(element).is(":visible") && (tab = $(element).closest(".tab-pane")).length && tab.attr("id")){
252
- tab.closest(".tabs").find(" > ul a[href='#"+tab.attr("id")+"']").click();
253
- }
254
- }
255
- });
256
-
257
- // validate file extension defined in data-formats
258
- // data-formats: (default '') image | audio | video (support also external youtube metacafe, dailymotion, vimeo) | or file extension like: jpg|png
259
- $.validator.addMethod("file_format", function (value, element) {
260
- var formats = $(element).attr("data-formats");
261
- var ext = value.split(".").pop().toLowerCase();
262
- if (formats)
263
- return ($.inArray("video", formats.split(",")) >= 0 && $.cama_check_video_url(value)) || $.inArray($.file_formats[ext], formats.split(",")) >= 0 || $.inArray(ext, formats.split(",")) >= 0
264
-
265
- return true;
266
- }, "File format not accepted.");
267
- jQuery.validator.addClassRules({
268
- file_format: {file_format: true}
269
- });
270
- })(jQuery);
271
-
272
- // convert string into hashcode
273
- String.prototype.hashCode = function () {
274
- var message = this;
275
- if (message == "") {
276
- return "";
277
- }
278
- var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/_-".split("");
279
- var length = 40;
280
- for (var last = 0, i = 0, len = message.length; i < len; i++) {
281
- last = (message.charCodeAt(i) + 31 * last) % 59;
282
- }
283
- length = length || message.length;
284
- while (len < length) {
285
- message += message;
286
- len += len;
287
- }
288
- message = message.slice(0, length);
289
- for (var ret = "", i = 0; i < length; i++) {
290
- ret += chars[last = (i + last + message.charCodeAt(i)) % 64];
291
- }
292
- return ret;
293
- };
294
-
295
- // convert string path into full url
296
- String.prototype.to_url = function () {
297
- return root_url.slice(0, root_url.length - 1) + this;
298
- };
299
- // jquery browser supoer
300
- !function (a) {
301
- "function" == typeof define && define.amd ? define(["jquery"], function (b) {
302
- a(b)
303
- }) : "object" == typeof module && "object" == typeof module.exports ? module.exports = a(require("jquery")) : a(window.jQuery)
304
- }(function (a) {
305
- "use strict";
306
- function b(a) {
307
- void 0 === a && (a = window.navigator.userAgent), a = a.toLowerCase();
308
- var b = /(edge)\/([\w.]+)/.exec(a) || /(opr)[\/]([\w.]+)/.exec(a) || /(chrome)[ \/]([\w.]+)/.exec(a) || /(version)(applewebkit)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(a) || /(webkit)[ \/]([\w.]+).*(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(a) || /(webkit)[ \/]([\w.]+)/.exec(a) || /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a) || /(msie) ([\w.]+)/.exec(a) || a.indexOf("trident") >= 0 && /(rv)(?::| )([\w.]+)/.exec(a) || a.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a) || [], c = /(ipad)/.exec(a) || /(ipod)/.exec(a) || /(iphone)/.exec(a) || /(kindle)/.exec(a) || /(silk)/.exec(a) || /(android)/.exec(a) || /(windows phone)/.exec(a) || /(win)/.exec(a) || /(mac)/.exec(a) || /(linux)/.exec(a) || /(cros)/.exec(a) || /(playbook)/.exec(a) || /(bb)/.exec(a) || /(blackberry)/.exec(a) || [], d = {}, e = {
309
- browser: b[5] || b[3] || b[1] || "",
310
- version: b[2] || b[4] || "0",
311
- versionNumber: b[4] || b[2] || "0",
312
- platform: c[0] || ""
313
- };
314
- if (e.browser && (d[e.browser] = !0, d.version = e.version, d.versionNumber = parseInt(e.versionNumber, 10)), e.platform && (d[e.platform] = !0), (d.android || d.bb || d.blackberry || d.ipad || d.iphone || d.ipod || d.kindle || d.playbook || d.silk || d["windows phone"]) && (d.mobile = !0), (d.cros || d.mac || d.linux || d.win) && (d.desktop = !0), (d.chrome || d.opr || d.safari) && (d.webkit = !0), d.rv || d.edge) {
315
- var f = "msie";
316
- e.browser = f, d[f] = !0
317
- }
318
- if (d.safari && d.blackberry) {
319
- var g = "blackberry";
320
- e.browser = g, d[g] = !0
321
- }
322
- if (d.safari && d.playbook) {
323
- var h = "playbook";
324
- e.browser = h, d[h] = !0
325
- }
326
- if (d.bb) {
327
- var i = "blackberry";
328
- e.browser = i, d[i] = !0
329
- }
330
- if (d.opr) {
331
- var j = "opera";
332
- e.browser = j, d[j] = !0
333
- }
334
- if (d.safari && d.android) {
335
- var k = "android";
336
- e.browser = k, d[k] = !0
337
- }
338
- if (d.safari && d.kindle) {
339
- var l = "kindle";
340
- e.browser = l, d[l] = !0
341
- }
342
- if (d.safari && d.silk) {
343
- var m = "silk";
344
- e.browser = m, d[m] = !0
345
- }
346
- return d.name = e.browser, d.platform = e.platform, d
347
- }
348
-
349
- return window.jQBrowser = b(window.navigator.userAgent), window.jQBrowser.uaMatch = b, a && (a.browser = window.jQBrowser), window.jQBrowser
350
- });
131
+ // jquery browser support
132
+ !function (a) { "function" == typeof define && define.amd ? define(["jquery"], function (b) { a(b) }) : "object" == typeof module && "object" == typeof module.exports ? module.exports = a(require("jquery")) : a(window.jQuery) }(function (a) { "use strict"; function b(a) { void 0 === a && (a = window.navigator.userAgent), a = a.toLowerCase(); var b = /(edge)\/([\w.]+)/.exec(a) || /(opr)[\/]([\w.]+)/.exec(a) || /(chrome)[ \/]([\w.]+)/.exec(a) || /(version)(applewebkit)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(a) || /(webkit)[ \/]([\w.]+).*(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(a) || /(webkit)[ \/]([\w.]+)/.exec(a) || /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a) || /(msie) ([\w.]+)/.exec(a) || a.indexOf("trident") >= 0 && /(rv)(?::| )([\w.]+)/.exec(a) || a.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a) || [], c = /(ipad)/.exec(a) || /(ipod)/.exec(a) || /(iphone)/.exec(a) || /(kindle)/.exec(a) || /(silk)/.exec(a) || /(android)/.exec(a) || /(windows phone)/.exec(a) || /(win)/.exec(a) || /(mac)/.exec(a) || /(linux)/.exec(a) || /(cros)/.exec(a) || /(playbook)/.exec(a) || /(bb)/.exec(a) || /(blackberry)/.exec(a) || [], d = {}, e = { browser: b[5] || b[3] || b[1] || "", version: b[2] || b[4] || "0", versionNumber: b[4] || b[2] || "0", platform: c[0] || ""}; if (e.browser && (d[e.browser] = !0, d.version = e.version, d.versionNumber = parseInt(e.versionNumber, 10)), e.platform && (d[e.platform] = !0), (d.android || d.bb || d.blackberry || d.ipad || d.iphone || d.ipod || d.kindle || d.playbook || d.silk || d["windows phone"]) && (d.mobile = !0), (d.cros || d.mac || d.linux || d.win) && (d.desktop = !0), (d.chrome || d.opr || d.safari) && (d.webkit = !0), d.rv || d.edge) { var f = "msie"; e.browser = f, d[f] = !0 } if (d.safari && d.blackberry) { var g = "blackberry"; e.browser = g, d[g] = !0 } if (d.safari && d.playbook) { var h = "playbook"; e.browser = h, d[h] = !0 } if (d.bb) { var i = "blackberry"; e.browser = i, d[i] = !0 } if (d.opr) { var j = "opera"; e.browser = j, d[j] = !0 } if (d.safari && d.android) { var k = "android"; e.browser = k, d[k] = !0 } if (d.safari && d.kindle) { var l = "kindle"; e.browser = l, d[l] = !0 } if (d.safari && d.silk) { var m = "silk"; e.browser = m, d[m] = !0 } return d.name = e.browser, d.platform = e.platform, d } return window.jQBrowser = b(window.navigator.userAgent), window.jQBrowser.uaMatch = b, a && (a.browser = window.jQBrowser), window.jQBrowser });