From d3d2ae591f20ea7900dc442a09e7d52ef30c8efe Mon Sep 17 00:00:00 2001 From: Robbie Averill Date: Mon, 21 Aug 2017 14:35:31 +1200 Subject: [PATCH] FIX Re-implement jquery validate localisation, move thirdparty JS libs to client dir --- client/dist/images/editablecheckbox.png | Bin 0 -> 3083 bytes .../images/editablecheckboxgroupfield.png | Bin 0 -> 3063 bytes client/dist/images/editabledatefield.png | Bin 0 -> 3012 bytes client/dist/images/editabledropdown.png | Bin 0 -> 3080 bytes client/dist/images/editableemailfield.png | Bin 0 -> 3121 bytes client/dist/images/editablefilefield.png | Bin 0 -> 3326 bytes client/dist/images/editableformheading.png | Bin 0 -> 2953 bytes client/dist/images/editableliteralfield.png | Bin 0 -> 3053 bytes .../dist/images/editablememberlistfield.png | Bin 0 -> 3080 bytes client/dist/images/editablenumericfield.png | Bin 0 -> 525 bytes client/dist/images/editablepasswordfield.png | Bin 0 -> 3043 bytes client/dist/images/editableradiofield.png | Bin 0 -> 3165 bytes client/dist/images/editabletextfield.png | Bin 0 -> 2987 bytes client/dist/images/sitetree_icon.png | Bin 0 -> 15554 bytes .../jquery-validate/additional-methods.js | 0 .../jquery-validate/additional-methods.min.js | 0 .../jquery-validate/jquery.validate.js | 0 .../jquery-validate/jquery.validate.min.js | 0 .../localization/messages_ar.js | 0 .../localization/messages_ar.min.js | 0 .../localization/messages_bg.js | 0 .../localization/messages_bg.min.js | 0 .../localization/messages_ca.js | 0 .../localization/messages_ca.min.js | 0 .../localization/messages_cs.js | 0 .../localization/messages_cs.min.js | 0 .../localization/messages_da.js | 0 .../localization/messages_da.min.js | 0 .../localization/messages_de.js | 0 .../localization/messages_de.min.js | 0 .../localization/messages_el.js | 0 .../localization/messages_el.min.js | 0 .../localization/messages_es.js | 0 .../localization/messages_es.min.js | 0 .../localization/messages_es_AR.js | 0 .../localization/messages_es_AR.min.js | 0 .../localization/messages_et.js | 0 .../localization/messages_et.min.js | 0 .../localization/messages_eu.js | 0 .../localization/messages_eu.min.js | 0 .../localization/messages_fa.js | 0 .../localization/messages_fa.min.js | 0 .../localization/messages_fi.js | 0 .../localization/messages_fi.min.js | 0 .../localization/messages_fr.js | 0 .../localization/messages_fr.min.js | 0 .../localization/messages_gl.js | 0 .../localization/messages_gl.min.js | 0 .../localization/messages_he.js | 0 .../localization/messages_he.min.js | 0 .../localization/messages_hr.js | 0 .../localization/messages_hr.min.js | 0 .../localization/messages_hu.js | 0 .../localization/messages_hu.min.js | 0 .../localization/messages_id.js | 0 .../localization/messages_id.min.js | 0 .../localization/messages_is.js | 0 .../localization/messages_is.min.js | 0 .../localization/messages_it.js | 0 .../localization/messages_it.min.js | 0 .../localization/messages_ja.js | 0 .../localization/messages_ja.min.js | 0 .../localization/messages_ka.js | 0 .../localization/messages_ka.min.js | 0 .../localization/messages_kk.js | 0 .../localization/messages_kk.min.js | 0 .../localization/messages_ko.js | 0 .../localization/messages_ko.min.js | 0 .../localization/messages_lt.js | 0 .../localization/messages_lt.min.js | 0 .../localization/messages_lv.js | 0 .../localization/messages_lv.min.js | 0 .../localization/messages_my.js | 0 .../localization/messages_my.min.js | 0 .../localization/messages_nl.js | 0 .../localization/messages_nl.min.js | 0 .../localization/messages_no.js | 0 .../localization/messages_no.min.js | 0 .../localization/messages_pl.js | 0 .../localization/messages_pl.min.js | 0 .../localization/messages_pt_BR.js | 0 .../localization/messages_pt_BR.min.js | 0 .../localization/messages_pt_PT.js | 0 .../localization/messages_pt_PT.min.js | 0 .../localization/messages_ro.js | 0 .../localization/messages_ro.min.js | 0 .../localization/messages_ru.js | 0 .../localization/messages_ru.min.js | 0 .../localization/messages_si.js | 0 .../localization/messages_si.min.js | 0 .../localization/messages_sk.js | 0 .../localization/messages_sk.min.js | 0 .../localization/messages_sl.js | 0 .../localization/messages_sl.min.js | 0 .../localization/messages_sr.js | 0 .../localization/messages_sr.min.js | 0 .../localization/messages_sr_lat.js | 0 .../localization/messages_sr_lat.min.js | 0 .../localization/messages_sv.js | 0 .../localization/messages_sv.min.js | 0 .../localization/messages_th.js | 0 .../localization/messages_th.min.js | 0 .../localization/messages_tj.js | 0 .../localization/messages_tj.min.js | 0 .../localization/messages_tr.js | 0 .../localization/messages_tr.min.js | 0 .../localization/messages_uk.js | 0 .../localization/messages_uk.min.js | 0 .../localization/messages_vi.js | 0 .../localization/messages_vi.min.js | 0 .../localization/messages_zh.js | 0 .../localization/messages_zh.min.js | 0 .../localization/messages_zh_TW.js | 0 .../localization/messages_zh_TW.min.js | 0 .../localization/methods_de.js | 0 .../localization/methods_de.min.js | 0 .../localization/methods_es_CL.js | 0 .../localization/methods_es_CL.min.js | 0 .../localization/methods_fi.js | 0 .../localization/methods_fi.min.js | 0 .../localization/methods_nl.js | 0 .../localization/methods_nl.min.js | 0 .../localization/methods_pt.js | 0 .../localization/methods_pt.min.js | 0 .../jquery.are-you-sure.js | 0 code/Model/UserDefinedFormController.php | 47 ++++++++++++------ 126 files changed, 33 insertions(+), 14 deletions(-) create mode 100644 client/dist/images/editablecheckbox.png create mode 100644 client/dist/images/editablecheckboxgroupfield.png create mode 100644 client/dist/images/editabledatefield.png create mode 100644 client/dist/images/editabledropdown.png create mode 100644 client/dist/images/editableemailfield.png create mode 100644 client/dist/images/editablefilefield.png create mode 100644 client/dist/images/editableformheading.png create mode 100644 client/dist/images/editableliteralfield.png create mode 100644 client/dist/images/editablememberlistfield.png create mode 100644 client/dist/images/editablenumericfield.png create mode 100644 client/dist/images/editablepasswordfield.png create mode 100644 client/dist/images/editableradiofield.png create mode 100644 client/dist/images/editabletextfield.png create mode 100644 client/dist/images/sitetree_icon.png rename {thirdparty => client/thirdparty}/jquery-validate/additional-methods.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/additional-methods.min.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/jquery.validate.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/jquery.validate.min.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_ar.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_ar.min.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_bg.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_bg.min.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_ca.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_ca.min.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_cs.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_cs.min.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_da.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_da.min.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_de.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_de.min.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_el.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_el.min.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_es.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_es.min.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_es_AR.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_es_AR.min.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_et.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_et.min.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_eu.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_eu.min.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_fa.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_fa.min.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_fi.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_fi.min.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_fr.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_fr.min.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_gl.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_gl.min.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_he.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_he.min.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_hr.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_hr.min.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_hu.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_hu.min.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_id.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_id.min.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_is.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_is.min.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_it.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_it.min.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_ja.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_ja.min.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_ka.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_ka.min.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_kk.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_kk.min.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_ko.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_ko.min.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_lt.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_lt.min.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_lv.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_lv.min.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_my.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_my.min.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_nl.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_nl.min.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_no.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_no.min.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_pl.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_pl.min.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_pt_BR.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_pt_BR.min.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_pt_PT.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_pt_PT.min.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_ro.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_ro.min.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_ru.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_ru.min.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_si.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_si.min.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_sk.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_sk.min.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_sl.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_sl.min.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_sr.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_sr.min.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_sr_lat.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_sr_lat.min.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_sv.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_sv.min.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_th.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_th.min.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_tj.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_tj.min.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_tr.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_tr.min.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_uk.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_uk.min.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_vi.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_vi.min.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_zh.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_zh.min.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_zh_TW.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/messages_zh_TW.min.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/methods_de.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/methods_de.min.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/methods_es_CL.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/methods_es_CL.min.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/methods_fi.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/methods_fi.min.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/methods_nl.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/methods_nl.min.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/methods_pt.js (100%) rename {thirdparty => client/thirdparty}/jquery-validate/localization/methods_pt.min.js (100%) rename {thirdparty => client/thirdparty}/jquery.are-you-sure/jquery.are-you-sure.js (100%) diff --git a/client/dist/images/editablecheckbox.png b/client/dist/images/editablecheckbox.png new file mode 100644 index 0000000000000000000000000000000000000000..07e62c1cc239d810ddc965f43a4761874b4afacf GIT binary patch literal 3083 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 Z2LOC}I*2oeDAE7`002ovPDHLkV1nE|yGH;3 literal 0 HcmV?d00001 diff --git a/client/dist/images/editablecheckboxgroupfield.png b/client/dist/images/editablecheckboxgroupfield.png new file mode 100644 index 0000000000000000000000000000000000000000..63e34c6c3b2d7b757bd87af92f239c1160798c7b GIT binary patch literal 3063 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 LNkvXXu0mjf9TM0m literal 0 HcmV?d00001 diff --git a/client/dist/images/editablefilefield.png b/client/dist/images/editablefilefield.png new file mode 100644 index 0000000000000000000000000000000000000000..df4f273ae2c33c43452c93294ea17c41506aa8f8 GIT binary patch literal 3326 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 IM6N<$f;SFF)&Kwi literal 0 HcmV?d00001 diff --git a/client/dist/images/editableformheading.png b/client/dist/images/editableformheading.png new file mode 100644 index 0000000000000000000000000000000000000000..7742eed237ea1b468acb516407ecd0445ac42067 GIT binary patch literal 2953 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 literal 0 HcmV?d00001 diff --git a/client/dist/images/editablememberlistfield.png b/client/dist/images/editablememberlistfield.png new file mode 100644 index 0000000000000000000000000000000000000000..9d9b36803e61c22617346f89b6c93f30fac07aba GIT binary patch literal 3080 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 P00000NkvXXu0mjfgUjU8 literal 0 HcmV?d00001 diff --git a/client/dist/images/editablepasswordfield.png b/client/dist/images/editablepasswordfield.png new file mode 100644 index 0000000000000000000000000000000000000000..a359328fb5c635a605beb499ecc529d39d439753 GIT binary patch literal 3043 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 literal 0 HcmV?d00001 diff --git a/client/dist/images/editableradiofield.png b/client/dist/images/editableradiofield.png new file mode 100644 index 0000000000000000000000000000000000000000..f1f3c15669c9be606a91783170300ce333264432 GIT binary patch literal 3165 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 Dd&ugS literal 0 HcmV?d00001 diff --git a/client/dist/images/editabletextfield.png b/client/dist/images/editabletextfield.png new file mode 100644 index 0000000000000000000000000000000000000000..7aabfab94287ab33fc1189746e749f4988d7d87e GIT binary patch literal 2987 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 literal 0 HcmV?d00001 diff --git a/thirdparty/jquery-validate/additional-methods.js b/client/thirdparty/jquery-validate/additional-methods.js similarity index 100% rename from thirdparty/jquery-validate/additional-methods.js rename to client/thirdparty/jquery-validate/additional-methods.js diff --git a/thirdparty/jquery-validate/additional-methods.min.js b/client/thirdparty/jquery-validate/additional-methods.min.js similarity index 100% rename from thirdparty/jquery-validate/additional-methods.min.js rename to client/thirdparty/jquery-validate/additional-methods.min.js diff --git a/thirdparty/jquery-validate/jquery.validate.js b/client/thirdparty/jquery-validate/jquery.validate.js similarity index 100% rename from thirdparty/jquery-validate/jquery.validate.js rename to client/thirdparty/jquery-validate/jquery.validate.js diff --git a/thirdparty/jquery-validate/jquery.validate.min.js b/client/thirdparty/jquery-validate/jquery.validate.min.js similarity index 100% rename from thirdparty/jquery-validate/jquery.validate.min.js rename to client/thirdparty/jquery-validate/jquery.validate.min.js diff --git a/thirdparty/jquery-validate/localization/messages_ar.js b/client/thirdparty/jquery-validate/localization/messages_ar.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_ar.js rename to client/thirdparty/jquery-validate/localization/messages_ar.js diff --git a/thirdparty/jquery-validate/localization/messages_ar.min.js b/client/thirdparty/jquery-validate/localization/messages_ar.min.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_ar.min.js rename to client/thirdparty/jquery-validate/localization/messages_ar.min.js diff --git a/thirdparty/jquery-validate/localization/messages_bg.js b/client/thirdparty/jquery-validate/localization/messages_bg.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_bg.js rename to client/thirdparty/jquery-validate/localization/messages_bg.js diff --git a/thirdparty/jquery-validate/localization/messages_bg.min.js b/client/thirdparty/jquery-validate/localization/messages_bg.min.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_bg.min.js rename to client/thirdparty/jquery-validate/localization/messages_bg.min.js diff --git a/thirdparty/jquery-validate/localization/messages_ca.js b/client/thirdparty/jquery-validate/localization/messages_ca.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_ca.js rename to client/thirdparty/jquery-validate/localization/messages_ca.js diff --git a/thirdparty/jquery-validate/localization/messages_ca.min.js b/client/thirdparty/jquery-validate/localization/messages_ca.min.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_ca.min.js rename to client/thirdparty/jquery-validate/localization/messages_ca.min.js diff --git a/thirdparty/jquery-validate/localization/messages_cs.js b/client/thirdparty/jquery-validate/localization/messages_cs.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_cs.js rename to client/thirdparty/jquery-validate/localization/messages_cs.js diff --git a/thirdparty/jquery-validate/localization/messages_cs.min.js b/client/thirdparty/jquery-validate/localization/messages_cs.min.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_cs.min.js rename to client/thirdparty/jquery-validate/localization/messages_cs.min.js diff --git a/thirdparty/jquery-validate/localization/messages_da.js b/client/thirdparty/jquery-validate/localization/messages_da.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_da.js rename to client/thirdparty/jquery-validate/localization/messages_da.js diff --git a/thirdparty/jquery-validate/localization/messages_da.min.js b/client/thirdparty/jquery-validate/localization/messages_da.min.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_da.min.js rename to client/thirdparty/jquery-validate/localization/messages_da.min.js diff --git a/thirdparty/jquery-validate/localization/messages_de.js b/client/thirdparty/jquery-validate/localization/messages_de.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_de.js rename to client/thirdparty/jquery-validate/localization/messages_de.js diff --git a/thirdparty/jquery-validate/localization/messages_de.min.js b/client/thirdparty/jquery-validate/localization/messages_de.min.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_de.min.js rename to client/thirdparty/jquery-validate/localization/messages_de.min.js diff --git a/thirdparty/jquery-validate/localization/messages_el.js b/client/thirdparty/jquery-validate/localization/messages_el.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_el.js rename to client/thirdparty/jquery-validate/localization/messages_el.js diff --git a/thirdparty/jquery-validate/localization/messages_el.min.js b/client/thirdparty/jquery-validate/localization/messages_el.min.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_el.min.js rename to client/thirdparty/jquery-validate/localization/messages_el.min.js diff --git a/thirdparty/jquery-validate/localization/messages_es.js b/client/thirdparty/jquery-validate/localization/messages_es.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_es.js rename to client/thirdparty/jquery-validate/localization/messages_es.js diff --git a/thirdparty/jquery-validate/localization/messages_es.min.js b/client/thirdparty/jquery-validate/localization/messages_es.min.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_es.min.js rename to client/thirdparty/jquery-validate/localization/messages_es.min.js diff --git a/thirdparty/jquery-validate/localization/messages_es_AR.js b/client/thirdparty/jquery-validate/localization/messages_es_AR.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_es_AR.js rename to client/thirdparty/jquery-validate/localization/messages_es_AR.js diff --git a/thirdparty/jquery-validate/localization/messages_es_AR.min.js b/client/thirdparty/jquery-validate/localization/messages_es_AR.min.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_es_AR.min.js rename to client/thirdparty/jquery-validate/localization/messages_es_AR.min.js diff --git a/thirdparty/jquery-validate/localization/messages_et.js b/client/thirdparty/jquery-validate/localization/messages_et.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_et.js rename to client/thirdparty/jquery-validate/localization/messages_et.js diff --git a/thirdparty/jquery-validate/localization/messages_et.min.js b/client/thirdparty/jquery-validate/localization/messages_et.min.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_et.min.js rename to client/thirdparty/jquery-validate/localization/messages_et.min.js diff --git a/thirdparty/jquery-validate/localization/messages_eu.js b/client/thirdparty/jquery-validate/localization/messages_eu.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_eu.js rename to client/thirdparty/jquery-validate/localization/messages_eu.js diff --git a/thirdparty/jquery-validate/localization/messages_eu.min.js b/client/thirdparty/jquery-validate/localization/messages_eu.min.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_eu.min.js rename to client/thirdparty/jquery-validate/localization/messages_eu.min.js diff --git a/thirdparty/jquery-validate/localization/messages_fa.js b/client/thirdparty/jquery-validate/localization/messages_fa.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_fa.js rename to client/thirdparty/jquery-validate/localization/messages_fa.js diff --git a/thirdparty/jquery-validate/localization/messages_fa.min.js b/client/thirdparty/jquery-validate/localization/messages_fa.min.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_fa.min.js rename to client/thirdparty/jquery-validate/localization/messages_fa.min.js diff --git a/thirdparty/jquery-validate/localization/messages_fi.js b/client/thirdparty/jquery-validate/localization/messages_fi.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_fi.js rename to client/thirdparty/jquery-validate/localization/messages_fi.js diff --git a/thirdparty/jquery-validate/localization/messages_fi.min.js b/client/thirdparty/jquery-validate/localization/messages_fi.min.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_fi.min.js rename to client/thirdparty/jquery-validate/localization/messages_fi.min.js diff --git a/thirdparty/jquery-validate/localization/messages_fr.js b/client/thirdparty/jquery-validate/localization/messages_fr.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_fr.js rename to client/thirdparty/jquery-validate/localization/messages_fr.js diff --git a/thirdparty/jquery-validate/localization/messages_fr.min.js b/client/thirdparty/jquery-validate/localization/messages_fr.min.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_fr.min.js rename to client/thirdparty/jquery-validate/localization/messages_fr.min.js diff --git a/thirdparty/jquery-validate/localization/messages_gl.js b/client/thirdparty/jquery-validate/localization/messages_gl.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_gl.js rename to client/thirdparty/jquery-validate/localization/messages_gl.js diff --git a/thirdparty/jquery-validate/localization/messages_gl.min.js b/client/thirdparty/jquery-validate/localization/messages_gl.min.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_gl.min.js rename to client/thirdparty/jquery-validate/localization/messages_gl.min.js diff --git a/thirdparty/jquery-validate/localization/messages_he.js b/client/thirdparty/jquery-validate/localization/messages_he.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_he.js rename to client/thirdparty/jquery-validate/localization/messages_he.js diff --git a/thirdparty/jquery-validate/localization/messages_he.min.js b/client/thirdparty/jquery-validate/localization/messages_he.min.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_he.min.js rename to client/thirdparty/jquery-validate/localization/messages_he.min.js diff --git a/thirdparty/jquery-validate/localization/messages_hr.js b/client/thirdparty/jquery-validate/localization/messages_hr.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_hr.js rename to client/thirdparty/jquery-validate/localization/messages_hr.js diff --git a/thirdparty/jquery-validate/localization/messages_hr.min.js b/client/thirdparty/jquery-validate/localization/messages_hr.min.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_hr.min.js rename to client/thirdparty/jquery-validate/localization/messages_hr.min.js diff --git a/thirdparty/jquery-validate/localization/messages_hu.js b/client/thirdparty/jquery-validate/localization/messages_hu.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_hu.js rename to client/thirdparty/jquery-validate/localization/messages_hu.js diff --git a/thirdparty/jquery-validate/localization/messages_hu.min.js b/client/thirdparty/jquery-validate/localization/messages_hu.min.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_hu.min.js rename to client/thirdparty/jquery-validate/localization/messages_hu.min.js diff --git a/thirdparty/jquery-validate/localization/messages_id.js b/client/thirdparty/jquery-validate/localization/messages_id.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_id.js rename to client/thirdparty/jquery-validate/localization/messages_id.js diff --git a/thirdparty/jquery-validate/localization/messages_id.min.js b/client/thirdparty/jquery-validate/localization/messages_id.min.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_id.min.js rename to client/thirdparty/jquery-validate/localization/messages_id.min.js diff --git a/thirdparty/jquery-validate/localization/messages_is.js b/client/thirdparty/jquery-validate/localization/messages_is.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_is.js rename to client/thirdparty/jquery-validate/localization/messages_is.js diff --git a/thirdparty/jquery-validate/localization/messages_is.min.js b/client/thirdparty/jquery-validate/localization/messages_is.min.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_is.min.js rename to client/thirdparty/jquery-validate/localization/messages_is.min.js diff --git a/thirdparty/jquery-validate/localization/messages_it.js b/client/thirdparty/jquery-validate/localization/messages_it.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_it.js rename to client/thirdparty/jquery-validate/localization/messages_it.js diff --git a/thirdparty/jquery-validate/localization/messages_it.min.js b/client/thirdparty/jquery-validate/localization/messages_it.min.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_it.min.js rename to client/thirdparty/jquery-validate/localization/messages_it.min.js diff --git a/thirdparty/jquery-validate/localization/messages_ja.js b/client/thirdparty/jquery-validate/localization/messages_ja.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_ja.js rename to client/thirdparty/jquery-validate/localization/messages_ja.js diff --git a/thirdparty/jquery-validate/localization/messages_ja.min.js b/client/thirdparty/jquery-validate/localization/messages_ja.min.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_ja.min.js rename to client/thirdparty/jquery-validate/localization/messages_ja.min.js diff --git a/thirdparty/jquery-validate/localization/messages_ka.js b/client/thirdparty/jquery-validate/localization/messages_ka.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_ka.js rename to client/thirdparty/jquery-validate/localization/messages_ka.js diff --git a/thirdparty/jquery-validate/localization/messages_ka.min.js b/client/thirdparty/jquery-validate/localization/messages_ka.min.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_ka.min.js rename to client/thirdparty/jquery-validate/localization/messages_ka.min.js diff --git a/thirdparty/jquery-validate/localization/messages_kk.js b/client/thirdparty/jquery-validate/localization/messages_kk.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_kk.js rename to client/thirdparty/jquery-validate/localization/messages_kk.js diff --git a/thirdparty/jquery-validate/localization/messages_kk.min.js b/client/thirdparty/jquery-validate/localization/messages_kk.min.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_kk.min.js rename to client/thirdparty/jquery-validate/localization/messages_kk.min.js diff --git a/thirdparty/jquery-validate/localization/messages_ko.js b/client/thirdparty/jquery-validate/localization/messages_ko.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_ko.js rename to client/thirdparty/jquery-validate/localization/messages_ko.js diff --git a/thirdparty/jquery-validate/localization/messages_ko.min.js b/client/thirdparty/jquery-validate/localization/messages_ko.min.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_ko.min.js rename to client/thirdparty/jquery-validate/localization/messages_ko.min.js diff --git a/thirdparty/jquery-validate/localization/messages_lt.js b/client/thirdparty/jquery-validate/localization/messages_lt.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_lt.js rename to client/thirdparty/jquery-validate/localization/messages_lt.js diff --git a/thirdparty/jquery-validate/localization/messages_lt.min.js b/client/thirdparty/jquery-validate/localization/messages_lt.min.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_lt.min.js rename to client/thirdparty/jquery-validate/localization/messages_lt.min.js diff --git a/thirdparty/jquery-validate/localization/messages_lv.js b/client/thirdparty/jquery-validate/localization/messages_lv.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_lv.js rename to client/thirdparty/jquery-validate/localization/messages_lv.js diff --git a/thirdparty/jquery-validate/localization/messages_lv.min.js b/client/thirdparty/jquery-validate/localization/messages_lv.min.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_lv.min.js rename to client/thirdparty/jquery-validate/localization/messages_lv.min.js diff --git a/thirdparty/jquery-validate/localization/messages_my.js b/client/thirdparty/jquery-validate/localization/messages_my.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_my.js rename to client/thirdparty/jquery-validate/localization/messages_my.js diff --git a/thirdparty/jquery-validate/localization/messages_my.min.js b/client/thirdparty/jquery-validate/localization/messages_my.min.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_my.min.js rename to client/thirdparty/jquery-validate/localization/messages_my.min.js diff --git a/thirdparty/jquery-validate/localization/messages_nl.js b/client/thirdparty/jquery-validate/localization/messages_nl.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_nl.js rename to client/thirdparty/jquery-validate/localization/messages_nl.js diff --git a/thirdparty/jquery-validate/localization/messages_nl.min.js b/client/thirdparty/jquery-validate/localization/messages_nl.min.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_nl.min.js rename to client/thirdparty/jquery-validate/localization/messages_nl.min.js diff --git a/thirdparty/jquery-validate/localization/messages_no.js b/client/thirdparty/jquery-validate/localization/messages_no.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_no.js rename to client/thirdparty/jquery-validate/localization/messages_no.js diff --git a/thirdparty/jquery-validate/localization/messages_no.min.js b/client/thirdparty/jquery-validate/localization/messages_no.min.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_no.min.js rename to client/thirdparty/jquery-validate/localization/messages_no.min.js diff --git a/thirdparty/jquery-validate/localization/messages_pl.js b/client/thirdparty/jquery-validate/localization/messages_pl.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_pl.js rename to client/thirdparty/jquery-validate/localization/messages_pl.js diff --git a/thirdparty/jquery-validate/localization/messages_pl.min.js b/client/thirdparty/jquery-validate/localization/messages_pl.min.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_pl.min.js rename to client/thirdparty/jquery-validate/localization/messages_pl.min.js diff --git a/thirdparty/jquery-validate/localization/messages_pt_BR.js b/client/thirdparty/jquery-validate/localization/messages_pt_BR.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_pt_BR.js rename to client/thirdparty/jquery-validate/localization/messages_pt_BR.js diff --git a/thirdparty/jquery-validate/localization/messages_pt_BR.min.js b/client/thirdparty/jquery-validate/localization/messages_pt_BR.min.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_pt_BR.min.js rename to client/thirdparty/jquery-validate/localization/messages_pt_BR.min.js diff --git a/thirdparty/jquery-validate/localization/messages_pt_PT.js b/client/thirdparty/jquery-validate/localization/messages_pt_PT.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_pt_PT.js rename to client/thirdparty/jquery-validate/localization/messages_pt_PT.js diff --git a/thirdparty/jquery-validate/localization/messages_pt_PT.min.js b/client/thirdparty/jquery-validate/localization/messages_pt_PT.min.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_pt_PT.min.js rename to client/thirdparty/jquery-validate/localization/messages_pt_PT.min.js diff --git a/thirdparty/jquery-validate/localization/messages_ro.js b/client/thirdparty/jquery-validate/localization/messages_ro.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_ro.js rename to client/thirdparty/jquery-validate/localization/messages_ro.js diff --git a/thirdparty/jquery-validate/localization/messages_ro.min.js b/client/thirdparty/jquery-validate/localization/messages_ro.min.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_ro.min.js rename to client/thirdparty/jquery-validate/localization/messages_ro.min.js diff --git a/thirdparty/jquery-validate/localization/messages_ru.js b/client/thirdparty/jquery-validate/localization/messages_ru.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_ru.js rename to client/thirdparty/jquery-validate/localization/messages_ru.js diff --git a/thirdparty/jquery-validate/localization/messages_ru.min.js b/client/thirdparty/jquery-validate/localization/messages_ru.min.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_ru.min.js rename to client/thirdparty/jquery-validate/localization/messages_ru.min.js diff --git a/thirdparty/jquery-validate/localization/messages_si.js b/client/thirdparty/jquery-validate/localization/messages_si.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_si.js rename to client/thirdparty/jquery-validate/localization/messages_si.js diff --git a/thirdparty/jquery-validate/localization/messages_si.min.js b/client/thirdparty/jquery-validate/localization/messages_si.min.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_si.min.js rename to client/thirdparty/jquery-validate/localization/messages_si.min.js diff --git a/thirdparty/jquery-validate/localization/messages_sk.js b/client/thirdparty/jquery-validate/localization/messages_sk.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_sk.js rename to client/thirdparty/jquery-validate/localization/messages_sk.js diff --git a/thirdparty/jquery-validate/localization/messages_sk.min.js b/client/thirdparty/jquery-validate/localization/messages_sk.min.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_sk.min.js rename to client/thirdparty/jquery-validate/localization/messages_sk.min.js diff --git a/thirdparty/jquery-validate/localization/messages_sl.js b/client/thirdparty/jquery-validate/localization/messages_sl.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_sl.js rename to client/thirdparty/jquery-validate/localization/messages_sl.js diff --git a/thirdparty/jquery-validate/localization/messages_sl.min.js b/client/thirdparty/jquery-validate/localization/messages_sl.min.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_sl.min.js rename to client/thirdparty/jquery-validate/localization/messages_sl.min.js diff --git a/thirdparty/jquery-validate/localization/messages_sr.js b/client/thirdparty/jquery-validate/localization/messages_sr.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_sr.js rename to client/thirdparty/jquery-validate/localization/messages_sr.js diff --git a/thirdparty/jquery-validate/localization/messages_sr.min.js b/client/thirdparty/jquery-validate/localization/messages_sr.min.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_sr.min.js rename to client/thirdparty/jquery-validate/localization/messages_sr.min.js diff --git a/thirdparty/jquery-validate/localization/messages_sr_lat.js b/client/thirdparty/jquery-validate/localization/messages_sr_lat.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_sr_lat.js rename to client/thirdparty/jquery-validate/localization/messages_sr_lat.js diff --git a/thirdparty/jquery-validate/localization/messages_sr_lat.min.js b/client/thirdparty/jquery-validate/localization/messages_sr_lat.min.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_sr_lat.min.js rename to client/thirdparty/jquery-validate/localization/messages_sr_lat.min.js diff --git a/thirdparty/jquery-validate/localization/messages_sv.js b/client/thirdparty/jquery-validate/localization/messages_sv.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_sv.js rename to client/thirdparty/jquery-validate/localization/messages_sv.js diff --git a/thirdparty/jquery-validate/localization/messages_sv.min.js b/client/thirdparty/jquery-validate/localization/messages_sv.min.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_sv.min.js rename to client/thirdparty/jquery-validate/localization/messages_sv.min.js diff --git a/thirdparty/jquery-validate/localization/messages_th.js b/client/thirdparty/jquery-validate/localization/messages_th.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_th.js rename to client/thirdparty/jquery-validate/localization/messages_th.js diff --git a/thirdparty/jquery-validate/localization/messages_th.min.js b/client/thirdparty/jquery-validate/localization/messages_th.min.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_th.min.js rename to client/thirdparty/jquery-validate/localization/messages_th.min.js diff --git a/thirdparty/jquery-validate/localization/messages_tj.js b/client/thirdparty/jquery-validate/localization/messages_tj.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_tj.js rename to client/thirdparty/jquery-validate/localization/messages_tj.js diff --git a/thirdparty/jquery-validate/localization/messages_tj.min.js b/client/thirdparty/jquery-validate/localization/messages_tj.min.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_tj.min.js rename to client/thirdparty/jquery-validate/localization/messages_tj.min.js diff --git a/thirdparty/jquery-validate/localization/messages_tr.js b/client/thirdparty/jquery-validate/localization/messages_tr.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_tr.js rename to client/thirdparty/jquery-validate/localization/messages_tr.js diff --git a/thirdparty/jquery-validate/localization/messages_tr.min.js b/client/thirdparty/jquery-validate/localization/messages_tr.min.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_tr.min.js rename to client/thirdparty/jquery-validate/localization/messages_tr.min.js diff --git a/thirdparty/jquery-validate/localization/messages_uk.js b/client/thirdparty/jquery-validate/localization/messages_uk.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_uk.js rename to client/thirdparty/jquery-validate/localization/messages_uk.js diff --git a/thirdparty/jquery-validate/localization/messages_uk.min.js b/client/thirdparty/jquery-validate/localization/messages_uk.min.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_uk.min.js rename to client/thirdparty/jquery-validate/localization/messages_uk.min.js diff --git a/thirdparty/jquery-validate/localization/messages_vi.js b/client/thirdparty/jquery-validate/localization/messages_vi.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_vi.js rename to client/thirdparty/jquery-validate/localization/messages_vi.js diff --git a/thirdparty/jquery-validate/localization/messages_vi.min.js b/client/thirdparty/jquery-validate/localization/messages_vi.min.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_vi.min.js rename to client/thirdparty/jquery-validate/localization/messages_vi.min.js diff --git a/thirdparty/jquery-validate/localization/messages_zh.js b/client/thirdparty/jquery-validate/localization/messages_zh.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_zh.js rename to client/thirdparty/jquery-validate/localization/messages_zh.js diff --git a/thirdparty/jquery-validate/localization/messages_zh.min.js b/client/thirdparty/jquery-validate/localization/messages_zh.min.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_zh.min.js rename to client/thirdparty/jquery-validate/localization/messages_zh.min.js diff --git a/thirdparty/jquery-validate/localization/messages_zh_TW.js b/client/thirdparty/jquery-validate/localization/messages_zh_TW.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_zh_TW.js rename to client/thirdparty/jquery-validate/localization/messages_zh_TW.js diff --git a/thirdparty/jquery-validate/localization/messages_zh_TW.min.js b/client/thirdparty/jquery-validate/localization/messages_zh_TW.min.js similarity index 100% rename from thirdparty/jquery-validate/localization/messages_zh_TW.min.js rename to client/thirdparty/jquery-validate/localization/messages_zh_TW.min.js diff --git a/thirdparty/jquery-validate/localization/methods_de.js b/client/thirdparty/jquery-validate/localization/methods_de.js similarity index 100% rename from thirdparty/jquery-validate/localization/methods_de.js rename to client/thirdparty/jquery-validate/localization/methods_de.js diff --git a/thirdparty/jquery-validate/localization/methods_de.min.js b/client/thirdparty/jquery-validate/localization/methods_de.min.js similarity index 100% rename from thirdparty/jquery-validate/localization/methods_de.min.js rename to client/thirdparty/jquery-validate/localization/methods_de.min.js diff --git a/thirdparty/jquery-validate/localization/methods_es_CL.js b/client/thirdparty/jquery-validate/localization/methods_es_CL.js similarity index 100% rename from thirdparty/jquery-validate/localization/methods_es_CL.js rename to client/thirdparty/jquery-validate/localization/methods_es_CL.js diff --git a/thirdparty/jquery-validate/localization/methods_es_CL.min.js b/client/thirdparty/jquery-validate/localization/methods_es_CL.min.js similarity index 100% rename from thirdparty/jquery-validate/localization/methods_es_CL.min.js rename to client/thirdparty/jquery-validate/localization/methods_es_CL.min.js diff --git a/thirdparty/jquery-validate/localization/methods_fi.js b/client/thirdparty/jquery-validate/localization/methods_fi.js similarity index 100% rename from thirdparty/jquery-validate/localization/methods_fi.js rename to client/thirdparty/jquery-validate/localization/methods_fi.js diff --git a/thirdparty/jquery-validate/localization/methods_fi.min.js b/client/thirdparty/jquery-validate/localization/methods_fi.min.js similarity index 100% rename from thirdparty/jquery-validate/localization/methods_fi.min.js rename to client/thirdparty/jquery-validate/localization/methods_fi.min.js diff --git a/thirdparty/jquery-validate/localization/methods_nl.js b/client/thirdparty/jquery-validate/localization/methods_nl.js similarity index 100% rename from thirdparty/jquery-validate/localization/methods_nl.js rename to client/thirdparty/jquery-validate/localization/methods_nl.js diff --git a/thirdparty/jquery-validate/localization/methods_nl.min.js b/client/thirdparty/jquery-validate/localization/methods_nl.min.js similarity index 100% rename from thirdparty/jquery-validate/localization/methods_nl.min.js rename to client/thirdparty/jquery-validate/localization/methods_nl.min.js diff --git a/thirdparty/jquery-validate/localization/methods_pt.js b/client/thirdparty/jquery-validate/localization/methods_pt.js similarity index 100% rename from thirdparty/jquery-validate/localization/methods_pt.js rename to client/thirdparty/jquery-validate/localization/methods_pt.js diff --git a/thirdparty/jquery-validate/localization/methods_pt.min.js b/client/thirdparty/jquery-validate/localization/methods_pt.min.js similarity index 100% rename from thirdparty/jquery-validate/localization/methods_pt.min.js rename to client/thirdparty/jquery-validate/localization/methods_pt.min.js diff --git a/thirdparty/jquery.are-you-sure/jquery.are-you-sure.js b/client/thirdparty/jquery.are-you-sure/jquery.are-you-sure.js similarity index 100% rename from thirdparty/jquery.are-you-sure/jquery.are-you-sure.js rename to client/thirdparty/jquery.are-you-sure/jquery.are-you-sure.js diff --git a/code/Model/UserDefinedFormController.php b/code/Model/UserDefinedFormController.php index 67c6381..45ec878 100644 --- a/code/Model/UserDefinedFormController.php +++ b/code/Model/UserDefinedFormController.php @@ -8,6 +8,7 @@ use SilverStripe\Assets\Upload; use SilverStripe\Control\Controller; use SilverStripe\Control\Email\Email; use SilverStripe\Control\HTTP; +use SilverStripe\Core\Manifest\Module; use SilverStripe\Core\Manifest\ModuleLoader; use SilverStripe\Forms\Form; use SilverStripe\i18n\i18n; @@ -48,37 +49,55 @@ class UserDefinedFormController extends PageController $admin = ModuleLoader::getModule('silverstripe/admin'); // load the css if (!$page->config()->get('block_default_userforms_css')) { - Requirements::css($userforms->getRelativeResourcePath('css/UserForm.css')); + Requirements::css($userforms->getRelativeResourcePath('client/dist/styles/userforms.css')); } // load the jquery if (!$page->config()->get('block_default_userforms_js')) { - $lang = i18n::getData()->languageName(i18n::get_locale()); - - Requirements::javascript($admin->getRelativeResourcePath('thirdparty/jquery/jquery.js')); + Requirements::javascript('//code.jquery.com/jquery-1.7.2.min.js'); Requirements::javascript( - $userforms->getRelativeResourcePath('thirdparty/jquery-validate/jquery.validate.min.js') + $userforms->getRelativeResourcePath('client/thirdparty/jquery-validate/jquery.validate.min.js') ); Requirements::add_i18n_javascript($userforms->getRelativeResourcePath('javascript/lang')); - Requirements::javascript($userforms->getRelativeResourcePath('javascript/UserForm.js')); + Requirements::javascript($userforms->getRelativeResourcePath('client/dist/js/userforms.js')); - // @todo implement the $lang correctly - // Requirements::javascript( - // $userforms->getRelativeResourcePath("thirdparty/jquery-validate/localization/messages_{$lang}.min.js") - // ); - // Requirements::javascript( - // $userforms->getRelativeResourcePath("thirdparty/jquery-validate/localization/methods_{$lang}.min.js") - // ); + $this->addUserFormsValidatei18n($userforms); // Bind a confirmation message when navigating away from a partially completed form. if ($page::config()->get('enable_are_you_sure')) { Requirements::javascript( - $userforms->getRelativeResourcePath('thirdparty/jquery.are-you-sure/jquery.are-you-sure.js') + $userforms->getRelativeResourcePath('client/thirdparty/jquery.are-you-sure/jquery.are-you-sure.js') ); } } } + /** + * Add the necessary jQuery validate i18n translation files, either by locale or by langauge, + * e.g. 'en_NZ' or 'en'. This adds "methods_abc.min.js" as well as "messages_abc.min.js" from the + * jQuery validate thirdparty library. + * + * @param Module $module + */ + protected function addUserFormsValidatei18n(Module $module) + { + $candidates = [ + i18n::getData()->langFromLocale(i18n::config()->get('default_locale')), + i18n::config()->get('default_locale'), + i18n::getData()->langFromLocale(i18n::get_locale()), + i18n::get_locale(), + ]; + + foreach ($candidates as $candidate) { + foreach (['messages', 'methods'] as $candidateType) { + $localisationCandidate = "client/thirdparty/jquery-validate/localization/{$candidateType}_{$candidate}.min.js"; + if ($module->hasResource($localisationCandidate)) { + Requirements::javascript($module->getRelativeResourcePath($localisationCandidate)); + } + } + } + } + /** * Using $UserDefinedForm in the Content area of the page shows * where the form should be rendered into. If it does not exist