sunspot_solr 2.2.0 → 2.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (515) hide show
  1. checksums.yaml +7 -0
  2. data/.rspec +1 -0
  3. data/Gemfile +1 -1
  4. data/Rakefile +9 -0
  5. data/bin/sunspot-solr +2 -10
  6. data/lib/sunspot/solr/installer.rb +66 -8
  7. data/lib/sunspot/solr/java.rb +17 -4
  8. data/lib/sunspot/solr/server.rb +25 -37
  9. data/solr/.gitignore +2 -0
  10. data/solr/README.txt +181 -42
  11. data/solr/bin/init.d/solr +78 -0
  12. data/solr/bin/install_solr_service.sh +270 -0
  13. data/solr/bin/oom_solr.sh +30 -0
  14. data/solr/bin/post +228 -0
  15. data/solr/bin/solr +1350 -0
  16. data/solr/bin/solr.cmd +1230 -0
  17. data/solr/bin/solr.in.cmd +99 -0
  18. data/solr/bin/solr.in.sh +119 -0
  19. data/solr/server/README.txt +110 -0
  20. data/solr/server/contexts/solr-jetty-context.xml +8 -0
  21. data/solr/server/etc/jetty-http.xml +47 -0
  22. data/solr/{etc/jetty.xml → server/etc/jetty-https-ssl.xml} +175 -167
  23. data/solr/server/etc/jetty-https.xml +53 -0
  24. data/solr/server/etc/jetty-ssl.xml +46 -0
  25. data/solr/server/etc/jetty.xml +189 -0
  26. data/solr/{etc → server/etc}/webdefault.xml +527 -527
  27. data/solr/server/lib/ext/jcl-over-slf4j-1.7.7.jar +0 -0
  28. data/solr/server/lib/ext/jul-to-slf4j-1.7.7.jar +0 -0
  29. data/solr/server/lib/ext/log4j-1.2.17.jar +0 -0
  30. data/solr/server/lib/ext/slf4j-api-1.7.7.jar +0 -0
  31. data/solr/server/lib/ext/slf4j-log4j12-1.7.7.jar +0 -0
  32. data/solr/server/lib/javax.servlet-api-3.1.0.jar +0 -0
  33. data/solr/server/lib/jetty-continuation-9.2.11.v20150529.jar +0 -0
  34. data/solr/server/lib/jetty-deploy-9.2.11.v20150529.jar +0 -0
  35. data/solr/server/lib/jetty-http-9.2.11.v20150529.jar +0 -0
  36. data/solr/server/lib/jetty-io-9.2.11.v20150529.jar +0 -0
  37. data/solr/server/lib/jetty-jmx-9.2.11.v20150529.jar +0 -0
  38. data/solr/server/lib/jetty-rewrite-9.2.11.v20150529.jar +0 -0
  39. data/solr/server/lib/jetty-security-9.2.11.v20150529.jar +0 -0
  40. data/solr/server/lib/jetty-server-9.2.11.v20150529.jar +0 -0
  41. data/solr/server/lib/jetty-servlet-9.2.11.v20150529.jar +0 -0
  42. data/solr/server/lib/jetty-servlets-9.2.11.v20150529.jar +0 -0
  43. data/solr/server/lib/jetty-util-9.2.11.v20150529.jar +0 -0
  44. data/solr/server/lib/jetty-webapp-9.2.11.v20150529.jar +0 -0
  45. data/solr/server/lib/jetty-xml-9.2.11.v20150529.jar +0 -0
  46. data/solr/server/modules/http.mod +9 -0
  47. data/solr/server/modules/https.mod +9 -0
  48. data/solr/server/modules/server.mod +11 -0
  49. data/solr/server/modules/ssl.mod +9 -0
  50. data/solr/server/resources/jetty-logging.properties +1 -0
  51. data/solr/server/resources/log4j.properties +24 -0
  52. data/solr/server/solr-webapp/webapp/WEB-INF/lib/antlr-runtime-3.5.jar +0 -0
  53. data/solr/server/solr-webapp/webapp/WEB-INF/lib/asm-4.1.jar +0 -0
  54. data/solr/server/solr-webapp/webapp/WEB-INF/lib/asm-commons-4.1.jar +0 -0
  55. data/solr/server/solr-webapp/webapp/WEB-INF/lib/commons-cli-1.2.jar +0 -0
  56. data/solr/server/solr-webapp/webapp/WEB-INF/lib/commons-codec-1.10.jar +0 -0
  57. data/solr/server/solr-webapp/webapp/WEB-INF/lib/commons-collections-3.2.1.jar +0 -0
  58. data/solr/server/solr-webapp/webapp/WEB-INF/lib/commons-configuration-1.6.jar +0 -0
  59. data/solr/server/solr-webapp/webapp/WEB-INF/lib/commons-exec-1.3.jar +0 -0
  60. data/solr/server/solr-webapp/webapp/WEB-INF/lib/commons-fileupload-1.2.1.jar +0 -0
  61. data/solr/server/solr-webapp/webapp/WEB-INF/lib/commons-io-2.4.jar +0 -0
  62. data/solr/server/solr-webapp/webapp/WEB-INF/lib/commons-lang-2.6.jar +0 -0
  63. data/solr/server/solr-webapp/webapp/WEB-INF/lib/concurrentlinkedhashmap-lru-1.2.jar +0 -0
  64. data/solr/server/solr-webapp/webapp/WEB-INF/lib/dom4j-1.6.1.jar +0 -0
  65. data/solr/server/solr-webapp/webapp/WEB-INF/lib/guava-14.0.1.jar +0 -0
  66. data/solr/server/solr-webapp/webapp/WEB-INF/lib/hadoop-annotations-2.6.0.jar +0 -0
  67. data/solr/server/solr-webapp/webapp/WEB-INF/lib/hadoop-auth-2.6.0.jar +0 -0
  68. data/solr/server/solr-webapp/webapp/WEB-INF/lib/hadoop-common-2.6.0.jar +0 -0
  69. data/solr/server/solr-webapp/webapp/WEB-INF/lib/hadoop-hdfs-2.6.0.jar +0 -0
  70. data/solr/server/solr-webapp/webapp/WEB-INF/lib/hppc-0.5.2.jar +0 -0
  71. data/solr/server/solr-webapp/webapp/WEB-INF/lib/htrace-core-3.0.4.jar +0 -0
  72. data/solr/server/solr-webapp/webapp/WEB-INF/lib/httpclient-4.4.1.jar +0 -0
  73. data/solr/server/solr-webapp/webapp/WEB-INF/lib/httpcore-4.4.1.jar +0 -0
  74. data/solr/server/solr-webapp/webapp/WEB-INF/lib/httpmime-4.4.1.jar +0 -0
  75. data/solr/server/solr-webapp/webapp/WEB-INF/lib/jackson-core-2.5.4.jar +0 -0
  76. data/solr/server/solr-webapp/webapp/WEB-INF/lib/jackson-dataformat-smile-2.5.4.jar +0 -0
  77. data/solr/server/solr-webapp/webapp/WEB-INF/lib/joda-time-2.2.jar +0 -0
  78. data/solr/server/solr-webapp/webapp/WEB-INF/lib/lucene-analyzers-common-5.3.1.jar +0 -0
  79. data/solr/server/solr-webapp/webapp/WEB-INF/lib/lucene-analyzers-kuromoji-5.3.1.jar +0 -0
  80. data/solr/server/solr-webapp/webapp/WEB-INF/lib/lucene-analyzers-phonetic-5.3.1.jar +0 -0
  81. data/solr/server/solr-webapp/webapp/WEB-INF/lib/lucene-backward-codecs-5.3.1.jar +0 -0
  82. data/solr/server/solr-webapp/webapp/WEB-INF/lib/lucene-codecs-5.3.1.jar +0 -0
  83. data/solr/server/solr-webapp/webapp/WEB-INF/lib/lucene-core-5.3.1.jar +0 -0
  84. data/solr/server/solr-webapp/webapp/WEB-INF/lib/lucene-expressions-5.3.1.jar +0 -0
  85. data/solr/server/solr-webapp/webapp/WEB-INF/lib/lucene-grouping-5.3.1.jar +0 -0
  86. data/solr/server/solr-webapp/webapp/WEB-INF/lib/lucene-highlighter-5.3.1.jar +0 -0
  87. data/solr/server/solr-webapp/webapp/WEB-INF/lib/lucene-join-5.3.1.jar +0 -0
  88. data/solr/server/solr-webapp/webapp/WEB-INF/lib/lucene-memory-5.3.1.jar +0 -0
  89. data/solr/server/solr-webapp/webapp/WEB-INF/lib/lucene-misc-5.3.1.jar +0 -0
  90. data/solr/server/solr-webapp/webapp/WEB-INF/lib/lucene-queries-5.3.1.jar +0 -0
  91. data/solr/server/solr-webapp/webapp/WEB-INF/lib/lucene-queryparser-5.3.1.jar +0 -0
  92. data/solr/server/solr-webapp/webapp/WEB-INF/lib/lucene-sandbox-5.3.1.jar +0 -0
  93. data/solr/server/solr-webapp/webapp/WEB-INF/lib/lucene-spatial-5.3.1.jar +0 -0
  94. data/solr/server/solr-webapp/webapp/WEB-INF/lib/lucene-suggest-5.3.1.jar +0 -0
  95. data/solr/server/solr-webapp/webapp/WEB-INF/lib/noggit-0.6.jar +0 -0
  96. data/solr/server/solr-webapp/webapp/WEB-INF/lib/org.restlet-2.3.0.jar +0 -0
  97. data/solr/server/solr-webapp/webapp/WEB-INF/lib/org.restlet.ext.servlet-2.3.0.jar +0 -0
  98. data/solr/server/solr-webapp/webapp/WEB-INF/lib/protobuf-java-2.5.0.jar +0 -0
  99. data/solr/server/solr-webapp/webapp/WEB-INF/lib/solr-core-5.3.1.jar +0 -0
  100. data/solr/server/solr-webapp/webapp/WEB-INF/lib/solr-solrj-5.3.1.jar +0 -0
  101. data/solr/server/solr-webapp/webapp/WEB-INF/lib/spatial4j-0.4.1.jar +0 -0
  102. data/solr/server/solr-webapp/webapp/WEB-INF/lib/stax2-api-3.1.4.jar +0 -0
  103. data/solr/server/solr-webapp/webapp/WEB-INF/lib/t-digest-3.1.jar +0 -0
  104. data/solr/server/solr-webapp/webapp/WEB-INF/lib/woodstox-core-asl-4.4.1.jar +0 -0
  105. data/solr/server/solr-webapp/webapp/WEB-INF/lib/zookeeper-3.4.6.jar +0 -0
  106. data/solr/server/solr-webapp/webapp/WEB-INF/web.xml +169 -0
  107. data/solr/server/solr-webapp/webapp/WEB-INF/weblogic.xml +28 -0
  108. data/solr/server/solr-webapp/webapp/admin.html +164 -0
  109. data/solr/server/solr-webapp/webapp/css/angular/analysis.css +304 -0
  110. data/solr/server/solr-webapp/webapp/css/angular/chosen.css +465 -0
  111. data/solr/server/solr-webapp/webapp/css/angular/cloud.css +398 -0
  112. data/solr/server/solr-webapp/webapp/css/angular/common.css +724 -0
  113. data/solr/server/solr-webapp/webapp/css/angular/cores.css +233 -0
  114. data/solr/server/solr-webapp/webapp/css/angular/dataimport.css +370 -0
  115. data/solr/server/solr-webapp/webapp/css/angular/documents.css +179 -0
  116. data/solr/server/solr-webapp/webapp/css/angular/files.css +53 -0
  117. data/solr/server/solr-webapp/webapp/css/angular/index.css +206 -0
  118. data/solr/server/solr-webapp/webapp/css/angular/logging.css +376 -0
  119. data/solr/server/solr-webapp/webapp/css/angular/menu.css +321 -0
  120. data/solr/server/solr-webapp/webapp/css/angular/plugins.css +212 -0
  121. data/solr/server/solr-webapp/webapp/css/angular/query.css +162 -0
  122. data/solr/server/solr-webapp/webapp/css/angular/replication.css +500 -0
  123. data/solr/server/solr-webapp/webapp/css/angular/schema-browser.css +567 -0
  124. data/solr/server/solr-webapp/webapp/css/angular/segments.css +173 -0
  125. data/solr/server/solr-webapp/webapp/css/angular/threads.css +161 -0
  126. data/solr/server/solr-webapp/webapp/css/chosen.css +421 -0
  127. data/solr/server/solr-webapp/webapp/css/styles/analysis.css +311 -0
  128. data/solr/server/solr-webapp/webapp/css/styles/cloud.css +410 -0
  129. data/solr/server/solr-webapp/webapp/css/styles/common.css +701 -0
  130. data/solr/server/solr-webapp/webapp/css/styles/cores.css +244 -0
  131. data/solr/server/solr-webapp/webapp/css/styles/dashboard.css +155 -0
  132. data/solr/server/solr-webapp/webapp/css/styles/dataimport.css +403 -0
  133. data/solr/server/solr-webapp/webapp/css/styles/documents.css +197 -0
  134. data/solr/server/solr-webapp/webapp/css/styles/files.css +54 -0
  135. data/solr/server/solr-webapp/webapp/css/styles/index.css +207 -0
  136. data/solr/server/solr-webapp/webapp/css/styles/java-properties.css +52 -0
  137. data/solr/server/solr-webapp/webapp/css/styles/logging.css +391 -0
  138. data/solr/server/solr-webapp/webapp/css/styles/menu.css +329 -0
  139. data/solr/server/solr-webapp/webapp/css/styles/plugins.css +195 -0
  140. data/solr/server/solr-webapp/webapp/css/styles/query.css +173 -0
  141. data/solr/server/solr-webapp/webapp/css/styles/replication.css +515 -0
  142. data/solr/server/solr-webapp/webapp/css/styles/schema-browser.css +578 -0
  143. data/solr/server/solr-webapp/webapp/css/styles/segments.css +145 -0
  144. data/solr/server/solr-webapp/webapp/css/styles/threads.css +172 -0
  145. data/solr/server/solr-webapp/webapp/favicon.ico +0 -0
  146. data/solr/server/solr-webapp/webapp/img/ZeroClipboard.swf +0 -0
  147. data/solr/server/solr-webapp/webapp/img/chosen-sprite-2x.png +0 -0
  148. data/solr/server/solr-webapp/webapp/img/chosen-sprite.png +0 -0
  149. data/solr/server/solr-webapp/webapp/img/div.gif +0 -0
  150. data/solr/server/solr-webapp/webapp/img/favicon.ico +0 -0
  151. data/solr/server/solr-webapp/webapp/img/filetypes/7z.png +0 -0
  152. data/solr/server/solr-webapp/webapp/img/filetypes/README +27 -0
  153. data/solr/server/solr-webapp/webapp/img/filetypes/ai.png +0 -0
  154. data/solr/server/solr-webapp/webapp/img/filetypes/aiff.png +0 -0
  155. data/solr/server/solr-webapp/webapp/img/filetypes/asc.png +0 -0
  156. data/solr/server/solr-webapp/webapp/img/filetypes/audio.png +0 -0
  157. data/solr/server/solr-webapp/webapp/img/filetypes/bin.png +0 -0
  158. data/solr/server/solr-webapp/webapp/img/filetypes/bz2.png +0 -0
  159. data/solr/server/solr-webapp/webapp/img/filetypes/c.png +0 -0
  160. data/solr/server/solr-webapp/webapp/img/filetypes/cfc.png +0 -0
  161. data/solr/server/solr-webapp/webapp/img/filetypes/cfm.png +0 -0
  162. data/solr/server/solr-webapp/webapp/img/filetypes/chm.png +0 -0
  163. data/solr/server/solr-webapp/webapp/img/filetypes/class.png +0 -0
  164. data/solr/server/solr-webapp/webapp/img/filetypes/conf.png +0 -0
  165. data/solr/server/solr-webapp/webapp/img/filetypes/cpp.png +0 -0
  166. data/solr/server/solr-webapp/webapp/img/filetypes/cs.png +0 -0
  167. data/solr/server/solr-webapp/webapp/img/filetypes/css.png +0 -0
  168. data/solr/server/solr-webapp/webapp/img/filetypes/csv.png +0 -0
  169. data/solr/server/solr-webapp/webapp/img/filetypes/deb.png +0 -0
  170. data/solr/server/solr-webapp/webapp/img/filetypes/divx.png +0 -0
  171. data/solr/server/solr-webapp/webapp/img/filetypes/doc.png +0 -0
  172. data/solr/server/solr-webapp/webapp/img/filetypes/dot.png +0 -0
  173. data/solr/server/solr-webapp/webapp/img/filetypes/eml.png +0 -0
  174. data/solr/server/solr-webapp/webapp/img/filetypes/enc.png +0 -0
  175. data/solr/server/solr-webapp/webapp/img/filetypes/file.png +0 -0
  176. data/solr/server/solr-webapp/webapp/img/filetypes/gif.png +0 -0
  177. data/solr/server/solr-webapp/webapp/img/filetypes/gz.png +0 -0
  178. data/solr/server/solr-webapp/webapp/img/filetypes/hlp.png +0 -0
  179. data/solr/server/solr-webapp/webapp/img/filetypes/htm.png +0 -0
  180. data/solr/server/solr-webapp/webapp/img/filetypes/html.png +0 -0
  181. data/solr/server/solr-webapp/webapp/img/filetypes/image.png +0 -0
  182. data/solr/server/solr-webapp/webapp/img/filetypes/iso.png +0 -0
  183. data/solr/server/solr-webapp/webapp/img/filetypes/jar.png +0 -0
  184. data/solr/server/solr-webapp/webapp/img/filetypes/java.png +0 -0
  185. data/solr/server/solr-webapp/webapp/img/filetypes/jpeg.png +0 -0
  186. data/solr/server/solr-webapp/webapp/img/filetypes/jpg.png +0 -0
  187. data/solr/server/solr-webapp/webapp/img/filetypes/js.png +0 -0
  188. data/solr/server/solr-webapp/webapp/img/filetypes/lua.png +0 -0
  189. data/solr/server/solr-webapp/webapp/img/filetypes/m.png +0 -0
  190. data/solr/server/solr-webapp/webapp/img/filetypes/mm.png +0 -0
  191. data/solr/server/solr-webapp/webapp/img/filetypes/mov.png +0 -0
  192. data/solr/server/solr-webapp/webapp/img/filetypes/mp3.png +0 -0
  193. data/solr/server/solr-webapp/webapp/img/filetypes/mpg.png +0 -0
  194. data/solr/server/solr-webapp/webapp/img/filetypes/odc.png +0 -0
  195. data/solr/server/solr-webapp/webapp/img/filetypes/odf.png +0 -0
  196. data/solr/server/solr-webapp/webapp/img/filetypes/odg.png +0 -0
  197. data/solr/server/solr-webapp/webapp/img/filetypes/odi.png +0 -0
  198. data/solr/server/solr-webapp/webapp/img/filetypes/odp.png +0 -0
  199. data/solr/server/solr-webapp/webapp/img/filetypes/ods.png +0 -0
  200. data/solr/server/solr-webapp/webapp/img/filetypes/odt.png +0 -0
  201. data/solr/server/solr-webapp/webapp/img/filetypes/ogg.png +0 -0
  202. data/solr/server/solr-webapp/webapp/img/filetypes/pdf.png +0 -0
  203. data/solr/server/solr-webapp/webapp/img/filetypes/pgp.png +0 -0
  204. data/solr/server/solr-webapp/webapp/img/filetypes/php.png +0 -0
  205. data/solr/server/solr-webapp/webapp/img/filetypes/pl.png +0 -0
  206. data/solr/server/solr-webapp/webapp/img/filetypes/png.png +0 -0
  207. data/solr/server/solr-webapp/webapp/img/filetypes/ppt.png +0 -0
  208. data/solr/server/solr-webapp/webapp/img/filetypes/ps.png +0 -0
  209. data/solr/server/solr-webapp/webapp/img/filetypes/py.png +0 -0
  210. data/solr/server/solr-webapp/webapp/img/filetypes/ram.png +0 -0
  211. data/solr/server/solr-webapp/webapp/img/filetypes/rar.png +0 -0
  212. data/solr/server/solr-webapp/webapp/img/filetypes/rb.png +0 -0
  213. data/solr/server/solr-webapp/webapp/img/filetypes/rm.png +0 -0
  214. data/solr/server/solr-webapp/webapp/img/filetypes/rpm.png +0 -0
  215. data/solr/server/solr-webapp/webapp/img/filetypes/rtf.png +0 -0
  216. data/solr/server/solr-webapp/webapp/img/filetypes/sig.png +0 -0
  217. data/solr/server/solr-webapp/webapp/img/filetypes/sql.png +0 -0
  218. data/solr/server/solr-webapp/webapp/img/filetypes/swf.png +0 -0
  219. data/solr/server/solr-webapp/webapp/img/filetypes/sxc.png +0 -0
  220. data/solr/server/solr-webapp/webapp/img/filetypes/sxd.png +0 -0
  221. data/solr/server/solr-webapp/webapp/img/filetypes/sxi.png +0 -0
  222. data/solr/server/solr-webapp/webapp/img/filetypes/sxw.png +0 -0
  223. data/solr/server/solr-webapp/webapp/img/filetypes/tar.png +0 -0
  224. data/solr/server/solr-webapp/webapp/img/filetypes/tex.png +0 -0
  225. data/solr/server/solr-webapp/webapp/img/filetypes/tgz.png +0 -0
  226. data/solr/server/solr-webapp/webapp/img/filetypes/txt.png +0 -0
  227. data/solr/server/solr-webapp/webapp/img/filetypes/vcf.png +0 -0
  228. data/solr/server/solr-webapp/webapp/img/filetypes/video.png +0 -0
  229. data/solr/server/solr-webapp/webapp/img/filetypes/vsd.png +0 -0
  230. data/solr/server/solr-webapp/webapp/img/filetypes/wav.png +0 -0
  231. data/solr/server/solr-webapp/webapp/img/filetypes/wma.png +0 -0
  232. data/solr/server/solr-webapp/webapp/img/filetypes/wmv.png +0 -0
  233. data/solr/server/solr-webapp/webapp/img/filetypes/xls.png +0 -0
  234. data/solr/server/solr-webapp/webapp/img/filetypes/xml.png +0 -0
  235. data/solr/server/solr-webapp/webapp/img/filetypes/xpi.png +0 -0
  236. data/solr/server/solr-webapp/webapp/img/filetypes/xvid.png +0 -0
  237. data/solr/server/solr-webapp/webapp/img/filetypes/zip.png +0 -0
  238. data/solr/server/solr-webapp/webapp/img/ico/arrow-000-small.png +0 -0
  239. data/solr/server/solr-webapp/webapp/img/ico/arrow-circle.png +0 -0
  240. data/solr/server/solr-webapp/webapp/img/ico/arrow-switch.png +0 -0
  241. data/solr/server/solr-webapp/webapp/img/ico/asterisk.png +0 -0
  242. data/solr/server/solr-webapp/webapp/img/ico/battery.png +0 -0
  243. data/solr/server/solr-webapp/webapp/img/ico/block-small.png +0 -0
  244. data/solr/server/solr-webapp/webapp/img/ico/block.png +0 -0
  245. data/solr/server/solr-webapp/webapp/img/ico/book-open-text.png +0 -0
  246. data/solr/server/solr-webapp/webapp/img/ico/box.png +0 -0
  247. data/solr/server/solr-webapp/webapp/img/ico/bug.png +0 -0
  248. data/solr/server/solr-webapp/webapp/img/ico/chart.png +0 -0
  249. data/solr/server/solr-webapp/webapp/img/ico/chevron-small-expand.png +0 -0
  250. data/solr/server/solr-webapp/webapp/img/ico/chevron-small.png +0 -0
  251. data/solr/server/solr-webapp/webapp/img/ico/clipboard-list.png +0 -0
  252. data/solr/server/solr-webapp/webapp/img/ico/clipboard-paste-document-text.png +0 -0
  253. data/solr/server/solr-webapp/webapp/img/ico/clipboard-paste.png +0 -0
  254. data/solr/server/solr-webapp/webapp/img/ico/clock-select-remain.png +0 -0
  255. data/solr/server/solr-webapp/webapp/img/ico/clock-select.png +0 -0
  256. data/solr/server/solr-webapp/webapp/img/ico/construction.png +0 -0
  257. data/solr/server/solr-webapp/webapp/img/ico/cross-0.png +0 -0
  258. data/solr/server/solr-webapp/webapp/img/ico/cross-1.png +0 -0
  259. data/solr/server/solr-webapp/webapp/img/ico/cross-button.png +0 -0
  260. data/solr/server/solr-webapp/webapp/img/ico/cross.png +0 -0
  261. data/solr/server/solr-webapp/webapp/img/ico/dashboard.png +0 -0
  262. data/solr/server/solr-webapp/webapp/img/ico/database--plus.png +0 -0
  263. data/solr/server/solr-webapp/webapp/img/ico/database.png +0 -0
  264. data/solr/server/solr-webapp/webapp/img/ico/databases.png +0 -0
  265. data/solr/server/solr-webapp/webapp/img/ico/disk-black.png +0 -0
  266. data/solr/server/solr-webapp/webapp/img/ico/document-convert.png +0 -0
  267. data/solr/server/solr-webapp/webapp/img/ico/document-import.png +0 -0
  268. data/solr/server/solr-webapp/webapp/img/ico/document-list.png +0 -0
  269. data/solr/server/solr-webapp/webapp/img/ico/document-text.png +0 -0
  270. data/solr/server/solr-webapp/webapp/img/ico/documents-stack.png +0 -0
  271. data/solr/server/solr-webapp/webapp/img/ico/download-cloud.png +0 -0
  272. data/solr/server/solr-webapp/webapp/img/ico/drive-upload.png +0 -0
  273. data/solr/server/solr-webapp/webapp/img/ico/exclamation-button.png +0 -0
  274. data/solr/server/solr-webapp/webapp/img/ico/eye.png +0 -0
  275. data/solr/server/solr-webapp/webapp/img/ico/folder-export.png +0 -0
  276. data/solr/server/solr-webapp/webapp/img/ico/folder-tree.png +0 -0
  277. data/solr/server/solr-webapp/webapp/img/ico/folder.png +0 -0
  278. data/solr/server/solr-webapp/webapp/img/ico/funnel-small.png +0 -0
  279. data/solr/server/solr-webapp/webapp/img/ico/funnel.png +0 -0
  280. data/solr/server/solr-webapp/webapp/img/ico/gear.png +0 -0
  281. data/solr/server/solr-webapp/webapp/img/ico/globe-network.png +0 -0
  282. data/solr/server/solr-webapp/webapp/img/ico/globe.png +0 -0
  283. data/solr/server/solr-webapp/webapp/img/ico/hammer-screwdriver.png +0 -0
  284. data/solr/server/solr-webapp/webapp/img/ico/hammer.png +0 -0
  285. data/solr/server/solr-webapp/webapp/img/ico/hand.png +0 -0
  286. data/solr/server/solr-webapp/webapp/img/ico/highlighter-text.png +0 -0
  287. data/solr/server/solr-webapp/webapp/img/ico/home.png +0 -0
  288. data/solr/server/solr-webapp/webapp/img/ico/hourglass--exclamation.png +0 -0
  289. data/solr/server/solr-webapp/webapp/img/ico/hourglass.png +0 -0
  290. data/solr/server/solr-webapp/webapp/img/ico/inbox-document-text.png +0 -0
  291. data/solr/server/solr-webapp/webapp/img/ico/information-button.png +0 -0
  292. data/solr/server/solr-webapp/webapp/img/ico/information-small.png +0 -0
  293. data/solr/server/solr-webapp/webapp/img/ico/information-white.png +0 -0
  294. data/solr/server/solr-webapp/webapp/img/ico/information.png +0 -0
  295. data/solr/server/solr-webapp/webapp/img/ico/jar.png +0 -0
  296. data/solr/server/solr-webapp/webapp/img/ico/magnifier.png +0 -0
  297. data/solr/server/solr-webapp/webapp/img/ico/mail.png +0 -0
  298. data/solr/server/solr-webapp/webapp/img/ico/memory.png +0 -0
  299. data/solr/server/solr-webapp/webapp/img/ico/minus-button.png +0 -0
  300. data/solr/server/solr-webapp/webapp/img/ico/molecule.png +0 -0
  301. data/solr/server/solr-webapp/webapp/img/ico/network-cloud.png +0 -0
  302. data/solr/server/solr-webapp/webapp/img/ico/network-status-away.png +0 -0
  303. data/solr/server/solr-webapp/webapp/img/ico/network-status-busy.png +0 -0
  304. data/solr/server/solr-webapp/webapp/img/ico/network-status-offline.png +0 -0
  305. data/solr/server/solr-webapp/webapp/img/ico/network-status.png +0 -0
  306. data/solr/server/solr-webapp/webapp/img/ico/network.png +0 -0
  307. data/solr/server/solr-webapp/webapp/img/ico/node-design.png +0 -0
  308. data/solr/server/solr-webapp/webapp/img/ico/node-master.png +0 -0
  309. data/solr/server/solr-webapp/webapp/img/ico/node-select.png +0 -0
  310. data/solr/server/solr-webapp/webapp/img/ico/node-slave.png +0 -0
  311. data/solr/server/solr-webapp/webapp/img/ico/node.png +0 -0
  312. data/solr/server/solr-webapp/webapp/img/ico/pencil-small.png +0 -0
  313. data/solr/server/solr-webapp/webapp/img/ico/pencil.png +0 -0
  314. data/solr/server/solr-webapp/webapp/img/ico/plus-button.png +0 -0
  315. data/solr/server/solr-webapp/webapp/img/ico/processor.png +0 -0
  316. data/solr/server/solr-webapp/webapp/img/ico/prohibition.png +0 -0
  317. data/solr/server/solr-webapp/webapp/img/ico/property.png +0 -0
  318. data/solr/server/solr-webapp/webapp/img/ico/question-small-white.png +0 -0
  319. data/solr/server/solr-webapp/webapp/img/ico/question-white.png +0 -0
  320. data/solr/server/solr-webapp/webapp/img/ico/question.png +0 -0
  321. data/solr/server/solr-webapp/webapp/img/ico/receipt-invoice.png +0 -0
  322. data/solr/server/solr-webapp/webapp/img/ico/receipt.png +0 -0
  323. data/solr/server/solr-webapp/webapp/img/ico/script-code.png +0 -0
  324. data/solr/server/solr-webapp/webapp/img/ico/server-cast.png +0 -0
  325. data/solr/server/solr-webapp/webapp/img/ico/server.png +0 -0
  326. data/solr/server/solr-webapp/webapp/img/ico/sitemap.png +0 -0
  327. data/solr/server/solr-webapp/webapp/img/ico/slash.png +0 -0
  328. data/solr/server/solr-webapp/webapp/img/ico/status-away.png +0 -0
  329. data/solr/server/solr-webapp/webapp/img/ico/status-busy.png +0 -0
  330. data/solr/server/solr-webapp/webapp/img/ico/status-offline.png +0 -0
  331. data/solr/server/solr-webapp/webapp/img/ico/status.png +0 -0
  332. data/solr/server/solr-webapp/webapp/img/ico/system-monitor--exclamation.png +0 -0
  333. data/solr/server/solr-webapp/webapp/img/ico/system-monitor.png +0 -0
  334. data/solr/server/solr-webapp/webapp/img/ico/table.png +0 -0
  335. data/solr/server/solr-webapp/webapp/img/ico/terminal.png +0 -0
  336. data/solr/server/solr-webapp/webapp/img/ico/tick-circle.png +0 -0
  337. data/solr/server/solr-webapp/webapp/img/ico/tick-red.png +0 -0
  338. data/solr/server/solr-webapp/webapp/img/ico/tick.png +0 -0
  339. data/solr/server/solr-webapp/webapp/img/ico/toggle-small-expand.png +0 -0
  340. data/solr/server/solr-webapp/webapp/img/ico/toggle-small.png +0 -0
  341. data/solr/server/solr-webapp/webapp/img/ico/toolbox.png +0 -0
  342. data/solr/server/solr-webapp/webapp/img/ico/ui-accordion.png +0 -0
  343. data/solr/server/solr-webapp/webapp/img/ico/ui-address-bar.png +0 -0
  344. data/solr/server/solr-webapp/webapp/img/ico/ui-check-box-uncheck.png +0 -0
  345. data/solr/server/solr-webapp/webapp/img/ico/ui-check-box.png +0 -0
  346. data/solr/server/solr-webapp/webapp/img/ico/ui-radio-button-uncheck.png +0 -0
  347. data/solr/server/solr-webapp/webapp/img/ico/ui-radio-button.png +0 -0
  348. data/solr/server/solr-webapp/webapp/img/ico/ui-text-field-select.png +0 -0
  349. data/solr/server/solr-webapp/webapp/img/ico/users.png +0 -0
  350. data/solr/server/solr-webapp/webapp/img/ico/wooden-box.png +0 -0
  351. data/solr/server/solr-webapp/webapp/img/ico/zone.png +0 -0
  352. data/solr/server/solr-webapp/webapp/img/loader-light.gif +0 -0
  353. data/solr/server/solr-webapp/webapp/img/loader.gif +0 -0
  354. data/solr/server/solr-webapp/webapp/img/lucene-ico.png +0 -0
  355. data/solr/server/solr-webapp/webapp/img/solr-ico.png +0 -0
  356. data/solr/server/solr-webapp/webapp/img/solr.svg +39 -0
  357. data/solr/server/solr-webapp/webapp/img/tree.png +0 -0
  358. data/solr/server/solr-webapp/webapp/index.html +208 -0
  359. data/solr/server/solr-webapp/webapp/js/angular/app.js +713 -0
  360. data/solr/server/solr-webapp/webapp/js/angular/controllers/analysis.js +199 -0
  361. data/solr/server/solr-webapp/webapp/js/angular/controllers/cloud.js +528 -0
  362. data/solr/server/solr-webapp/webapp/js/angular/controllers/core-overview.js +225 -0
  363. data/solr/server/solr-webapp/webapp/js/angular/controllers/cores.js +465 -0
  364. data/solr/server/solr-webapp/webapp/js/angular/controllers/dataimport.js +284 -0
  365. data/solr/server/solr-webapp/webapp/js/angular/controllers/documents.js +139 -0
  366. data/solr/server/solr-webapp/webapp/js/angular/controllers/files.js +92 -0
  367. data/solr/server/solr-webapp/webapp/js/angular/controllers/index.js +95 -0
  368. data/solr/server/solr-webapp/webapp/js/angular/controllers/java-properties.js +45 -0
  369. data/solr/server/solr-webapp/webapp/js/angular/controllers/logging.js +146 -0
  370. data/solr/server/solr-webapp/webapp/js/angular/controllers/plugins.js +166 -0
  371. data/solr/server/solr-webapp/webapp/js/angular/controllers/query.js +99 -0
  372. data/solr/server/solr-webapp/webapp/js/angular/controllers/replication.js +227 -0
  373. data/solr/server/solr-webapp/webapp/js/angular/controllers/schema-browser.js +432 -0
  374. data/solr/server/solr-webapp/webapp/js/angular/controllers/segments.js +94 -0
  375. data/solr/server/solr-webapp/webapp/js/angular/controllers/threads.js +51 -0
  376. data/solr/server/solr-webapp/webapp/js/angular/services.js +214 -0
  377. data/solr/server/solr-webapp/webapp/js/lib/ZeroClipboard.js +342 -0
  378. data/solr/server/solr-webapp/webapp/js/lib/chosen.js +982 -0
  379. data/solr/server/solr-webapp/webapp/js/lib/console.js +29 -0
  380. data/solr/server/solr-webapp/webapp/js/lib/d3.js +9373 -0
  381. data/solr/server/solr-webapp/webapp/js/lib/highlight.js +31 -0
  382. data/solr/server/solr-webapp/webapp/js/lib/jquery-1.7.2.min.js +30 -0
  383. data/solr/server/solr-webapp/webapp/js/lib/jquery.ajaxfileupload.js +184 -0
  384. data/solr/server/solr-webapp/webapp/js/lib/jquery.blockUI.js +523 -0
  385. data/solr/server/solr-webapp/webapp/js/lib/jquery.cookie.js +71 -0
  386. data/solr/server/solr-webapp/webapp/js/lib/jquery.form.js +806 -0
  387. data/solr/server/solr-webapp/webapp/js/lib/jquery.jstree.js +3534 -0
  388. data/solr/server/solr-webapp/webapp/js/lib/jquery.sammy.js +1863 -0
  389. data/solr/server/solr-webapp/webapp/js/lib/jquery.timeago.js +189 -0
  390. data/solr/server/solr-webapp/webapp/js/lib/linker.js +48 -0
  391. data/solr/server/solr-webapp/webapp/js/lib/naturalSort.js +82 -0
  392. data/solr/server/solr-webapp/webapp/js/lib/order.js +216 -0
  393. data/solr/server/solr-webapp/webapp/js/main.js +60 -0
  394. data/solr/server/solr-webapp/webapp/js/require.js +11349 -0
  395. data/solr/server/solr-webapp/webapp/js/scripts/analysis.js +545 -0
  396. data/solr/server/solr-webapp/webapp/js/scripts/app.js +680 -0
  397. data/solr/server/solr-webapp/webapp/js/scripts/cloud.js +877 -0
  398. data/solr/server/solr-webapp/webapp/js/scripts/cores.js +719 -0
  399. data/solr/server/solr-webapp/webapp/js/scripts/dashboard.js +562 -0
  400. data/solr/server/solr-webapp/webapp/js/scripts/dataimport.js +812 -0
  401. data/solr/server/solr-webapp/webapp/js/scripts/documents.js +370 -0
  402. data/solr/server/solr-webapp/webapp/js/scripts/files.js +265 -0
  403. data/solr/server/solr-webapp/webapp/js/scripts/index.js +340 -0
  404. data/solr/server/solr-webapp/webapp/js/scripts/java-properties.js +106 -0
  405. data/solr/server/solr-webapp/webapp/js/scripts/logging.js +578 -0
  406. data/solr/server/solr-webapp/webapp/js/scripts/ping.js +72 -0
  407. data/solr/server/solr-webapp/webapp/js/scripts/plugins.js +462 -0
  408. data/solr/server/solr-webapp/webapp/js/scripts/query.js +229 -0
  409. data/solr/server/solr-webapp/webapp/js/scripts/replication.js +527 -0
  410. data/solr/server/solr-webapp/webapp/js/scripts/schema-browser.js +1229 -0
  411. data/solr/server/solr-webapp/webapp/js/scripts/segments.js +206 -0
  412. data/solr/server/solr-webapp/webapp/js/scripts/threads.js +158 -0
  413. data/solr/server/solr-webapp/webapp/libs/angular-chosen.js +139 -0
  414. data/solr/server/solr-webapp/webapp/libs/angular-cookies.js +229 -0
  415. data/solr/server/solr-webapp/webapp/libs/angular-cookies.min.js +31 -0
  416. data/solr/server/solr-webapp/webapp/libs/angular-resource.min.js +36 -0
  417. data/solr/server/solr-webapp/webapp/libs/angular-route.js +1018 -0
  418. data/solr/server/solr-webapp/webapp/libs/angular-route.min.js +38 -0
  419. data/solr/server/solr-webapp/webapp/libs/angular-sanitize.js +703 -0
  420. data/solr/server/solr-webapp/webapp/libs/angular-sanitize.min.js +39 -0
  421. data/solr/server/solr-webapp/webapp/libs/angular.js +26093 -0
  422. data/solr/server/solr-webapp/webapp/libs/angular.min.js +273 -0
  423. data/solr/server/solr-webapp/webapp/libs/chosen.jquery.js +1194 -0
  424. data/solr/server/solr-webapp/webapp/libs/chosen.jquery.min.js +30 -0
  425. data/solr/server/solr-webapp/webapp/libs/d3.js +9373 -0
  426. data/solr/server/solr-webapp/webapp/libs/highlight.js +31 -0
  427. data/solr/server/solr-webapp/webapp/libs/jquery-2.1.3.min.js +29 -0
  428. data/solr/server/solr-webapp/webapp/libs/jquery.jstree.js +3534 -0
  429. data/solr/server/solr-webapp/webapp/libs/ngtimeago.js +102 -0
  430. data/solr/server/solr-webapp/webapp/partials/analysis.html +128 -0
  431. data/solr/server/solr-webapp/webapp/partials/cloud.html +104 -0
  432. data/solr/server/solr-webapp/webapp/partials/core_overview.html +227 -0
  433. data/solr/server/solr-webapp/webapp/partials/cores.html +231 -0
  434. data/solr/server/solr-webapp/webapp/partials/dataimport.html +209 -0
  435. data/solr/server/solr-webapp/webapp/partials/documents.html +118 -0
  436. data/solr/server/solr-webapp/webapp/partials/files.html +47 -0
  437. data/solr/server/solr-webapp/webapp/partials/index.html +261 -0
  438. data/solr/server/solr-webapp/webapp/partials/java-properties.html +27 -0
  439. data/solr/server/solr-webapp/webapp/partials/logging-levels.html +56 -0
  440. data/solr/server/solr-webapp/webapp/partials/logging.html +56 -0
  441. data/solr/server/solr-webapp/webapp/partials/plugins.html +72 -0
  442. data/solr/server/solr-webapp/webapp/partials/query.html +356 -0
  443. data/solr/server/solr-webapp/webapp/partials/replication.html +239 -0
  444. data/solr/server/solr-webapp/webapp/partials/schema-browser.html +206 -0
  445. data/solr/server/solr-webapp/webapp/partials/segments.html +99 -0
  446. data/solr/server/solr-webapp/webapp/partials/threads.html +65 -0
  447. data/solr/server/solr-webapp/webapp/tpl/analysis.html +83 -0
  448. data/solr/server/solr-webapp/webapp/tpl/cloud.html +87 -0
  449. data/solr/server/solr-webapp/webapp/tpl/cores.html +226 -0
  450. data/solr/server/solr-webapp/webapp/tpl/dashboard.html +201 -0
  451. data/solr/server/solr-webapp/webapp/tpl/dataimport.html +183 -0
  452. data/solr/server/solr-webapp/webapp/tpl/documents.html +107 -0
  453. data/solr/server/solr-webapp/webapp/tpl/files.html +44 -0
  454. data/solr/server/solr-webapp/webapp/tpl/index.html +250 -0
  455. data/solr/server/solr-webapp/webapp/tpl/logging.html +23 -0
  456. data/solr/server/solr-webapp/webapp/tpl/plugins.html +39 -0
  457. data/solr/server/solr-webapp/webapp/tpl/query.html +361 -0
  458. data/solr/server/solr-webapp/webapp/tpl/replication.html +216 -0
  459. data/solr/server/solr-webapp/webapp/tpl/schema-browser.html +192 -0
  460. data/solr/server/solr-webapp/webapp/tpl/segments.html +49 -0
  461. data/solr/server/solr-webapp/webapp/tpl/threads.html +56 -0
  462. data/solr/server/solr/README.txt +77 -0
  463. data/solr/server/solr/solr.xml +51 -0
  464. data/solr/server/solr/zoo.cfg +17 -0
  465. data/solr/server/start.jar +0 -0
  466. data/solr/solr/README.txt +77 -0
  467. data/solr/solr/configsets/sunspot/conf/_rest_managed.json +1 -0
  468. data/solr/solr/{conf → configsets/sunspot/conf}/admin-extra.html +0 -0
  469. data/solr/solr/configsets/sunspot/conf/currency.xml +67 -0
  470. data/solr/solr/{conf → configsets/sunspot/conf}/elevate.xml +0 -0
  471. data/solr/solr/{conf/stopwords.txt → configsets/sunspot/conf/lang/stopwords_en.txt} +1 -5
  472. data/solr/solr/{conf → configsets/sunspot/conf}/mapping-ISOLatin1Accent.txt +0 -0
  473. data/solr/solr/{conf → configsets/sunspot/conf}/protwords.txt +0 -0
  474. data/solr/solr/{conf → configsets/sunspot/conf}/schema.xml +38 -35
  475. data/solr/solr/{conf → configsets/sunspot/conf}/scripts.conf +0 -0
  476. data/solr/solr/{conf → configsets/sunspot/conf}/solrconfig.xml +271 -320
  477. data/solr/solr/{conf → configsets/sunspot/conf}/spellings.txt +0 -0
  478. data/solr/solr/{conf → configsets/sunspot/conf}/synonyms.txt +3 -5
  479. data/solr/solr/default/core.properties +3 -0
  480. data/solr/solr/development/core.properties +3 -0
  481. data/solr/solr/solr.xml +49 -6
  482. data/solr/solr/test/core.properties +3 -0
  483. data/solr/solr/zoo.cfg +17 -0
  484. data/spec/installer_spec.rb +82 -0
  485. data/spec/java_spec.rb +58 -0
  486. data/spec/server_spec.rb +36 -79
  487. data/spec/spec_helper.rb +4 -16
  488. data/sunspot_solr.gemspec +3 -7
  489. metadata +496 -67
  490. data/lib/sunspot/solr/installer/config_installer.rb +0 -53
  491. data/lib/sunspot/solr/installer/task_helper.rb +0 -13
  492. data/solr/contexts/solr.xml +0 -7
  493. data/solr/lib/jetty-continuation-8.1.8.v20121106.jar +0 -0
  494. data/solr/lib/jetty-deploy-8.1.8.v20121106.jar +0 -0
  495. data/solr/lib/jetty-http-8.1.8.v20121106.jar +0 -0
  496. data/solr/lib/jetty-io-8.1.8.v20121106.jar +0 -0
  497. data/solr/lib/jetty-jmx-8.1.8.v20121106.jar +0 -0
  498. data/solr/lib/jetty-security-8.1.8.v20121106.jar +0 -0
  499. data/solr/lib/jetty-server-8.1.8.v20121106.jar +0 -0
  500. data/solr/lib/jetty-servlet-8.1.8.v20121106.jar +0 -0
  501. data/solr/lib/jetty-util-8.1.8.v20121106.jar +0 -0
  502. data/solr/lib/jetty-webapp-8.1.8.v20121106.jar +0 -0
  503. data/solr/lib/jetty-xml-8.1.8.v20121106.jar +0 -0
  504. data/solr/lib/jsp-2.1/ant-1.6.5.jar +0 -0
  505. data/solr/lib/jsp-2.1/core-3.1.1.jar +0 -0
  506. data/solr/lib/jsp-2.1/jsp-2.1.jar +0 -0
  507. data/solr/lib/jsp-2.1/jsp-api-2.1.jar +0 -0
  508. data/solr/lib/servlet-api-3.0.jar +0 -0
  509. data/solr/solr/conf/xslt/example.xsl +0 -132
  510. data/solr/solr/conf/xslt/example_atom.xsl +0 -67
  511. data/solr/solr/conf/xslt/example_rss.xsl +0 -66
  512. data/solr/solr/conf/xslt/luke.xsl +0 -337
  513. data/solr/solr/default/README.txt +0 -54
  514. data/solr/start.jar +0 -0
  515. data/solr/webapps/solr.war +0 -0
