wheels 0.0.48 → 0.0.49

Sign up to get free protection for your applications and to get access to all the features.
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
+ };