Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Merge branch 'master' into interactions

Conflicts:
	demos/draggable/constrain-movement.html
	demos/draggable/cursor-style.html
	demos/draggable/default.html
	demos/draggable/events.html
	demos/draggable/handle.html
	demos/draggable/revert.html
	demos/draggable/visual-feedback.html
	demos/droppable/default.html
	grunt.js
	tests/unit/draggable/draggable.html
	tests/unit/draggable/draggable_core.js
	tests/unit/draggable/draggable_options.js
	tests/unit/draggable/draggable_test_helpers.js
	tests/unit/droppable/droppable.html
	tests/unit/droppable/droppable_options.js
	ui/draggable.js
	ui/jquery.ui.droppable.js
	ui/sortable.js
  • Loading branch information...
commit c15481eeb1806938ce2b3adfa1866e5a8a78fa31 2 parents 7a1fdb9 + 390e440
@mikesherov mikesherov authored
Showing with 134,413 additions and 10,415 deletions.
  1. +11 −0 .csslintrc
  2. +1 −7 .gitignore
  3. +3 −0  .jscs.json
  4. +8 −3 .jshintrc
  5. +111 −3 .mailmap
  6. +5 −0 .travis.yml
  7. +49 −22 AUTHORS.txt
  8. +26 −148 CONTRIBUTING.md
  9. +231 −0 Gruntfile.js
  10. +1 −1  MIT-LICENSE.txt
  11. +32 −35 README.md
  12. +1 −1  build/core.json
  13. +9 −1 build/effect.json
  14. +227 −30 build/release/release.js
  15. +31 −132 build/tasks/build.js
  16. +28 −22 build/tasks/testswarm.js
  17. +1 −1  build/widget.json
  18. +5 −5 demos/accordion/collapsible.html
  19. +6 −6 demos/accordion/custom-icons.html
  20. +5 −5 demos/accordion/default.html
  21. +7 −7 demos/accordion/fillspace.html
  22. +5 −5 demos/accordion/hoverintent.html
  23. +5 −5 demos/accordion/no-auto-height.html
  24. +7 −7 demos/accordion/sortable.html
  25. +0 −14 demos/addClass/index.html
  26. +0 −14 demos/animate/index.html
  27. +16 −8 demos/autocomplete/categories.html
  28. +20 −18 demos/autocomplete/combobox.html
  29. +8 −8 demos/autocomplete/custom-data.html
  30. +7 −7 demos/autocomplete/default.html
  31. +7 −7 demos/autocomplete/folding.html
  32. BIN  demos/autocomplete/images/jqueryui_32x32.png
  33. BIN  demos/autocomplete/images/sizzlejs_32x32.png
  34. BIN  demos/autocomplete/images/transparent_1x1.png
  35. +7 −7 demos/autocomplete/maxheight.html
  36. +9 −9 demos/autocomplete/multiple-remote.html
  37. +8 −8 demos/autocomplete/multiple.html
  38. +11 −19 demos/autocomplete/remote-jsonp.html
  39. +8 −8 demos/autocomplete/remote-with-cache.html
  40. +8 −8 demos/autocomplete/remote.html
  41. +10 −8 demos/autocomplete/xml.html
  42. +5 −5 demos/button/checkbox.html
  43. +5 −5 demos/button/default.html
  44. +5 −5 demos/button/icons.html
  45. +5 −5 demos/button/radio.html
  46. +7 −7 demos/button/splitbutton.html
  47. +5 −5 demos/button/toolbar.html
  48. +5 −5 demos/datepicker/alt-field.html
  49. +12 −12 demos/datepicker/animation.html
  50. +5 −5 demos/datepicker/buttonbar.html
  51. +5 −5 demos/datepicker/date-formats.html
  52. +5 −5 demos/datepicker/date-range.html
  53. +17 −4 ui/i18n/jquery.ui.datepicker-ar.js → demos/datepicker/datepicker-ar.js
  54. +38 −0 demos/datepicker/datepicker-fr.js
  55. +17 −4 demos/datepicker/{jquery.ui.datepicker-he.js → datepicker-he.js}
  56. +17 −4 demos/datepicker/{jquery.ui.datepicker-zh-TW.js → datepicker-zh-TW.js}
  57. +5 −5 demos/datepicker/default.html
  58. +5 −5 demos/datepicker/dropdown-month-year.html
  59. +5 −5 demos/datepicker/icon-trigger.html
  60. BIN  demos/datepicker/images/calendar.gif
  61. +5 −5 demos/datepicker/inline.html
  62. +0 −25 demos/datepicker/jquery.ui.datepicker-fr.js
  63. +11 −11 demos/datepicker/localization.html
  64. +5 −5 demos/datepicker/min-max.html
  65. +5 −5 demos/datepicker/multiple-calendars.html
  66. +5 −5 demos/datepicker/other-months.html
  67. +5 −5 demos/datepicker/show-week.html
  68. +13 −13 demos/dialog/animated.html
  69. +10 −10 demos/dialog/default.html
  70. +9 −10 demos/dialog/modal-confirmation.html
  71. +11 −11 demos/dialog/modal-form.html
  72. +10 −10 demos/dialog/modal-message.html
  73. +10 −10 demos/dialog/modal.html
  74. +6 −6 demos/draggable/constrain-movement.html
  75. +6 −6 demos/draggable/cursor-style.html
  76. +6 −6 demos/draggable/default.html
  77. +6 −6 demos/draggable/delay-start.html
  78. +6 −6 demos/draggable/events.html
  79. +6 −6 demos/draggable/handle.html
  80. +6 −6 demos/draggable/map.html
  81. +6 −6 demos/draggable/revert.html
  82. +6 −6 demos/draggable/scroll.html
  83. +7 −7 demos/draggable/snap-to.html
  84. +7 −7 demos/draggable/sortable.html
  85. +6 −6 demos/draggable/visual-feedback.html
  86. +7 −7 demos/droppable/accepted-elements.html
  87. +7 −7 demos/droppable/default.html
  88. +10 −10 demos/droppable/photo-manager.html
  89. +7 −7 demos/droppable/propagation.html
  90. +9 −9 demos/droppable/revert.html
  91. +9 −9 demos/droppable/shopping-cart.html
  92. +9 −9 demos/droppable/visual-feedback.html
  93. +3 −3 demos/{addClass/default.html → effect/addClass.html}
  94. +3 −3 demos/{animate/default.html → effect/animate.html}
  95. +18 −16 demos/effect/default.html
  96. +3 −3 demos/effect/easing.html
  97. +14 −14 demos/{hide/default.html → effect/hide.html}
  98. +8 −0 demos/effect/index.html
  99. +3 −3 demos/{removeClass/default.html → effect/removeClass.html}
  100. +14 −14 demos/{show/default.html → effect/show.html}
  101. +3 −3 demos/{switchClass/default.html → effect/switchClass.html}
  102. +14 −14 demos/{toggle/default.html → effect/toggle.html}
  103. +3 −3 demos/{toggleClass/default.html → effect/toggleClass.html}
  104. +0 −14 demos/hide/index.html
  105. BIN  demos/images/calendar.gif
  106. BIN  demos/images/pbar-ani.gif
  107. +10 −9 demos/index.html
  108. +6 −6 demos/interaction/box.html
  109. +5 −5 demos/interaction/default.html
  110. +26 −30 demos/menu/default.html
  111. +16 −15 demos/menu/icons.html
  112. +6 −6 demos/position/cycler.html
  113. +9 −9 demos/position/default.html
  114. +5 −5 demos/progressbar/default.html
  115. +115 −0 demos/progressbar/download.html
  116. BIN  demos/progressbar/images/pbar-ani.gif
  117. +5 −5 demos/progressbar/indeterminate.html
  118. +1 −0  demos/progressbar/index.html
  119. +11 −8 demos/progressbar/label.html
  120. +0 −14 demos/removeClass/index.html
  121. +6 −6 demos/resizable/animate.html
  122. +6 −6 demos/resizable/aspect-ratio.html
  123. +6 −6 demos/resizable/constrain-area.html
  124. +6 −6 demos/resizable/default.html
  125. +7 −7 demos/resizable/delay-start.html
  126. +6 −6 demos/resizable/helper.html
  127. +6 −6 demos/resizable/max-min.html
  128. +6 −6 demos/resizable/snap-to-grid.html
  129. +6 −6 demos/resizable/synchronous-resize.html
  130. +6 −6 demos/resizable/textarea.html
  131. +6 −6 demos/resizable/visual-feedback.html
  132. +6 −6 demos/selectable/default.html
  133. +6 −6 demos/selectable/display-grid.html
  134. +6 −6 demos/selectable/serialize.html
  135. +143 −0 demos/selectmenu/custom_render.html
  136. +104 −0 demos/selectmenu/default.html
  137. BIN  demos/selectmenu/images/24-podcast-square.png
  138. BIN  demos/selectmenu/images/24-rss-square.png
  139. BIN  demos/selectmenu/images/24-video-square.png
  140. +16 −0 demos/selectmenu/index.html
  141. +0 −14 demos/show/index.html
  142. +6 −6 demos/slider/colorpicker.html
  143. +6 −6 demos/slider/default.html
  144. +6 −6 demos/slider/hotelrooms.html
  145. +6 −6 demos/slider/multiple-vertical.html
  146. +6 −6 demos/slider/range-vertical.html
  147. +6 −6 demos/slider/range.html
  148. +6 −6 demos/slider/rangemax.html
  149. +6 −6 demos/slider/rangemin.html
  150. +6 −6 demos/slider/side-scroll.html
  151. +6 −6 demos/slider/slider-vertical.html
  152. +6 −6 demos/slider/steps.html
  153. +8 −8 demos/sortable/connect-lists-through-tabs.html
  154. +6 −6 demos/sortable/connect-lists.html
  155. +6 −6 demos/sortable/default.html
  156. +6 −6 demos/sortable/delay-start.html
  157. +6 −6 demos/sortable/display-grid.html
  158. +6 −6 demos/sortable/empty-lists.html
  159. +6 −6 demos/sortable/items.html
  160. +6 −6 demos/sortable/placeholder.html
  161. +48 −24 demos/sortable/portlets.html
  162. +6 −6 demos/spinner/currency.html
  163. +6 −6 demos/spinner/decimal.html
  164. +7 −7 demos/spinner/default.html
  165. +7 −7 demos/spinner/latlong.html
  166. +6 −6 demos/spinner/overflow.html
  167. +6 −6 demos/spinner/time.html
  168. +0 −14 demos/switchClass/index.html
  169. +5 −5 demos/tabs/ajax.html
  170. +5 −5 demos/tabs/bottom.html
  171. +5 −5 demos/tabs/collapsible.html
  172. +5 −5 demos/tabs/default.html
  173. +9 −9 demos/tabs/manipulation.html
  174. +5 −5 demos/tabs/mouseover.html
  175. +7 −7 demos/tabs/sortable.html
  176. +5 −5 demos/tabs/vertical.html
  177. +0 −14 demos/toggle/index.html
  178. +0 −14 demos/toggleClass/index.html
  179. +8 −8 demos/tooltip/custom-animation.html
  180. +6 −6 demos/tooltip/custom-content.html
  181. +7 −7 demos/tooltip/custom-style.html
  182. +7 −7 demos/tooltip/default.html
  183. +7 −7 demos/tooltip/forms.html
  184. +7 −7 demos/tooltip/tracking.html
  185. +11 −11 demos/tooltip/video-player.html
  186. +7 −7 demos/widget/default.html
  187. +64 −52 external/globalize.js
  188. +59,224 −2,617 external/jshint.js
  189. +0 −346 grunt.js
  190. +9,789 −0 jquery-1.10.2.js
  191. +17 −9 package.json
  192. +32 −27 tests/.jshintrc
  193. +4 −4 tests/index.html
  194. +4,397 −4,194 jquery-1.9.1.js → tests/jquery-1.10.0.js
  195. +9,807 −0 tests/jquery-1.10.1.js
  196. +9,789 −0 tests/jquery-1.10.2.js
  197. +8,755 −0 tests/jquery-2.0.0.js
  198. +8,837 −0 tests/jquery-2.0.1.js
  199. +8,842 −0 tests/jquery-2.0.2.js
  200. +8,829 −0 tests/jquery-2.0.3.js
  201. +1 −1  tests/jquery.js
  202. +7 −3 tests/jquery.simulate.js
  203. +4 −4 tests/unit/accordion/accordion.html
  204. +6 −6 tests/unit/accordion/accordion_core.js
  205. +1 −6 tests/unit/accordion/accordion_events.js
  206. +16 −2 tests/unit/accordion/accordion_methods.js
  207. +1 −1  tests/unit/accordion/all.html
  208. +2 −2 tests/unit/all.html
  209. +1 −1  tests/unit/autocomplete/all.html
  210. +8 −8 tests/unit/autocomplete/autocomplete.html
  211. +165 −15 tests/unit/autocomplete/autocomplete_core.js
  212. +97 −47 tests/unit/autocomplete/autocomplete_options.js
  213. +5 −1 tests/unit/autocomplete/remote_object_array_labels.txt
  214. +5 −1 tests/unit/autocomplete/remote_object_array_values.txt
  215. +1 −1  tests/unit/autocomplete/remote_string_array.txt
  216. +1 −1  tests/unit/button/all.html
  217. +6 −4 tests/unit/button/button.html
  218. +51 −0 tests/unit/button/button_core.js
  219. +1 −1  tests/unit/button/button_methods.js
  220. +18 −11 tests/unit/button/button_options.js
  221. +1 −1  tests/unit/core/all.html
  222. +1 −12 tests/unit/core/core.html
  223. +6 −19 tests/unit/core/core.js
  224. +136 −0 tests/unit/core/core_deprecated.html
  225. +24 −0 tests/unit/core/core_deprecated.js
  226. +1 −1  tests/unit/datepicker/all.html
  227. +6 −6 tests/unit/datepicker/datepicker.html
  228. +222 −157 tests/unit/datepicker/datepicker_core.js
  229. +167 −133 tests/unit/datepicker/datepicker_options.js
  230. +8 −3 tests/unit/datepicker/datepicker_test_helpers.js
  231. BIN  tests/unit/datepicker/images/calendar.gif
  232. +1 −1  tests/unit/dialog/all.html
  233. +15 −13 tests/unit/dialog/dialog.html
  234. +1 −1  tests/unit/dialog/dialog_common.js
  235. +82 −14 tests/unit/dialog/dialog_core.js
  236. +0 −67 tests/unit/dialog/dialog_deprecated.html
  237. +0 −63 tests/unit/dialog/dialog_deprecated.js
  238. +2 −2 tests/unit/dialog/dialog_events.js
  239. +30 −10 tests/unit/dialog/dialog_methods.js
  240. +1 −1  tests/unit/dialog/dialog_options.js
  241. +1 −1  tests/unit/draggable/all.html
  242. +55 −12 tests/unit/draggable/draggable.html
  243. +235 −34 tests/unit/draggable/draggable_core.js
  244. +1 −1  tests/unit/draggable/draggable_events.js
  245. +13 −9 tests/unit/draggable/draggable_methods.js
  246. +349 −455 tests/unit/draggable/draggable_options.js
  247. +79 −38 tests/unit/draggable/draggable_test_helpers.js
  248. +1 −1  tests/unit/droppable/all.html
  249. +6 −6 tests/unit/droppable/droppable.html
  250. +46 −14 tests/unit/droppable/droppable_methods.js
  251. +60 −31 tests/unit/droppable/droppable_options.js
  252. +1 −1  tests/unit/effects/all.html
  253. +16 −14 tests/unit/effects/effects.html
  254. +1 −4 tests/unit/effects/effects_core.js
  255. +4 −3 tests/unit/index.html
  256. +1 −1  tests/unit/menu/all.html
  257. +211 −169 tests/unit/menu/menu.html
  258. +2 −1  tests/unit/menu/menu_common.js
  259. +31 −0 tests/unit/menu/menu_core.js
  260. +72 −26 tests/unit/menu/menu_events.js
  261. +14 −1 tests/unit/menu/menu_methods.js
  262. +10 −16 tests/unit/menu/menu_options.js
  263. +1 −1  tests/unit/menu/menu_test_helpers.js
  264. +1 −1  tests/unit/position/all.html
  265. +1 −1  tests/unit/position/position.html
  266. +17 −4 tests/unit/position/position_core.js
  267. +1 −1  tests/unit/progressbar/all.html
  268. +4 −4 tests/unit/progressbar/progressbar.html
  269. +10 −0 tests/unit/progressbar/progressbar_methods.js
  270. +1 −1  tests/unit/resizable/all.html
  271. +27 −5 tests/unit/resizable/resizable.html
  272. +48 −0 tests/unit/resizable/resizable_core.js
  273. +47 −0 tests/unit/resizable/resizable_events.js
  274. +13 −4 tests/unit/resizable/resizable_methods.js
  275. +68 −1 tests/unit/resizable/resizable_options.js
  276. +1 −1  tests/unit/selectable/all.html
  277. +5 −5 tests/unit/selectable/selectable.html
  278. +11 −12 tests/unit/selectable/selectable_events.js
  279. +21 −15 tests/unit/selectable/selectable_methods.js
  280. +30 −0 tests/unit/selectmenu/all.html
  281. +91 −0 tests/unit/selectmenu/selectmenu.html
  282. +23 −0 tests/unit/selectmenu/selectmenu_common.js
  283. +267 −0 tests/unit/selectmenu/selectmenu_core.js
  284. +135 −0 tests/unit/selectmenu/selectmenu_events.js
  285. +169 −0 tests/unit/selectmenu/selectmenu_methods.js
  286. +99 −0 tests/unit/selectmenu/selectmenu_options.js
  287. +1 −1  tests/unit/slider/all.html
  288. +5 −5 tests/unit/slider/slider.html
  289. +0 −3  tests/unit/slider/slider_core.js
  290. +0 −3  tests/unit/slider/slider_events.js
  291. +2 −4 tests/unit/slider/slider_methods.js
  292. +18 −6 tests/unit/slider/slider_options.js
  293. +1 −1  tests/unit/sortable/all.html
  294. +25 −7 tests/unit/sortable/sortable.html
  295. +0 −1  tests/unit/sortable/sortable_common.js
  296. +38 −1 tests/unit/sortable/sortable_core.js
  297. +33 −13 tests/unit/sortable/sortable_events.js
  298. +18 −17 tests/unit/sortable/sortable_methods.js
  299. +194 −25 tests/unit/sortable/sortable_options.js
  300. +1 −1  tests/unit/spinner/all.html
