rbbt-rest 1.6.13 → 1.6.14

Sign up to get free protection for your applications and to get access to all the features.
Files changed (562) hide show
  1. checksums.yaml +4 -4
  2. data/lib/rbbt/rest/common/misc.rb +1 -0
  3. data/lib/rbbt/rest/main.rb +3 -1
  4. data/lib/rbbt/rest/workflow.rb +4 -4
  5. data/lib/rbbt/rest/workflow/jobs.rb +2 -1
  6. data/share/views/compass/app.sass +15 -4
  7. data/share/views/layout.haml +1 -2
  8. data/share/views/layout/coda.haml +0 -2
  9. data/share/views/layout/footer.haml +20 -7
  10. data/share/views/layout/header.haml +4 -9
  11. data/share/views/layout/top_menu.haml +44 -32
  12. data/share/views/public/js/app.js +9 -10
  13. data/share/views/public/js/defer.js +1 -1
  14. data/share/views/public/js/helpers.js +14 -0
  15. data/share/views/public/js/rbbt.aesthetics.js +0 -3
  16. data/share/views/public/js/rbbt.exception.js +21 -0
  17. data/share/views/public/js/rbbt.favourites.js +24 -14
  18. data/share/views/public/js/rbbt.job.js +14 -5
  19. data/share/views/public/js/rbbt.modal.js +26 -4
  20. data/share/views/public/js/rbbt.page.js +111 -1
  21. data/share/views/public/js/rbbt/list.js +36 -26
  22. data/share/views/public/js/rbbt/modal.js +1 -0
  23. data/share/views/public/js/rbbt/reveal.js +2 -4
  24. data/share/views/public/js/rbbt/table.js +6 -4
  25. data/share/views/public/plugins/jquery/js/jquery-2.1.4.js +9210 -0
  26. data/share/views/public/plugins/semantic-ui/CONTRIBUTING.md +16 -31
  27. data/share/views/public/plugins/semantic-ui/LICENSE.md +0 -0
  28. data/share/views/public/plugins/semantic-ui/README.md +57 -64
  29. data/share/views/public/plugins/semantic-ui/RELEASE-NOTES.md +957 -7
  30. data/share/views/public/plugins/semantic-ui/bower.json +2 -4
  31. data/share/views/public/plugins/semantic-ui/composer.json +11 -8
  32. data/share/views/public/plugins/semantic-ui/dist/components/accordion.css +32 -26
  33. data/share/views/public/plugins/semantic-ui/dist/components/accordion.js +182 -94
  34. data/share/views/public/plugins/semantic-ui/dist/components/accordion.min.css +6 -7
  35. data/share/views/public/plugins/semantic-ui/dist/components/accordion.min.js +6 -6
  36. data/share/views/public/plugins/semantic-ui/dist/components/ad.css +19 -8
  37. data/share/views/public/plugins/semantic-ui/dist/components/ad.min.css +6 -7
  38. data/share/views/public/plugins/semantic-ui/dist/components/api.js +428 -190
  39. data/share/views/public/plugins/semantic-ui/dist/components/api.min.js +6 -6
  40. data/share/views/public/plugins/semantic-ui/dist/components/breadcrumb.css +22 -22
  41. data/share/views/public/plugins/semantic-ui/dist/components/breadcrumb.min.css +6 -7
  42. data/share/views/public/plugins/semantic-ui/dist/components/button.css +1569 -707
  43. data/share/views/public/plugins/semantic-ui/dist/components/button.min.css +6 -7
  44. data/share/views/public/plugins/semantic-ui/dist/components/card.css +334 -143
  45. data/share/views/public/plugins/semantic-ui/dist/components/card.min.css +6 -7
  46. data/share/views/public/plugins/semantic-ui/dist/components/checkbox.css +234 -131
  47. data/share/views/public/plugins/semantic-ui/dist/components/checkbox.js +348 -111
  48. data/share/views/public/plugins/semantic-ui/dist/components/checkbox.min.css +6 -7
  49. data/share/views/public/plugins/semantic-ui/dist/components/checkbox.min.js +6 -6
  50. data/share/views/public/plugins/semantic-ui/dist/components/colorize.js +6 -4
  51. data/share/views/public/plugins/semantic-ui/dist/components/colorize.min.js +6 -6
  52. data/share/views/public/plugins/semantic-ui/dist/components/comment.css +9 -10
  53. data/share/views/public/plugins/semantic-ui/dist/components/comment.min.css +6 -7
  54. data/share/views/public/plugins/semantic-ui/dist/components/container.css +125 -0
  55. data/share/views/public/plugins/semantic-ui/dist/components/container.min.css +10 -0
  56. data/share/views/public/plugins/semantic-ui/dist/components/dimmer.css +34 -21
  57. data/share/views/public/plugins/semantic-ui/dist/components/dimmer.js +89 -48
  58. data/share/views/public/plugins/semantic-ui/dist/components/dimmer.min.css +6 -7
  59. data/share/views/public/plugins/semantic-ui/dist/components/dimmer.min.js +6 -6
  60. data/share/views/public/plugins/semantic-ui/dist/components/divider.css +54 -38
  61. data/share/views/public/plugins/semantic-ui/dist/components/divider.min.css +6 -7
  62. data/share/views/public/plugins/semantic-ui/dist/components/dropdown.css +575 -153
  63. data/share/views/public/plugins/semantic-ui/dist/components/dropdown.js +2263 -536
  64. data/share/views/public/plugins/semantic-ui/dist/components/dropdown.min.css +6 -7
  65. data/share/views/public/plugins/semantic-ui/dist/components/dropdown.min.js +8 -6
  66. data/share/views/public/plugins/semantic-ui/dist/components/embed.css +162 -0
  67. data/share/views/public/plugins/semantic-ui/dist/components/embed.js +662 -0
  68. data/share/views/public/plugins/semantic-ui/dist/components/embed.min.css +10 -0
  69. data/share/views/public/plugins/semantic-ui/dist/components/embed.min.js +11 -0
  70. data/share/views/public/plugins/semantic-ui/dist/components/feed.css +54 -30
  71. data/share/views/public/plugins/semantic-ui/dist/components/feed.min.css +6 -7
  72. data/share/views/public/plugins/semantic-ui/dist/components/flag.css +12 -6
  73. data/share/views/public/plugins/semantic-ui/dist/components/flag.min.css +6 -7
  74. data/share/views/public/plugins/semantic-ui/dist/components/form.css +322 -162
  75. data/share/views/public/plugins/semantic-ui/dist/components/form.js +654 -193
  76. data/share/views/public/plugins/semantic-ui/dist/components/form.min.css +6 -7
  77. data/share/views/public/plugins/semantic-ui/dist/components/form.min.js +6 -6
  78. data/share/views/public/plugins/semantic-ui/dist/components/grid.css +622 -427
  79. data/share/views/public/plugins/semantic-ui/dist/components/grid.min.css +6 -7
  80. data/share/views/public/plugins/semantic-ui/dist/components/header.css +360 -171
  81. data/share/views/public/plugins/semantic-ui/dist/components/header.min.css +6 -7
  82. data/share/views/public/plugins/semantic-ui/dist/components/icon.css +611 -153
  83. data/share/views/public/plugins/semantic-ui/dist/components/icon.min.css +6 -7
  84. data/share/views/public/plugins/semantic-ui/dist/components/image.css +68 -18
  85. data/share/views/public/plugins/semantic-ui/dist/components/image.min.css +6 -7
  86. data/share/views/public/plugins/semantic-ui/dist/components/input.css +172 -131
  87. data/share/views/public/plugins/semantic-ui/dist/components/input.min.css +6 -7
  88. data/share/views/public/plugins/semantic-ui/dist/components/item.css +72 -48
  89. data/share/views/public/plugins/semantic-ui/dist/components/item.min.css +6 -7
  90. data/share/views/public/plugins/semantic-ui/dist/components/label.css +494 -316
  91. data/share/views/public/plugins/semantic-ui/dist/components/label.min.css +6 -7
  92. data/share/views/public/plugins/semantic-ui/dist/components/list.css +192 -158
  93. data/share/views/public/plugins/semantic-ui/dist/components/list.min.css +6 -7
  94. data/share/views/public/plugins/semantic-ui/dist/components/loader.css +25 -18
  95. data/share/views/public/plugins/semantic-ui/dist/components/loader.min.css +6 -7
  96. data/share/views/public/plugins/semantic-ui/dist/components/menu.css +952 -667
  97. data/share/views/public/plugins/semantic-ui/dist/components/menu.min.css +1 -11
  98. data/share/views/public/plugins/semantic-ui/dist/components/message.css +140 -98
  99. data/share/views/public/plugins/semantic-ui/dist/components/message.min.css +6 -7
  100. data/share/views/public/plugins/semantic-ui/dist/components/modal.css +167 -93
  101. data/share/views/public/plugins/semantic-ui/dist/components/modal.js +280 -202
  102. data/share/views/public/plugins/semantic-ui/dist/components/modal.min.css +6 -7
  103. data/share/views/public/plugins/semantic-ui/dist/components/modal.min.js +6 -6
  104. data/share/views/public/plugins/semantic-ui/dist/components/nag.css +11 -12
  105. data/share/views/public/plugins/semantic-ui/dist/components/nag.js +10 -11
  106. data/share/views/public/plugins/semantic-ui/dist/components/nag.min.css +6 -7
  107. data/share/views/public/plugins/semantic-ui/dist/components/nag.min.js +6 -6
  108. data/share/views/public/plugins/semantic-ui/dist/components/popup.css +86 -30
  109. data/share/views/public/plugins/semantic-ui/dist/components/popup.js +473 -233
  110. data/share/views/public/plugins/semantic-ui/dist/components/popup.min.css +6 -7
  111. data/share/views/public/plugins/semantic-ui/dist/components/popup.min.js +6 -6
  112. data/share/views/public/plugins/semantic-ui/dist/components/progress.css +217 -127
  113. data/share/views/public/plugins/semantic-ui/dist/components/progress.js +252 -111
  114. data/share/views/public/plugins/semantic-ui/dist/components/progress.min.css +6 -7
  115. data/share/views/public/plugins/semantic-ui/dist/components/progress.min.js +6 -6
  116. data/share/views/public/plugins/semantic-ui/dist/components/rail.css +19 -12
  117. data/share/views/public/plugins/semantic-ui/dist/components/rail.min.css +6 -7
  118. data/share/views/public/plugins/semantic-ui/dist/components/rating.css +77 -73
  119. data/share/views/public/plugins/semantic-ui/dist/components/rating.js +85 -61
  120. data/share/views/public/plugins/semantic-ui/dist/components/rating.min.css +6 -7
  121. data/share/views/public/plugins/semantic-ui/dist/components/rating.min.js +6 -6
  122. data/share/views/public/plugins/semantic-ui/dist/components/reset.css +15 -13
  123. data/share/views/public/plugins/semantic-ui/dist/components/reset.min.css +6 -7
  124. data/share/views/public/plugins/semantic-ui/dist/components/reveal.css +47 -17
  125. data/share/views/public/plugins/semantic-ui/dist/components/reveal.min.css +6 -7
  126. data/share/views/public/plugins/semantic-ui/dist/components/search.css +102 -56
  127. data/share/views/public/plugins/semantic-ui/dist/components/search.js +688 -296
  128. data/share/views/public/plugins/semantic-ui/dist/components/search.min.css +6 -7
  129. data/share/views/public/plugins/semantic-ui/dist/components/search.min.js +6 -6
  130. data/share/views/public/plugins/semantic-ui/dist/components/segment.css +311 -164
  131. data/share/views/public/plugins/semantic-ui/dist/components/segment.min.css +6 -7
  132. data/share/views/public/plugins/semantic-ui/dist/components/shape.css +14 -15
  133. data/share/views/public/plugins/semantic-ui/dist/components/shape.js +102 -56
  134. data/share/views/public/plugins/semantic-ui/dist/components/shape.min.css +6 -7
  135. data/share/views/public/plugins/semantic-ui/dist/components/shape.min.js +6 -6
  136. data/share/views/public/plugins/semantic-ui/dist/components/sidebar.css +167 -38
  137. data/share/views/public/plugins/semantic-ui/dist/components/sidebar.js +296 -249
  138. data/share/views/public/plugins/semantic-ui/dist/components/sidebar.min.css +6 -7
  139. data/share/views/public/plugins/semantic-ui/dist/components/sidebar.min.js +6 -6
  140. data/share/views/public/plugins/semantic-ui/dist/components/site.css +56 -30
  141. data/share/views/public/plugins/semantic-ui/dist/components/site.js +8 -8
  142. data/share/views/public/plugins/semantic-ui/dist/components/site.min.css +6 -7
  143. data/share/views/public/plugins/semantic-ui/dist/components/site.min.js +6 -6
  144. data/share/views/public/plugins/semantic-ui/dist/components/state.js +37 -32
  145. data/share/views/public/plugins/semantic-ui/dist/components/state.min.js +6 -6
  146. data/share/views/public/plugins/semantic-ui/dist/components/statistic.css +268 -94
  147. data/share/views/public/plugins/semantic-ui/dist/components/statistic.min.css +6 -7
  148. data/share/views/public/plugins/semantic-ui/dist/components/step.css +348 -102
  149. data/share/views/public/plugins/semantic-ui/dist/components/step.min.css +6 -7
  150. data/share/views/public/plugins/semantic-ui/dist/components/sticky.css +7 -8
  151. data/share/views/public/plugins/semantic-ui/dist/components/sticky.js +222 -108
  152. data/share/views/public/plugins/semantic-ui/dist/components/sticky.min.css +6 -7
  153. data/share/views/public/plugins/semantic-ui/dist/components/sticky.min.js +6 -6
  154. data/share/views/public/plugins/semantic-ui/dist/components/tab.css +6 -7
  155. data/share/views/public/plugins/semantic-ui/dist/components/tab.js +268 -172
  156. data/share/views/public/plugins/semantic-ui/dist/components/tab.min.css +6 -7
  157. data/share/views/public/plugins/semantic-ui/dist/components/tab.min.js +6 -6
  158. data/share/views/public/plugins/semantic-ui/dist/components/table.css +372 -201
  159. data/share/views/public/plugins/semantic-ui/dist/components/table.min.css +6 -7
  160. data/share/views/public/plugins/semantic-ui/dist/components/transition.css +1546 -557
  161. data/share/views/public/plugins/semantic-ui/dist/components/transition.js +355 -210
  162. data/share/views/public/plugins/semantic-ui/dist/components/transition.min.css +6 -7
  163. data/share/views/public/plugins/semantic-ui/dist/components/transition.min.js +6 -6
  164. data/share/views/public/plugins/semantic-ui/dist/components/video.css +19 -20
  165. data/share/views/public/plugins/semantic-ui/dist/components/video.js +16 -23
  166. data/share/views/public/plugins/semantic-ui/dist/components/video.min.css +5 -6
  167. data/share/views/public/plugins/semantic-ui/dist/components/video.min.js +6 -6
  168. data/share/views/public/plugins/semantic-ui/dist/components/visibility.js +423 -161
  169. data/share/views/public/plugins/semantic-ui/dist/components/visibility.min.js +6 -6
  170. data/share/views/public/plugins/semantic-ui/dist/components/visit.js +18 -14
  171. data/share/views/public/plugins/semantic-ui/dist/components/visit.min.js +6 -6
  172. data/share/views/public/plugins/semantic-ui/dist/semantic.css +24827 -17141
  173. data/share/views/public/plugins/semantic-ui/dist/semantic.js +15072 -11354
  174. data/share/views/public/plugins/semantic-ui/dist/semantic.min.css +2 -2
  175. data/share/views/public/plugins/semantic-ui/dist/semantic.min.js +10 -8
  176. data/share/views/public/plugins/semantic-ui/dist/themes/default/assets/fonts/icons.eot +0 -0
  177. data/share/views/public/plugins/semantic-ui/dist/themes/default/assets/fonts/icons.otf +0 -0
  178. data/share/views/public/plugins/semantic-ui/dist/themes/default/assets/fonts/icons.svg +526 -465
  179. data/share/views/public/plugins/semantic-ui/dist/themes/default/assets/fonts/icons.ttf +0 -0
  180. data/share/views/public/plugins/semantic-ui/dist/themes/default/assets/fonts/icons.woff +0 -0
  181. data/share/views/public/plugins/semantic-ui/dist/themes/default/assets/fonts/icons.woff2 +0 -0
  182. data/share/views/public/plugins/semantic-ui/dist/themes/default/assets/images/flags.png +0 -0
  183. data/share/views/public/plugins/semantic-ui/examples/assets/images/avatar/nan.jpg +0 -0
  184. data/share/views/public/plugins/semantic-ui/examples/assets/images/avatar/tom.jpg +0 -0
  185. data/share/views/public/plugins/semantic-ui/examples/assets/images/bg.jpg +0 -0
  186. data/share/views/public/plugins/semantic-ui/examples/assets/images/logo.png +0 -0
  187. data/share/views/public/plugins/semantic-ui/examples/{images → assets/images}/wireframe/centered-paragraph.png +0 -0
  188. data/share/views/public/plugins/semantic-ui/examples/{images → assets/images}/wireframe/image-square.png +0 -0
  189. data/share/views/public/plugins/semantic-ui/examples/{images → assets/images}/wireframe/image-text.png +0 -0
  190. data/share/views/public/plugins/semantic-ui/examples/{images → assets/images}/wireframe/image.png +0 -0
  191. data/share/views/public/plugins/semantic-ui/examples/{images → assets/images}/wireframe/media-paragraph-alt.png +0 -0
  192. data/share/views/public/plugins/semantic-ui/examples/{images → assets/images}/wireframe/media-paragraph.png +0 -0
  193. data/share/views/public/plugins/semantic-ui/examples/{images → assets/images}/wireframe/paragraph.png +0 -0
  194. data/share/views/public/plugins/semantic-ui/examples/{images → assets/images}/wireframe/short-paragraph.png +0 -0
  195. data/share/views/public/plugins/semantic-ui/examples/{images → assets/images}/wireframe/square-image.png +0 -0
  196. data/share/views/public/plugins/semantic-ui/examples/{images → assets/images}/wireframe/text-image.png +0 -0
  197. data/share/views/public/plugins/semantic-ui/examples/{images → assets/images}/wireframe/white-image.png +0 -0
  198. data/share/views/public/plugins/semantic-ui/examples/assets/library/iframe-content.js +707 -0
  199. data/share/views/public/plugins/semantic-ui/examples/assets/library/iframe.js +642 -0
  200. data/share/views/public/plugins/semantic-ui/examples/assets/library/jquery.min.js +4 -0
  201. data/share/views/public/plugins/semantic-ui/examples/assets/show-examples.js +15 -0
  202. data/share/views/public/plugins/semantic-ui/examples/bootstrap.html +453 -0
  203. data/share/views/public/plugins/semantic-ui/examples/components/button.html +222 -0
  204. data/share/views/public/plugins/semantic-ui/examples/components/card.html +313 -0
  205. data/share/views/public/plugins/semantic-ui/examples/components/input.html +159 -0
  206. data/share/views/public/plugins/semantic-ui/examples/components/menu.html +183 -0
  207. data/share/views/public/plugins/semantic-ui/examples/components/site.html +74 -0
  208. data/share/views/public/plugins/semantic-ui/examples/components/table.html +471 -0
  209. data/share/views/public/plugins/semantic-ui/examples/fixed.html +137 -0
  210. data/share/views/public/plugins/semantic-ui/examples/grid.html +366 -1397
  211. data/share/views/public/plugins/semantic-ui/examples/homepage.html +249 -268
  212. data/share/views/public/plugins/semantic-ui/examples/login.html +125 -0
  213. data/share/views/public/plugins/semantic-ui/examples/responsive.html +689 -0
  214. data/share/views/public/plugins/semantic-ui/examples/sticky.html +230 -0
  215. data/share/views/public/plugins/semantic-ui/examples/theming.html +88 -0
  216. data/share/views/public/plugins/semantic-ui/gulpfile.js +47 -1082
  217. data/share/views/public/plugins/semantic-ui/karma.conf.js +0 -0
  218. data/share/views/public/plugins/semantic-ui/logo.png +0 -0
  219. data/share/views/public/plugins/semantic-ui/package.json +70 -36
  220. data/share/views/public/plugins/semantic-ui/semantic.json.example +4 -1
  221. data/share/views/public/plugins/semantic-ui/src/README.md +127 -0
  222. data/share/views/public/plugins/semantic-ui/src/_site/collections/breadcrumb.overrides +0 -0
  223. data/share/views/public/plugins/semantic-ui/src/_site/collections/breadcrumb.variables +0 -0
  224. data/share/views/public/plugins/semantic-ui/src/_site/collections/form.overrides +0 -0
  225. data/share/views/public/plugins/semantic-ui/src/_site/collections/grid.overrides +0 -0
  226. data/share/views/public/plugins/semantic-ui/src/_site/collections/menu.overrides +0 -0
  227. data/share/views/public/plugins/semantic-ui/src/_site/collections/table.overrides +0 -0
  228. data/share/views/public/plugins/semantic-ui/src/_site/elements/button.overrides +0 -0
  229. data/share/views/public/plugins/semantic-ui/src/_site/{modules/video.overrides → elements/container.overrides} +0 -0
  230. data/share/views/public/plugins/semantic-ui/src/_site/elements/container.variables +3 -0
  231. data/share/views/public/plugins/semantic-ui/src/_site/elements/divider.overrides +0 -0
  232. data/share/views/public/plugins/semantic-ui/src/_site/elements/flag.overrides +0 -0
  233. data/share/views/public/plugins/semantic-ui/src/_site/elements/header.overrides +0 -0
  234. data/share/views/public/plugins/semantic-ui/src/_site/elements/icon.overrides +0 -0
  235. data/share/views/public/plugins/semantic-ui/src/_site/elements/image.overrides +0 -0
  236. data/share/views/public/plugins/semantic-ui/src/_site/elements/input.overrides +0 -0
  237. data/share/views/public/plugins/semantic-ui/src/_site/elements/label.overrides +0 -0
  238. data/share/views/public/plugins/semantic-ui/src/_site/elements/loader.overrides +0 -0
  239. data/share/views/public/plugins/semantic-ui/src/_site/elements/rail.overrides +0 -0
  240. data/share/views/public/plugins/semantic-ui/src/_site/elements/reveal.overrides +0 -0
  241. data/share/views/public/plugins/semantic-ui/src/_site/elements/segment.overrides +0 -0
  242. data/share/views/public/plugins/semantic-ui/src/_site/elements/step.overrides +0 -0
  243. data/share/views/public/plugins/semantic-ui/src/_site/globals/reset.overrides +0 -0
  244. data/share/views/public/plugins/semantic-ui/src/_site/globals/site.overrides +0 -0
  245. data/share/views/public/plugins/semantic-ui/src/_site/modules/checkbox.overrides +0 -0
  246. data/share/views/public/plugins/semantic-ui/src/_site/modules/embed.overrides +3 -0
  247. data/share/views/public/plugins/semantic-ui/src/_site/modules/{video.variables → embed.variables} +0 -0
  248. data/share/views/public/plugins/semantic-ui/src/_site/modules/modal.overrides +0 -0
  249. data/share/views/public/plugins/semantic-ui/src/_site/modules/modal.variables +0 -0
  250. data/share/views/public/plugins/semantic-ui/src/_site/modules/progress.overrides +0 -0
  251. data/share/views/public/plugins/semantic-ui/src/_site/modules/rating.overrides +0 -0
  252. data/share/views/public/plugins/semantic-ui/src/_site/modules/rating.variables +0 -0
  253. data/share/views/public/plugins/semantic-ui/src/_site/modules/search.overrides +0 -0
  254. data/share/views/public/plugins/semantic-ui/src/_site/modules/search.variables +0 -0
  255. data/share/views/public/plugins/semantic-ui/src/_site/modules/sidebar.overrides +0 -0
  256. data/share/views/public/plugins/semantic-ui/src/_site/modules/sidebar.variables +0 -0
  257. data/share/views/public/plugins/semantic-ui/src/_site/modules/sticky.overrides +0 -0
  258. data/share/views/public/plugins/semantic-ui/src/_site/modules/sticky.variables +0 -0
  259. data/share/views/public/plugins/semantic-ui/src/_site/modules/transition.overrides +0 -0
  260. data/share/views/public/plugins/semantic-ui/src/definitions/behaviors/api.js +428 -190
  261. data/share/views/public/plugins/semantic-ui/src/definitions/behaviors/colorize.js +6 -4
  262. data/share/views/public/plugins/semantic-ui/src/definitions/behaviors/form.js +654 -193
  263. data/share/views/public/plugins/semantic-ui/src/definitions/behaviors/state.js +37 -32
  264. data/share/views/public/plugins/semantic-ui/src/definitions/behaviors/visibility.js +423 -161
  265. data/share/views/public/plugins/semantic-ui/src/definitions/behaviors/visit.js +18 -14
  266. data/share/views/public/plugins/semantic-ui/src/definitions/collections/breadcrumb.less +7 -6
  267. data/share/views/public/plugins/semantic-ui/src/definitions/collections/form.less +243 -103
  268. data/share/views/public/plugins/semantic-ui/src/definitions/collections/grid.less +522 -430
  269. data/share/views/public/plugins/semantic-ui/src/definitions/collections/menu.less +872 -640
  270. data/share/views/public/plugins/semantic-ui/src/definitions/collections/message.less +97 -79
  271. data/share/views/public/plugins/semantic-ui/src/definitions/collections/table.less +314 -132
  272. data/share/views/public/plugins/semantic-ui/src/definitions/elements/button.less +1300 -480
  273. data/share/views/public/plugins/semantic-ui/src/definitions/elements/container.less +125 -0
  274. data/share/views/public/plugins/semantic-ui/src/definitions/elements/divider.less +36 -37
  275. data/share/views/public/plugins/semantic-ui/src/definitions/elements/flag.less +12 -5
  276. data/share/views/public/plugins/semantic-ui/src/definitions/elements/header.less +308 -157
  277. data/share/views/public/plugins/semantic-ui/src/definitions/elements/icon.less +207 -106
  278. data/share/views/public/plugins/semantic-ui/src/definitions/elements/image.less +71 -13
  279. data/share/views/public/plugins/semantic-ui/src/definitions/elements/input.less +127 -104
  280. data/share/views/public/plugins/semantic-ui/src/definitions/elements/label.less +454 -268
  281. data/share/views/public/plugins/semantic-ui/src/definitions/elements/list.less +127 -96
  282. data/share/views/public/plugins/semantic-ui/src/definitions/elements/loader.less +13 -6
  283. data/share/views/public/plugins/semantic-ui/src/definitions/elements/rail.less +40 -31
  284. data/share/views/public/plugins/semantic-ui/src/definitions/elements/reveal.less +31 -15
  285. data/share/views/public/plugins/semantic-ui/src/definitions/elements/segment.less +265 -140
  286. data/share/views/public/plugins/semantic-ui/src/definitions/elements/step.less +243 -67
  287. data/share/views/public/plugins/semantic-ui/src/definitions/globals/reset.less +8 -6
  288. data/share/views/public/plugins/semantic-ui/src/definitions/globals/site.js +8 -8
  289. data/share/views/public/plugins/semantic-ui/src/definitions/globals/site.less +44 -13
  290. data/share/views/public/plugins/semantic-ui/src/definitions/modules/accordion.js +182 -94
  291. data/share/views/public/plugins/semantic-ui/src/definitions/modules/accordion.less +13 -9
  292. data/share/views/public/plugins/semantic-ui/src/definitions/modules/checkbox.js +348 -111
  293. data/share/views/public/plugins/semantic-ui/src/definitions/modules/checkbox.less +196 -96
  294. data/share/views/public/plugins/semantic-ui/src/definitions/modules/dimmer.js +89 -48
  295. data/share/views/public/plugins/semantic-ui/src/definitions/modules/dimmer.less +30 -20
  296. data/share/views/public/plugins/semantic-ui/src/definitions/modules/dropdown.js +2263 -536
  297. data/share/views/public/plugins/semantic-ui/src/definitions/modules/dropdown.less +498 -97
  298. data/share/views/public/plugins/semantic-ui/src/definitions/modules/embed.js +662 -0
  299. data/share/views/public/plugins/semantic-ui/src/definitions/modules/embed.less +164 -0
  300. data/share/views/public/plugins/semantic-ui/src/definitions/modules/modal.js +280 -202
  301. data/share/views/public/plugins/semantic-ui/src/definitions/modules/modal.less +91 -47
  302. data/share/views/public/plugins/semantic-ui/src/definitions/modules/nag.js +10 -11
  303. data/share/views/public/plugins/semantic-ui/src/definitions/modules/nag.less +6 -6
  304. data/share/views/public/plugins/semantic-ui/src/definitions/modules/popup.js +473 -233
  305. data/share/views/public/plugins/semantic-ui/src/definitions/modules/popup.less +55 -13
  306. data/share/views/public/plugins/semantic-ui/src/definitions/modules/progress.js +252 -111
  307. data/share/views/public/plugins/semantic-ui/src/definitions/modules/progress.less +182 -107
  308. data/share/views/public/plugins/semantic-ui/src/definitions/modules/rating.js +85 -61
  309. data/share/views/public/plugins/semantic-ui/src/definitions/modules/rating.less +64 -70
  310. data/share/views/public/plugins/semantic-ui/src/definitions/modules/search.js +688 -296
  311. data/share/views/public/plugins/semantic-ui/src/definitions/modules/search.less +60 -14
  312. data/share/views/public/plugins/semantic-ui/src/definitions/modules/shape.js +102 -56
  313. data/share/views/public/plugins/semantic-ui/src/definitions/modules/shape.less +10 -11
  314. data/share/views/public/plugins/semantic-ui/src/definitions/modules/sidebar.js +296 -249
  315. data/share/views/public/plugins/semantic-ui/src/definitions/modules/sidebar.less +140 -44
  316. data/share/views/public/plugins/semantic-ui/src/definitions/modules/sticky.js +222 -108
  317. data/share/views/public/plugins/semantic-ui/src/definitions/modules/sticky.less +6 -5
  318. data/share/views/public/plugins/semantic-ui/src/definitions/modules/tab.js +268 -172
  319. data/share/views/public/plugins/semantic-ui/src/definitions/modules/tab.less +6 -5
  320. data/share/views/public/plugins/semantic-ui/src/definitions/modules/transition.js +355 -210
  321. data/share/views/public/plugins/semantic-ui/src/definitions/modules/transition.less +8 -18
  322. data/share/views/public/plugins/semantic-ui/src/definitions/views/ad.less +6 -4
  323. data/share/views/public/plugins/semantic-ui/src/definitions/views/card.less +385 -92
  324. data/share/views/public/plugins/semantic-ui/src/definitions/views/comment.less +6 -6
  325. data/share/views/public/plugins/semantic-ui/src/definitions/views/feed.less +19 -12
  326. data/share/views/public/plugins/semantic-ui/src/definitions/views/item.less +18 -19
  327. data/share/views/public/plugins/semantic-ui/src/definitions/views/statistic.less +232 -90
  328. data/share/views/public/plugins/semantic-ui/src/semantic.less +66 -0
  329. data/share/views/public/plugins/semantic-ui/src/theme.config.example +19 -23
  330. data/share/views/public/plugins/semantic-ui/src/theme.less +24 -17
  331. data/share/views/public/plugins/semantic-ui/src/themes/amazon/elements/button.overrides +5 -5
  332. data/share/views/public/plugins/semantic-ui/src/themes/amazon/elements/button.variables +5 -4
  333. data/share/views/public/plugins/semantic-ui/src/themes/basic/collections/table.variables +1 -0
  334. data/share/views/public/plugins/semantic-ui/src/themes/basic/elements/icon.overrides +156 -156
  335. data/share/views/public/plugins/semantic-ui/src/themes/basic/elements/icon.variables +7 -0
  336. data/share/views/public/plugins/semantic-ui/src/themes/basic/views/card.variables +7 -6
  337. data/share/views/public/plugins/semantic-ui/src/themes/bookish/elements/header.variables +4 -4
  338. data/share/views/public/plugins/semantic-ui/src/themes/bootstrap3/elements/button.variables +1 -1
  339. data/share/views/public/plugins/semantic-ui/src/themes/chubby/collections/form.overrides +8 -0
  340. data/share/views/public/plugins/semantic-ui/src/themes/chubby/collections/menu.overrides +0 -0
  341. data/share/views/public/plugins/semantic-ui/src/themes/chubby/collections/menu.variables +40 -0
  342. data/share/views/public/plugins/semantic-ui/src/themes/chubby/elements/header.variables +4 -4
  343. data/share/views/public/plugins/semantic-ui/src/themes/classic/modules/progress.variables +1 -0
  344. data/share/views/public/plugins/semantic-ui/src/themes/classic/views/card.overrides +1 -1
  345. data/share/views/public/plugins/semantic-ui/src/themes/colored/modules/checkbox.overrides +0 -0
  346. data/share/views/public/plugins/semantic-ui/src/themes/colored/modules/checkbox.variables +17 -0
  347. data/share/views/public/plugins/semantic-ui/src/themes/default/assets/fonts/icons.eot +0 -0
  348. data/share/views/public/plugins/semantic-ui/src/themes/default/assets/fonts/icons.svg +526 -465
  349. data/share/views/public/plugins/semantic-ui/src/themes/default/assets/fonts/icons.ttf +0 -0
  350. data/share/views/public/plugins/semantic-ui/src/themes/default/assets/fonts/icons.woff +0 -0
  351. data/share/views/public/plugins/semantic-ui/src/themes/default/assets/fonts/icons.woff2 +0 -0
  352. data/share/views/public/plugins/semantic-ui/src/themes/default/assets/images/flags.png +0 -0
  353. data/share/views/public/plugins/semantic-ui/src/themes/default/collections/breadcrumb.overrides +0 -0
  354. data/share/views/public/plugins/semantic-ui/src/themes/default/collections/breadcrumb.variables +7 -17
  355. data/share/views/public/plugins/semantic-ui/src/themes/default/collections/form.overrides +0 -0
  356. data/share/views/public/plugins/semantic-ui/src/themes/default/collections/form.variables +39 -39
  357. data/share/views/public/plugins/semantic-ui/src/themes/default/collections/grid.overrides +0 -0
  358. data/share/views/public/plugins/semantic-ui/src/themes/default/collections/grid.variables +34 -29
  359. data/share/views/public/plugins/semantic-ui/src/themes/default/collections/menu.overrides +0 -0
  360. data/share/views/public/plugins/semantic-ui/src/themes/default/collections/menu.variables +265 -157
  361. data/share/views/public/plugins/semantic-ui/src/themes/default/collections/message.overrides +0 -0
  362. data/share/views/public/plugins/semantic-ui/src/themes/default/collections/message.variables +42 -19
  363. data/share/views/public/plugins/semantic-ui/src/themes/default/collections/table.overrides +0 -3
  364. data/share/views/public/plugins/semantic-ui/src/themes/default/collections/table.variables +64 -60
  365. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/button.overrides +0 -0
  366. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/button.variables +110 -36
  367. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/container.overrides +3 -0
  368. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/container.variables +45 -0
  369. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/divider.overrides +15 -0
  370. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/divider.variables +3 -4
  371. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/flag.overrides +0 -1
  372. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/header.overrides +0 -0
  373. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/header.variables +59 -34
  374. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/icon.overrides +142 -38
  375. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/icon.variables +30 -4
  376. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/image.overrides +0 -0
  377. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/image.variables +5 -3
  378. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/input.overrides +0 -0
  379. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/input.variables +12 -26
  380. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/label.overrides +0 -0
  381. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/label.variables +101 -38
  382. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/list.overrides +0 -0
  383. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/list.variables +53 -34
  384. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/loader.overrides +0 -0
  385. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/loader.variables +9 -10
  386. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/rail.overrides +0 -0
  387. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/rail.variables +15 -5
  388. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/reveal.overrides +0 -0
  389. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/reveal.variables +6 -4
  390. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/segment.overrides +0 -0
  391. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/segment.variables +66 -28
  392. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/step.overrides +0 -0
  393. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/step.variables +64 -30
  394. data/share/views/public/plugins/semantic-ui/src/themes/default/globals/reset.overrides +0 -0
  395. data/share/views/public/plugins/semantic-ui/src/themes/default/globals/site.variables +519 -331
  396. data/share/views/public/plugins/semantic-ui/src/themes/default/modules/accordion.overrides +0 -0
  397. data/share/views/public/plugins/semantic-ui/src/themes/default/modules/accordion.variables +10 -11
  398. data/share/views/public/plugins/semantic-ui/src/themes/default/modules/chatroom.overrides +0 -0
  399. data/share/views/public/plugins/semantic-ui/src/themes/default/modules/checkbox.overrides +19 -16
  400. data/share/views/public/plugins/semantic-ui/src/themes/default/modules/checkbox.variables +72 -43
  401. data/share/views/public/plugins/semantic-ui/src/themes/default/modules/dimmer.overrides +0 -0
  402. data/share/views/public/plugins/semantic-ui/src/themes/default/modules/dimmer.variables +20 -10
  403. data/share/views/public/plugins/semantic-ui/src/themes/default/modules/dropdown.overrides +5 -0
  404. data/share/views/public/plugins/semantic-ui/src/themes/default/modules/dropdown.variables +188 -63
  405. data/share/views/public/plugins/semantic-ui/src/themes/default/modules/{video.overrides → embed.overrides} +0 -0
  406. data/share/views/public/plugins/semantic-ui/src/themes/default/modules/embed.variables +53 -0
  407. data/share/views/public/plugins/semantic-ui/src/themes/default/modules/modal.overrides +0 -0
  408. data/share/views/public/plugins/semantic-ui/src/themes/default/modules/modal.variables +26 -22
  409. data/share/views/public/plugins/semantic-ui/src/themes/default/modules/nag.overrides +0 -0
  410. data/share/views/public/plugins/semantic-ui/src/themes/default/modules/popup.overrides +0 -0
  411. data/share/views/public/plugins/semantic-ui/src/themes/default/modules/popup.variables +6 -12
  412. data/share/views/public/plugins/semantic-ui/src/themes/default/modules/progress.variables +14 -8
  413. data/share/views/public/plugins/semantic-ui/src/themes/default/modules/rating.overrides +0 -1
  414. data/share/views/public/plugins/semantic-ui/src/themes/default/modules/rating.variables +72 -34
  415. data/share/views/public/plugins/semantic-ui/src/themes/default/modules/search.overrides +0 -0
  416. data/share/views/public/plugins/semantic-ui/src/themes/default/modules/search.variables +36 -34
  417. data/share/views/public/plugins/semantic-ui/src/themes/default/modules/shape.overrides +0 -0
  418. data/share/views/public/plugins/semantic-ui/src/themes/default/modules/shape.variables +7 -2
  419. data/share/views/public/plugins/semantic-ui/src/themes/default/modules/sidebar.overrides +0 -0
  420. data/share/views/public/plugins/semantic-ui/src/themes/default/modules/sidebar.variables +19 -13
  421. data/share/views/public/plugins/semantic-ui/src/themes/default/modules/sticky.overrides +0 -0
  422. data/share/views/public/plugins/semantic-ui/src/themes/default/modules/sticky.variables +2 -7
  423. data/share/views/public/plugins/semantic-ui/src/themes/default/modules/tab.variables +1 -3
  424. data/share/views/public/plugins/semantic-ui/src/themes/default/modules/transition.overrides +689 -224
  425. data/share/views/public/plugins/semantic-ui/src/themes/default/modules/transition.variables +1 -1
  426. data/share/views/public/plugins/semantic-ui/src/themes/default/views/ad.variables +2 -2
  427. data/share/views/public/plugins/semantic-ui/src/themes/default/views/card.variables +61 -37
  428. data/share/views/public/plugins/semantic-ui/src/themes/default/views/comment.overrides +0 -0
  429. data/share/views/public/plugins/semantic-ui/src/themes/default/views/feed.overrides +0 -0
  430. data/share/views/public/plugins/semantic-ui/src/themes/default/views/feed.variables +15 -23
  431. data/share/views/public/plugins/semantic-ui/src/themes/default/views/item.overrides +0 -0
  432. data/share/views/public/plugins/semantic-ui/src/themes/default/views/item.variables +17 -15
  433. data/share/views/public/plugins/semantic-ui/src/themes/default/views/statistic.overrides +0 -0
  434. data/share/views/public/plugins/semantic-ui/src/themes/default/views/statistic.variables +25 -24
  435. data/share/views/public/plugins/semantic-ui/src/themes/fixed-width/collections/grid.variables +1 -3
  436. data/share/views/public/plugins/semantic-ui/src/themes/flat/collections/form.overrides +4 -0
  437. data/share/views/public/plugins/semantic-ui/src/themes/flat/collections/form.variables +1 -2
  438. data/share/views/public/plugins/semantic-ui/src/themes/flat/globals/site.variables +1 -0
  439. data/share/views/public/plugins/semantic-ui/src/themes/github/collections/form.variables +1 -1
  440. data/share/views/public/plugins/semantic-ui/src/themes/github/collections/menu.variables +10 -15
  441. data/share/views/public/plugins/semantic-ui/src/themes/github/elements/button.variables +2 -2
  442. data/share/views/public/plugins/semantic-ui/src/themes/github/elements/step.variables +2 -2
  443. data/share/views/public/plugins/semantic-ui/src/themes/instagram/views/card.overrides +12 -0
  444. data/share/views/public/plugins/semantic-ui/src/themes/instagram/views/card.variables +23 -0
  445. data/share/views/public/plugins/semantic-ui/src/themes/material/collections/menu.overrides +1 -0
  446. data/share/views/public/plugins/semantic-ui/src/themes/material/collections/menu.variables +10 -0
  447. data/share/views/public/plugins/semantic-ui/src/themes/material/elements/button.overrides +4 -4
  448. data/share/views/public/plugins/semantic-ui/src/themes/material/elements/button.variables +14 -6
  449. data/share/views/public/plugins/semantic-ui/src/themes/material/globals/site.variables +3 -2
  450. data/share/views/public/plugins/semantic-ui/src/themes/material/modules/dropdown.overrides +5 -0
  451. data/share/views/public/plugins/semantic-ui/src/themes/material/modules/dropdown.variables +20 -0
  452. data/share/views/public/plugins/semantic-ui/src/themes/raised/elements/button.variables +5 -5
  453. data/share/views/public/plugins/semantic-ui/src/themes/round/elements/button.variables +1 -1
  454. data/share/views/public/plugins/semantic-ui/src/themes/rtl/globals/site.overrides +6 -0
  455. data/share/views/public/plugins/semantic-ui/src/themes/rtl/globals/site.variables +14 -0
  456. data/share/views/public/plugins/semantic-ui/src/themes/timeline/views/feed.overrides +4 -12
  457. data/share/views/public/plugins/semantic-ui/src/themes/timeline/views/feed.variables +3 -7
  458. data/share/views/public/plugins/semantic-ui/tasks/README.md +17 -0
  459. data/share/views/public/plugins/semantic-ui/tasks/admin/components/create.js +332 -0
  460. data/share/views/public/plugins/semantic-ui/tasks/admin/components/init.js +170 -0
  461. data/share/views/public/plugins/semantic-ui/tasks/admin/components/update.js +184 -0
  462. data/share/views/public/plugins/semantic-ui/tasks/admin/distributions/create.js +219 -0
  463. data/share/views/public/plugins/semantic-ui/tasks/admin/distributions/init.js +170 -0
  464. data/share/views/public/plugins/semantic-ui/tasks/admin/distributions/update.js +182 -0
  465. data/share/views/public/plugins/semantic-ui/tasks/admin/publish.js +25 -0
  466. data/share/views/public/plugins/semantic-ui/tasks/admin/register.js +55 -0
  467. data/share/views/public/plugins/semantic-ui/tasks/admin/release.js +20 -76
  468. data/share/views/public/plugins/semantic-ui/tasks/build.js +37 -0
  469. data/share/views/public/plugins/semantic-ui/tasks/build/assets.js +35 -0
  470. data/share/views/public/plugins/semantic-ui/tasks/build/css.js +105 -0
  471. data/share/views/public/plugins/semantic-ui/tasks/build/javascript.js +77 -0
  472. data/share/views/public/plugins/semantic-ui/tasks/check-install.js +28 -0
  473. data/share/views/public/plugins/semantic-ui/tasks/clean.js +14 -0
  474. data/share/views/public/plugins/semantic-ui/tasks/collections/README.md +16 -0
  475. data/share/views/public/plugins/semantic-ui/tasks/collections/admin.js +49 -0
  476. data/share/views/public/plugins/semantic-ui/tasks/collections/internal.js +214 -0
  477. data/share/views/public/plugins/semantic-ui/tasks/config/admin/github.js +38 -0
  478. data/share/views/public/plugins/semantic-ui/tasks/{admin → config/admin}/oauth.example.js +5 -0
  479. data/share/views/public/plugins/semantic-ui/tasks/config/admin/release.js +110 -0
  480. data/share/views/public/plugins/semantic-ui/tasks/{admin → config/admin}/templates/README.md +6 -0
  481. data/share/views/public/plugins/semantic-ui/tasks/{admin → config/admin}/templates/bower.json +0 -0
  482. data/share/views/public/plugins/semantic-ui/tasks/config/admin/templates/component-package.js +14 -0
  483. data/share/views/public/plugins/semantic-ui/tasks/{admin → config/admin}/templates/composer.json +0 -0
  484. data/share/views/public/plugins/semantic-ui/tasks/config/admin/templates/css-package.js +34 -0
  485. data/share/views/public/plugins/semantic-ui/tasks/config/admin/templates/less-package.js +21 -0
  486. data/share/views/public/plugins/semantic-ui/tasks/{admin → config/admin}/templates/package.json +0 -0
  487. data/share/views/public/plugins/semantic-ui/tasks/config/defaults.js +117 -0
  488. data/share/views/public/plugins/semantic-ui/tasks/config/docs.js +32 -0
  489. data/share/views/public/plugins/semantic-ui/tasks/config/npm/gulpfile.js +72 -0
  490. data/share/views/public/plugins/semantic-ui/tasks/config/project/config.js +142 -0
  491. data/share/views/public/plugins/semantic-ui/tasks/config/project/install.js +756 -0
  492. data/share/views/public/plugins/semantic-ui/tasks/config/project/release.js +61 -0
  493. data/share/views/public/plugins/semantic-ui/tasks/config/tasks.js +160 -0
  494. data/share/views/public/plugins/semantic-ui/tasks/config/user.js +58 -0
  495. data/share/views/public/plugins/semantic-ui/tasks/docs/build.js +189 -0
  496. data/share/views/public/plugins/semantic-ui/tasks/docs/metadata.js +137 -0
  497. data/share/views/public/plugins/semantic-ui/tasks/docs/serve.js +255 -0
  498. data/share/views/public/plugins/semantic-ui/tasks/install.js +397 -0
  499. data/share/views/public/plugins/semantic-ui/tasks/rtl/build.js +132 -0
  500. data/share/views/public/plugins/semantic-ui/tasks/rtl/watch.js +221 -0
  501. data/share/views/public/plugins/semantic-ui/tasks/version.js +11 -0
  502. data/share/views/public/plugins/semantic-ui/tasks/watch.js +228 -0
  503. data/share/views/public/plugins/semantic-ui/test/coverage/PhantomJS 1.9.2 (Linux)/index.html b/data/share/views/public/plugins/semantic-ui/test/coverage/PhantomJS 1.9.2 → (Linux)/index.html +0 -0
  504. data/share/views/public/plugins/semantic-ui/test/coverage/PhantomJS 1.9.2 (Linux)/prettify.css b/data/share/views/public/plugins/semantic-ui/test/coverage/PhantomJS 1.9.2 → (Linux)/prettify.css +0 -0
  505. data/share/views/public/plugins/semantic-ui/test/coverage/PhantomJS 1.9.2 (Linux)/prettify.js b/data/share/views/public/plugins/semantic-ui/test/coverage/PhantomJS 1.9.2 → (Linux)/prettify.js +0 -0
  506. data/share/views/public/plugins/semantic-ui/test/coverage/coverage-PhantomJS 1.9.2 (Linux)-20131014_012621.json b/data/share/views/public/plugins/semantic-ui/test/coverage/coverage-PhantomJS 1.9.2 → (Linux)-20131014_012621.json +0 -0
  507. data/share/views/public/plugins/semantic-ui/test/coverage/coverage-PhantomJS 1.9.2 (Linux)-20131014_012811.json b/data/share/views/public/plugins/semantic-ui/test/coverage/coverage-PhantomJS 1.9.2 → (Linux)-20131014_012811.json +0 -0
  508. data/share/views/public/plugins/semantic-ui/test/fixtures/accordion.html +0 -0
  509. data/share/views/public/plugins/semantic-ui/test/fixtures/checkbox.html +0 -0
  510. data/share/views/public/plugins/semantic-ui/test/fixtures/dropdown.html +0 -0
  511. data/share/views/public/plugins/semantic-ui/test/fixtures/modal.html +0 -0
  512. data/share/views/public/plugins/semantic-ui/test/fixtures/popup.html +0 -0
  513. data/share/views/public/plugins/semantic-ui/test/fixtures/rating.html +0 -0
  514. data/share/views/public/plugins/semantic-ui/test/fixtures/shape.html +0 -0
  515. data/share/views/public/plugins/semantic-ui/test/fixtures/sidebar.html +0 -0
  516. data/share/views/public/plugins/semantic-ui/test/fixtures/tab.html +0 -0
  517. data/share/views/public/plugins/semantic-ui/test/fixtures/transition.html +0 -0
  518. data/share/views/public/plugins/semantic-ui/test/fixtures/video.html +0 -0
  519. data/share/views/public/plugins/semantic-ui/test/helpers/jasmine-clog.js +0 -0
  520. data/share/views/public/plugins/semantic-ui/test/helpers/jasmine-jquery.js +0 -0
  521. data/share/views/public/plugins/semantic-ui/test/helpers/jasmine-sinon.js +0 -0
  522. data/share/views/public/plugins/semantic-ui/test/helpers/jquery-events.js +0 -0
  523. data/share/views/public/plugins/semantic-ui/test/helpers/sinon.js +0 -0
  524. data/share/views/public/plugins/semantic-ui/test/meteor/assets.js +20 -0
  525. data/share/views/public/plugins/semantic-ui/test/meteor/fonts.js +16 -0
  526. data/share/views/public/plugins/semantic-ui/test/modules/accordion.spec.js +0 -0
  527. data/share/views/public/plugins/semantic-ui/test/modules/checkbox.spec.js +0 -0
  528. data/share/views/public/plugins/semantic-ui/test/modules/dropdown.spec.js +0 -0
  529. data/share/views/public/plugins/semantic-ui/test/modules/modal.spec.js +0 -0
  530. data/share/views/public/plugins/semantic-ui/test/modules/module.spec.js +0 -0
  531. data/share/views/public/plugins/semantic-ui/test/modules/popup.spec.js +0 -0
  532. data/share/views/public/plugins/semantic-ui/test/modules/search.spec.js +0 -0
  533. data/share/views/public/plugins/semantic-ui/test/modules/shape.spec.js +0 -0
  534. data/share/views/public/plugins/semantic-ui/test/modules/sidebar.spec.js +0 -0
  535. data/share/views/public/plugins/semantic-ui/test/modules/tab.spec.js +0 -0
  536. data/share/views/public/plugins/semantic-ui/test/modules/transition.spec.js +0 -0
  537. data/share/views/public/plugins/semantic-ui/test/modules/video.spec.js +0 -0
  538. metadata +114 -45
  539. data/share/views/public/js/jquery-ui.js +0 -313
  540. data/share/views/public/plugins/semantic-ui/GETTING-STARTED.md +0 -96
  541. data/share/views/public/plugins/semantic-ui/examples/feed.css +0 -93
  542. data/share/views/public/plugins/semantic-ui/examples/feed.html +0 -174
  543. data/share/views/public/plugins/semantic-ui/examples/feed.js +0 -23
  544. data/share/views/public/plugins/semantic-ui/examples/grid.css +0 -102
  545. data/share/views/public/plugins/semantic-ui/examples/homepage.css +0 -134
  546. data/share/views/public/plugins/semantic-ui/examples/homepage.js +0 -57
  547. data/share/views/public/plugins/semantic-ui/examples/images/bg.jpg +0 -0
  548. data/share/views/public/plugins/semantic-ui/examples/images/cat.png +0 -0
  549. data/share/views/public/plugins/semantic-ui/examples/kitchensink.css +0 -49
  550. data/share/views/public/plugins/semantic-ui/examples/kitchensink.html +0 -5454
  551. data/share/views/public/plugins/semantic-ui/src/definitions/modules/video.js +0 -539
  552. data/share/views/public/plugins/semantic-ui/src/definitions/modules/video.less +0 -125
  553. data/share/views/public/plugins/semantic-ui/src/themes/default/assets/fonts/icons.otf +0 -0
  554. data/share/views/public/plugins/semantic-ui/src/themes/default/modules/video.variables +0 -16
  555. data/share/views/public/plugins/semantic-ui/tasks/admin/docs.json +0 -19
  556. data/share/views/public/plugins/semantic-ui/tasks/admin/questions.js +0 -50
  557. data/share/views/public/plugins/semantic-ui/tasks/banner.js +0 -12
  558. data/share/views/public/plugins/semantic-ui/tasks/comments.js +0 -20
  559. data/share/views/public/plugins/semantic-ui/tasks/defaults.js +0 -69
  560. data/share/views/public/plugins/semantic-ui/tasks/gulp-settings.js +0 -51
  561. data/share/views/public/plugins/semantic-ui/tasks/log.js +0 -8
  562. data/share/views/public/plugins/semantic-ui/tasks/questions.js +0 -425