@@ -0,0 +1,71 @@
1
+ /*
2
+
3
+ The MIT License (MIT)
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
22
+
23
+ */
24
+
25
+ /*!
26
+ * jQuery Cookie Plugin
27
+ * https://github.com/carhartl/jquery-cookie
28
+ *
29
+ * Copyright 2011, Klaus Hartl
30
+ * Dual licensed under the MIT or GPL Version 2 licenses.
31
+ * http://www.opensource.org/licenses/mit-license.php
32
+ * http://www.opensource.org/licenses/GPL-2.0
33
+ */
34
+ (function($) {
35
+ $.cookie = function(key, value, options) {
36
+
37
+ // key and at least value given, set cookie...
38
+ if (arguments.length > 1 && (!/Object/.test(Object.prototype.toString.call(value)) || value === null || value === undefined)) {
39
+ options = $.extend({}, options);
40
+
41
+ if (value === null || value === undefined) {
42
+ options.expires = -1;
43
+ }
44
+
45
+ if (typeof options.expires === 'number') {
46
+ var days = options.expires, t = options.expires = new Date();
47
+ t.setDate(t.getDate() + days);
48
+ }
49
+
50
+ value = String(value);
51
+
52
+ return (document.cookie = [
53
+ encodeURIComponent(key), '=', options.raw ? value : encodeURIComponent(value),
54
+ options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
55
+ options.path ? '; path=' + options.path : '',
56
+ options.domain ? '; domain=' + options.domain : '',
57
+ options.secure ? '; secure' : ''
58
+ ].join(''));
59
+ }
60
+
61
+ // key and possibly options given, get cookie...
62
+ options = value || {};
63
+ var decode = options.raw ? function(s) { return s; } : decodeURIComponent;
64
+
65
+ var pairs = document.cookie.split('; ');
66
+ for (var i = 0, pair; pair = pairs[i] && pairs[i].split('='); i++) {
67
+ if (decode(pair[0]) === key) return decode(pair[1] || ''); // IE saves cookies with empty string as "c; ", e.g. without "=" as opposed to EOMB, thus pair[1] may be undefined
68
+ }
69
+ return null;
70
+ };
71
+ })(jQuery);
@@ -0,0 +1,806 @@
1
+ /*
2
+
3
+ The MIT License (MIT)
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
22
+
23
+ */
24
+
25
+ /*!
26
+ * jQuery Form Plugin
27
+ * version: 2.47 (04-SEP-2010)
28
+ * @requires jQuery v1.3.2 or later
29
+ *
30
+ * Examples and documentation at: http://malsup.com/jquery/form/
31
+ * Dual licensed under the MIT and GPL licenses:
32
+ * http://www.opensource.org/licenses/mit-license.php
33
+ * http://www.gnu.org/licenses/gpl.html
34
+ */
35
+
36
+ ;(function($) {
37
+
38
+ /*
39
+ Usage Note:
40
+ -----------
41
+ Do not use both ajaxSubmit and ajaxForm on the same form. These
42
+ functions are intended to be exclusive. Use ajaxSubmit if you want
43
+ to bind your own submit handler to the form. For example,
44
+
45
+ $(document).ready(function() {
46
+ $('#myForm').bind('submit', function() {
47
+ $(this).ajaxSubmit({
48
+ target: '#output'
49
+ });
50
+ return false; // <-- important!
51
+ });
52
+ });
53
+
54
+ Use ajaxForm when you want the plugin to manage all the event binding
55
+ for you. For example,
56
+
57
+ $(document).ready(function() {
58
+ $('#myForm').ajaxForm({
59
+ target: '#output'
60
+ });
61
+ });
62
+
63
+ When using ajaxForm, the ajaxSubmit function will be invoked for you
64
+ at the appropriate time.
65
+ */
66
+
67
+ /**
68
+ * ajaxSubmit() provides a mechanism for immediately submitting
69
+ * an HTML form using AJAX.
70
+ */
71
+ $.fn.ajaxSubmit = function(options) {
72
+ // fast fail if nothing selected (http://dev.jquery.com/ticket/2752)
73
+ if (!this.length) {
74
+ log('ajaxSubmit: skipping submit process - no element selected');
75
+ return this;
76
+ }
77
+
78
+ if (typeof options == 'function') {
79
+ options = { success: options };
80
+ }
81
+
82
+ var url = $.trim(this.attr('action'));
83
+ if (url) {
84
+ // clean url (don't include hash vaue)
85
+ url = (url.match(/^([^#]+)/)||[])[1];
86
+ }
87
+ url = url || window.location.href || '';
88
+
89
+ options = $.extend(true, {
90
+ url: url,
91
+ type: this.attr('method') || 'GET',
92
+ iframeSrc: /^https/i.test(window.location.href || '') ? 'javascript:false' : 'about:blank'
93
+ }, options);
94
+
95
+ // hook for manipulating the form data before it is extracted;
96
+ // convenient for use with rich editors like tinyMCE or FCKEditor
97
+ var veto = {};
98
+ this.trigger('form-pre-serialize', [this, options, veto]);
99
+ if (veto.veto) {
100
+ log('ajaxSubmit: submit vetoed via form-pre-serialize trigger');
101
+ return this;
102
+ }
103
+
104
+ // provide opportunity to alter form data before it is serialized
105
+ if (options.beforeSerialize && options.beforeSerialize(this, options) === false) {
106
+ log('ajaxSubmit: submit aborted via beforeSerialize callback');
107
+ return this;
108
+ }
109
+
110
+ var n,v,a = this.formToArray(options.semantic);
111
+ if (options.data) {
112
+ options.extraData = options.data;
113
+ for (n in options.data) {
114
+ if(options.data[n] instanceof Array) {
115
+ for (var k in options.data[n]) {
116
+ a.push( { name: n, value: options.data[n][k] } );
117
+ }
118
+ }
119
+ else {
120
+ v = options.data[n];
121
+ v = $.isFunction(v) ? v() : v; // if value is fn, invoke it
122
+ a.push( { name: n, value: v } );
123
+ }
124
+ }
125
+ }
126
+
127
+ // give pre-submit callback an opportunity to abort the submit
128
+ if (options.beforeSubmit && options.beforeSubmit(a, this, options) === false) {
129
+ log('ajaxSubmit: submit aborted via beforeSubmit callback');
130
+ return this;
131
+ }
132
+
133
+ // fire vetoable 'validate' event
134
+ this.trigger('form-submit-validate', [a, this, options, veto]);
135
+ if (veto.veto) {
136
+ log('ajaxSubmit: submit vetoed via form-submit-validate trigger');
137
+ return this;
138
+ }
139
+
140
+ var q = $.param(a);
141
+
142
+ if (options.type.toUpperCase() == 'GET') {
143
+ options.url += (options.url.indexOf('?') >= 0 ? '&' : '?') + q;
144
+ options.data = null; // data is null for 'get'
145
+ }
146
+ else {
147
+ options.data = q; // data is the query string for 'post'
148
+ }
149
+
150
+ var $form = this, callbacks = [];
151
+ if (options.resetForm) {
152
+ callbacks.push(function() { $form.resetForm(); });
153
+ }
154
+ if (options.clearForm) {
155
+ callbacks.push(function() { $form.clearForm(); });
156
+ }
157
+
158
+ // perform a load on the target only if dataType is not provided
159
+ if (!options.dataType && options.target) {
160
+ var oldSuccess = options.success || function(){};
161
+ callbacks.push(function(data) {
162
+ var fn = options.replaceTarget ? 'replaceWith' : 'html';
163
+ $(options.target)[fn](data).each(oldSuccess, arguments);
164
+ });
165
+ }
166
+ else if (options.success) {
167
+ callbacks.push(options.success);
168
+ }
169
+
170
+ options.success = function(data, status, xhr) { // jQuery 1.4+ passes xhr as 3rd arg
171
+ var context = options.context || options; // jQuery 1.4+ supports scope context
172
+ for (var i=0, max=callbacks.length; i < max; i++) {
173
+ callbacks[i].apply(context, [data, status, xhr || $form, $form]);
174
+ }
175
+ };
176
+
177
+ // are there files to upload?
178
+ var fileInputs = $('input:file', this).length > 0;
179
+ var mp = 'multipart/form-data';
180
+ var multipart = ($form.attr('enctype') == mp || $form.attr('encoding') == mp);
181
+
182
+ // options.iframe allows user to force iframe mode
183
+ // 06-NOV-09: now defaulting to iframe mode if file input is detected
184
+ if (options.iframe !== false && (fileInputs || options.iframe || multipart)) {
185
+ // hack to fix Safari hang (thanks to Tim Molendijk for this)
186
+ // see: http://groups.google.com/group/jquery-dev/browse_thread/thread/36395b7ab510dd5d
187
+ if (options.closeKeepAlive) {
188
+ $.get(options.closeKeepAlive, fileUpload);
189
+ }
190
+ else {
191
+ fileUpload();
192
+ }
193
+ }
194
+ else {
195
+ $.ajax(options);
196
+ }
197
+
198
+ // fire 'notify' event
199
+ this.trigger('form-submit-notify', [this, options]);
200
+ return this;
201
+
202
+
203
+ // private function for handling file uploads (hat tip to YAHOO!)
204
+ function fileUpload() {
205
+ var form = $form[0];
206
+
207
+ if ($(':input[name=submit],:input[id=submit]', form).length) {
208
+ // if there is an input with a name or id of 'submit' then we won't be
209
+ // able to invoke the submit fn on the form (at least not x-browser)
210
+ alert('Error: Form elements must not have name or id of "submit".');
211
+ return;
212
+ }
213
+
214
+ var s = $.extend(true, {}, $.ajaxSettings, options);
215
+ s.context = s.context || s;
216
+ var id = 'jqFormIO' + (new Date().getTime()), fn = '_'+id;
217
+ window[fn] = function() {
218
+ var f = $io.data('form-plugin-onload');
219
+ if (f) {
220
+ f();
221
+ window[fn] = undefined;
222
+ try { delete window[fn]; } catch(e){}
223
+ }
224
+ }
225
+ var $io = $('<iframe id="' + id + '" name="' + id + '" src="'+ s.iframeSrc +'" onload="window[\'_\'+this.id]()" />');
226
+ var io = $io[0];
227
+
228
+ $io.css({ position: 'absolute', top: '-1000px', left: '-1000px' });
229
+
230
+ var xhr = { // mock object
231
+ aborted: 0,
232
+ responseText: null,
233
+ responseXML: null,
234
+ status: 0,
235
+ statusText: 'n/a',
236
+ getAllResponseHeaders: function() {},
237
+ getResponseHeader: function() {},
238
+ setRequestHeader: function() {},
239
+ abort: function() {
240
+ this.aborted = 1;
241
+ $io.attr('src', s.iframeSrc); // abort op in progress
242
+ }
243
+ };
244
+
245
+ var g = s.global;
246
+ // trigger ajax global events so that activity/block indicators work like normal
247
+ if (g && ! $.active++) {
248
+ $.event.trigger("ajaxStart");
249
+ }
250
+ if (g) {
251
+ $.event.trigger("ajaxSend", [xhr, s]);
252
+ }
253
+
254
+ if (s.beforeSend && s.beforeSend.call(s.context, xhr, s) === false) {
255
+ if (s.global) {
256
+ $.active--;
257
+ }
258
+ return;
259
+ }
260
+ if (xhr.aborted) {
261
+ return;
262
+ }
263
+
264
+ var cbInvoked = false;
265
+ var timedOut = 0;
266
+
267
+ // add submitting element to data if we know it
268
+ var sub = form.clk;
269
+ if (sub) {
270
+ var n = sub.name;
271
+ if (n && !sub.disabled) {
272
+ s.extraData = s.extraData || {};
273
+ s.extraData[n] = sub.value;
274
+ if (sub.type == "image") {
275
+ s.extraData[n+'.x'] = form.clk_x;
276
+ s.extraData[n+'.y'] = form.clk_y;
277
+ }
278
+ }
279
+ }
280
+
281
+ // take a breath so that pending repaints get some cpu time before the upload starts
282
+ function doSubmit() {
283
+ // make sure form attrs are set
284
+ var t = $form.attr('target'), a = $form.attr('action');
285
+
286
+ // update form attrs in IE friendly way
287
+ form.setAttribute('target',id);
288
+ if (form.getAttribute('method') != 'POST') {
289
+ form.setAttribute('method', 'POST');
290
+ }
291
+ if (form.getAttribute('action') != s.url) {
292
+ form.setAttribute('action', s.url);
293
+ }
294
+
295
+ // ie borks in some cases when setting encoding
296
+ if (! s.skipEncodingOverride) {
297
+ $form.attr({
298
+ encoding: 'multipart/form-data',
299
+ enctype: 'multipart/form-data'
300
+ });
301
+ }
302
+
303
+ // support timout
304
+ if (s.timeout) {
305
+ setTimeout(function() { timedOut = true; cb(); }, s.timeout);
306
+ }
307
+
308
+ // add "extra" data to form if provided in options
309
+ var extraInputs = [];
310
+ try {
311
+ if (s.extraData) {
312
+ for (var n in s.extraData) {
313
+ extraInputs.push(
314
+ $('<input type="hidden" name="'+n+'" value="'+s.extraData[n]+'" />')
315
+ .appendTo(form)[0]);
316
+ }
317
+ }
318
+
319
+ // add iframe to doc and submit the form
320
+ $io.appendTo('body');
321
+ $io.data('form-plugin-onload', cb);
322
+ form.submit();
323
+ }
324
+ finally {
325
+ // reset attrs and remove "extra" input elements
326
+ form.setAttribute('action',a);
327
+ if(t) {
328
+ form.setAttribute('target', t);
329
+ } else {
330
+ $form.removeAttr('target');
331
+ }
332
+ $(extraInputs).remove();
333
+ }
334
+ }
335
+
336
+ if (s.forceSync) {
337
+ doSubmit();
338
+ }
339
+ else {
340
+ setTimeout(doSubmit, 10); // this lets dom updates render
341
+ }
342
+
343
+ var data, doc, domCheckCount = 50;
344
+
345
+ function cb() {
346
+ if (cbInvoked) {
347
+ return;
348
+ }
349
+
350
+ $io.removeData('form-plugin-onload');
351
+
352
+ var ok = true;
353
+ try {
354
+ if (timedOut) {
355
+ throw 'timeout';
356
+ }
357
+ // extract the server response from the iframe
358
+ doc = io.contentWindow ? io.contentWindow.document : io.contentDocument ? io.contentDocument : io.document;
359
+
360
+ var isXml = s.dataType == 'xml' || doc.XMLDocument || $.isXMLDoc(doc);
361
+ log('isXml='+isXml);
362
+ if (!isXml && window.opera && (doc.body == null || doc.body.innerHTML == '')) {
363
+ if (--domCheckCount) {
364
+ // in some browsers (Opera) the iframe DOM is not always traversable when
365
+ // the onload callback fires, so we loop a bit to accommodate
366
+ log('requeing onLoad callback, DOM not available');
367
+ setTimeout(cb, 250);
368
+ return;
369
+ }
370
+ // let this fall through because server response could be an empty document
371
+ //log('Could not access iframe DOM after mutiple tries.');
372
+ //throw 'DOMException: not available';
373
+ }
374
+
375
+ //log('response detected');
376
+ cbInvoked = true;
377
+ xhr.responseText = doc.documentElement ? doc.documentElement.innerHTML : null;
378
+ xhr.responseXML = doc.XMLDocument ? doc.XMLDocument : doc;
379
+ xhr.getResponseHeader = function(header){
380
+ var headers = {'content-type': s.dataType};
381
+ return headers[header];
382
+ };
383
+
384
+ var scr = /(json|script)/.test(s.dataType);
385
+ if (scr || s.textarea) {
386
+ // see if user embedded response in textarea
387
+ var ta = doc.getElementsByTagName('textarea')[0];
388
+ if (ta) {
389
+ xhr.responseText = ta.value;
390
+ }
391
+ else if (scr) {
392
+ // account for browsers injecting pre around json response
393
+ var pre = doc.getElementsByTagName('pre')[0];
394
+ if (pre) {
395
+ xhr.responseText = pre.innerHTML;
396
+ }
397
+ }
398
+ }
399
+ else if (s.dataType == 'xml' && !xhr.responseXML && xhr.responseText != null) {
400
+ xhr.responseXML = toXml(xhr.responseText);
401
+ }
402
+ data = $.httpData(xhr, s.dataType);
403
+ }
404
+ catch(e){
405
+ log('error caught:',e);
406
+ ok = false;
407
+ xhr.error = e;
408
+ $.handleError(s, xhr, 'error', e);
409
+ }
410
+
411
+ // ordering of these callbacks/triggers is odd, but that's how $.ajax does it
412
+ if (ok) {
413
+ s.success.call(s.context, data, 'success', xhr);
414
+ if (g) {
415
+ $.event.trigger("ajaxSuccess", [xhr, s]);
416
+ }
417
+ }
418
+ if (g) {
419
+ $.event.trigger("ajaxComplete", [xhr, s]);
420
+ }
421
+ if (g && ! --$.active) {
422
+ $.event.trigger("ajaxStop");
423
+ }
424
+ if (s.complete) {
425
+ s.complete.call(s.context, xhr, ok ? 'success' : 'error');
426
+ }
427
+
428
+ // clean up
429
+ setTimeout(function() {
430
+ $io.removeData('form-plugin-onload');
431
+ $io.remove();
432
+ xhr.responseXML = null;
433
+ }, 100);
434
+ }
435
+
436
+ function toXml(s, doc) {
437
+ if (window.ActiveXObject) {
438
+ doc = new ActiveXObject('Microsoft.XMLDOM');
439
+ doc.async = 'false';
440
+ doc.loadXML(s);
441
+ }
442
+ else {
443
+ doc = (new DOMParser()).parseFromString(s, 'text/xml');
444
+ }
445
+ return (doc && doc.documentElement && doc.documentElement.tagName != 'parsererror') ? doc : null;
446
+ }
447
+ }
448
+ };
449
+
450
+ /**
451
+ * ajaxForm() provides a mechanism for fully automating form submission.
452
+ *
453
+ * The advantages of using this method instead of ajaxSubmit() are:
454
+ *
455
+ * 1: This method will include coordinates for <input type="image" /> elements (if the element
456
+ * is used to submit the form).
457
+ * 2. This method will include the submit element's name/value data (for the element that was
458
+ * used to submit the form).
459
+ * 3. This method binds the submit() method to the form for you.
460
+ *
461
+ * The options argument for ajaxForm works exactly as it does for ajaxSubmit. ajaxForm merely
462
+ * passes the options argument along after properly binding events for submit elements and
463
+ * the form itself.
464
+ */
465
+ $.fn.ajaxForm = function(options) {
466
+ // in jQuery 1.3+ we can fix mistakes with the ready state
467
+ if (this.length === 0) {
468
+ var o = { s: this.selector, c: this.context };
469
+ if (!$.isReady && o.s) {
470
+ log('DOM not ready, queuing ajaxForm');
471
+ $(function() {
472
+ $(o.s,o.c).ajaxForm(options);
473
+ });
474
+ return this;
475
+ }
476
+ // is your DOM ready? http://docs.jquery.com/Tutorials:Introducing_$(document).ready()
477
+ log('terminating; zero elements found by selector' + ($.isReady ? '' : ' (DOM not ready)'));
478
+ return this;
479
+ }
480
+
481
+ return this.ajaxFormUnbind().bind('submit.form-plugin', function(e) {
482
+ if (!e.isDefaultPrevented()) { // if event has been canceled, don't proceed
483
+ e.preventDefault();
484
+ $(this).ajaxSubmit(options);
485
+ }
486
+ }).bind('click.form-plugin', function(e) {
487
+ var target = e.target;
488
+ var $el = $(target);
489
+ if (!($el.is(":submit,input:image"))) {
490
+ // is this a child element of the submit el? (ex: a span within a button)
491
+ var t = $el.closest(':submit');
492
+ if (t.length == 0) {
493
+ return;
494
+ }
495
+ target = t[0];
496
+ }
497
+ var form = this;
498
+ form.clk = target;
499
+ if (target.type == 'image') {
500
+ if (e.offsetX != undefined) {
501
+ form.clk_x = e.offsetX;
502
+ form.clk_y = e.offsetY;
503
+ } else if (typeof $.fn.offset == 'function') { // try to use dimensions plugin
504
+ var offset = $el.offset();
505
+ form.clk_x = e.pageX - offset.left;
506
+ form.clk_y = e.pageY - offset.top;
507
+ } else {
508
+ form.clk_x = e.pageX - target.offsetLeft;
509
+ form.clk_y = e.pageY - target.offsetTop;
510
+ }
511
+ }
512
+ // clear form vars
513
+ setTimeout(function() { form.clk = form.clk_x = form.clk_y = null; }, 100);
514
+ });
515
+ };
516
+
517
+ // ajaxFormUnbind unbinds the event handlers that were bound by ajaxForm
518
+ $.fn.ajaxFormUnbind = function() {
519
+ return this.unbind('submit.form-plugin click.form-plugin');
520
+ };
521
+
522
+ /**
523
+ * formToArray() gathers form element data into an array of objects that can
524
+ * be passed to any of the following ajax functions: $.get, $.post, or load.
525
+ * Each object in the array has both a 'name' and 'value' property. An example of
526
+ * an array for a simple login form might be:
527
+ *
528
+ * [ { name: 'username', value: 'jresig' }, { name: 'password', value: 'secret' } ]
529
+ *
530
+ * It is this array that is passed to pre-submit callback functions provided to the
531
+ * ajaxSubmit() and ajaxForm() methods.
532
+ */
533
+ $.fn.formToArray = function(semantic) {
534
+ var a = [];
535
+ if (this.length === 0) {
536
+ return a;
537
+ }
538
+
539
+ var form = this[0];
540
+ var els = semantic ? form.getElementsByTagName('*') : form.elements;
541
+ if (!els) {
542
+ return a;
543
+ }
544
+
545
+ var i,j,n,v,el;
546
+ for(i=0, max=els.length; i < max; i++) {
547
+ el = els[i];
548
+ n = el.name;
549
+ if (!n) {
550
+ continue;
551
+ }
552
+
553
+ if (semantic && form.clk && el.type == "image") {
554
+ // handle image inputs on the fly when semantic == true
555
+ if(!el.disabled && form.clk == el) {
556
+ a.push({name: n, value: $(el).val()});
557
+ a.push({name: n+'.x', value: form.clk_x}, {name: n+'.y', value: form.clk_y});
558
+ }
559
+ continue;
560
+ }
561
+
562
+ v = $.fieldValue(el, true);
563
+ if (v && v.constructor == Array) {
564
+ for(j=0, jmax=v.length; j < jmax; j++) {
565
+ a.push({name: n, value: v[j]});
566
+ }
567
+ }
568
+ else if (v !== null && typeof v != 'undefined') {
569
+ a.push({name: n, value: v});
570
+ }
571
+ }
572
+
573
+ if (!semantic && form.clk) {
574
+ // input type=='image' are not found in elements array! handle it here
575
+ var $input = $(form.clk), input = $input[0];
576
+ n = input.name;
577
+ if (n && !input.disabled && input.type == 'image') {
578
+ a.push({name: n, value: $input.val()});
579
+ a.push({name: n+'.x', value: form.clk_x}, {name: n+'.y', value: form.clk_y});
580
+ }
581
+ }
582
+ return a;
583
+ };
584
+
585
+ /**
586
+ * Serializes form data into a 'submittable' string. This method will return a string
587
+ * in the format: name1=value1&amp;name2=value2
588
+ */
589
+ $.fn.formSerialize = function(semantic) {
590
+ //hand off to jQuery.param for proper encoding
591
+ return $.param(this.formToArray(semantic));
592
+ };
593
+
594
+ /**
595
+ * Serializes all field elements in the jQuery object into a query string.
596
+ * This method will return a string in the format: name1=value1&amp;name2=value2
597
+ */
598
+ $.fn.fieldSerialize = function(successful) {
599
+ var a = [];
600
+ this.each(function() {
601
+ var n = this.name;
602
+ if (!n) {
603
+ return;
604
+ }
605
+ var v = $.fieldValue(this, successful);
606
+ if (v && v.constructor == Array) {
607
+ for (var i=0,max=v.length; i < max; i++) {
608
+ a.push({name: n, value: v[i]});
609
+ }
610
+ }
611
+ else if (v !== null && typeof v != 'undefined') {
612
+ a.push({name: this.name, value: v});
613
+ }
614
+ });
615
+ //hand off to jQuery.param for proper encoding
616
+ return $.param(a);
617
+ };
618
+
619
+ /**
620
+ * Returns the value(s) of the element in the matched set. For example, consider the following form:
621
+ *
622
+ * <form><fieldset>
623
+ * <input name="A" type="text" />
624
+ * <input name="A" type="text" />
625
+ * <input name="B" type="checkbox" value="B1" />
626
+ * <input name="B" type="checkbox" value="B2"/>
627
+ * <input name="C" type="radio" value="C1" />
628
+ * <input name="C" type="radio" value="C2" />
629
+ * </fieldset></form>
630
+ *
631
+ * var v = $(':text').fieldValue();
632
+ * // if no values are entered into the text inputs
633
+ * v == ['','']
634
+ * // if values entered into the text inputs are 'foo' and 'bar'
635
+ * v == ['foo','bar']
636
+ *
637
+ * var v = $(':checkbox').fieldValue();
638
+ * // if neither checkbox is checked
639
+ * v === undefined
640
+ * // if both checkboxes are checked
641
+ * v == ['B1', 'B2']
642
+ *
643
+ * var v = $(':radio').fieldValue();
644
+ * // if neither radio is checked
645
+ * v === undefined
646
+ * // if first radio is checked
647
+ * v == ['C1']
648
+ *
649
+ * The successful argument controls whether or not the field element must be 'successful'
650
+ * (per http://www.w3.org/TR/html4/interact/forms.html#successful-controls).
651
+ * The default value of the successful argument is true. If this value is false the value(s)
652
+ * for each element is returned.
653
+ *
654
+ * Note: This method *always* returns an array. If no valid value can be determined the
655
+ * array will be empty, otherwise it will contain one or more values.
656
+ */
657
+ $.fn.fieldValue = function(successful) {
658
+ for (var val=[], i=0, max=this.length; i < max; i++) {
659
+ var el = this[i];
660
+ var v = $.fieldValue(el, successful);
661
+ if (v === null || typeof v == 'undefined' || (v.constructor == Array && !v.length)) {
662
+ continue;
663
+ }
664
+ v.constructor == Array ? $.merge(val, v) : val.push(v);
665
+ }
666
+ return val;
667
+ };
668
+
669
+ /**
670
+ * Returns the value of the field element.
671
+ */
672
+ $.fieldValue = function(el, successful) {
673
+ var n = el.name, t = el.type, tag = el.tagName.toLowerCase();
674
+ if (successful === undefined) {
675
+ successful = true;
676
+ }
677
+
678
+ if (successful && (!n || el.disabled || t == 'reset' || t == 'button' ||
679
+ (t == 'checkbox' || t == 'radio') && !el.checked ||
680
+ (t == 'submit' || t == 'image') && el.form && el.form.clk != el ||
681
+ tag == 'select' && el.selectedIndex == -1)) {
682
+ return null;
683
+ }
684
+
685
+ if (tag == 'select') {
686
+ var index = el.selectedIndex;
687
+ if (index < 0) {
688
+ return null;
689
+ }
690
+ var a = [], ops = el.options;
691
+ var one = (t == 'select-one');
692
+ var max = (one ? index+1 : ops.length);
693
+ for(var i=(one ? index : 0); i < max; i++) {
694
+ var op = ops[i];
695
+ if (op.selected) {
696
+ var v = op.value;
697
+ if (!v) { // extra pain for IE...
698
+ v = (op.attributes && op.attributes['value'] && !(op.attributes['value'].specified)) ? op.text : op.value;
699
+ }
700
+ if (one) {
701
+ return v;
702
+ }
703
+ a.push(v);
704
+ }
705
+ }
706
+ return a;
707
+ }
708
+ return $(el).val();
709
+ };
710
+
711
+ /**
712
+ * Clears the form data. Takes the following actions on the form's input fields:
713
+ * - input text fields will have their 'value' property set to the empty string
714
+ * - select elements will have their 'selectedIndex' property set to -1
715
+ * - checkbox and radio inputs will have their 'checked' property set to false
716
+ * - inputs of type submit, button, reset, and hidden will *not* be effected
717
+ * - button elements will *not* be effected
718
+ */
719
+ $.fn.clearForm = function() {
720
+ return this.each(function() {
721
+ $('input,select,textarea', this).clearFields();
722
+ });
723
+ };
724
+
725
+ /**
726
+ * Clears the selected form elements.
727
+ */
728
+ $.fn.clearFields = $.fn.clearInputs = function() {
729
+ return this.each(function() {
730
+ var t = this.type, tag = this.tagName.toLowerCase();
731
+ if (t == 'text' || t == 'password' || tag == 'textarea') {
732
+ this.value = '';
733
+ }
734
+ else if (t == 'checkbox' || t == 'radio') {
735
+ this.checked = false;
736
+ }
737
+ else if (tag == 'select') {
738
+ this.selectedIndex = -1;
739
+ }
740
+ });
741
+ };
742
+
743
+ /**
744
+ * Resets the form data. Causes all form elements to be reset to their original value.
745
+ */
746
+ $.fn.resetForm = function() {
747
+ return this.each(function() {
748
+ // guard against an input with the name of 'reset'
749
+ // note that IE reports the reset function as an 'object'
750
+ if (typeof this.reset == 'function' || (typeof this.reset == 'object' && !this.reset.nodeType)) {
751
+ this.reset();
752
+ }
753
+ });
754
+ };
755
+
756
+ /**
757
+ * Enables or disables any matching elements.
758
+ */
759
+ $.fn.enable = function(b) {
760
+ if (b === undefined) {
761
+ b = true;
762
+ }
763
+ return this.each(function() {
764
+ this.disabled = !b;
765
+ });
766
+ };
767
+
768
+ /**
769
+ * Checks/unchecks any matching checkboxes or radio buttons and
770
+ * selects/deselects and matching option elements.
771
+ */
772
+ $.fn.selected = function(select) {
773
+ if (select === undefined) {
774
+ select = true;
775
+ }
776
+ return this.each(function() {
777
+ var t = this.type;
778
+ if (t == 'checkbox' || t == 'radio') {
779
+ this.checked = select;
780
+ }
781
+ else if (this.tagName.toLowerCase() == 'option') {
782
+ var $sel = $(this).parent('select');
783
+ if (select && $sel[0] && $sel[0].type == 'select-one') {
784
+ // deselect all other options
785
+ $sel.find('option').selected(false);
786
+ }
787
+ this.selected = select;
788
+ }
789
+ });
790
+ };
791
+
792
+ // helper fn for console logging
793
+ // set $.fn.ajaxSubmit.debug to true to enable debug logging
794
+ function log() {
795
+ if ($.fn.ajaxSubmit.debug) {
796
+ var msg = '[jquery.form] ' + Array.prototype.join.call(arguments,'');
797
+ if (window.console && window.console.log) {
798
+ window.console.log(msg);
799
+ }
800
+ else if (window.opera && window.opera.postError) {
801
+ window.opera.postError(msg);
802
+ }
803
+ }
804
+ };
805
+
806
+ })(jQuery);