Sorry, we could not display the entire diff because too many files (603) changed.
View
11 .csslintrc
@@ -0,0 +1,11 @@
+{
+ "adjoining-classes": false,
+ "box-model": false,
+ "compatible-vendor-prefixes": false,
+ "duplicate-background-images": false,
+ "import": false,
+ "important": false,
+ "outline-none": false,
+ "overqualified-elements": false,
+ "text-indent": false
+}
View
8 .gitignore
@@ -1,9 +1,3 @@
dist
node_modules
-docs
-.project
-*~
-*.diff
-*.patch
-.DS_Store
-.settings
+.sizecache.json
View
3  .jscs.json
@@ -0,0 +1,3 @@
+{
+ "preset": "jquery"
+}
View
11 .jshintrc
@@ -1,12 +1,17 @@
{
+ "boss": true,
"curly": true,
- "eqnull": true,
"eqeqeq": true,
+ "eqnull": true,
"expr": true,
+ "immed": true,
"noarg": true,
- "node": true,
"onevar": true,
+ "quotmark": "double",
+ "smarttabs": true,
"trailing": true,
"undef": true,
- "unused": true
+ "unused": true,
+
+ "node": true
}
View
114 .mailmap
@@ -1,6 +1,114 @@
+Aaron Peterson <aaronp123@yahoo.com>
+Adam Baratz <adam@adambaratz.com> <adam.baratz@gmail.com>
+Adam Sontag <ajpiano@ajpiano.com>
+Alexander Polomoshnov <alex.polomoshnov@gmail.com>
+Aliaksandr Rahalevich <saksmlz@gmail.com>
+Andrew Couch <andy@couchand.com> <acouch@bluewolf.com>
+Andrew Newcomb <ext.github@preceptsoftware.co.uk>
+Andrew Powell <andrew@shellscape.org> <andrew@shellcape.org>
+Andrew Powell <andrew@shellscape.org> <powella@gmail.com>
+Andrey Kapitcyn <ru.m157y@gmail.com>
+Ben Hollis <bhollis@amazon.com> <ben@benhollis.net>
+Benjamin Scott Boyle <benjamins.boyle@gmail.com>
+Bert ter Heide <bertjh@hotmail.com>
+Bjørn Johansen <post@bjornjohansen.no> <bjorn.johansen@metronet.no>
+Chairat Sunthornwiphat <pipo@sixhead.com>
+Christoph Rönsch <christoph.roensch@arcor.de>
+Corey Frang <gnarf37@gmail.com> <gnarf@gnarf.net>
+Courtland Allen <courtlandallen@gmail.com>
+Dan Streetman <ddstreet@ieee.org>
+Danny Trunk <dtrunk90@gmail.com> <dtrunk90@googlemail.com>
+David De Sloovere <david.desloovere@outlook.com> <david.desloovere@hotmail.com>
+David Murdoch <david@davidmurdoch.com> <musicisair@yahoo.com>
+Diego Tres <diegotres@gmail.com>
+Dominique Vincent <dominique.vincent@toitl.com>
+Doug Blood <dougblood@gmail.com>
+Douglas Cerna <douglascerna@yahoo.com> <replaceafill@system76.(none)>
+Douglas Neiner <doug@dougneiner.com> <doug@pixelgraphics.us>
+Douglas Neiner <doug@dougneiner.com> <doug@Doug-Neiners-MacBook-Pro.local>
+Dylan Just <dev@ephox.com>
+Eddie Monge <eddie@eddiemonge.com>
+Edward A Faulkner <ef@alum.mit.edu>
+Eric Hynds <eric@hynds.net>
+Ethan Romba <ethanromba@gmail.com> <ethan.romba@parivedasolutions.com>
+EungJun Yi <semtlenori@gmail.com>
+Eyal Kobrigo <kobrigo@hotmail.com>
+Filippo Cavallarin <filippo.cavallarin@codseq.it> <poplix@papuasia.org>
+Florian Gutmann <f.gutmann@chronimo.com> <blackfeet@gmx.at>
+Genie <386@mail.com>
+Guntupalli Karunakar <karunakarg@yahoo.com>
+Heiko Henning <heiko@thehennings.ch> <h.henning@educa.ch>
+Hiroshi Tomita <tomykaira@gmail.com>
+Ian Simpson <spoonlikesham@gmail.com>
+Igor Milla <igor.fsp.milla@gmail.com>
+Israel Tsadok <itsadok@gmail.com>
+Jacek Jędrzejewski <jacek.jedrzejewski@gmail.com>
+Jamie Gegerson <git@jamiegegerson.com>
+Jason Oster <jay@kodewerx.org> <jay@loyalize.com>
+Jay Merrifield <fracmak@gmail.com> <merrifieldj@pixia.com>
+Jean-Francois Remy <jeff@melix.org> <jfremy@virtuoz.com>
+Jyoti Deka <dekajp@gmail.com> <dekajp@yahoo.com>
+John Enters <github@darkdark.net>
+Jonathan Vingiano <jvingiano@gmail.com>
+Josh Varner <josh.varner@gmail.com>
+Justin Domnitz <jdomnitz@gmail.com>
+Justin MacCarthy <Justin@Rubystars.biz>
+Jörn Zaefferer <joern.zaefferer@gmail.com>
+Karl Kirch <karlkrch@gmail.com> <karl.ctr.kirch@faa.gov>
+Keith Wood <kbwood@iinet.com.au> <kbwood.au@gmail.com>
+Kevin Dalman <development@allpro.net>
+Klaus Hartl <klaus.hartl@gmail.com> <klaus.hartl@googlemail.com>
+Klaus Hartl <klaus.hartl@gmail.com> <klaus.hartl@stilbuero.de>
Kris Borchers <kris.borchers@gmail.com>
Kris Borchers <kris.borchers@gmail.com> <k_borchers@yahoo.com>
-Corey Frang <gnarf@gnarf.net>
-Maggie Costello Wachs <fg.maggie@gmail.com> maggiewachs <maggie@filamentgroup.com>
+Krzysztof Rosiński <rozwell69@gmail.com>
+Lev Kitsis <spam4lev@gmail.com>
+Maciej Mroziński <maciej.k.mrozinski@gmail.com> <mrozik87@gmail.com>
+Maggie Wachs <maggie@filamentgroup.com>
+Maggie Wachs <maggie@filamentgroup.com> <fg.maggie@gmail.com>
+Marc Neuwirth <marc.neuwirth@gmail.com>
+Marcos Sousa <falecomigo@marcossousa.com> <marcos.sousa@corp.globo.com>
+Martin Frost <martinf55@hotmail.com>
+Mathias Stenbom <mathias@stenbom.com>
+Matt Hoskins <matt@nipltd.com> <furlined@cat-basket.org>
+Matthew Edward Hutton <meh@corefiling.co.uk>
+Max Schnur <max.schnur@gmail.com>
+Michael Hollis <hollis21@gmail.com>
+Michael Stay <metaweta@gmail.com>
+Michael Wu <michaelmwu@gmail.com>
+Mike Alsup <malsup@gmail.com>
+Milan Broum <midlis@googlemail.com>
+Mohamed Cherif Bouchelaghem <cherifbouchelaghem@yahoo.fr> <cherif@cherif.(none)>
+Monika Piotrowicz <monika.piotrowicz@gmail.com> <monika@shopify.com>
+Nick Pierpoint <nick.pierpoint@tidalsand.com>
+Ondrej Novy <novy@ondrej.org>
+Paul Bakaus <paul.bakaus@gmail.com> <paul.bakaus@googlemail.com>
+Paul Irish <paul.irish@gmail.com>
+Pavol Hluchý <lopo@losys.sk>
+Peter Heiberg <peter@heiberg.se>
+Petr Hromadko <yuriy@tokyoscale.com>
+Phillip Barnes <philbar@gmail.com> <phillipbarnes@Phillip-Barnes-Computer.local>
+Pierre-Henri Ausseil <ph.ausseil@gmail.com>
+Raymond Schwartz <skeetergraphics@gmail.com>
Richard Worth <rdworth@gmail.com>
-Jörn Zaefferer <joern.zaefferer@gmail.com>
+Rick Waldron <waldron.rick@gmail.com>
+Ryan Neufeld <ryan@neufeldmail.com>
+Ryan Olton <oltonr@gmail.com>
+Saji Nediyanchath <saji89@gmail.com> Saji <saji@saji-laptop.(none)>
+Scott Jehl <scottjehl@gmail.com> <scott@scottjehl.com>
+Sebastian Sauer <info@dynpages.de>
+Sergey Kartashov <ebishkek@yandex.ru>
+Shahyar Ghobadpour <shahyar@gmail.com>
+Shane Whittet <whittet@gmail.com>
+Shannon Pekary <spekary@gmail.com>
+Simon Sattes <simon.sattes@gmail.com>
+Stojce Slavkovski <stojce@gmail.com>
+Tarafder Ashek-E-Elahi <mail.ashek@gmail.com>
+Thibault Duplessis <thibault.duplessis@gmail.com>
+Thomas Jaggi <thomas@responsive.ch> <thomas.jaggi@gmail.com>
+Ting Kuei <ting@kuei.com>
+Todd Parker <todd@filamentgroup.com> <fg.todd@gmail.com>
+Wesley Walser <waw325@gmail.com> <wwalser@atlassian.com>
+Xavi Ramirez <xavi.rmz@gmail.com>
+Yuriy Khabarov <13real008@gmail.com> <yuriy@tokyoscale.com>
+Ziling Zhao <zilingzhao@gmail.com> <zizhao@cisco.com>
View
5 .travis.yml
@@ -0,0 +1,5 @@
+language: node_js
+node_js:
+ - "0.8"
+before_script:
+ - npm install -g grunt-cli
View
71 AUTHORS.txt
@@ -1,20 +1,20 @@
Authors ordered by first contribution
A list of current team members is available at http://jqueryui.com/about
-Paul Bakaus <paul.bakaus@googlemail.com>
+Paul Bakaus <paul.bakaus@gmail.com>
Richard Worth <rdworth@gmail.com>
Yehuda Katz <wycats@gmail.com>
Sean Catchpole <sean@sunsean.com>
John Resig <jeresig@gmail.com>
Tane Piper <piper.tane@gmail.com>
Dmitri Gaskin <dmitrig01@gmail.com>
-Klaus Hartl <klaus.hartl@googlemail.com>
+Klaus Hartl <klaus.hartl@gmail.com>
Stefan Petre <stefan.petre@gmail.com>
Gilles van den Hoven <gilles@webunity.nl>
Micheil Bryan Smith <micheil@brandedcode.com>
Jörn Zaefferer <joern.zaefferer@gmail.com>
Marc Grabanski <m@marcgrabanski.com>
-Keith Wood <kbwood.au@gmail.com>
+Keith Wood <kbwood@iinet.com.au>
Brandon Aaron <brandon.aaron@gmail.com>
Scott González <scott.gonzalez@gmail.com>
Eduardo Lundgren <eduardolundgren@gmail.com>
@@ -27,12 +27,12 @@ David Bolter <david.bolter@gmail.com>
Chi Cheng <cloudream@gmail.com>
Ca-Phun Ung <pazu2k@gmail.com>
Ariel Flesler <aflesler@gmail.com>
-Maggie Costello Wachs <fg.maggie@gmail.com>
+Maggie Wachs <maggie@filamentgroup.com>
Scott Jehl <scott@scottjehl.com>
-Todd Parker <fg.todd@gmail.com>
-Andrew Powell <powella@gmail.com>
+Todd Parker <todd@filamentgroup.com>
+Andrew Powell <andrew@shellscape.org>
Brant Burnett <btburnett3@gmail.com>
-Douglas Neiner <doug@pixelgraphics.us>
+Douglas Neiner <doug@dougneiner.com>
Paul Irish <paul.irish@gmail.com>
Ralph Whitbeck <ralph.whitbeck@gmail.com>
Thibault Duplessis <thibault.duplessis@gmail.com>
@@ -79,16 +79,16 @@ Phillip Barnes <philbar@gmail.com>
Kyle Wilkinson <kai@wikyd.org>
Khaled AlHourani <me@khaledalhourani.com>
Marian Rudzynski <mr@impaled.org>
-Jean-Francois Remy <jfremy@virtuoz.com>
-Doug Blood <dougblood@gmail.com>
+Jean-Francois Remy <jeff@melix.org>
+Doug Blood
Filippo Cavallarin <filippo.cavallarin@codseq.it>
-Heiko Henning <h.henning@educa.ch>
+Heiko Henning <heiko@thehennings.ch>
Aliaksandr Rahalevich <saksmlz@gmail.com>
Mario Visic <mario@mariovisic.com>
Xavi Ramirez <xavi.rmz@gmail.com>
Max Schnur <max.schnur@gmail.com>
Saji Nediyanchath <saji89@gmail.com>
-Corey Frang <gnarf@gnarf.net>
+Corey Frang <gnarf37@gmail.com>
Aaron Peterson <aaronp123@yahoo.com>
Ivan Peters <ivan@ivanpeters.com>
Mohamed Cherif Bouchelaghem <cherifbouchelaghem@yahoo.fr>
@@ -106,7 +106,7 @@ Adam Parod <mystic414@gmail.com>
Guillaume Gautreau <guillaume+github@ghusse.com>
Marcel Toele <EleotleCram@gmail.com>
Dan Streetman <ddstreet@ieee.org>
-Matt Hoskins <furlined@cat-basket.org>
+Matt Hoskins <matt@nipltd.com>
Giovanni Giacobbi <giovanni@giacobbi.net>
Kyle Florence <kyle.florence@gmail.com>
Pavol Hluchý <lopo@losys.sk>
@@ -124,7 +124,7 @@ Israel Tsadok <itsadok@gmail.com>
Carson McDonald <carson@ioncannon.net>
Jason Davies <jason@jasondavies.com>
Garrison Locke <gplocke@gmail.com>
-David Murdoch <musicisair@yahoo.com>
+David Murdoch <david@davidmurdoch.com>
Benjamin Scott Boyle <benjamins.boyle@gmail.com>
Jesse Baird <jebaird@gmail.com>
Jonathan Vingiano <jvingiano@gmail.com>
@@ -150,11 +150,10 @@ Marwan Al Jubeh <marwan.aljubeh@gmail.com>
Milan Broum <midlis@googlemail.com>
Sebastian Sauer <info@dynpages.de>
Gaëtan Muller <m.gaetan89@gmail.com>
-Michel Weimerskirch <michel@weimerskirch.net>
William Griffiths <william@ycymro.com>
Stojce Slavkovski <stojce@gmail.com>
David Soms <david.soms@gmail.com>
-David De Sloovere <david.desloovere@hotmail.com>
+David De Sloovere <david.desloovere@outlook.com>
Michael P. Jung <michael.jung@terreon.de>
Shannon Pekary <spekary@gmail.com>
Matthew Edward Hutton <meh@corefiling.co.uk>
@@ -168,12 +167,12 @@ Genie <386@mail.com>
Rick Waldron <waldron.rick@gmail.com>
Ian Simpson <spoonlikesham@gmail.com>
Lev Kitsis <spam4lev@gmail.com>
-Ted VanToll <tj.vantoll@gmail.com>
+TJ VanToll <tj.vantoll@gmail.com>
Justin Domnitz <jdomnitz@gmail.com>
Douglas Cerna <douglascerna@yahoo.com>
Bert ter Heide <bertjh@hotmail.com>
Jasvir Nagra <jasvir@gmail.com>
-Petr Hromadko <yuriy@tokyoscale.com>
+Yuriy Khabarov <13real008@gmail.com>
Harri Kilpiö <harri.kilpio@gmail.com>
Lado Lomidze <lado.lomidze@gmail.com>
Amir E. Aharoni <amir.aharoni@mail.huji.ac.il>
@@ -198,7 +197,7 @@ Lee Rowlands <lee.rowlands@previousnext.com.au>
Timmy Willison <timmywillisn@gmail.com>
Karl Swedberg <kswedberg@gmail.com>
Baoju Yuan <the_guy_1987@hotmail.com>
-Maciej Mroziński <mrozik87@gmail.com>
+Maciej Mroziński <maciej.k.mrozinski@gmail.com>
Luis Dalmolin <luis.nh@gmail.com>
Mark Aaron Shirley <maspwr@gmail.com>
Martin Hoch <martin@fidion.de>
@@ -216,8 +215,8 @@ Marc-Andre Lafortune <github@marc-andre.ca>
Nate Eagle <nate.eagle@teamaol.com>
David Souther <davidsouther@gmail.com>
Mathias Stenbom <mathias@stenbom.com>
-Avinash R <nashpapa@gmail.com>
Sergey Kartashov <ebishkek@yandex.ru>
+Avinash R <nashpapa@gmail.com>
Ethan Romba <ethanromba@gmail.com>
Cory Gackenheimer <cory.gack@gmail.com>
Juan Pablo Kaniefsky <jpkaniefsky@gmail.com>
@@ -226,13 +225,41 @@ Anika Henke <anika@selfthinker.org>
Samuel Bovée <samycookie2000@yahoo.fr>
Fabrício Matté <ult_combo@hotmail.com>
Viktor Kojouharov <vkojouharov@gmail.com>
-Pawel Maruszczyk <lord_t@o2.pl>
+Pawel Maruszczyk (http://hrabstwo.net)
Pavel Selitskas <p.selitskas@gmail.com>
-Bjørn Johansen <bjorn.johansen@metronet.no>
+Bjørn Johansen <post@bjornjohansen.no>
Matthieu Penant <thieum22@hotmail.com>
Dominic Barnes <dominic@dbarnes.info>
David Sullivan <david.sullivan@gmail.com>
-Thomas Jaggi <thomas.jaggi@gmail.com>
+Thomas Jaggi <thomas@responsive.ch>
Vahid Sohrabloo <vahid4134@gmail.com>
Travis Carden <travis.carden@gmail.com>
Bruno M. Custódio <bruno@brunomcustodio.com>
+Nathanael Silverman <nathanael.silverman@gmail.com>
+Christian Wenz <christian@wenz.org>
+Steve Urmston <steve@urm.st>
+Zaven Muradyan <megalivoithos@gmail.com>
+Woody Gilk <shadowhand@deviantart.com>
+Zbigniew Motyka <zbigniew.motyka@gmail.com>
+Suhail Alkowaileet <xsoh.k7@gmail.com>
+Toshi MARUYAMA <marutosijp2@yahoo.co.jp>
+David Hansen <hansede@gmail.com>
+Brian Grinstead <briangrinstead@gmail.com>
+Christian Klammer <christian314159@gmail.com>
+Steven Luscher <jquerycla@steveluscher.com>
+Gan Eng Chin <engchin.gan@gmail.com>
+Gabriel Schulhof <gabriel.schulhof@intel.com>
+Alexander Schmitz <arschmitz@gmail.com>
+Vilhjálmur Skúlason <vis@dmm.is>
+Siebrand Mazeland <s.mazeland@xs4all.nl>
+Mohsen Ekhtiari <mohsenekhtiari@yahoo.com>
+Pere Orga <gotrunks@gmail.com>
+Jasper de Groot <mail@ugomobi.com>
+Stephane Deschamps <stephane.deschamps@gmail.com>
+Jyoti Deka <dekajp@gmail.com>
+Andrei Picus <office.nightcrawler@gmail.com>
+Ondrej Novy <novy@ondrej.org>
+Jacob McCutcheon <jacob.mccutcheon@gmail.com>
+Monika Piotrowicz <monika.piotrowicz@gmail.com>
+Imants Horsts <imants.horsts@inbox.lv>
+Eric Dahl <eric.c.dahl@gmail.com>
View
174 CONTRIBUTING.md
@@ -1,89 +1,36 @@
# Contributing to jQuery UI
-1. [Getting Involved](#getting-involved)
-2. [Discussion](#discussion)
-3. [How To Report Bugs](#how-to-report-bugs)
-4. [jQuery UI Coding Standards](#jquery-ui-coding-standards)
-5. [Tips For Bug Patching](#tips-for-bug-patching)
+Welcome! Thanks for your interest in contributing to jQuery UI. Most of our information on how to contribute to this and all other jQuery Foundation projects is over at [contribute.jquery.org](http://contribute.jquery.org). You'll definitely want to take a look at the articles on contributing [code](http://contribute.jquery.org/code).
+You may also want to take a look at our [commit & pull request guide](http://contribute.jquery.org/commits-and-pull-requests/) and [style guides](http://contribute.jquery.org/style-guide/) for instructions on how to maintain your fork and submit your code. Before we can merge any pull request, we'll also need you to sign our [contributor license agreement](http://contribute.jquery.org/cla).
+You can find us on [IRC](http://irc.jquery.org), specifically in #jqueryui-dev should you have any questions. If you've never contributed to open source before, we've put together [a short guide with tips, tricks, and ideas on getting started](http://contribute.jquery.org/open-source/). For other forms of discussion and support, please see the [jQuery UI support center](http://jqueryui.com/support/).
## Getting Involved
There are a number of ways to get involved with the development of jQuery UI. Even if you've never contributed code to an Open Source project before, we're always looking for help identifying bugs, writing and reducing test cases and documentation.
-This is the best way to contribute to jQuery UI. Please read through the full guide detailing [How to Report Bugs](#how-to-report-bugs).
+This is the best way to contribute to jQuery UI. Please read through the full guide detailing [How to Report Bugs](http://contribute.jquery.org/bug-reports/).
-## Discussion
+### Weekly Meetings
-### Forum and IRC
-
-The jQuery UI development team frequently tracks posts on the [Developing jQuery UI Forum](http://forum.jquery.com/developing-jquery-ui). If you have longer posts or questions please feel free to post them there. If you think you've found a bug please [file it in the bug tracker](#how-to-report-bugs).
-
-Additionally most of the jQuery UI development team can be found in the [#jqueryui-dev](http://webchat.freenode.net/?channels=jqueryui-dev) IRC channel on irc.freenode.net.
-
-### Weekly Status Meetings
-
-Every week (unless otherwise noted) the jQuery UI dev team has a meeting to discuss the progress of current work and to bring forward possible new blocker bugs for discussion.
-
-The meeting is held in the [#jquery-meeting](http://webchat.freenode.net/?channels=jquery-meeting) IRC channel on irc.freenode.net at [Noon EST](http://www.timeanddate.com/worldclock/fixedtime.html?month=1&day=17&year=2011&hour=12&min=0&sec=0&p1=43) on Wednesdays.
-
-Past Meeting Notes:
-[2008 - 2011](https://docs.google.com/spreadsheet/ccc?key=0AusvKVL7jmFUcHVBQk9tMUxkRGl0emVwZGdLd0QtUlE),
-[2012 - current](https://docs.google.com/spreadsheet/ccc?key=0ArIM4UVbwE-3dFg1T0k4VlE1bF82Nm9tbW90cVNxN0E)
-
-
-## How to Report Bugs
-
-### Make sure it is a jQuery UI bug
-
-Many bugs reported to our bug tracker are actually bugs in user code, not in jQuery UI code. Keep in mind that just because your code throws an error and the console points to a line number inside of jQuery or jQuery UI, this does *not* mean the bug is a jQuery UI bug.
-
-If you are new to jQuery and/or jQuery UI, it is usually a much better idea to ask for help first in the [Using jQuery Forum](http://forum.jquery.com/using-jquery), the [Using jQuery UI Forum](http://forum.jquery.com/using-jquery-ui) or the [jQuery IRC channel](http://webchat.freenode.net/?channels=%23jquery). You will get much quicker support, and you will help avoid tying up the jQuery UI team with invalid bug reports. These same resources can also be useful if you want to confirm that your bug is indeed a bug in jQuery UI before filing any tickets.
-
-
-### Disable any browser extensions
-
-Make sure you have reproduced the bug with all browser extensions and add-ons disabled, as these can sometimes cause things to break in interesting and unpredictable ways. Try using incognito, stealth or anonymous browsing modes.
-
-
-### Try the latest version of jQuery UI
-
-Bugs in old versions of jQuery UI may have already been fixed. In order to avoid reporting known issues, make sure you are always testing against the latest stable release.
-
-### Try an older version of jQuery UI
-
-Sometimes, bugs are introduced in newer versions of jQuery UI that do not exist in previous versions. When possible, it can be useful to try testing with an older release.
-
-### Reduce, reduce, reduce!
-
-When you are experiencing a problem, the most useful thing you can possibly do is to [reduce your code](http://webkit.org/quality/reduction.html) to the bare minimum required to reproduce the issue. This makes it *much* easier to isolate and fix the offending code. Bugs that are reported without reduced test cases generally take much longer to fix than bugs that are submitted with them, so you really should try to do this if at all possible.
-
-## jQuery UI Coding Standards
-
-See: [jQuery UI Coding Standards](http://wiki.jqueryui.com/w/page/12137737/Coding%20standards)
+Every week (unless otherwise noted) the jQuery UI team has a meeting to discuss the progress of current work and to bring forward possible new blockers for discussion. The meeting is held on [IRC](http://irc.jquery.org) in the #jquery-meeting channel at [Noon EST](http://www.timeanddate.com/worldclock/fixedtime.html?month=1&day=17&year=2011&hour=12&min=0&sec=0&p1=43) on Wednesdays. Meeting notes are posted on http://meetings.jquery.org/category/ui/ after each meeting.
## Tips For Bug Patching
+### Environment: localhost w/ PHP, Node.js & Grunt
-### Environment: localhost w/ PHP, Node & Grunt
-
-jQuery UI uses node & gruntjs to automate the building and validation of source code.
+jQuery UI uses Node.js & Grunt to automate the building and validation of source code.
Some tests depend on PHP running locally, so make sure you have the following installed:
-* Some kind of localhost server program that supports PHP (any will do)
-* Node.js
-* NPM (comes with the latest version of Node.js)
-* Grunt (install with: `npm install grunt -g`
-
-
-Maintaining a list of platform specific instructions is outside of the scope of this document and there is plenty of existing documentation for the above technologies.
-
+* A web server with PHP support (any will do, such as [XAMPP](http://www.apachefriends.org/en/xampp.html) or [MAMP](http://www.mamp.info/en/index.html))
+* [Node.js](http://nodejs.org/) (includes NPM, necessary for the next step)
+* Grunt (install with: `npm install -g grunt`
### Build a Local Copy of jQuery UI
-Create a fork of the jQuery UI repo on github at http://github.com/jquery/jquery-ui
+Create a fork of the jQuery UI repo on GitHub at http://github.com/jquery/jquery-ui.
Change directory to your web root directory, whatever that might be:
@@ -91,115 +38,46 @@ Change directory to your web root directory, whatever that might be:
$ cd /path/to/your/www/root/
```
-Clone your jQuery UI fork to work locally
+Clone your jQuery UI fork to work locally.
+
+*Note: be sure to replace `[USERNAME]` with your GitHub username.*
```bash
-$ git clone git@github.com:username/jquery-ui.git
+$ git clone git@github.com:[USERNAME]/jquery-ui.git
```
-Change directory to the newly created dir jquery-ui/
+Change to the newly created directory.
```bash
$ cd jquery-ui
```
-Add the jQuery master as a remote. I label mine "upstream"
+Add the official jQuery repository as a remote. We recommend naming it "upstream".
```bash
$ git remote add upstream git://github.com/jquery/jquery-ui.git
```
-Get in the habit of pulling in the "upstream" master to stay up to date as jQuery UI receives new commits
+Get in the habit of pulling in the "upstream" master to stay up to date as jQuery UI receives new commits.
```bash
$ git pull upstream master
```
-To lint the JavaScript, HTML, and CSS, as well as run a smoke test in PhantomJS, run grunt:
+Install the dependencies.
```bash
-$ grunt
+npm install
```
-To run the tests for a specific plugin in your browser, open the approriate file from the /tests/unit/ directory, for example: http://localhost/tests/unit/accordion/accordion.html. The domain will be dependent on your local server configuation; if there is a port, be sure to include it.
-
-Success! You just tested jQuery UI!
-
-
-### Fix a bug from a ticket filed at bugs.jqueryui.com:
-
-**NEVER write your patches to the master branch** - it gets messy (I say this from experience!)
-
-**ALWAYS USE A "TOPIC" BRANCH!** Like so (#### = the ticket #)...
-
-Make sure you start with your up-to-date master:
-
-```bash
-$ git checkout master
-```
-
-Create and checkout a new branch that includes the ticket #
-
-```bash
-$ git checkout -b bug_####
-
-# ( Explanation: this useful command will:
-# "checkout" a "-b" (branch) by the name of "bug_####"
-# or create it if it doesn't exist )
-```
-
-Now you're on branch: bug_####
-
-Determine the file you'll be working in...
-
-Open up the corresponding /tests/unit/?????.js and add the initial failing unit tests. This may seem awkward at first, but in the long run it will make sense. To truly and efficiently patch a bug, you need to be working against that bug.
-
-Next, open the source files and make your changes
-
-Run http://localhost/tests/unit/???? --> **ALL TESTS MUST PASS**
-
-Once you're satisfied with your patch...
-
-Stage the files to be tracked:
-
-```bash
-$ git add filename
-# (you can use "git status" to list the files you've changed)
-```
-
-
-( I recommend NEVER, EVER using "git add . " )
-
-Once you've staged all of your changed files, go ahead and commit them
-
-```bash
-$ git commit -m "Component: Brief description of fix. Fixes #0000 - Ticket description."
-```
-
-See the [commit message style guide](http://wiki.jqueryui.com/w/page/25941597/Commit%20Message%20Style%20Guide) for more details on how to format your commit message.
-
-For a multiple line commit message, leave off the `-m "description"`.
-
-You will then be led into vi (or the text editor that you have set up) to complete your commit message.
-
-Then, push your branch with the bug fix commits to your github fork
-
-```bash
-$ git push origin -u bug_####
-```
-
-Before you tackle your next bug patch, return to the master:
+To lint the JavaScript, HTML, and CSS, as well as run a smoke test in PhantomJS, run grunt:
```bash
-$ git checkout master
+$ grunt
```
+To run the tests for a specific plugin in your browser, open the approriate file from the `/tests/unit/` directory, for example: `http://localhost/tests/unit/accordion/accordion.html`. The domain will be dependent on your local server configuation; if there is a port, be sure to include it.
+Ideally you would test in all of our [supported browsers](http://jqueryui.com/browser-support/), but if you don't have all of these browsers available, that's ok.
-### jQuery UI supports the following browsers:
-
-* Chrome Current-1
-* Safari Current-1
-* Firefox Current-1
-* Opera Current-1
-* IE 7+
+Make sure to read our [commits and pull requests documentation](http://dev.contribute.jquery.org/commits-and-pull-requests/) for full details on working with branches and forks, as well as our commit guidelines.
View
231 Gruntfile.js
@@ -0,0 +1,231 @@
+module.exports = function( grunt ) {
+
+"use strict";
+
+var
+ // files
+ coreFiles = [
+ "core.js",
+ "widget.js",
+ "mouse.js",
+ "interaction.js",
+ "draggable.js",
+ "droppable.js",
+ "resizable.js",
+ "selectable.js",
+ "sortable.js",
+ "effect.js"
+ ],
+
+ uiFiles = coreFiles.map(function( file ) {
+ return "ui/" + file;
+ }).concat( expandFiles( "ui/*.js" ).filter(function( file ) {
+ return coreFiles.indexOf( file.substring( 3 ) ) === -1;
+ }) ),
+
+ allI18nFiles = expandFiles( "ui/i18n/*.js" ),
+
+ cssFiles = [
+ "core",
+ "accordion",
+ "autocomplete",
+ "button",
+ "datepicker",
+ "dialog",
+ "menu",
+ "progressbar",
+ "resizable",
+ "selectable",
+ "selectmenu",
+ "slider",
+ "spinner",
+ "tabs",
+ "tooltip",
+ "theme"
+ ].map(function( component ) {
+ return "themes/base/" + component + ".css";
+ }),
+
+ // minified files
+ minify = {
+ options: {
+ preserveComments: false
+ },
+ main: {
+ options: {
+ banner: createBanner( uiFiles )
+ },
+ files: {
+ "dist/jquery-ui.min.js": "dist/jquery-ui.js"
+ }
+ },
+ i18n: {
+ options: {
+ banner: createBanner( allI18nFiles )
+ },
+ files: {
+ "dist/i18n/jquery-ui-i18n.min.js": "dist/i18n/jquery-ui-i18n.js"
+ }
+ }
+ },
+
+ compareFiles = {
+ all: [
+ "dist/jquery-ui.js",
+ "dist/jquery-ui.min.js"
+ ]
+ };
+
+function mapMinFile( file ) {
+ return "dist/" + file.replace( /\.js$/, ".min.js" ).replace( /ui\//, "minified/" );
+}
+
+function expandFiles( files ) {
+ return grunt.util._.pluck( grunt.file.expandMapping( files ), "src" ).map(function( values ) {
+ return values[ 0 ];
+ });
+}
+
+uiFiles.concat( allI18nFiles ).forEach(function( file ) {
+ minify[ file ] = {
+ options: {
+ banner: createBanner()
+ },
+ files: {}
+ };
+ minify[ file ].files[ mapMinFile( file ) ] = file;
+});
+
+uiFiles.forEach(function( file ) {
+ // TODO this doesn't do anything until https://github.com/rwldrn/grunt-compare-size/issues/13
+ compareFiles[ file ] = [ file, mapMinFile( file ) ];
+});
+
+// grunt plugins
+grunt.loadNpmTasks( "grunt-contrib-jshint" );
+grunt.loadNpmTasks( "grunt-contrib-uglify" );
+grunt.loadNpmTasks( "grunt-contrib-concat" );
+grunt.loadNpmTasks( "grunt-contrib-qunit" );
+grunt.loadNpmTasks( "grunt-contrib-csslint" );
+grunt.loadNpmTasks( "grunt-jscs-checker" );
+grunt.loadNpmTasks( "grunt-html" );
+grunt.loadNpmTasks( "grunt-compare-size" );
+grunt.loadNpmTasks( "grunt-git-authors" );
+grunt.loadNpmTasks( "grunt-esformatter" );
+// local testswarm and build tasks
+grunt.loadTasks( "build/tasks" );
+
+function stripDirectory( file ) {
+ return file.replace( /.+\/(.+?)>?$/, "$1" );
+}
+
+function createBanner( files ) {
+ // strip folders
+ var fileNames = files && files.map( stripDirectory );
+ return "/*! <%= pkg.title || pkg.name %> - v<%= pkg.version %> - " +
+ "<%= grunt.template.today('isoDate') %>\n" +
+ "<%= pkg.homepage ? '* ' + pkg.homepage + '\\n' : '' %>" +
+ (files ? "* Includes: " + fileNames.join(", ") + "\n" : "") +
+ "* Copyright <%= grunt.template.today('yyyy') %> <%= pkg.author.name %>;" +
+ " Licensed <%= _.pluck(pkg.licenses, 'type').join(', ') %> */\n";
+}
+
+grunt.initConfig({
+ pkg: grunt.file.readJSON( "package.json" ),
+ files: {
+ dist: "<%= pkg.name %>-<%= pkg.version %>"
+ },
+ compare_size: compareFiles,
+ concat: {
+ ui: {
+ options: {
+ banner: createBanner( uiFiles ),
+ stripBanners: {
+ block: true
+ }
+ },
+ src: uiFiles,
+ dest: "dist/jquery-ui.js"
+ },
+ i18n: {
+ options: {
+ banner: createBanner( allI18nFiles )
+ },
+ src: allI18nFiles,
+ dest: "dist/i18n/jquery-ui-i18n.js"
+ },
+ css: {
+ options: {
+ banner: createBanner( cssFiles ),
+ stripBanners: {
+ block: true
+ }
+ },
+ src: cssFiles,
+ dest: "dist/jquery-ui.css"
+ }
+ },
+ jscs: {
+ // datepicker, sortable, resizable and draggable are getting rewritten, ignore until that's done
+ ui: [ "ui/*.js", "!ui/datepicker.js", "!ui/sortable.js", "!ui/resizable.js", "!ui/draggable.js" ],
+ // TODO enable this once we have a tool that can help with fixing formatting of existing files
+ // tests: "tests/unit/**/*.js",
+ grunt: "Gruntfile.js"
+ },
+ uglify: minify,
+ htmllint: {
+ // ignore files that contain invalid html, used only for ajax content testing
+ all: grunt.file.expand( [ "demos/**/*.html", "tests/**/*.html" ] ).filter(function( file ) {
+ return !/(?:ajax\/content\d\.html|tabs\/data\/test\.html|tests\/unit\/core\/core.*\.html)/.test( file );
+ })
+ },
+ qunit: {
+ files: expandFiles( "tests/unit/**/*.html" ).filter(function( file ) {
+ // disabling everything that doesn't (quite) work with PhantomJS for now
+ // TODO except for all|index|test, try to include more as we go
+ return !( /(all|index|test|dialog|tooltip)\.html$/ ).test( file );
+ })
+ },
+ jshint: {
+ options: {
+ jshintrc: true
+ },
+ all: [
+ "ui/*.js",
+ "Gruntfile.js",
+ "build/**/*.js",
+ "tests/unit/**/*.js"
+ ]
+ },
+ csslint: {
+ base_theme: {
+ src: "themes/base/*.css",
+ options: {
+ csslintrc: ".csslintrc"
+ }
+ }
+ },
+
+ esformatter: {
+ options: {
+ preset: "jquery"
+ },
+ ui: "ui/*.js",
+ tests: "tests/unit/**/*.js",
+ build: {
+ options: {
+ skipHashbang: true
+ },
+ src: "build/**/*.js"
+ },
+ grunt: "Gruntfile.js"
+ }
+});
+
+grunt.registerTask( "default", [ "lint", "test" ]);
+grunt.registerTask( "lint", [ "asciilint", "jshint", "jscs", "csslint", "htmllint" ]);
+grunt.registerTask( "test", [ "qunit" ]);
+grunt.registerTask( "sizer", [ "concat:ui", "uglify:main", "compare_size:all" ]);
+grunt.registerTask( "sizer_all", [ "concat:ui", "uglify", "compare_size" ]);
+
+};
View
2  MIT-LICENSE.txt
@@ -1,4 +1,4 @@
-Copyright 2013 jQuery Foundation and other contributors,
+Copyright 2014 jQuery Foundation and other contributors,
http://jqueryui.com/
This software consists of voluntary contributions made by many
View
67 README.md
@@ -1,16 +1,16 @@
-[jQuery UI](http://jqueryui.com/) - Interactions and Widgets for the web
-================================
+# [jQuery UI](http://jqueryui.com/) - Interactions and Widgets for the web
-jQuery UI provides interactions like Drag and Drop and widgets like Autocomplete, Tabs and Slider and makes these as easy to use as jQuery itself.
+jQuery UI is a curated set of user interface interactions, effects, widgets, and themes built on top of jQuery. Whether you're building highly interactive web applications, or you just need to add a date picker to a form control, jQuery UI is the perfect choice.
-If you want to use jQuery UI, go to [jqueryui.com](http://jqueryui.com) to get started. Or visit the [Using jQuery UI Forum](http://forum.jquery.com/using-jquery-ui) for discussions and questions.
+If you want to use jQuery UI, go to [jqueryui.com](http://jqueryui.com) to get started, [jqueryui.com/demos/](http://jqueryui.com/demos/) for demos, [api.jqueryui.com](http://api.jqueryui.com/) for API documentation, or the [Using jQuery UI Forum](http://forum.jquery.com/using-jquery-ui) for discussions and questions.
+
+If you want to report a bug/issue, please visit [bugs.jqueryui.com](http://bugs.jqueryui.com).
If you are interested in helping develop jQuery UI, you are in the right place.
-To discuss development with team members and the community, visit the [Developing jQuery UI Forum](http://forum.jquery.com/developing-jquery-ui) or in #jquery on irc.freednode.net.
+To discuss development with team members and the community, visit the [Developing jQuery UI Forum](http://forum.jquery.com/developing-jquery-ui) or [#jqueryui-dev on irc.freenode.net](http://irc.jquery.org/).
-For contributors
----
+## For contributors
If you want to help and provide a patch for a bugfix or new feature, please take
a few minutes and look at [our Getting Involved guide](http://wiki.jqueryui.com/w/page/35263114/Getting-Involved).
@@ -22,8 +22,7 @@ pull request for that branch. Don't mix unrelated changes. You can use the commi
message as the description for the pull request.
-Running the Unit Tests
----
+## Running the Unit Tests
Run the unit tests with a local server that supports PHP. No database is required. Pre-configured php local servers are available for Windows and Mac. Here are some options:
@@ -33,36 +32,34 @@ Run the unit tests with a local server that supports PHP. No database is require
- [Mongoose (most platforms)](http://code.google.com/p/mongoose/)
-Building jQuery UI
----
-
-jQuery UI uses the [grunt](http://github.com/cowboy/grunt) build system. Building jQuery UI requires node.js and a command line zip program.
-
-Install grunt.
-
-`npm install grunt -g`
-
-Clone the jQuery UI git repo.
+## Building jQuery UI
-`git clone git://github.com/jquery/jquery-ui.git`
+jQuery UI uses the [Grunt](http://github.com/gruntjs/grunt) build system.
-`cd jquery-ui`
+To build jQuery UI, you must have [node.js](http://nodejs.org/) installed and then run the following commands:
-Install node modules.
+```sh
-`npm install`
+# Install the Grunt CLI
+npm install -g grunt-cli
-Run grunt.
+# Clone the jQuery UI git repo
+git clone git://github.com/jquery/jquery-ui.git
+cd jquery-ui
-`grunt build`
+# Install the node module dependencies
+npm install
-There are many other tasks that can be run through grunt. For a list of all tasks:
+# Run the concat task to concatenate files
+grunt concat
-`grunt --help`
+# There are many other tasks that can be run through Grunt.
+# For a list of all tasks:
+grunt --help
+```
-For committers
----
+## For committers
When looking at pull requests, first check for [proper commit messages](http://wiki.jqueryui.com/w/page/12137724/Bug-Fixing-Guide).
@@ -75,7 +72,7 @@ These should be squashed before landing in master.
Fetch the remote first:
- git fetch [their-fork.git] [their-branch]
+ git fetch [their-fork.git] [their-branch]
Then cherry-pick the commit(s):
@@ -83,7 +80,7 @@ Then cherry-pick the commit(s):
If you need to edit the commit message:
- git cherry-pick -e [sha-of-commit]
+ git cherry-pick -e [sha-of-commit]
If you need to edit the changes:
@@ -91,9 +88,9 @@ If you need to edit the changes:
# make changes
git commit --author="[author-name-and-email]"
-If it should go to the stable brach, cherry-pick it to stable:
+If it should go to the stable branch, cherry-pick it to stable:
- git checkout 1-8-stable
- git cherry-pick -x [sha-of-commit-from-master]
+ git checkout 1-10-stable
+ git cherry-pick -x [sha-of-commit-from-master]
-*NOTE: Do not cherry-pick into 1-8-stable until you have pushed the commit from master upstream.*
+*NOTE: Do not cherry-pick into 1-10-stable until you have pushed the commit from master upstream.*
View
2  build/core.json
@@ -30,7 +30,7 @@
],
"category": "effect",
"homepage": "http://jqueryui.com/",
- "demo": "http://jqueryui.com/effects/",
+ "demo": "http://jqueryui.com/effect/",
"docs": "http://api.jqueryui.com/category/effects-core/"
},
"position": {
View
10 build/effect.json
@@ -23,15 +23,23 @@
"highlight": {
"description": "Highlights the background of an element in a defined color for a custom duration."
},
+ "puff": {
+ "dependencies": [ "effect-scale" ],
+ "description": "Creates a puff effect by scaling the element up and hiding it at the same time."
+ },
"pulsate": {
"description": "Pulsates an element n times by changing the opacity to zero and back."
},
"scale": {
- "description": "Grows or shrinks an element and its content. Restores an elemnt to its original size."
+ "dependencies": [ "effect-size" ],
+ "description": "Grows or shrinks an element and its content. Restores an element to its original size."
},
"shake": {
"description": "Shakes an element horizontally or vertically n times."
},
+ "size": {
+ "description": "Resize an element to a specified width and height."
+ },
"slide": {
"description": "Slides an element in and out of the viewport."
}
View
257 build/release/release.js
@@ -1,16 +1,18 @@
#!/usr/bin/env node
-/*global cat:true cd:true echo:true exec:true exit:true*/
+/* global cat:true, cd:true, echo:true, exec:true, exit:true */
// Usage:
// stable release: node release.js
// pre-release: node release.js --pre-release {version}
+// test run: node release.js --remote={repo}
+// - repo: "/tmp/repo" (filesystem), "user/repo" (github), "http://mydomain/repo.git" (another domain)
"use strict";
-var baseDir, repoDir, prevVersion, newVersion, nextVersion, tagTime, preRelease,
+var baseDir, downloadBuilder, repoDir, prevVersion, newVersion, nextVersion, tagTime, preRelease, repo,
fs = require( "fs" ),
+ path = require( "path" ),
rnewline = /\r?\n/,
- repo = "git@github.com:jquery/jquery-ui.git",
branch = "master";
walk([
@@ -25,7 +27,8 @@ walk([
confirm,
section( "building release" ),
- buildRelease,
+ buildReleaseBranch,
+ buildPackage,
section( "pushing tag" ),
confirmReview,
@@ -66,13 +69,6 @@ function cloneRepo() {
if ( exec( "npm install" ).code !== 0 ) {
abort( "Error installing dependencies." );
}
- // We need download.jqueryui.com in order to generate themes.
- // We only generate themes for stable releases.
- if ( !preRelease ) {
- if ( exec( "npm install download.jqueryui.com" ).code !== 0 ) {
- abort( "Error installing dependencies." );
- }
- }
echo();
}
@@ -109,8 +105,7 @@ function getVersions() {
if ( preRelease ) {
newVersion = preRelease;
- // Note: prevVersion is not currently used for pre-releases. The TODO
- // below about 1.10.0 applies here as well.
+ // Note: prevVersion is not currently used for pre-releases.
prevVersion = nextVersion = currentVersion;
} else {
newVersion = currentVersion.substr( 0, currentVersion.length - 3 );
@@ -119,15 +114,14 @@ function getVersions() {
minor = parseInt( parts[ 1 ], 10 );
patch = parseInt( parts[ 2 ], 10 );
- // TODO: handle 1.10.0
- // Also see comment above about pre-releases
- if ( patch === 0 ) {
- abort( "This script is not smart enough to handle the 1.10.0 release." );
+ if ( minor === 0 && patch === 0 ) {
+ abort( "This script is not smart enough to handle major release (eg. 2.0.0)." );
+ } else if ( patch === 0 ) {
+ prevVersion = git( "for-each-ref --count=1 --sort=-authordate --format='%(refname:short)' refs/tags/" + [ major, minor - 1 ].join( "." ) + "*" ).trim();
+ } else {
+ prevVersion = [ major, minor, patch - 1 ].join( "." );
}
- prevVersion = patch === 0 ?
- [ major, minor - 1, 0 ].join( "." ) :
- [ major, minor, patch - 1 ].join( "." );
nextVersion = [ major, minor, patch + 1 ].join( "." ) + "pre";
}
@@ -135,9 +129,8 @@ function getVersions() {
echo( "After the release, the version will be " + nextVersion.cyan + "." );
}
-function buildRelease() {
- var pkg,
- releaseTask = preRelease ? "release" : "release_cdn";
+function buildReleaseBranch() {
+ var pkg;
echo( "Creating " + "release".cyan + " branch..." );
git( "checkout -b release", "Error creating release branch." );
@@ -158,12 +151,6 @@ function buildRelease() {
}
echo();
- echo( "Building release..." );
- if ( exec( "grunt " + releaseTask ).code !== 0 ) {
- abort( "Error building release." );
- }
- echo();
-
echo( "Committing release artifacts..." );
git( "add *.jquery.json", "Error adding manifest files to git." );
git( "commit -am 'Tagging the " + newVersion + " release.'",
@@ -175,6 +162,173 @@ function buildRelease() {
tagTime = git( "log -1 --format='%ad'", "Error getting tag timestamp." ).trim();
}
+function buildPackage( callback ) {
+ if( preRelease ) {
+ return buildPreReleasePackage( callback );
+ } else {
+ return buildCDNPackage( callback );
+ }
+}
+
+function buildPreReleasePackage( callback ) {
+ var build, files, jqueryUi, packer, target, targetZip;
+
+ echo( "Build pre-release Package" );
+
+ jqueryUi = new downloadBuilder.JqueryUi( path.resolve( "." ) );
+ build = new downloadBuilder.Builder( jqueryUi, ":all:" );
+ packer = new downloadBuilder.Packer( build, null, {
+ addTests: true,
+ bundleSuffix: "",
+ skipDocs: true,
+ skipTheme: true
+ });
+ target = "../" + jqueryUi.pkg.name + "-" + jqueryUi.pkg.version;
+ targetZip = target + ".zip";
+
+ return walk([
+ function( callback ) {
+ echo( "Building release files" );
+ packer.pack(function( error, _files ) {
+ if( error ) {
+ abort( error.stack );
+ }
+ files = _files.map(function( file ) {
+
+ // Strip first path
+ file.path = file.path.replace( /^[^\/]*\//, "" );
+ return file;
+
+ }).filter(function( file ) {
+
+ // Filter development-bundle content only
+ return (/^development-bundle/).test( file.path );
+ }).map(function( file ) {
+
+ // Strip development-bundle
+ file.path = file.path.replace( /^development-bundle\//, "" );
+ return file;
+
+ });
+ return callback();
+ });
+ },
+ function() {
+ downloadBuilder.util.createZip( files, targetZip, function( error ) {
+ if ( error ) {
+ abort( error.stack );
+ }
+ echo( "Built zip package at " + path.relative( "../..", targetZip ).cyan );
+ return callback();
+ });
+ }
+ ]);
+}
+
+function buildCDNPackage( callback ) {
+ var build, output, target, targetZip,
+ add = function( file ) {
+ output.push( file );
+ },
+ jqueryUi = new downloadBuilder.JqueryUi( path.resolve( "." ) ),
+ themeGallery = downloadBuilder.themeGallery( jqueryUi );
+
+ echo( "Build CDN Package" );
+
+ build = new downloadBuilder.Builder( jqueryUi, ":all:" );
+ output = [];
+ target = "../" + jqueryUi.pkg.name + "-" + jqueryUi.pkg.version + "-cdn";
+ targetZip = target + ".zip";
+
+ [ "AUTHORS.txt", "MIT-LICENSE.txt", "package.json" ].map(function( name ) {
+ return build.get( name );
+ }).forEach( add );
+
+ // "ui/*.js"
+ build.componentFiles.filter(function( file ) {
+ return (/^ui\//).test( file.path );
+ }).forEach( add );
+
+ // "ui/*.min.js"
+ build.componentMinFiles.filter(function( file ) {
+ return (/^ui\//).test( file.path );
+ }).forEach( add );
+
+ // "i18n/*.js"
+ build.i18nFiles.rename( /^ui\//, "" ).forEach( add );
+ build.i18nMinFiles.rename( /^ui\//, "" ).forEach( add );
+ build.bundleI18n.into( "i18n/" ).forEach( add );
+ build.bundleI18nMin.into( "i18n/" ).forEach( add );
+
+ build.bundleJs.forEach( add );
+ build.bundleJsMin.forEach( add );
+
+ walk( themeGallery.map(function( theme ) {
+ return function( callback ) {
+ var themeCssOnlyRe, themeDirRe,
+ folderName = theme.folderName(),
+ packer = new downloadBuilder.Packer( build, theme, {
+ skipDocs: true
+ });
+ // TODO improve code by using custom packer instead of download packer (Packer)
+ themeCssOnlyRe = new RegExp( "development-bundle/themes/" + folderName + "/jquery.ui.theme.css" );
+ themeDirRe = new RegExp( "css/" + folderName );
+ packer.pack(function( error, files ) {
+ if ( error ) {
+ abort( error.stack );
+ }
+ // Add theme files.
+ files
+ // Pick only theme files we need on the bundle.
+ .filter(function( file ) {
+ if ( themeCssOnlyRe.test( file.path ) || themeDirRe.test( file.path ) ) {
+ return true;
+ }
+ return false;
+ })
+ // Convert paths the way bundle needs
+ .map(function( file ) {
+ file.path = file.path
+
+ // Remove initial package name eg. "jquery-ui-1.10.0.custom"
+ .split( "/" ).slice( 1 ).join( "/" )
+
+ .replace( /development-bundle\/themes/, "css" )
+ .replace( /css/, "themes" )
+
+ // Make jquery-ui-1.10.0.custom.css into jquery-ui.css, or jquery-ui-1.10.0.custom.min.css into jquery-ui.min.css
+ .replace( /jquery-ui-.*?(\.min)*\.css/, "jquery-ui$1.css" );
+
+ return file;
+ }).forEach( add );
+ return callback();
+ });
+ };
+ }).concat([function() {
+ var crypto = require( "crypto" );
+
+ // Create MD5 manifest
+ output.push({
+ path: "MANIFEST",
+ data: output.sort(function( a, b ) {
+ return a.path.localeCompare( b.path );
+ }).map(function( file ) {
+ var md5 = crypto.createHash( "md5" );
+ md5.update( file.data );
+ return file.path + " " + md5.digest( "hex" );
+ }).join( "\n" )
+ });
+
+ downloadBuilder.util.createZip( output, targetZip, function( error ) {
+ if ( error ) {
+ abort( error.stack );
+ }
+ echo( "Built zip CDN package at " + path.relative( "../..", targetZip ).cyan );
+ return callback();
+ });
+ }]));
+}
+
function pushRelease() {
echo( "Pushing release to GitHub..." );
git( "push --tags", "Error pushing tags to GitHub." );
@@ -357,6 +511,48 @@ function writePackage( pkg ) {
}
function bootstrap( fn ) {
+ getRemote(function( remote ) {
+ if ( (/:/).test( remote ) || fs.existsSync( remote ) ) {
+ repo = remote;
+ } else {
+ repo = "git@github.com:" + remote + ".git";
+ }
+ _bootstrap( fn );
+ });
+}
+
+function getRemote( fn ) {
+ var matches, remote;
+
+ console.log( "Determining remote repo..." );
+ process.argv.forEach(function( arg ) {
+ matches = /--remote=(.+)/.exec( arg );
+ if ( matches ) {
+ remote = matches[ 1 ];
+ }
+ });
+
+ if ( remote ) {
+ fn( remote );
+ return;
+ }
+
+ console.log();
+ console.log( " !!!!!!!!!!!!!!!!!!!!!!!!!!!!" );
+ console.log( " !!!!!!!!!!!!!!!!!!!!!!!!!!!!" );
+ console.log( " !! !!" );
+ console.log( " !! Using jquery/jquery-ui !!" );
+ console.log( " !! !!" );
+ console.log( " !!!!!!!!!!!!!!!!!!!!!!!!!!!!" );
+ console.log( " !!!!!!!!!!!!!!!!!!!!!!!!!!!!" );
+ console.log();
+ console.log( "Press enter to continue, or ctrl+c to cancel." );
+ prompt(function() {
+ fn( "jquery/jquery-ui" );
+ });
+}
+
+function _bootstrap( fn ) {
console.log( "Determining release type..." );
preRelease = process.argv.indexOf( "--pre-release" );
if ( preRelease !== -1 ) {
@@ -381,7 +577,7 @@ function bootstrap( fn ) {
fs.mkdirSync( baseDir );
console.log( "Installing dependencies..." );
- require( "child_process" ).exec( "npm install shelljs colors", function( error ) {
+ require( "child_process" ).exec( "npm install shelljs colors download.jqueryui.com@1.10.8", function( error ) {
if ( error ) {
console.log( error );
return process.exit( 1 );
@@ -389,6 +585,7 @@ function bootstrap( fn ) {
require( "shelljs/global" );
require( "colors" );
+ downloadBuilder = require( "download.jqueryui.com" );
fn();
});
View
163 build/tasks/build.js
@@ -2,9 +2,6 @@ module.exports = function( grunt ) {
"use strict";
-var path = require( "path" ),
- fs = require( "fs" );
-
grunt.registerTask( "manifest", "Generate jquery.json manifest files", function() {
var pkg = grunt.config( "pkg" ),
base = {
@@ -26,8 +23,8 @@ grunt.registerTask( "manifest", "Generate jquery.json manifest files", function(
name: "ui.effect-{plugin}",
title: "jQuery UI {Plugin} Effect",
keywords: [ "effect", "show", "hide" ],
- homepage: "http://jqueryui.com/{plugin}-effect/",
- demo: "http://jqueryui.com/{plugin}-effect/",
+ homepage: "http://jqueryui.com/effect/",
+ demo: "http://jqueryui.com/effect/",
docs: "http://api.jqueryui.com/{plugin}-effect/",
dependencies: [ "effect" ]
}
@@ -84,139 +81,41 @@ grunt.registerTask( "manifest", "Generate jquery.json manifest files", function(
});
});
-grunt.registerMultiTask( "copy", "Copy files to destination folder and replace @VERSION with pkg.version", function() {
- function replaceVersion( source ) {
- return source.replace( /@VERSION/g, grunt.config( "pkg.version" ) );
- }
- function copyFile( src, dest ) {
- if ( /(js|css)$/.test( src ) ) {
- grunt.file.copy( src, dest, {
- process: replaceVersion
- });
- } else {
- grunt.file.copy( src, dest );
- }
- }
- var files = grunt.file.expandFiles( this.file.src ),
- target = this.file.dest + "/",
- strip = this.data.strip,
- renameCount = 0,
- fileName;
- if ( typeof strip === "string" ) {
- strip = new RegExp( "^" + grunt.template.process( strip, grunt.config() ).replace( /[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&" ) );
- }
- files.forEach(function( fileName ) {
- var targetFile = strip ? fileName.replace( strip, "" ) : fileName;
- copyFile( fileName, target + targetFile );
- });
- grunt.log.writeln( "Copied " + files.length + " files." );
- for ( fileName in this.data.renames ) {
- renameCount += 1;
- copyFile( fileName, target + grunt.template.process( this.data.renames[ fileName ], grunt.config() ) );
- }
- if ( renameCount ) {
- grunt.log.writeln( "Renamed " + renameCount + " files." );
- }
-});
-
-
-grunt.registerMultiTask( "zip", "Create a zip file for release", function() {
- // TODO switch back to adm-zip for better cross-platform compability once it actually works
- // 0.1.3 works, but result can't be unzipped
- // its also a lot slower then zip program, probably due to how its used...
- // var files = grunt.file.expandFiles( "dist/" + this.file.src + "/**/*" );
- // grunt.log.writeln( "Creating zip file " + this.file.dest );
-
- //var AdmZip = require( "adm-zip" );
- //var zip = new AdmZip();
- //files.forEach(function( file ) {
- // grunt.verbose.writeln( "Zipping " + file );
- // // rewrite file names from dist folder (created by build), drop the /dist part
- // zip.addFile(file.replace(/^dist/, "" ), fs.readFileSync( file ) );
- //});
- //zip.writeZip( "dist/" + this.file.dest );
- //grunt.log.writeln( "Wrote " + files.length + " files to " + this.file.dest );
-
- var done = this.async(),
- dest = this.file.dest,
- src = grunt.template.process( this.file.src, grunt.config() );
- grunt.utils.spawn({
- cmd: "zip",
- args: [ "-r", dest, src ],
- opts: {
- cwd: 'dist'
- }
- }, function( err ) {
- if ( err ) {
- grunt.log.error( err );
- done();
- return;
- }
- grunt.log.writeln( "Zipped " + dest );
- done();
- });
-});
-
-grunt.registerMultiTask( "md5", "Create list of md5 hashes for CDN uploads", function() {
- // remove dest file before creating it, to make sure itself is not included
- if ( fs.existsSync( this.file.dest ) ) {
- fs.unlinkSync( this.file.dest );
- }
- var crypto = require( "crypto" ),
- dir = this.file.src + "/",
- hashes = [];
- grunt.file.expandFiles( dir + "**/*" ).forEach(function( fileName ) {
- var hash = crypto.createHash( "md5" );
- hash.update( grunt.file.read( fileName, "ascii" ) );
- hashes.push( fileName.replace( dir, "" ) + " " + hash.digest( "hex" ) );
- });
- grunt.file.write( this.file.dest, hashes.join( "\n" ) + "\n" );
- grunt.log.writeln( "Wrote " + this.file.dest + " with " + hashes.length + " hashes" );
+grunt.registerTask( "clean", function() {
+ require( "rimraf" ).sync( "dist" );
});
-grunt.registerTask( "generate_themes", function() {
- var download, done,
- distFolder = "dist/" + grunt.template.process( grunt.config( "files.dist" ), grunt.config() ),
- target = "dist/" + grunt.template.process( grunt.config( "files.themes" ), grunt.config() ) + "/";
-
- try {
- require.resolve( "download.jqueryui.com" );
- } catch( error ) {
- throw new Error( "You need to manually install download.jqueryui.com for this task to work" );
- }
-
- download = require( "download.jqueryui.com" )({
- config: {
- "jqueryUi": {
- "stable": { "path": path.resolve( __dirname + "/../../" + distFolder ) }
- },
- "jquery": "skip"
- }
- });
-
- done = this.async();
- download.buildThemesBundle(function( error, files ) {
- if ( error ) {
- grunt.log.error( error );
- return done( false );
+grunt.registerTask( "asciilint", function() {
+ var valid = true,
+ files = grunt.file.expand({ filter: "isFile" }, "ui/*.js" );
+ files.forEach(function( filename ) {
+ var i, c,
+ text = grunt.file.read( filename );
+
+ // Ensure files use only \n for line endings, not \r\n
+ if ( /\x0d\x0a/.test( text ) ) {
+ grunt.log.error( filename + ": Incorrect line endings (\\r\\n)" );
+ valid = false;
}
- done(
- files.every(function( file ) {
- try {
- grunt.file.write( target + file.path, file.data );
- } catch( err ) {
- grunt.log.error( err );
- return false;
+ // Ensure only ASCII chars so script tags don't need a charset attribute
+ if ( text.length !== Buffer.byteLength( text, "utf8" ) ) {
+ grunt.log.error( filename + ": Non-ASCII characters detected:" );
+ for ( i = 0; i < text.length; i++ ) {
+ c = text.charCodeAt( i );
+ if ( c > 127 ) {
+ grunt.log.error( "- position " + i + ": " + c );
+ grunt.log.error( "-- " + text.substring( i - 20, i + 20 ) );
+ break;
}
- return true;
- }) && grunt.log.writeln( "Generated at " + target )
- );
+ }
+ valid = false;
+ }
});
-});
-
-grunt.registerTask( "clean", function() {
- require( "rimraf" ).sync( "dist" );
+ if ( valid ) {
+ grunt.log.ok( files.length + " files lint free." );
+ }
+ return valid;
});
};
View
50 build/tasks/testswarm.js
@@ -4,6 +4,7 @@ module.exports = function( grunt ) {
var versions = {
"git": "git",
+ "1.10": "1.10.0 1.10.1 1.10.2",
"1.9": "1.9.0 1.9.1",
"1.8": "1.8.0 1.8.1 1.8.2 1.8.3",
"1.7": "1.7 1.7.1 1.7.2",
@@ -14,9 +15,9 @@ var versions = {
"Autocomplete": "autocomplete/autocomplete.html",
"Button": "button/button.html",
"Core": "core/core.html",
+ "Core_deprecated": "core/core_deprecated.html",
"Datepicker": "datepicker/datepicker.html",
"Dialog": "dialog/dialog.html",
- "Dialog_deprecated": "dialog/dialog_deprecated.html",
"Draggable": "draggable/draggable.html",
"Droppable": "droppable/droppable.html",
"Effects": "effects/effects.html",
@@ -25,6 +26,7 @@ var versions = {
"Progressbar": "progressbar/progressbar.html",
"Resizable": "resizable/resizable.html",
"Selectable": "selectable/selectable.html",
+ "Selectmenu": "selectmenu/selectmenu.html",
"Slider": "slider/slider.html",
"Sortable": "sortable/sortable.html",
"Spinner": "spinner/spinner.html",
@@ -33,37 +35,41 @@ var versions = {
"Widget": "widget/widget.html"
};
-function submit( commit, runs, configFile, version, done ) {
+function submit( commit, runs, configFile, extra, done ) {
var testName,
testswarm = require( "testswarm" ),
- config = grunt.file.readJSON( configFile ).jqueryui;
- version = version ? ( version + " " ) : "";
+ config = grunt.file.readJSON( configFile ).jqueryui,
+ commitUrl = "https://github.com/jquery/jquery-ui/commit/" + commit;
+
+ if ( extra ) {
+ extra = " (" + extra + ")";
+ }
+
for ( testName in runs ) {
- runs[ testName] = config.testUrl + commit + "/tests/unit/" + runs[ testName ];
+ runs[ testName ] = config.testUrl + commit + "/tests/unit/" + runs[ testName ];
}
- testswarm.createClient( {
+
+ testswarm.createClient({
url: config.swarmUrl,
pollInterval: 10000,
timeout: 1000 * 60 * 45
- } )
+ })
.addReporter( testswarm.reporters.cli )
- .auth( {
+ .auth({
id: config.authUsername,
token: config.authToken
- } )
- .addjob(
- {
- name: 'jQuery UI ' + version + '#<a href="https://github.com/jquery/jquery-ui/commit/' + commit + '">' + commit.substr( 0, 10 ) + '</a>',
- runs: runs,
- runMax: config.runMax,
- browserSets: config.browserSets
- }, function( err, passed ) {
- if ( err ) {
- grunt.log.error( err );
- }
- done( passed );
+ })
+ .addjob({
+ name: "Commit <a href='" + commitUrl + "'>" + commit.substr( 0, 10 ) + "</a>" + extra,
+ runs: runs,
+ runMax: config.runMax,
+ browserSets: ["popular-no-ie6"]
+ }, function( error, passed ) {
+ if ( error ) {
+ grunt.log.error( error );
}
- );
+ done( passed );
+ });
}
grunt.registerTask( "testswarm", function( commit, configFile ) {
@@ -82,7 +88,7 @@ grunt.registerTask( "testswarm-multi-jquery", function( commit, configFile, mino
allTests[ test + "-" + version ] = tests[ test ] + "?nojshint=true&jquery=" + version;
}
});
- submit( commit, allTests, configFile, minor + " core", this.async() );
+ submit( commit, allTests, configFile, "core " + minor, this.async() );
});
};
View
2  build/widget.json
@@ -21,7 +21,7 @@
},
"button": {
"dependencies": [],
- "description": "Enhances a form with themable buttons.",
+ "description": "Enhances a form with themeable buttons.",
"keywords": [
"form",
"radio",
View
10 demos/accordion/collapsible.html
@@ -3,11 +3,11 @@
<head>
<meta charset="utf-8">
<title>jQuery UI Accordion - Collapse content</title>
- <link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
- <script src="../../jquery-1.9.1.js"></script>
- <script src="../../ui/jquery.ui.core.js"></script>
- <script src="../../ui/jquery.ui.widget.js"></script>
- <script src="../../ui/jquery.ui.accordion.js"></script>
+ <link rel="stylesheet" href="../../themes/base/all.css">
+ <script src="../../jquery-1.10.2.js"></script>
+ <script src="../../ui/core.js"></script>
+ <script src="../../ui/widget.js"></script>
+ <script src="../../ui/accordion.js"></script>
<link rel="stylesheet" href="../demos.css">
<script>
$(function() {
View
12 demos/accordion/custom-icons.html
@@ -3,12 +3,12 @@
<head>
<meta charset="utf-8">
<title>jQuery UI Accordion - Customize icons</title>
- <link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
- <script src="../../jquery-1.9.1.js"></script>
- <script src="../../ui/jquery.ui.core.js"></script>
- <script src="../../ui/jquery.ui.widget.js"></script>
- <script src="../../ui/jquery.ui.accordion.js"></script>
- <script src="../../ui/jquery.ui.button.js"></script>
+ <link rel="stylesheet" href="../../themes/base/all.css">
+ <script src="../../jquery-1.10.2.js"></script>
+ <script src="../../ui/core.js"></script>
+ <script src="../../ui/widget.js"></script>
+ <script src="../../ui/accordion.js"></script>
+ <script src="../../ui/button.js"></script>
<link rel="stylesheet" href="../demos.css">
<script>
$(function() {
View
10 demos/accordion/default.html
@@ -3,11 +3,11 @@
<head>
<meta charset="utf-8">
<title>jQuery UI Accordion - Default functionality</title>
- <link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
- <script src="../../jquery-1.9.1.js"></script>
- <script src="../../ui/jquery.ui.core.js"></script>
- <script src="../../ui/jquery.ui.widget.js"></script>
- <script src="../../ui/jquery.ui.accordion.js"></script>
+ <link rel="stylesheet" href="../../themes/base/all.css">
+ <script src="../../jquery-1.10.2.js"></script>
+ <script src="../../ui/core.js"></script>
+ <script src="../../ui/widget.js"></script>
+ <script src="../../ui/accordion.js"></script>
<link rel="stylesheet" href="../demos.css">
<script>
$(function() {
View
14