@@ -1,9 +1,9 @@
1
- /*
2
- * # Semantic - Colorize
1
+ /*!
2
+ * # Semantic UI - Colorize
3
3
  * http://github.com/semantic-org/semantic-ui/
4
4
  *
5
5
  *
6
- * Copyright 2014 Contributor
6
+ * Copyright 2015 Contributors
7
7
  * Released under the MIT license
8
8
  * http://opensource.org/licenses/MIT
9
9
  *
@@ -15,7 +15,9 @@
15
15
 
16
16
  $.fn.colorize = function(parameters) {
17
17
  var
18
- settings = $.extend(true, {}, $.fn.colorize.settings, parameters),
18
+ settings = ( $.isPlainObject(parameters) )
19
+ ? $.extend(true, {}, $.fn.colorize.settings, parameters)
20
+ : $.extend({}, $.fn.colorize.settings),
19
21
  // hoist arguments
20
22
  moduleArguments = arguments || false
21
23
  ;
@@ -1,9 +1,9 @@
1
- /*
2
- * # Semantic - Form Validation
1
+ /*!
2
+ * # Semantic UI - Form Validation
3
3
  * http://github.com/semantic-org/semantic-ui/
4
4
  *
5
5
  *
6
- * Copyright 2014 Contributor
6
+ * Copyright 2015 Contributors
7
7
  * Released under the MIT license
8
8
  * http://opensource.org/licenses/MIT
9
9
  *
@@ -11,55 +11,74 @@
11
11
 
12
12
  ;(function ( $, window, document, undefined ) {
13
13
 
14
- $.fn.form = function(fields, parameters) {
15
- var
16
- $allModules = $(this),
17
-
18
- settings = $.extend(true, {}, $.fn.form.settings, parameters),
19
- validation = $.extend({}, $.fn.form.settings.defaults, fields),
20
-
21
- namespace = settings.namespace,
22
- metadata = settings.metadata,
23
- selector = settings.selector,
24
- className = settings.className,
25
- error = settings.error,
14
+ "use strict";
26
15
 
27
- eventNamespace = '.' + namespace,
28
- moduleNamespace = 'module-' + namespace,
29
-
30
- moduleSelector = $allModules.selector || '',
16
+ $.fn.form = function(parameters) {
17
+ var
18
+ $allModules = $(this),
19
+ moduleSelector = $allModules.selector || '',
31
20
 
32
- time = new Date().getTime(),
33
- performance = [],
21
+ time = new Date().getTime(),
22
+ performance = [],
34
23
 
35
- query = arguments[0],
36
- methodInvoked = (typeof query == 'string'),
37
- queryArguments = [].slice.call(arguments, 1),
24
+ query = arguments[0],
25
+ legacyParameters = arguments[1],
26
+ methodInvoked = (typeof query == 'string'),
27
+ queryArguments = [].slice.call(arguments, 1),
38
28
  returnedValue
39
29
  ;
40
30
  $allModules
41
31
  .each(function() {
42
32
  var
43
- $module = $(this),
44
- $field = $(this).find(selector.field),
45
- $group = $(this).find(selector.group),
46
- $message = $(this).find(selector.message),
47
- $prompt = $(this).find(selector.prompt),
48
- $submit = $(this).find(selector.submit),
33
+ $module = $(this),
34
+ element = this,
35
+
36
+ formErrors = [],
37
+ keyHeldDown = false,
38
+
39
+ // set at run-time
40
+ $field,
41
+ $group,
42
+ $message,
43
+ $prompt,
44
+ $submit,
45
+ $clear,
46
+ $reset,
47
+
48
+ settings,
49
+ validation,
50
+
51
+ metadata,
52
+ selector,
53
+ className,
54
+ error,
49
55
 
50
- formErrors = [],
56
+ namespace,
57
+ moduleNamespace,
58
+ eventNamespace,
51
59
 
52
- element = this,
53
- instance = $module.data(moduleNamespace),
60
+ instance,
54
61
  module
55
62
  ;
56
63
 
57
64
  module = {
58
65
 
59
66
  initialize: function() {
60
- module.verbose('Initializing form validation', $module, validation, settings);
61
- module.bindEvents();
62
- module.instantiate();
67
+
68
+ // settings grabbed at run time
69
+ module.get.settings();
70
+ if(methodInvoked) {
71
+ if(instance === undefined) {
72
+ module.instantiate();
73
+ }
74
+ module.invoke(query);
75
+ }
76
+ else {
77
+ module.verbose('Initializing form validation', $module, settings);
78
+ module.bindEvents();
79
+ module.set.defaults();
80
+ module.instantiate();
81
+ }
63
82
  },
64
83
 
65
84
  instantiate: function() {
@@ -80,7 +99,14 @@ $.fn.form = function(fields, parameters) {
80
99
 
81
100
  refresh: function() {
82
101
  module.verbose('Refreshing selector cache');
83
- $field = $module.find(selector.field);
102
+ $field = $module.find(selector.field);
103
+ $group = $module.find(selector.group);
104
+ $message = $module.find(selector.message);
105
+ $prompt = $module.find(selector.prompt);
106
+
107
+ $submit = $module.find(selector.submit);
108
+ $clear = $module.find(selector.clear);
109
+ $reset = $module.find(selector.reset);
84
110
  },
85
111
 
86
112
  submit: function() {
@@ -93,7 +119,7 @@ $.fn.form = function(fields, parameters) {
93
119
  attachEvents: function(selector, action) {
94
120
  action = action || 'submit';
95
121
  $(selector)
96
- .on('click', function(event) {
122
+ .on('click' + eventNamespace, function(event) {
97
123
  module[action]();
98
124
  event.preventDefault();
99
125
  })
@@ -101,26 +127,25 @@ $.fn.form = function(fields, parameters) {
101
127
  },
102
128
 
103
129
  bindEvents: function() {
104
-
105
- if(settings.keyboardShortcuts) {
106
- $field
107
- .on('keydown' + eventNamespace, module.event.field.keydown)
108
- ;
109
- }
130
+ module.verbose('Attaching form events');
110
131
  $module
111
132
  .on('submit' + eventNamespace, module.validate.form)
133
+ .on('blur' + eventNamespace, selector.field, module.event.field.blur)
134
+ .on('click' + eventNamespace, selector.submit, module.submit)
135
+ .on('click' + eventNamespace, selector.reset, module.reset)
136
+ .on('click' + eventNamespace, selector.clear, module.clear)
112
137
  ;
113
- $field
114
- .on('blur' + eventNamespace, module.event.field.blur)
115
- ;
116
- // attach submit events
117
- module.attachEvents($submit, 'submit');
118
-
138
+ if(settings.keyboardShortcuts) {
139
+ $module
140
+ .on('keydown' + eventNamespace, selector.field, module.event.field.keydown)
141
+ ;
142
+ }
119
143
  $field
120
144
  .each(function() {
121
145
  var
122
- type = $(this).prop('type'),
123
- inputEvent = module.get.changeEvent(type)
146
+ $input = $(this),
147
+ type = $input.prop('type'),
148
+ inputEvent = module.get.changeEvent(type, $input)
124
149
  ;
125
150
  $(this)
126
151
  .on(inputEvent + eventNamespace, module.event.field.change)
@@ -129,6 +154,91 @@ $.fn.form = function(fields, parameters) {
129
154
  ;
130
155
  },
131
156
 
157
+ clear: function() {
158
+ $field
159
+ .each(function () {
160
+ var
161
+ $field = $(this),
162
+ $element = $field.parent(),
163
+ $fieldGroup = $field.closest($group),
164
+ $prompt = $fieldGroup.find(selector.prompt),
165
+ defaultValue = $field.data(metadata.defaultValue) || '',
166
+ isCheckbox = $element.is(selector.uiCheckbox),
167
+ isDropdown = $element.is(selector.uiDropdown),
168
+ isErrored = $fieldGroup.hasClass(className.error)
169
+ ;
170
+ if(isErrored) {
171
+ module.verbose('Resetting error on field', $fieldGroup);
172
+ $fieldGroup.removeClass(className.error);
173
+ $prompt.remove();
174
+ }
175
+ if(isDropdown) {
176
+ module.verbose('Resetting dropdown value', $element, defaultValue);
177
+ $element.dropdown('clear');
178
+ }
179
+ else if(isCheckbox) {
180
+ $field.prop('checked', false);
181
+ }
182
+ else {
183
+ module.verbose('Resetting field value', $field, defaultValue);
184
+ $field.val('');
185
+ }
186
+ })
187
+ ;
188
+ },
189
+
190
+ reset: function() {
191
+ $field
192
+ .each(function () {
193
+ var
194
+ $field = $(this),
195
+ $element = $field.parent(),
196
+ $fieldGroup = $field.closest($group),
197
+ $prompt = $fieldGroup.find(selector.prompt),
198
+ defaultValue = $field.data(metadata.defaultValue),
199
+ isCheckbox = $element.is(selector.uiCheckbox),
200
+ isDropdown = $element.is(selector.uiDropdown),
201
+ isErrored = $fieldGroup.hasClass(className.error)
202
+ ;
203
+ if(defaultValue === undefined) {
204
+ defaultValue = '';
205
+ }
206
+ if(isErrored) {
207
+ module.verbose('Resetting error on field', $fieldGroup);
208
+ $fieldGroup.removeClass(className.error);
209
+ $prompt.remove();
210
+ }
211
+ if(isDropdown) {
212
+ module.verbose('Resetting dropdown value', $element, defaultValue);
213
+ $element.dropdown('restore defaults');
214
+ }
215
+ else if(isCheckbox) {
216
+ module.verbose('Resetting checkbox value', $element, defaultValue);
217
+ $field.prop('checked', defaultValue);
218
+ }
219
+ else {
220
+ module.verbose('Resetting field value', $field, defaultValue);
221
+ $field.val(defaultValue);
222
+ }
223
+ })
224
+ ;
225
+ },
226
+
227
+ is: {
228
+ valid: function() {
229
+ var
230
+ allValid = true
231
+ ;
232
+ module.verbose('Checking if form is valid');
233
+ $.each(validation, function(fieldName, field) {
234
+ if( !( module.validate.field(field) ) ) {
235
+ allValid = false;
236
+ }
237
+ });
238
+ return allValid;
239
+ }
240
+ },
241
+
132
242
  removeEvents: function() {
133
243
  $module
134
244
  .off(eventNamespace)
@@ -161,32 +271,32 @@ $.fn.form = function(fields, parameters) {
161
271
  .blur()
162
272
  ;
163
273
  }
164
- if(!event.ctrlKey && key == keyCode.enter && $field.is(selector.input) && $field.not(selector.checkbox).size() > 0 ) {
165
- module.debug('Enter key pressed, submitting form');
166
- $submit
167
- .addClass(className.down)
168
- ;
169
- $field
170
- .one('keyup' + eventNamespace, module.event.field.keyup)
171
- ;
274
+ if(!event.ctrlKey && key == keyCode.enter && $field.is(selector.input) && $field.not(selector.checkbox).length > 0 ) {
275
+ if(!keyHeldDown) {
276
+ $field
277
+ .one('keyup' + eventNamespace, module.event.field.keyup)
278
+ ;
279
+ module.submit();
280
+ module.debug('Enter pressed on input submitting form');
281
+ }
282
+ keyHeldDown = true;
172
283
  }
173
284
  },
174
285
  keyup: function() {
175
- module.verbose('Doing keyboard shortcut form submit');
176
- $submit.removeClass(className.down);
177
- module.submit();
286
+ keyHeldDown = false;
178
287
  },
179
288
  blur: function() {
180
289
  var
181
- $field = $(this),
182
- $fieldGroup = $field.closest($group)
290
+ $field = $(this),
291
+ $fieldGroup = $field.closest($group),
292
+ validationRules = module.get.validation($field)
183
293
  ;
184
294
  if( $fieldGroup.hasClass(className.error) ) {
185
- module.debug('Revalidating field', $field, module.get.validation($field));
186
- module.validate.field( module.get.validation($field) );
295
+ module.debug('Revalidating field', $field, validationRules);
296
+ module.validate.field( validationRules );
187
297
  }
188
298
  else if(settings.on == 'blur' || settings.on == 'change') {
189
- module.validate.field( module.get.validation($field) );
299
+ module.validate.field( validationRules );
190
300
  }
191
301
  },
192
302
  change: function() {
@@ -207,42 +317,177 @@ $.fn.form = function(fields, parameters) {
207
317
  },
208
318
 
209
319
  get: {
210
- changeEvent: function(type) {
211
- if(type == 'checkbox' || type == 'radio' || type == 'hidden') {
320
+ changeEvent: function(type, $input) {
321
+ if(type == 'checkbox' || type == 'radio' || type == 'hidden' || $input.is('select')) {
212
322
  return 'change';
213
323
  }
214
324
  else {
215
- return (document.createElement('input').oninput !== undefined)
216
- ? 'input'
217
- : (document.createElement('input').onpropertychange !== undefined)
218
- ? 'propertychange'
219
- : 'keyup'
325
+ return module.get.inputEvent();
326
+ }
327
+ },
328
+ inputEvent: function() {
329
+ return (document.createElement('input').oninput !== undefined)
330
+ ? 'input'
331
+ : (document.createElement('input').onpropertychange !== undefined)
332
+ ? 'propertychange'
333
+ : 'keyup'
334
+ ;
335
+ },
336
+ settings: function() {
337
+ var
338
+ firstProperty
339
+ ;
340
+ if($.isPlainObject(parameters)) {
341
+ var
342
+ keys = Object.keys(parameters),
343
+ isLegacySettings = (keys.length > 0)
344
+ ? (parameters[keys[0]].identifier !== undefined)
345
+ : false
220
346
  ;
347
+ if(isLegacySettings) {
348
+ // 1.x (ducktyped)
349
+ settings = $.extend(true, {}, $.fn.form.settings, legacyParameters);
350
+ validation = $.extend({}, $.fn.form.settings.defaults, parameters);
351
+ module.error(settings.error.oldSyntax, element);
352
+ module.verbose('Extending settings from legacy parameters', validation, settings);
353
+ }
354
+ else {
355
+ // 2.x
356
+ settings = $.extend(true, {}, $.fn.form.settings, parameters);
357
+ validation = $.extend({}, $.fn.form.settings.defaults, settings.fields);
358
+ module.verbose('Extending settings', validation, settings);
359
+ }
360
+ }
361
+ else {
362
+ settings = $.fn.form.settings;
363
+ validation = $.fn.form.settings.defaults;
364
+ module.verbose('Using default form validation', validation, settings);
221
365
  }
366
+
367
+ // shorthand
368
+ namespace = settings.namespace;
369
+ metadata = settings.metadata;
370
+ selector = settings.selector;
371
+ className = settings.className;
372
+ error = settings.error;
373
+ moduleNamespace = 'module-' + namespace;
374
+ eventNamespace = '.' + namespace;
375
+
376
+ // grab instance
377
+ instance = $module.data(moduleNamespace);
378
+
379
+ // refresh selector cache
380
+ module.refresh();
222
381
  },
223
382
  field: function(identifier) {
224
383
  module.verbose('Finding field with identifier', identifier);
225
- if( $field.filter('#' + identifier).size() > 0 ) {
384
+ if( $field.filter('#' + identifier).length > 0 ) {
226
385
  return $field.filter('#' + identifier);
227
386
  }
228
- else if( $field.filter('[name="' + identifier +'"]').size() > 0 ) {
387
+ else if( $field.filter('[name="' + identifier +'"]').length > 0 ) {
229
388
  return $field.filter('[name="' + identifier +'"]');
230
389
  }
231
- else if( $field.filter('[data-' + metadata.validate + '="'+ identifier +'"]').size() > 0 ) {
390
+ else if( $field.filter('[name="' + identifier +'[]"]').length > 0 ) {
391
+ return $field.filter('[name="' + identifier +'[]"]');
392
+ }
393
+ else if( $field.filter('[data-' + metadata.validate + '="'+ identifier +'"]').length > 0 ) {
232
394
  return $field.filter('[data-' + metadata.validate + '="'+ identifier +'"]');
233
395
  }
234
396
  return $('<input/>');
235
397
  },
398
+ fields: function(fields) {
399
+ var
400
+ $fields = $()
401
+ ;
402
+ $.each(fields, function(index, name) {
403
+ $fields = $fields.add( module.get.field(name) );
404
+ });
405
+ return $fields;
406
+ },
236
407
  validation: function($field) {
237
408
  var
238
409
  rules
239
410
  ;
411
+ if(!validation) {
412
+ return false;
413
+ }
240
414
  $.each(validation, function(fieldName, field) {
241
- if( module.get.field(field.identifier).get(0) == $field.get(0) ) {
415
+ if( module.get.field(field.identifier)[0] == $field[0] ) {
242
416
  rules = field;
243
417
  }
244
418
  });
245
419
  return rules || false;
420
+ },
421
+ value: function (field) {
422
+ var
423
+ fields = [],
424
+ results
425
+ ;
426
+ fields.push(field);
427
+ results = module.get.values.call(element, fields);
428
+ return results[field];
429
+ },
430
+ values: function (fields) {
431
+ var
432
+ $fields = $.isArray(fields)
433
+ ? module.get.fields(fields)
434
+ : $field,
435
+ values = {}
436
+ ;
437
+ $fields.each(function(index, field) {
438
+ var
439
+ $field = $(field),
440
+ type = $field.prop('type'),
441
+ name = $field.prop('name'),
442
+ value = $field.val(),
443
+ isCheckbox = $field.is(selector.checkbox),
444
+ isRadio = $field.is(selector.radio),
445
+ isMultiple = (name.indexOf('[]') !== -1),
446
+ isChecked = (isCheckbox)
447
+ ? $field.is(':checked')
448
+ : false
449
+ ;
450
+ if(name) {
451
+ if(isMultiple) {
452
+ name = name.replace('[]', '');
453
+ if(!values[name]) {
454
+ values[name] = [];
455
+ }
456
+ if(isCheckbox) {
457
+ if(isChecked) {
458
+ values[name].push(value);
459
+ }
460
+ else {
461
+ module.debug('Omitted unchecked checkbox', $field);
462
+ return true;
463
+ }
464
+ }
465
+ else {
466
+ values[name].push(value);
467
+ }
468
+ }
469
+ else {
470
+ if(isRadio) {
471
+ if(isChecked) {
472
+ values[name] = value;
473
+ }
474
+ }
475
+ else if(isCheckbox) {
476
+ if(isChecked) {
477
+ values[name] = true;
478
+ }
479
+ else {
480
+ module.debug('Omitted unchecked checkbox', $field);
481
+ return true;
482
+ }
483
+ }
484
+ else {
485
+ values[name] = value;
486
+ }
487
+ }
488
+ }
489
+ });
490
+ return values;
246
491
  }
247
492
  },
248
493
 
@@ -250,13 +495,13 @@ $.fn.form = function(fields, parameters) {
250
495
 
251
496
  field: function(identifier) {
252
497
  module.verbose('Checking for existence of a field with identifier', identifier);
253
- if( $field.filter('#' + identifier).size() > 0 ) {
498
+ if( $field.filter('#' + identifier).length > 0 ) {
254
499
  return true;
255
500
  }
256
- else if( $field.filter('[name="' + identifier +'"]').size() > 0 ) {
501
+ else if( $field.filter('[name="' + identifier +'"]').length > 0 ) {
257
502
  return true;
258
503
  }
259
- else if( $field.filter('[data-' + metadata.validate + '="'+ identifier +'"]').size() > 0 ) {
504
+ else if( $field.filter('[data-' + metadata.validate + '="'+ identifier +'"]').length > 0 ) {
260
505
  return true;
261
506
  }
262
507
  return false;
@@ -269,8 +514,8 @@ $.fn.form = function(fields, parameters) {
269
514
  var
270
515
  $field = module.get.field(identifier),
271
516
  $fieldGroup = $field.closest($group),
272
- $prompt = $fieldGroup.find(selector.prompt),
273
- promptExists = ($prompt.size() !== 0)
517
+ $prompt = $fieldGroup.children(selector.prompt),
518
+ promptExists = ($prompt.length !== 0)
274
519
  ;
275
520
  errors = (typeof errors == 'string')
276
521
  ? [errors]
@@ -320,7 +565,7 @@ $.fn.form = function(fields, parameters) {
320
565
  var
321
566
  $field = module.get.field(field.identifier),
322
567
  $fieldGroup = $field.closest($group),
323
- $prompt = $fieldGroup.find(selector.prompt)
568
+ $prompt = $fieldGroup.children(selector.prompt)
324
569
  ;
325
570
  $fieldGroup
326
571
  .removeClass(className.error)
@@ -350,11 +595,86 @@ $.fn.form = function(fields, parameters) {
350
595
  .addClass(className.success)
351
596
  ;
352
597
  },
598
+ defaults: function () {
599
+ $field
600
+ .each(function () {
601
+ var
602
+ $field = $(this),
603
+ isCheckbox = ($field.filter(selector.checkbox).length > 0),
604
+ value = (isCheckbox)
605
+ ? $field.is(':checked')
606
+ : $field.val()
607
+ ;
608
+ $field.data(metadata.defaultValue, value);
609
+ })
610
+ ;
611
+ },
353
612
  error: function() {
354
613
  $module
355
614
  .removeClass(className.success)
356
615
  .addClass(className.error)
357
616
  ;
617
+ },
618
+ value: function (field, value) {
619
+ var
620
+ fields = {}
621
+ ;
622
+ fields[field] = value;
623
+ return module.set.values.call(element, fields);
624
+ },
625
+ values: function (fields) {
626
+ if($.isEmptyObject(fields)) {
627
+ return;
628
+ }
629
+ $.each(fields, function(key, value) {
630
+ var
631
+ $field = module.get.field(key),
632
+ $element = $field.parent(),
633
+ isMultiple = $.isArray(value),
634
+ isCheckbox = $element.is(selector.uiCheckbox),
635
+ isDropdown = $element.is(selector.uiDropdown),
636
+ isRadio = ($field.is(selector.radio) && isCheckbox),
637
+ fieldExists = ($field.length > 0),
638
+ $multipleField
639
+ ;
640
+ if(fieldExists) {
641
+ if(isMultiple && isCheckbox) {
642
+ module.verbose('Selecting multiple', value, $field);
643
+ $element.checkbox('uncheck');
644
+ $.each(value, function(index, value) {
645
+ $multipleField = $field.filter('[value="' + value + '"]');
646
+ $element = $multipleField.parent();
647
+ if($multipleField.length > 0) {
648
+ $element.checkbox('check');
649
+ }
650
+ });
651
+ }
652
+ else if(isRadio) {
653
+ module.verbose('Selecting radio value', value, $field);
654
+ $field.filter('[value="' + value + '"]')
655
+ .parent(selector.uiCheckbox)
656
+ .checkbox('check')
657
+ ;
658
+ }
659
+ else if(isCheckbox) {
660
+ module.verbose('Setting checkbox value', value, $element);
661
+ if(value === true) {
662
+ $element.checkbox('check');
663
+ }
664
+ else {
665
+ $element.checkbox('uncheck');
666
+ }
667
+ }
668
+ else if(isDropdown) {
669
+ module.verbose('Setting dropdown value', value, $element);
670
+ $element.dropdown('set selected', value);
671
+ }
672
+ else {
673
+ module.verbose('Setting field value', value, $field);
674
+ $field.val(value);
675
+ }
676
+ }
677
+ });
358
678
  }
359
679
  },
360
680
 
@@ -362,20 +682,20 @@ $.fn.form = function(fields, parameters) {
362
682
 
363
683
  form: function(event) {
364
684
  var
365
- allValid = true,
366
685
  apiRequest
367
686
  ;
687
+
688
+ // input keydown event will fire submit repeatedly by browser default
689
+ if(keyHeldDown) {
690
+ return false;
691
+ }
692
+
368
693
  // reset errors
369
694
  formErrors = [];
370
- $.each(validation, function(fieldName, field) {
371
- if( !( module.validate.field(field) ) ) {
372
- allValid = false;
373
- }
374
- });
375
- if(allValid) {
695
+ if( module.is.valid() ) {
376
696
  module.debug('Form has no validation errors, submitting');
377
697
  module.set.success();
378
- return $.proxy(settings.onSuccess, this)(event);
698
+ return settings.onSuccess.call(element, event);
379
699
  }
380
700
  else {
381
701
  module.debug('Form has errors');
@@ -387,7 +707,7 @@ $.fn.form = function(fields, parameters) {
387
707
  if($module.data('moduleApi') !== undefined) {
388
708
  event.stopImmediatePropagation();
389
709
  }
390
- return $.proxy(settings.onFailure, this)(formErrors);
710
+ return settings.onFailure.call(element, formErrors);
391
711
  }
392
712
  },
393
713
 
@@ -398,7 +718,15 @@ $.fn.form = function(fields, parameters) {
398
718
  fieldValid = true,
399
719
  fieldErrors = []
400
720
  ;
401
- if(field.rules !== undefined) {
721
+ if($field.prop('disabled')) {
722
+ module.debug('Field is disabled. Skipping', field.identifier);
723
+ fieldValid = true;
724
+ }
725
+ else if(field.optional && $.trim($field.val()) === ''){
726
+ module.debug('Field is optional and empty. Skipping', field.identifier);
727
+ fieldValid = true;
728
+ }
729
+ else if(field.rules !== undefined) {
402
730
  $.each(field.rules, function(index, rule) {
403
731
  if( module.has.field(field.identifier) && !( module.validate.rule(field, rule) ) ) {
404
732
  module.debug('Field is invalid', field.identifier, rule.type);
@@ -409,12 +737,12 @@ $.fn.form = function(fields, parameters) {
409
737
  }
410
738
  if(fieldValid) {
411
739
  module.remove.prompt(field, fieldErrors);
412
- $.proxy(settings.onValid, $field)();
740
+ settings.onValid.call($field);
413
741
  }
414
742
  else {
415
743
  formErrors = formErrors.concat(fieldErrors);
416
744
  module.add.prompt(field.identifier, fieldErrors);
417
- $.proxy(settings.onInvalid, $field)(fieldErrors);
745
+ settings.onInvalid.call($field, fieldErrors);
418
746
  return false;
419
747
  }
420
748
  return true;
@@ -425,23 +753,34 @@ $.fn.form = function(fields, parameters) {
425
753
  var
426
754
  $field = module.get.field(field.identifier),
427
755
  type = validation.type,
428
- value = $.trim($field.val() + ''),
429
-
430
- bracketRegExp = /\[(.*)\]/i,
431
- bracket = bracketRegExp.exec(type),
756
+ value = $field.val(),
757
+ bracket = type.match(settings.regExp.bracket),
432
758
  isValid = true,
759
+ rule,
433
760
  ancillary,
434
761
  functionType
435
762
  ;
763
+ // cast to string
764
+ value = $.trim($field.val() + '');
765
+
436
766
  // if bracket notation is used, pass in extra parameters
437
- if(bracket !== undefined && bracket !== null) {
767
+ if(bracket) {
438
768
  ancillary = '' + bracket[1];
439
769
  functionType = type.replace(bracket[0], '');
440
- isValid = $.proxy(settings.rules[functionType], $module)(value, ancillary);
770
+ rule = settings.rules[functionType];
771
+ if( !$.isFunction(rule) ) {
772
+ module.error(error.noRule, functionType);
773
+ return;
774
+ }
775
+ isValid = rule.call($field, value, ancillary);
441
776
  }
442
- // normal notation
443
777
  else {
444
- isValid = $.proxy(settings.rules[type], $field)(value);
778
+ rule = settings.rules[type];
779
+ if( !$.isFunction(rule) ) {
780
+ module.error(error.noRule, type);
781
+ return;
782
+ }
783
+ isValid = rule.call($field, value);
445
784
  }
446
785
  return isValid;
447
786
  }
@@ -515,7 +854,7 @@ $.fn.form = function(fields, parameters) {
515
854
  });
516
855
  }
517
856
  clearTimeout(module.performance.timer);
518
- module.performance.timer = setTimeout(module.performance.display, 100);
857
+ module.performance.timer = setTimeout(module.performance.display, 500);
519
858
  },
520
859
  display: function() {
521
860
  var
@@ -531,8 +870,8 @@ $.fn.form = function(fields, parameters) {
531
870
  if(moduleSelector) {
532
871
  title += ' \'' + moduleSelector + '\'';
533
872
  }
534
- if($allModules.size() > 1) {
535
- title += ' ' + '(' + $allModules.size() + ')';
873
+ if($allModules.length > 1) {
874
+ title += ' ' + '(' + $allModules.length + ')';
536
875
  }
537
876
  if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
538
877
  console.groupCollapsed(title);
@@ -585,7 +924,7 @@ $.fn.form = function(fields, parameters) {
585
924
  }
586
925
  });
587
926
  }
588
- if ( $.isFunction( found ) ) {
927
+ if( $.isFunction( found ) ) {
589
928
  response = found.apply(context, passedArguments);
590
929
  }
591
930
  else if(found !== undefined) {
@@ -603,19 +942,7 @@ $.fn.form = function(fields, parameters) {
603
942
  return found;
604
943
  }
605
944
  };
606
- if(methodInvoked) {
607
- if(instance === undefined) {
608
- module.initialize();
609
- }
610
- module.invoke(query);
611
- }
612
- else {
613
- if(instance !== undefined) {
614
- module.destroy();
615
- }
616
- module.initialize();
617
- }
618
-
945
+ module.initialize();
619
946
  })
620
947
  ;
621
948
 
@@ -631,9 +958,10 @@ $.fn.form.settings = {
631
958
  namespace : 'form',
632
959
 
633
960
  debug : false,
634
- verbose : true,
961
+ verbose : false,
635
962
  performance : true,
636
963
 
964
+ fields : false,
637
965
 
638
966
  keyboardShortcuts : true,
639
967
  on : 'submit',
@@ -643,8 +971,7 @@ $.fn.form.settings = {
643
971
  revalidate : true,
644
972
 
645
973
  transition : 'scale',
646
- duration : 150,
647
-
974
+ duration : 200,
648
975
 
649
976
  onValid : function() {},
650
977
  onInvalid : function() {},
@@ -652,33 +979,50 @@ $.fn.form.settings = {
652
979
  onFailure : function() { return false; },
653
980
 
654
981
  metadata : {
655
- validate: 'validate'
982
+ defaultValue : 'default',
983
+ validate : 'validate'
984
+ },
985
+
986
+ regExp: {
987
+ bracket : /\[(.*)\]/i,
988
+ escape : /[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,
989
+ email : "[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?",
990
+ integer : /^\-?\d+$/,
991
+ flags : /^\/(.*)\/(.*)?/,
992
+ url : /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/i
656
993
  },
657
994
 
658
995
  selector : {
659
- message : '.error.message',
660
- field : 'input, textarea, select',
661
- group : '.field',
662
- checkbox: 'input[type="checkbox"], input[type="radio"]',
663
- input : 'input',
664
- prompt : '.prompt',
665
- submit : '.submit'
996
+ checkbox : 'input[type="checkbox"], input[type="radio"]',
997
+ clear : '.clear',
998
+ field : 'input, textarea, select',
999
+ group : '.field',
1000
+ input : 'input',
1001
+ message : '.error.message',
1002
+ prompt : '.prompt.label',
1003
+ radio : 'input[type="radio"]',
1004
+ reset : '.reset:not([type="reset"])',
1005
+ submit : '.submit:not([type="submit"])',
1006
+ uiCheckbox : '.ui.checkbox',
1007
+ uiDropdown : '.ui.dropdown'
666
1008
  },
667
1009
 
668
1010
  className : {
669
1011
  error : 'error',
670
- success : 'success',
671
- down : 'down',
672
- label : 'ui label prompt'
1012
+ label : 'ui prompt label',
1013
+ pressed : 'down',
1014
+ success : 'success'
673
1015
  },
674
1016
 
675
- // errors
676
1017
  error: {
677
- method : 'The method you called is not defined.'
1018
+ oldSyntax : 'Starting in 2.0 forms now only take a single settings object. Validation settings converted to new syntax automatically.',
1019
+ noRule : 'There is no rule matching the one you specified',
1020
+ method : 'The method you called is not defined.'
678
1021
  },
679
1022
 
680
-
681
1023
  templates: {
1024
+
1025
+ // template that produces error message
682
1026
  error: function(errors) {
683
1027
  var
684
1028
  html = '<ul class="list">'
@@ -689,6 +1033,8 @@ $.fn.form.settings = {
689
1033
  html += '</ul>';
690
1034
  return $(html);
691
1035
  },
1036
+
1037
+ // template that produces label
692
1038
  prompt: function(errors) {
693
1039
  return $('<div/>')
694
1040
  .addClass('ui red pointing prompt label')
@@ -698,95 +1044,210 @@ $.fn.form.settings = {
698
1044
  },
699
1045
 
700
1046
  rules: {
1047
+
1048
+ // checkbox checked
701
1049
  checked: function() {
702
- return ($(this).filter(':checked').size() > 0);
1050
+ return ($(this).filter(':checked').length > 0);
703
1051
  },
704
- empty: function(value) {
705
- return !(value === undefined || '' === value);
1052
+
1053
+ // value contains text (insensitive)
1054
+ contains: function(value, text) {
1055
+ // escape regex characters
1056
+ text = text.replace($.fn.form.settings.regExp.escape, "\\$&");
1057
+ return (value.search( new RegExp(text, 'i') ) !== -1);
706
1058
  },
1059
+
1060
+ // value contains text (case sensitive)
1061
+ containsExactly: function(value, text) {
1062
+ // escape regex characters
1063
+ text = text.replace($.fn.form.settings.regExp.escape, "\\$&");
1064
+ return (value.search( new RegExp(text) ) !== -1);
1065
+ },
1066
+
1067
+ // is most likely an email
707
1068
  email: function(value){
708
1069
  var
709
- emailRegExp = new RegExp("[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?", "i")
1070
+ emailRegExp = new RegExp($.fn.form.settings.regExp.email, 'i')
710
1071
  ;
711
1072
  return emailRegExp.test(value);
712
1073
  },
713
- length: function(value, requiredLength) {
714
- return (value !== undefined)
715
- ? (value.length >= requiredLength)
716
- : false
717
- ;
718
- },
719
- not: function(value, notValue) {
720
- return (value != notValue);
1074
+
1075
+ // is not empty or blank string
1076
+ empty: function(value) {
1077
+ return !(value === undefined || '' === value || $.isArray(value) && value.length === 0);
721
1078
  },
722
- contains: function(value, text) {
723
- text = text.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");
724
- return (value.search(text) !== -1);
1079
+
1080
+ // is valid integer
1081
+ integer: function(value, range) {
1082
+ var
1083
+ intRegExp = $.fn.form.settings.regExp.integer,
1084
+ min,
1085
+ max,
1086
+ parts
1087
+ ;
1088
+ if(range === undefined || range === '' || range === '..') {
1089
+ // do nothing
1090
+ }
1091
+ else if(range.indexOf('..') == -1) {
1092
+ if(intRegExp.test(range)) {
1093
+ min = max = range - 0;
1094
+ }
1095
+ }
1096
+ else {
1097
+ parts = range.split('..', 2);
1098
+ if(intRegExp.test(parts[0])) {
1099
+ min = parts[0] - 0;
1100
+ }
1101
+ if(intRegExp.test(parts[1])) {
1102
+ max = parts[1] - 0;
1103
+ }
1104
+ }
1105
+ return (
1106
+ intRegExp.test(value) &&
1107
+ (min === undefined || value >= min) &&
1108
+ (max === undefined || value <= max)
1109
+ );
725
1110
  },
1111
+
1112
+ // is value (case insensitive)
726
1113
  is: function(value, text) {
1114
+ text = (typeof text == 'string')
1115
+ ? text.toLowerCase()
1116
+ : text
1117
+ ;
1118
+ value = (typeof value == 'string')
1119
+ ? value.toLowerCase()
1120
+ : value
1121
+ ;
727
1122
  return (value == text);
728
1123
  },
729
- maxLength: function(value, maxLength) {
1124
+
1125
+ // is value
1126
+ isExactly: function(value, text) {
1127
+ return (value == text);
1128
+ },
1129
+
1130
+ // is at least string length
1131
+ length: function(value, requiredLength) {
730
1132
  return (value !== undefined)
731
- ? (value.length <= maxLength)
1133
+ ? (value.length >= requiredLength)
732
1134
  : false
733
1135
  ;
734
1136
  },
735
- match: function(value, fieldIdentifier) {
1137
+
1138
+ // matches another field
1139
+ different: function(value, identifier) {
736
1140
  // use either id or name of field
737
1141
  var
738
1142
  $form = $(this),
739
1143
  matchingValue
740
1144
  ;
741
- if($form.find('#' + fieldIdentifier).size() > 0) {
742
- matchingValue = $form.find('#' + fieldIdentifier).val();
1145
+ if( $('[data-validate="'+ identifier +'"]').length > 0 ) {
1146
+ matchingValue = $('[data-validate="'+ identifier +'"]').val();
743
1147
  }
744
- else if($form.find('[name="' + fieldIdentifier +'"]').size() > 0) {
745
- matchingValue = $form.find('[name="' + fieldIdentifier + '"]').val();
1148
+ else if($('#' + identifier).length > 0) {
1149
+ matchingValue = $('#' + identifier).val();
746
1150
  }
747
- else if( $form.find('[data-validate="'+ fieldIdentifier +'"]').size() > 0 ) {
748
- matchingValue = $form.find('[data-validate="'+ fieldIdentifier +'"]').val();
1151
+ else if($('[name="' + identifier +'"]').length > 0) {
1152
+ matchingValue = $('[name="' + identifier + '"]').val();
1153
+ }
1154
+ else if( $('[name="' + identifier +'[]"]').length > 0 ) {
1155
+ matchingValue = $('[name="' + identifier +'[]"]');
749
1156
  }
750
1157
  return (matchingValue !== undefined)
751
- ? ( value.toString() == matchingValue.toString() )
1158
+ ? ( value.toString() !== matchingValue.toString() )
752
1159
  : false
753
1160
  ;
754
1161
  },
755
- url: function(value) {
1162
+
1163
+ // matches another field
1164
+ match: function(value, identifier) {
1165
+ // use either id or name of field
756
1166
  var
757
- urlRegExp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/
1167
+ $form = $(this),
1168
+ matchingValue
1169
+ ;
1170
+ if( $('[data-validate="'+ identifier +'"]').length > 0 ) {
1171
+ matchingValue = $('[data-validate="'+ identifier +'"]').val();
1172
+ }
1173
+ else if($('#' + identifier).length > 0) {
1174
+ matchingValue = $('#' + identifier).val();
1175
+ }
1176
+ else if($('[name="' + identifier +'"]').length > 0) {
1177
+ matchingValue = $('[name="' + identifier + '"]').val();
1178
+ }
1179
+ else if( $('[name="' + identifier +'[]"]').length > 0 ) {
1180
+ matchingValue = $('[name="' + identifier +'[]"]');
1181
+ }
1182
+ return (matchingValue !== undefined)
1183
+ ? ( value.toString() == matchingValue.toString() )
1184
+ : false
758
1185
  ;
759
- return urlRegExp.test(value);
760
1186
  },
761
- integer: function(value, range) {
1187
+
1188
+ maxCount: function(value, count) {
1189
+ value = value.split(',');
1190
+ return ($.isArray(value) && value.length <= count);
1191
+ },
1192
+
1193
+ exactCount: function(value, count) {
1194
+ value = value.split(',');
1195
+ return ($.isArray(value) && value.length == count);
1196
+ },
1197
+
1198
+ minCount: function(value, count) {
1199
+ value = value.split(',');
1200
+ return ($.isArray(value) && value.length >= count);
1201
+ },
1202
+
1203
+ regExp: function(value, regExp) {
762
1204
  var
763
- intRegExp = /^\-?\d+$/,
764
- min,
765
- max,
766
- parts
1205
+ regExpParts = regExp.match($.fn.form.settings.regExp.flags),
1206
+ flags
767
1207
  ;
768
- if (range === undefined || range === '' || range === '..') {
769
- // do nothing
770
- }
771
- else if (range.indexOf('..') == -1) {
772
- if (intRegExp.test(range)) {
773
- min = max = range - 0;
774
- }
775
- }
776
- else {
777
- parts = range.split('..', 2);
778
- if (intRegExp.test(parts[0])) {
779
- min = parts[0] - 0;
780
- }
781
- if (intRegExp.test(parts[1])) {
782
- max = parts[1] - 0;
783
- }
1208
+ // regular expression specified as /baz/gi (flags)
1209
+ if(regExpParts) {
1210
+ regExp = (regExpParts.length >= 2)
1211
+ ? regExpParts[1]
1212
+ : regExp
1213
+ ;
1214
+ flags = (regExpParts.length >= 3)
1215
+ ? regExpParts[2]
1216
+ : ''
1217
+ ;
784
1218
  }
785
- return (
786
- intRegExp.test(value) &&
787
- (min === undefined || value >= min) &&
788
- (max === undefined || value <= max)
789
- );
1219
+ return value.match( new RegExp(regExp, flags) );
1220
+ },
1221
+
1222
+ // string length is less than max length
1223
+ maxLength: function(value, maxLength) {
1224
+ return (value !== undefined)
1225
+ ? (value.length <= maxLength)
1226
+ : false
1227
+ ;
1228
+ },
1229
+
1230
+ // value is not value (case insensitive)
1231
+ not: function(value, notValue) {
1232
+ value = (typeof value == 'string')
1233
+ ? value.toLowerCase()
1234
+ : value
1235
+ ;
1236
+ notValue = (typeof notValue == 'string')
1237
+ ? notValue.toLowerCase()
1238
+ : notValue
1239
+ ;
1240
+ return (value != notValue);
1241
+ },
1242
+
1243
+ // value is not value (case sensitive)
1244
+ notExactly: function(value, notValue) {
1245
+ return (value != notValue);
1246
+ },
1247
+
1248
+ // value is most likely url
1249
+ url: function(value) {
1250
+ return $.fn.form.settings.regExp.url.match(value);
790
1251
  }
791
1252
  }
792
1253