wheels 0.0.48 → 0.0.49

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (215) hide show
  1. data/VERSION +1 -1
  2. data/app/controllers/access_control_entries_controller.rb +4 -4
  3. data/app/controllers/external_links_controller.rb +5 -0
  4. data/app/controllers/feedbacks_controller.rb +10 -0
  5. data/app/controllers/menus_controller.rb +2 -0
  6. data/app/controllers/pages_controller.rb +16 -29
  7. data/app/controllers/sitemaps_controller.rb +135 -0
  8. data/app/helpers/application_helper.rb +4 -3
  9. data/app/helpers/external_links_helper.rb +2 -0
  10. data/app/helpers/feedbacks_helper.rb +2 -0
  11. data/app/helpers/menus_helper.rb +2 -0
  12. data/app/helpers/sitemaps_helper.rb +12 -0
  13. data/app/mailers/feedback_mailer.rb +10 -0
  14. data/app/models/ability.rb +2 -1
  15. data/app/models/access_control_entry.rb +17 -15
  16. data/app/models/external_link.rb +4 -0
  17. data/app/models/feedback.rb +13 -0
  18. data/app/models/image.rb +1 -1
  19. data/app/models/menu.rb +4 -0
  20. data/app/models/page.rb +2 -5
  21. data/app/models/sitemap.rb +153 -0
  22. data/app/models/user.rb +7 -1
  23. data/app/validators/email_validator.rb +22 -0
  24. data/app/views/access_control_entries/_form.html.haml +1 -1
  25. data/app/views/access_control_entries/_index.html.haml +3 -3
  26. data/app/views/access_control_entries/_show.html.haml +1 -1
  27. data/app/views/external_links/_fields_for.html.haml +2 -0
  28. data/app/views/external_links/_form.html.haml +18 -0
  29. data/app/views/external_links/_show.html.haml +7 -0
  30. data/app/views/external_links/edit.html.haml +7 -0
  31. data/app/views/external_links/index.html.haml +23 -0
  32. data/app/views/external_links/new.html.haml +5 -0
  33. data/app/views/external_links/show.html.haml +2 -0
  34. data/app/views/feedback_mailer/submit_feedback.html.haml +22 -0
  35. data/app/views/feedbacks/_form.html.haml +37 -0
  36. data/app/views/feedbacks/index.html.haml +27 -0
  37. data/app/views/feedbacks/new.html.haml +5 -0
  38. data/app/views/feedbacks/show.html.haml +19 -0
  39. data/app/views/layouts/application.html.haml +21 -16
  40. data/app/views/layouts/bare.html.haml +2 -0
  41. data/app/views/loadbehind/_view.js.haml +1 -2
  42. data/app/views/menus/_form.html.haml +13 -0
  43. data/app/views/menus/edit.html.haml +7 -0
  44. data/app/views/menus/index.html.haml +19 -0
  45. data/app/views/menus/new.html.haml +5 -0
  46. data/app/views/menus/show.html.haml +7 -0
  47. data/app/views/pages/_child_pages_links.html.haml +1 -1
  48. data/app/views/pages/_control_panel.html.haml +1 -6
  49. data/app/views/pages/_form.html.haml +2 -2
  50. data/app/views/pages/_form_fields.html.haml +7 -2
  51. data/app/views/pages/_show.html.haml +4 -0
  52. data/app/views/pages/create.js.haml +2 -1
  53. data/app/views/pages/destroy.js.haml +3 -0
  54. data/app/views/pages/edit.js.haml +4 -0
  55. data/app/views/pages/index.html.haml +4 -2
  56. data/app/views/pages/index.js.haml +3 -0
  57. data/app/views/pages/new.js.haml +3 -0
  58. data/app/views/pages/show.html.haml +2 -10
  59. data/app/views/pages/show.js.haml +3 -0
  60. data/app/views/pages/update.js.haml +2 -2
  61. data/app/views/sitemaps/edit.html.haml +12 -0
  62. data/app/views/sitemaps/edit.js.erb +0 -0
  63. data/app/views/sitemaps/index.html.haml +93 -0
  64. data/app/views/sitemaps/index.json.erb +23 -0
  65. data/app/views/sitemaps/new.html.haml +8 -0
  66. data/app/views/sitemaps/new.js.erb +0 -0
  67. data/app/views/users/edit.html.haml +45 -0
  68. data/db/migrate/{add_fields_to_users.rb → 0010_add_fields_to_users.rb} +0 -0
  69. data/db/migrate/{create_blogs.rb → 0020_create_blogs.rb} +0 -0
  70. data/db/migrate/{create_galleries.rb → 0030_create_galleries.rb} +0 -0
  71. data/db/migrate/{create_images.rb → 0040_create_images.rb} +0 -0
  72. data/db/migrate/{create_profiles.rb → 0050_create_profiles.rb} +0 -0
  73. data/db/migrate/{insert_admin_user_and_roles.rb → 0060_insert_admin_user_and_roles.rb} +0 -0
  74. data/db/migrate/{create_pages.rb → 0070_create_pages.rb} +0 -0
  75. data/db/migrate/{create_forums.rb → 0080_create_forums.rb} +0 -0
  76. data/db/migrate/{create_discussions.rb → 0090_create_discussions.rb} +0 -0
  77. data/db/migrate/{create_forum_messages.rb → 0100_create_forum_messages.rb} +0 -0
  78. data/db/migrate/{create_access_control_entries.rb → 0110_create_access_control_entries.rb} +3 -3
  79. data/db/migrate/{create_attachments.rb → 0120_create_attachments.rb} +0 -4
  80. data/db/migrate/{create_roles.rb → 0130_create_roles.rb} +0 -0
  81. data/db/migrate/0140_create_feedbacks.rb +20 -0
  82. data/db/migrate/0150_create_external_links.rb +14 -0
  83. data/db/migrate/0160_create_sitemaps.rb +17 -0
  84. data/db/migrate/0170_create_menus.rb +14 -0
  85. data/lib/development_mail_interceptor.rb +7 -0
  86. data/lib/generators/wheels/recipes/wheels.rb +18 -12
  87. data/lib/wheels/base.rb +7 -0
  88. data/lib/wheels/routes.rb +8 -3
  89. data/lib/wheels.rb +2 -0
  90. data/public/javascripts/jquery-validate/additional-methods.js +259 -0
  91. data/public/javascripts/jquery-validate/changelog.txt +239 -0
  92. data/public/javascripts/jquery-validate/jquery.validate.js +1146 -0
  93. data/public/javascripts/jquery-validate/jquery.validate.min.js +16 -0
  94. data/public/javascripts/jquery-validate/jquery.validate.pack.js +15 -0
  95. data/public/javascripts/jquery-validate/lib/jquery-1.4.2.js +6240 -0
  96. data/public/javascripts/jquery-validate/lib/jquery.form.js +660 -0
  97. data/public/javascripts/jquery-validate/lib/jquery.js +4376 -0
  98. data/public/javascripts/jquery-validate/lib/jquery.metadata.js +122 -0
  99. data/public/javascripts/jquery-validate/localization/messages_ar.js +24 -0
  100. data/public/javascripts/jquery-validate/localization/messages_bg.js +23 -0
  101. data/public/javascripts/jquery-validate/localization/messages_cn.js +23 -0
  102. data/public/javascripts/jquery-validate/localization/messages_cs.js +23 -0
  103. data/public/javascripts/jquery-validate/localization/messages_da.js +20 -0
  104. data/public/javascripts/jquery-validate/localization/messages_de.js +20 -0
  105. data/public/javascripts/jquery-validate/localization/messages_el.js +24 -0
  106. data/public/javascripts/jquery-validate/localization/messages_es.js +23 -0
  107. data/public/javascripts/jquery-validate/localization/messages_fa.js +23 -0
  108. data/public/javascripts/jquery-validate/localization/messages_fi.js +21 -0
  109. data/public/javascripts/jquery-validate/localization/messages_fr.js +23 -0
  110. data/public/javascripts/jquery-validate/localization/messages_he.js +23 -0
  111. data/public/javascripts/jquery-validate/localization/messages_hu.js +20 -0
  112. data/public/javascripts/jquery-validate/localization/messages_it.js +23 -0
  113. data/public/javascripts/jquery-validate/localization/messages_kk.js +23 -0
  114. data/public/javascripts/jquery-validate/localization/messages_lt.js +23 -0
  115. data/public/javascripts/jquery-validate/localization/messages_lv.js +23 -0
  116. data/public/javascripts/jquery-validate/localization/messages_nl.js +23 -0
  117. data/public/javascripts/jquery-validate/localization/messages_no.js +23 -0
  118. data/public/javascripts/jquery-validate/localization/messages_pl.js +23 -0
  119. data/public/javascripts/jquery-validate/localization/messages_ptbr.js +23 -0
  120. data/public/javascripts/jquery-validate/localization/messages_ptpt.js +23 -0
  121. data/public/javascripts/jquery-validate/localization/messages_ro.js +23 -0
  122. data/public/javascripts/jquery-validate/localization/messages_ru.js +23 -0
  123. data/public/javascripts/jquery-validate/localization/messages_se.js +21 -0
  124. data/public/javascripts/jquery-validate/localization/messages_sk.js +20 -0
  125. data/public/javascripts/jquery-validate/localization/messages_tr.js +23 -0
  126. data/public/javascripts/jquery-validate/localization/messages_tw.js +23 -0
  127. data/public/javascripts/jquery-validate/localization/messages_ua.js +23 -0
  128. data/public/javascripts/jquery-validate/localization/methods_de.js +12 -0
  129. data/public/javascripts/jquery-validate/localization/methods_nl.js +9 -0
  130. data/public/javascripts/jquery-validate/localization/methods_pt.js +9 -0
  131. data/public/javascripts/jquery-validate/todo +172 -0
  132. data/public/javascripts/jquery.cookie.js +96 -0
  133. data/public/javascripts/jquery.filedrop.js +253 -0
  134. data/public/javascripts/jquery.hotkeys.js +99 -0
  135. data/public/javascripts/jquery.js +6240 -0
  136. data/public/javascripts/jquery.jstree.js +3510 -0
  137. data/public/javascripts/jquery.uploadify.js +26 -0
  138. data/public/javascripts/jquery.validate.js +1147 -0
  139. data/public/javascripts/sitemap_jstree.js +329 -0
  140. data/public/javascripts/swfobject.js +4 -0
  141. data/public/jstree/_demo/_dump.sql +20 -0
  142. data/public/jstree/_demo/_inc/__mysql_errors.log +0 -0
  143. data/public/jstree/_demo/_inc/class._database.php +146 -0
  144. data/public/jstree/_demo/_inc/class._database_i.php +152 -0
  145. data/public/jstree/_demo/_inc/class.tree.php +602 -0
  146. data/public/jstree/_demo/_install.txt +6 -0
  147. data/public/jstree/_demo/config.php +14 -0
  148. data/public/jstree/_demo/index.html +262 -0
  149. data/public/jstree/_demo/server.php +69 -0
  150. data/public/jstree/_docs/!style.css +37 -0
  151. data/public/jstree/_docs/_drive.png +0 -0
  152. data/public/jstree/_docs/_html_data.html +2 -0
  153. data/public/jstree/_docs/_json_data.json +4 -0
  154. data/public/jstree/_docs/_search_data.json +6 -0
  155. data/public/jstree/_docs/_search_result.json +1 -0
  156. data/public/jstree/_docs/_xml_flat.xml +12 -0
  157. data/public/jstree/_docs/_xml_nest.xml +18 -0
  158. data/public/jstree/_docs/checkbox.html +148 -0
  159. data/public/jstree/_docs/contextmenu.html +120 -0
  160. data/public/jstree/_docs/cookies.html +96 -0
  161. data/public/jstree/_docs/core.html +622 -0
  162. data/public/jstree/_docs/crrm.html +315 -0
  163. data/public/jstree/_docs/dnd.html +197 -0
  164. data/public/jstree/_docs/hotkeys.html +81 -0
  165. data/public/jstree/_docs/html_data.html +174 -0
  166. data/public/jstree/_docs/index.html +75 -0
  167. data/public/jstree/_docs/json_data.html +240 -0
  168. data/public/jstree/_docs/languages.html +138 -0
  169. data/public/jstree/_docs/search.html +114 -0
  170. data/public/jstree/_docs/sort.html +84 -0
  171. data/public/jstree/_docs/syntax/!script.js +2232 -0
  172. data/public/jstree/_docs/syntax/!style.css +511 -0
  173. data/public/jstree/_docs/syntax/clipboard.swf +0 -0
  174. data/public/jstree/_docs/syntax/help.png +0 -0
  175. data/public/jstree/_docs/syntax/magnifier.png +0 -0
  176. data/public/jstree/_docs/syntax/page_white_code.png +0 -0
  177. data/public/jstree/_docs/syntax/page_white_copy.png +0 -0
  178. data/public/jstree/_docs/syntax/printer.png +0 -0
  179. data/public/jstree/_docs/syntax/wrapping.png +0 -0
  180. data/public/jstree/_docs/themeroller.html +98 -0
  181. data/public/jstree/_docs/themes.html +126 -0
  182. data/public/jstree/_docs/types.html +173 -0
  183. data/public/jstree/_docs/ui.html +188 -0
  184. data/public/jstree/_docs/unique.html +70 -0
  185. data/public/jstree/_docs/xml_data.html +214 -0
  186. data/public/jstree/_lib/jquery.cookie.js +96 -0
  187. data/public/jstree/_lib/jquery.hotkeys.js +99 -0
  188. data/public/jstree/_lib/jquery.js +6240 -0
  189. data/public/jstree/jquery.jstree.js +3510 -0
  190. data/public/jstree/jstree.html +237 -0
  191. data/public/jstree/themes/apple/bg.jpg +0 -0
  192. data/public/jstree/themes/apple/d.png +0 -0
  193. data/public/jstree/themes/apple/dot_for_ie.gif +0 -0
  194. data/public/jstree/themes/apple/style.css +60 -0
  195. data/public/jstree/themes/apple/throbber.gif +0 -0
  196. data/public/jstree/themes/classic/d.png +0 -0
  197. data/public/jstree/themes/classic/dot_for_ie.gif +0 -0
  198. data/public/jstree/themes/classic/style.css +59 -0
  199. data/public/jstree/themes/classic/throbber.gif +0 -0
  200. data/public/jstree/themes/default/d.gif +0 -0
  201. data/public/jstree/themes/default/d.png +0 -0
  202. data/public/jstree/themes/default/style.css +73 -0
  203. data/public/jstree/themes/default/throbber.gif +0 -0
  204. data/public/jstree/themes/default-rtl/d.gif +0 -0
  205. data/public/jstree/themes/default-rtl/d.png +0 -0
  206. data/public/jstree/themes/default-rtl/dots.gif +0 -0
  207. data/public/jstree/themes/default-rtl/style.css +83 -0
  208. data/public/jstree/themes/default-rtl/throbber.gif +0 -0
  209. data/public/stylesheets/sass/dreamy.sass +21 -56
  210. data/public/stylesheets/sass/menu.sass +43 -9
  211. data/public/stylesheets/sass/uploadify.sass +52 -0
  212. data/public/stylesheets/ui-lightness/images/ui-icons_228ef1_256x240.png +0 -0
  213. data/public/stylesheets/ui-lightness/jquery-ui-1.8.4.custom.css +549 -0
  214. data/wheels.gemspec +187 -15
  215. metadata +188 -16
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Translated default messages for the jQuery validation plugin.
3
+ * Locale: PT_PT
4
+ */
5
+ jQuery.extend(jQuery.validator.messages, {
6
+ required: "Campo de preenchimento obrigatório.",
7
+ remote: "Por favor, corrija este campo.",
8
+ email: "Por favor, introduza um endereço eletrónico válido.",
9
+ url: "Por favor, introduza um URL válido.",
10
+ date: "Por favor, introduza uma data válida.",
11
+ dateISO: "Por favor, introduza uma data válida (ISO).",
12
+ number: "Por favor, introduza um número válido.",
13
+ digits: "Por favor, introduza apenas dígitos.",
14
+ creditcard: "Por favor, introduza um número de cartão de crédito válido.",
15
+ equalTo: "Por favor, introduza de novo o mesmo valor.",
16
+ accept: "Por favor, introduza um ficheiro com uma extensão válida.",
17
+ maxlength: jQuery.validator.format("Por favor, não introduza mais do que {0} caracteres."),
18
+ minlength: jQuery.validator.format("Por favor, introduza pelo menos {0} caracteres."),
19
+ rangelength: jQuery.validator.format("Por favor, introduza entre {0} e {1} caracteres."),
20
+ range: jQuery.validator.format("Por favor, introduza um valor entre {0} e {1}."),
21
+ max: jQuery.validator.format("Por favor, introduza um valor menor ou igual a {0}."),
22
+ min: jQuery.validator.format("Por favor, introduza um valor maior ou igual a {0}.")
23
+ });
@@ -0,0 +1,23 @@
1
+ /*
2
+ * Translated default messages for the jQuery validation plugin.
3
+ * Locale: RO
4
+ */
5
+ jQuery.extend(jQuery.validator.messages, {
6
+ required: "Acest câmp este obligatoriu.",
7
+ remote: "Te rugăm să completezi acest câmp.",
8
+ email: "Te rugăm să introduci o adresă de email validă",
9
+ url: "Te rugăm sa introduci o adresă URL validă.",
10
+ date: "Te rugăm să introduci o dată corectă.",
11
+ dateISO: "Te rugăm să introduci o dată (ISO) corectă.",
12
+ number: "Te rugăm să introduci un număr întreg valid.",
13
+ digits: "Te rugăm să introduci doar cifre.",
14
+ creditcard: "Te rugăm să introduci un numar de carte de credit valid.",
15
+ equalTo: "Te rugăm să reintroduci valoarea.",
16
+ accept: "Te rugăm să introduci o valoare cu o extensie validă.",
17
+ maxlength: jQuery.validator.format("Te rugăm să nu introduci mai mult de {0} caractere."),
18
+ minlength: jQuery.validator.format("Te rugăm să introduci cel puțin {0} caractere."),
19
+ rangelength: jQuery.validator.format("Te rugăm să introduci o valoare între {0} și {1} caractere."),
20
+ range: jQuery.validator.format("Te rugăm să introduci o valoare între {0} și {1}."),
21
+ max: jQuery.validator.format("Te rugăm să introduci o valoare egal sau mai mică decât {0}."),
22
+ min: jQuery.validator.format("Te rugăm să introduci o valoare egal sau mai mare decât {0}.")
23
+ });
@@ -0,0 +1,23 @@
1
+ /*
2
+ * Translated default messages for the jQuery validation plugin.
3
+ * Locale: RU
4
+ */
5
+ jQuery.extend(jQuery.validator.messages, {
6
+ required: "Это поле необходимо заполнить.",
7
+ remote: "Пожалуйста, введите правильное значение.",
8
+ email: "Пожалуйста, введите корретный адрес электронной почты.",
9
+ url: "Пожалуйста, введите корректный URL.",
10
+ date: "Пожалуйста, введите корректную дату.",
11
+ dateISO: "Пожалуйста, введите корректную дату в формате ISO.",
12
+ number: "Пожалуйста, введите число.",
13
+ digits: "Пожалуйста, вводите только цифры.",
14
+ creditcard: "Пожалуйста, введите правильный номер кредитной карты.",
15
+ equalTo: "Пожалуйста, введите такое же значение ещё раз.",
16
+ accept: "Пожалуйста, выберите файл с правильным расширением.",
17
+ maxlength: jQuery.validator.format("Пожалуйста, введите не больше {0} символов."),
18
+ minlength: jQuery.validator.format("Пожалуйста, введите не меньше {0} символов."),
19
+ rangelength: jQuery.validator.format("Пожалуйста, введите значение длиной от {0} до {1} символов."),
20
+ range: jQuery.validator.format("Пожалуйста, введите число от {0} до {1}."),
21
+ max: jQuery.validator.format("Пожалуйста, введите число, меньшее или равное {0}."),
22
+ min: jQuery.validator.format("Пожалуйста, введите число, большее или равное {0}.")
23
+ });
@@ -0,0 +1,21 @@
1
+ /*
2
+ * Translated default messages for the jQuery validation plugin.
3
+ * Locale: SE
4
+ */
5
+ jQuery.extend(jQuery.validator.messages, {
6
+ required: "Detta fält är obligatoriskt.",
7
+ maxlength: jQuery.validator.format("Du får ange högst {0} tecken."),
8
+ minlength: jQuery.validator.format("Du måste ange minst {0} tecken."),
9
+ rangelength: jQuery.validator.format("Ange minst {0} och max {1} tecken."),
10
+ email: "Ange en korrekt e-postadress.",
11
+ url: "Ange en korrekt URL.",
12
+ date: "Ange ett korrekt datum.",
13
+ dateISO: "Ange ett korrekt datum (ÅÅÅÅ-MM-DD).",
14
+ number: "Ange ett korrekt nummer.",
15
+ digits: "Ange endast siffror.",
16
+ equalTo: "Ange samma värde igen.",
17
+ range: jQuery.validator.format("Ange ett värde mellan {0} och {1}."),
18
+ max: jQuery.validator.format("Ange ett värde som är större eller lika med {0}."),
19
+ min: jQuery.validator.format("Ange ett värde som är mindre eller lika med {0}."),
20
+ creditcard: "Ange ett korrekt kreditkortsnummer."
21
+ });
@@ -0,0 +1,20 @@
1
+ /*
2
+ * Translated default messages for the jQuery validation plugin.
3
+ * Locale: SK
4
+ */
5
+ jQuery.extend(jQuery.validator.messages, {
6
+ required: "Povinné zadať.",
7
+ maxlength: jQuery.validator.format("Maximálne {0} znakov."),
8
+ minlength: jQuery.validator.format("Minimálne {0} znakov."),
9
+ rangelength: jQuery.validator.format("Minimálne {0} a Maximálne {0} znakov."),
10
+ email: "E-mailová adresa musí byť platná.",
11
+ url: "URL musí byť platný.",
12
+ date: "Musí byť dátum.",
13
+ number: "Musí byť číslo.",
14
+ digits: "Môže obsahovať iba číslice.",
15
+ equalTo: "Dva hodnoty sa musia rovnať.",
16
+ range: jQuery.validator.format("Musí byť medzi {0} a {1}."),
17
+ max: jQuery.validator.format("Nemôže byť viac ako{0}."),
18
+ min: jQuery.validator.format("Nemôže byť menej ako{0}."),
19
+ creditcard: "Číslo platobnej karty musí byť platné."
20
+ });
@@ -0,0 +1,23 @@
1
+ /*
2
+ * Translated default messages for the jQuery validation plugin.
3
+ * Locale: TR
4
+ */
5
+ jQuery.extend(jQuery.validator.messages, {
6
+ required: "Bu alanın doldurulması zorunludur.",
7
+ remote: "Lütfen bu alanı düzeltin.",
8
+ email: "Lütfen geçerli bir e-posta adresi giriniz.",
9
+ url: "Lütfen geçerli bir web adresi (URL) giriniz.",
10
+ date: "Lütfen geçerli bir tarih giriniz.",
11
+ dateISO: "Lütfen geçerli bir tarih giriniz(ISO formatında)",
12
+ number: "Lütfen geçerli bir sayı giriniz.",
13
+ digits: "Lütfen sadece sayısal karakterler giriniz.",
14
+ creditcard: "Lütfen geçerli bir kredi kartı giriniz.",
15
+ equalTo: "Lütfen aynı değeri tekrar giriniz.",
16
+ accept: "Lütfen geçerli uzantıya sahip bir değer giriniz.",
17
+ maxlength: jQuery.validator.format("Lütfen en fazla {0} karakter uzunluğunda bir değer giriniz."),
18
+ minlength: jQuery.validator.format("Lütfen en az {0} karakter uzunluğunda bir değer giriniz."),
19
+ rangelength: jQuery.validator.format("Lütfen en az {0} ve en fazla {1} uzunluğunda bir değer giriniz."),
20
+ range: jQuery.validator.format("Lütfen {0} ile {1} arasında bir değer giriniz."),
21
+ max: jQuery.validator.format("Lütfen {0} değerine eşit ya da daha küçük bir değer giriniz."),
22
+ min: jQuery.validator.format("Lütfen {0} değerine eşit ya da daha büyük bir değer giriniz.")
23
+ });
@@ -0,0 +1,23 @@
1
+ /*
2
+ * Translated default messages for the jQuery validation plugin.
3
+ * Locale: TW (Taiwan - Traditional Chinese)
4
+ */
5
+ jQuery.extend(jQuery.validator.messages, {
6
+ required: "必填",
7
+ remote: "請修正此欄位",
8
+ email: "請輸入正確的電子信箱",
9
+ url: "請輸入合法的URL",
10
+ date: "請輸入合法的日期",
11
+ dateISO: "請輸入合法的日期 (ISO).",
12
+ number: "請輸入數字",
13
+ digits: "請輸入整數",
14
+ creditcard: "請輸入合法的信用卡號碼",
15
+ equalTo: "請重複輸入一次",
16
+ accept: "請輸入有效的後缀字串",
17
+ maxlength: jQuery.validator.format("請輸入長度不大於{0} 的字串"),
18
+ minlength: jQuery.validator.format("請輸入長度不小於 {0} 的字串"),
19
+ rangelength: jQuery.validator.format("請輸入長度介於 {0} 和 {1} 之間的字串"),
20
+ range: jQuery.validator.format("請輸入介於 {0} 和 {1} 之間的數值"),
21
+ max: jQuery.validator.format("請輸入不大於 {0} 的數值"),
22
+ min: jQuery.validator.format("請輸入不小於 {0} 的數值")
23
+ });
@@ -0,0 +1,23 @@
1
+ /*
2
+ * Translated default messages for the jQuery validation plugin.
3
+ * Locale: UA (Ukrainian)
4
+ */
5
+ jQuery.extend(jQuery.validator.messages, {
6
+ required: "Це поле необхідно заповнити.",
7
+ remote: "Будь ласка, введіть правильне значення.",
8
+ email: "Будь ласка, введіть коректну адресу електронної пошти.",
9
+ url: "Будь ласка, введіть коректний URL.",
10
+ date: "Будь ласка, введіть коректну дату.",
11
+ dateISO: "Будь ласка, введіть коректну дату у форматі ISO.",
12
+ number: "Будь ласка, введіть число.",
13
+ digits: "Вводите потрібно лише цифри.",
14
+ creditcard: "Будь ласка, введіть правильний номер кредитної карти.",
15
+ equalTo: "Будь ласка, введіть таке ж значення ще раз.",
16
+ accept: "Будь ласка, виберіть файл з правильним розширенням.",
17
+ maxlength: jQuery.validator.format("Будь ласка, введіть не більше {0} символів."),
18
+ minlength: jQuery.validator.format("Будь ласка, введіть не менше {0} символів."),
19
+ rangelength: jQuery.validator.format("Будь ласка, введіть значення довжиною від {0} до {1} символів."),
20
+ range: jQuery.validator.format("Будь ласка, введіть число від {0} до {1}."),
21
+ max: jQuery.validator.format("Будь ласка, введіть число, менше або рівно {0}."),
22
+ min: jQuery.validator.format("Будь ласка, введіть число, більше або рівно {0}.")
23
+ });
@@ -0,0 +1,12 @@
1
+ /*
2
+ * Localized default methods for the jQuery validation plugin.
3
+ * Locale: DE
4
+ */
5
+ jQuery.extend(jQuery.validator.methods, {
6
+ date: function(value, element) {
7
+ return this.optional(element) || /^\d\d?\.\d\d?\.\d\d\d?\d?$/.test(value);
8
+ },
9
+ number: function(value, element) {
10
+ return this.optional(element) || /^-?(?:\d+|\d{1,3}(?:\.\d{3})+)(?:,\d+)?$/.test(value);
11
+ }
12
+ });
@@ -0,0 +1,9 @@
1
+ /*
2
+ * Localized default methods for the jQuery validation plugin.
3
+ * Locale: NL
4
+ */
5
+ jQuery.extend(jQuery.validator.methods, {
6
+ date: function(value, element) {
7
+ return this.optional(element) || /^\d\d?[\.\/-]\d\d?[\.\/-]\d\d\d?\d?$/.test(value);
8
+ }
9
+ });
@@ -0,0 +1,9 @@
1
+ /*
2
+ * Localized default methods for the jQuery validation plugin.
3
+ * Locale: PT_BR
4
+ */
5
+ jQuery.extend(jQuery.validator.methods, {
6
+ date: function(value, element) {
7
+ return this.optional(element) || /^\d\d?\/\d\d?\/\d\d\d?\d?$/.test(value);
8
+ }
9
+ });
@@ -0,0 +1,172 @@
1
+ 1.3
2
+ ---
3
+
4
+ - checkout datejs.com for a proper date implementation -> complete but very heavy parser, currently overkill
5
+
6
+ - rewrite required-method to use jQuery's extended val() on selects[/radios/checkboxes]
7
+ - consider a field-validator object that encapsulates a single element and all methods working on it
8
+ - export API browser
9
+ - add example/support for other URL schemes like svn://....
10
+ - document min/max/range methods for checkboxes/selects
11
+
12
+ /**
13
+ * Return false, if the element is
14
+ *
15
+ * - some kind of text input and its value is too short
16
+ *
17
+ * - a set of checkboxes has not enough boxes checked
18
+ *
19
+ * - a select and has not enough options selected
20
+ *
21
+ * Works with all kind of text inputs, checkboxes and select.
22
+ *
23
+ * @example <input name="firstname" class="{minLength:5}" />
24
+ * @desc Declares an optional input element with at least 5 characters (or none at all).
25
+ *
26
+ * @example <input name="firstname" class="{required:true,minLength:5}" />
27
+ * @desc Declares an input element that must have at least 5 characters.
28
+ *
29
+ * @example <fieldset>
30
+ * <legend>Spam</legend>
31
+ * <label for="spam_email">
32
+ * <input type="checkbox" id="spam_email" value="email" name="spam" validate="required:true,minLength:2" />
33
+ * Spam via E-Mail
34
+ * </label>
35
+ * <label for="spam_phone">
36
+ * <input type="checkbox" id="spam_phone" value="phone" name="spam" />
37
+ * Spam via Phone
38
+ * </label>
39
+ * <label for="spam_mail">
40
+ * <input type="checkbox" id="spam_mail" value="mail" name="spam" />
41
+ * Spam via Mail
42
+ * </label>
43
+ * <label for="spam" class="error">Please select at least two types of spam.</label>
44
+ * </fieldset>
45
+ * @desc Specifies a group of checkboxes. To validate, at least two checkboxes must be selected.
46
+ *
47
+ * @param Number min
48
+ * @name jQuery.validator.methods.minLength
49
+ * @type Boolean
50
+ * @cat Plugins/Validate/Methods
51
+ */
52
+
53
+ /**
54
+ * Return false, if the element is
55
+ *
56
+ * - some kind of text input and its value is too short or too long
57
+ *
58
+ * - a set of checkboxes has not enough or too many boxes checked
59
+ *
60
+ * - a select and has not enough or too many options selected
61
+ *
62
+ * Works with all kind of text inputs, checkboxes and selects.
63
+ *
64
+ * @example <input name="firstname" class="{rangeLength:[3,5]}" />
65
+ * @desc Declares an optional input element with at least 3 and at most 5 characters (or none at all).
66
+ *
67
+ * @example <input name="firstname" class="{required:true,rangeLength:[3,5]}" />
68
+ * @desc Declares an input element that must have at least 3 and at most 5 characters.
69
+ *
70
+ * @example <select id="cars" class="{required:true,rangeLength:[2,3]}" multiple="multiple">
71
+ * <option value="m_sl">Mercedes SL</option>
72
+ * <option value="o_c">Opel Corsa</option>
73
+ * <option value="vw_p">VW Polo</option>
74
+ * <option value="t_s">Titanic Skoda</option>
75
+ * </select>
76
+ * @desc Specifies a select that must have at least two but no more than three options selected.
77
+ *
78
+ * @param Array<Number> min/max
79
+ * @name jQuery.validator.methods.rangeLength
80
+ * @type Boolean
81
+ * @cat Plugins/Validate/Methods
82
+ */
83
+
84
+ - document numberOfInvalids and hideErrors
85
+
86
+ /**
87
+ * Returns the number of invalid elements in the form.
88
+ *
89
+ * @example $("#myform").validate({
90
+ * showErrors: function() {
91
+ * $("#summary").html("Your form contains " + this.numberOfInvalids() + " errors, see details below.");
92
+ * this.defaultShowErrors();
93
+ * }
94
+ * });
95
+ * @desc Specifies a custom showErrors callback that updates the number of invalid elements each
96
+ * time the form or a single element is validated.
97
+ *
98
+ * @name jQuery.validator.prototype.numberOfInvalids
99
+ * @type Number
100
+ */
101
+
102
+ /**
103
+ * Hides all error messages in this form.
104
+ *
105
+ * @example var validator = $("#myform").validate();
106
+ * $(".cancel").click(function() {
107
+ * validator.hideErrors();
108
+ * });
109
+ * @desc Specifies a custom showErrors callback that updates the number of invalid elements each
110
+ * time the form or a single element is validated.
111
+ *
112
+ * @name jQuery.validator.prototype.hideErrors
113
+ */
114
+
115
+ - remove deprecated methods
116
+
117
+ - css references
118
+ - http://test5.caribmedia.com/CSS/Secrets/members/michiel/floating-forms.html
119
+ - http://paularmstrongdesigns.com/projects/awesomeform/
120
+ - http://dnevnikeklektika.com/uni-form/
121
+
122
+ - consider validation on page load, disabling required-checks
123
+ - completely rework showErrors: manually settings errors is currently extremely flawed and utterly useless, eg. errors disappear if some other validation is triggered
124
+ - add custom event to remote validation for adding more parameters
125
+
126
+ - document focusInvalid()
127
+ - document validation lifecycle: setup (add event handlers), run validation (prepare form, validate elements, display errors/submit form)
128
+ -> show where the user can hook in via callbacks
129
+
130
+ - AND depedency: specify multiple expressions as an array
131
+
132
+ - add custom events for form and elements instead of more callbacks (additional options/callbacks)
133
+ - beforeValidation: Callback, called before doing any validation
134
+ - beforeSubmit: Callback, called before submitting the form (default submit or calling submitHandler, if specified)
135
+
136
+ - animations!!
137
+ - ajax validation:
138
+ - in combination with autocomplete (mustmatch company name, fill out address details, validate required)
139
+ - validate zip code in comparison to address, if match and state is missing, fill out state
140
+ - strong password check/integration: http://phiras.wordpress.com/2007/04/08/password-strength-meter-a-jquery-plugin/
141
+
142
+ - stop firefox password manager to popup before validation - check mozilla bug tracker?
143
+
144
+ - overload addMethod with a Option-variant:
145
+ $.validator.addMethod({
146
+ name: "custom",
147
+ message: "blablabla",
148
+ parameteres: false,
149
+ handler: function() { ... }
150
+ });
151
+
152
+ Examples:
153
+ - wordpress comment form, make it a drop-in method
154
+ - ajaxForm() integration
155
+ - ajaxSubmit with rules-option, more/less options to ajaxSubmit
156
+ - watermark integration http://digitalbush.com/projects/watermark-input-plugin
157
+ - datepicker integration
158
+ - timepicker integration ( http://labs.perifer.se/timedatepicker/ )
159
+ - integration with CakePHP ( https://trac.cakephp.org/ticket/2359 )
160
+ - integration with tabs: http://www.netix.sk/forms/test.html
161
+ - intergration with rich-text-editors (FCKEditor, Codepress)
162
+ http://www.fyneworks.com/jquery/FCKEditor/
163
+
164
+ 2.0
165
+ ---
166
+ - attachValidation, removeValidation, validate (with UI), valid (without UI)
167
+ - (re)move current addMethod implementation
168
+ - move rules plugin option
169
+ - move metadata support
170
+ - make validate method chainable
171
+ -> provide an accessor for the validator if necessary at all
172
+ - move a few default methods to additionals, eg. dateXXX, creditcard, definitely accept
@@ -0,0 +1,96 @@
1
+ /**
2
+ * Cookie plugin
3
+ *
4
+ * Copyright (c) 2006 Klaus Hartl (stilbuero.de)
5
+ * Dual licensed under the MIT and GPL licenses:
6
+ * http://www.opensource.org/licenses/mit-license.php
7
+ * http://www.gnu.org/licenses/gpl.html
8
+ *
9
+ */
10
+
11
+ /**
12
+ * Create a cookie with the given name and value and other optional parameters.
13
+ *
14
+ * @example $.cookie('the_cookie', 'the_value');
15
+ * @desc Set the value of a cookie.
16
+ * @example $.cookie('the_cookie', 'the_value', { expires: 7, path: '/', domain: 'jquery.com', secure: true });
17
+ * @desc Create a cookie with all available options.
18
+ * @example $.cookie('the_cookie', 'the_value');
19
+ * @desc Create a session cookie.
20
+ * @example $.cookie('the_cookie', null);
21
+ * @desc Delete a cookie by passing null as value. Keep in mind that you have to use the same path and domain
22
+ * used when the cookie was set.
23
+ *
24
+ * @param String name The name of the cookie.
25
+ * @param String value The value of the cookie.
26
+ * @param Object options An object literal containing key/value pairs to provide optional cookie attributes.
27
+ * @option Number|Date expires Either an integer specifying the expiration date from now on in days or a Date object.
28
+ * If a negative value is specified (e.g. a date in the past), the cookie will be deleted.
29
+ * If set to null or omitted, the cookie will be a session cookie and will not be retained
30
+ * when the the browser exits.
31
+ * @option String path The value of the path atribute of the cookie (default: path of page that created the cookie).
32
+ * @option String domain The value of the domain attribute of the cookie (default: domain of page that created the cookie).
33
+ * @option Boolean secure If true, the secure attribute of the cookie will be set and the cookie transmission will
34
+ * require a secure protocol (like HTTPS).
35
+ * @type undefined
36
+ *
37
+ * @name $.cookie
38
+ * @cat Plugins/Cookie
39
+ * @author Klaus Hartl/klaus.hartl@stilbuero.de
40
+ */
41
+
42
+ /**
43
+ * Get the value of a cookie with the given name.
44
+ *
45
+ * @example $.cookie('the_cookie');
46
+ * @desc Get the value of a cookie.
47
+ *
48
+ * @param String name The name of the cookie.
49
+ * @return The value of the cookie.
50
+ * @type String
51
+ *
52
+ * @name $.cookie
53
+ * @cat Plugins/Cookie
54
+ * @author Klaus Hartl/klaus.hartl@stilbuero.de
55
+ */
56
+ jQuery.cookie = function(name, value, options) {
57
+ if (typeof value != 'undefined') { // name and value given, set cookie
58
+ options = options || {};
59
+ if (value === null) {
60
+ value = '';
61
+ options.expires = -1;
62
+ }
63
+ var expires = '';
64
+ if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
65
+ var date;
66
+ if (typeof options.expires == 'number') {
67
+ date = new Date();
68
+ date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
69
+ } else {
70
+ date = options.expires;
71
+ }
72
+ expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
73
+ }
74
+ // CAUTION: Needed to parenthesize options.path and options.domain
75
+ // in the following expressions, otherwise they evaluate to undefined
76
+ // in the packed version for some reason...
77
+ var path = options.path ? '; path=' + (options.path) : '';
78
+ var domain = options.domain ? '; domain=' + (options.domain) : '';
79
+ var secure = options.secure ? '; secure' : '';
80
+ document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
81
+ } else { // only name given, get cookie
82
+ var cookieValue = null;
83
+ if (document.cookie && document.cookie != '') {
84
+ var cookies = document.cookie.split(';');
85
+ for (var i = 0; i < cookies.length; i++) {
86
+ var cookie = jQuery.trim(cookies[i]);
87
+ // Does this cookie string begin with the name we want?
88
+ if (cookie.substring(0, name.length + 1) == (name + '=')) {
89
+ cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
90
+ break;
91
+ }
92
+ }
93
+ }
94
+ return cookieValue;
95
+ }
96
+ };