dojo-rails 0.9.8 → 0.9.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (611) hide show
  1. data/.gitignore +18 -0
  2. data/Gemfile +4 -0
  3. data/LICENSE +22 -0
  4. data/Rakefile +3 -0
  5. data/dojo-rails.gemspec +20 -0
  6. data/lib/dojo-rails.rb +1 -0
  7. data/lib/dojo/rails.rb +2 -0
  8. data/lib/dojo/rails/engine.rb +6 -0
  9. data/lib/dojo/rails/version.rb +9 -0
  10. data/lib/dojo/version.rb +7 -0
  11. data/vendor/assets/javascripts/dojo.js +15 -0
  12. data/vendor/assets/javascripts/dojo/AdapterRegistry.js +38 -0
  13. data/vendor/assets/javascripts/dojo/AdapterRegistry.js.uncompressed.js +113 -0
  14. data/vendor/assets/javascripts/dojo/DeferredList.js +57 -0
  15. data/vendor/assets/javascripts/dojo/DeferredList.js.uncompressed.js +86 -0
  16. data/vendor/assets/javascripts/dojo/Evented.js +23 -0
  17. data/vendor/assets/javascripts/dojo/Evented.js.uncompressed.js +32 -0
  18. data/vendor/assets/javascripts/dojo/LICENSE +195 -0
  19. data/vendor/assets/javascripts/dojo/NodeList-data.js +59 -0
  20. data/vendor/assets/javascripts/dojo/NodeList-data.js.uncompressed.js +181 -0
  21. data/vendor/assets/javascripts/dojo/NodeList-dom.js +122 -0
  22. data/vendor/assets/javascripts/dojo/NodeList-dom.js.uncompressed.js +454 -0
  23. data/vendor/assets/javascripts/dojo/NodeList-fx.js +39 -0
  24. data/vendor/assets/javascripts/dojo/NodeList-fx.js.uncompressed.js +222 -0
  25. data/vendor/assets/javascripts/dojo/NodeList-html.js +20 -0
  26. data/vendor/assets/javascripts/dojo/NodeList-html.js.uncompressed.js +55 -0
  27. data/vendor/assets/javascripts/dojo/NodeList-manipulate.js +210 -0
  28. data/vendor/assets/javascripts/dojo/NodeList-manipulate.js.uncompressed.js +730 -0
  29. data/vendor/assets/javascripts/dojo/NodeList-traverse.js +124 -0
  30. data/vendor/assets/javascripts/dojo/NodeList-traverse.js.uncompressed.js +508 -0
  31. data/vendor/assets/javascripts/dojo/OpenAjax.js +194 -0
  32. data/vendor/assets/javascripts/dojo/Stateful.js +67 -0
  33. data/vendor/assets/javascripts/dojo/Stateful.js.uncompressed.js +139 -0
  34. data/vendor/assets/javascripts/dojo/_base/Color.js +96 -0
  35. data/vendor/assets/javascripts/dojo/_base/Color.js.uncompressed.js +220 -0
  36. data/vendor/assets/javascripts/dojo/_base/Deferred.js +129 -0
  37. data/vendor/assets/javascripts/dojo/_base/Deferred.js.uncompressed.js +366 -0
  38. data/vendor/assets/javascripts/dojo/_base/NodeList.js +24 -0
  39. data/vendor/assets/javascripts/dojo/_base/NodeList.js.uncompressed.js +100 -0
  40. data/vendor/assets/javascripts/dojo/_base/array.js +142 -0
  41. data/vendor/assets/javascripts/dojo/_base/array.js.uncompressed.js +343 -0
  42. data/vendor/assets/javascripts/dojo/_base/browser.js +13 -0
  43. data/vendor/assets/javascripts/dojo/_base/browser.js.uncompressed.js +21 -0
  44. data/vendor/assets/javascripts/dojo/_base/config.js +26 -0
  45. data/vendor/assets/javascripts/dojo/_base/config.js.uncompressed.js +174 -0
  46. data/vendor/assets/javascripts/dojo/_base/configFirefoxExtension.js +334 -0
  47. data/vendor/assets/javascripts/dojo/_base/configNode.js +87 -0
  48. data/vendor/assets/javascripts/dojo/_base/configRhino.js +121 -0
  49. data/vendor/assets/javascripts/dojo/_base/configSpidermonkey.js +84 -0
  50. data/vendor/assets/javascripts/dojo/_base/connect.js +163 -0
  51. data/vendor/assets/javascripts/dojo/_base/connect.js.uncompressed.js +400 -0
  52. data/vendor/assets/javascripts/dojo/_base/declare.js +430 -0
  53. data/vendor/assets/javascripts/dojo/_base/declare.js.uncompressed.js +1050 -0
  54. data/vendor/assets/javascripts/dojo/_base/event.js +36 -0
  55. data/vendor/assets/javascripts/dojo/_base/event.js.uncompressed.js +51 -0
  56. data/vendor/assets/javascripts/dojo/_base/fx.js +295 -0
  57. data/vendor/assets/javascripts/dojo/_base/fx.js.uncompressed.js +666 -0
  58. data/vendor/assets/javascripts/dojo/_base/html.js +88 -0
  59. data/vendor/assets/javascripts/dojo/_base/html.js.uncompressed.js +389 -0
  60. data/vendor/assets/javascripts/dojo/_base/json.js +26 -0
  61. data/vendor/assets/javascripts/dojo/_base/json.js.uncompressed.js +85 -0
  62. data/vendor/assets/javascripts/dojo/_base/kernel.js +114 -0
  63. data/vendor/assets/javascripts/dojo/_base/kernel.js.uncompressed.js +302 -0
  64. data/vendor/assets/javascripts/dojo/_base/lang.js +178 -0
  65. data/vendor/assets/javascripts/dojo/_base/lang.js.uncompressed.js +707 -0
  66. data/vendor/assets/javascripts/dojo/_base/loader.js +258 -0
  67. data/vendor/assets/javascripts/dojo/_base/loader.js.uncompressed.js +718 -0
  68. data/vendor/assets/javascripts/dojo/_base/query.js +10 -0
  69. data/vendor/assets/javascripts/dojo/_base/query.js.uncompressed.js +3 -0
  70. data/vendor/assets/javascripts/dojo/_base/sniff.js +68 -0
  71. data/vendor/assets/javascripts/dojo/_base/sniff.js.uncompressed.js +187 -0
  72. data/vendor/assets/javascripts/dojo/_base/unload.js +21 -0
  73. data/vendor/assets/javascripts/dojo/_base/unload.js.uncompressed.js +81 -0
  74. data/vendor/assets/javascripts/dojo/_base/url.js +88 -0
  75. data/vendor/assets/javascripts/dojo/_base/url.js.uncompressed.js +111 -0
  76. data/vendor/assets/javascripts/dojo/_base/window.js +55 -0
  77. data/vendor/assets/javascripts/dojo/_base/window.js.uncompressed.js +126 -0
  78. data/vendor/assets/javascripts/dojo/_base/xhr.js +381 -0
  79. data/vendor/assets/javascripts/dojo/_base/xhr.js.uncompressed.js +830 -0
  80. data/vendor/assets/javascripts/dojo/_firebug/LICENSE +37 -0
  81. data/vendor/assets/javascripts/dojo/_firebug/errorIcon.png +0 -0
  82. data/vendor/assets/javascripts/dojo/_firebug/firebug.css +208 -0
  83. data/vendor/assets/javascripts/dojo/_firebug/firebug.js +897 -0
  84. data/vendor/assets/javascripts/dojo/_firebug/firebug.js.uncompressed.js +1183 -0
  85. data/vendor/assets/javascripts/dojo/_firebug/infoIcon.png +0 -0
  86. data/vendor/assets/javascripts/dojo/_firebug/tab_lft_norm.png +0 -0
  87. data/vendor/assets/javascripts/dojo/_firebug/tab_lft_over.png +0 -0
  88. data/vendor/assets/javascripts/dojo/_firebug/tab_rgt_norm.png +0 -0
  89. data/vendor/assets/javascripts/dojo/_firebug/tab_rgt_over.png +0 -0
  90. data/vendor/assets/javascripts/dojo/_firebug/warningIcon.png +0 -0
  91. data/vendor/assets/javascripts/dojo/aspect.js +98 -0
  92. data/vendor/assets/javascripts/dojo/aspect.js.uncompressed.js +207 -0
  93. data/vendor/assets/javascripts/dojo/back.js +238 -0
  94. data/vendor/assets/javascripts/dojo/back.js.uncompressed.js +397 -0
  95. data/vendor/assets/javascripts/dojo/behavior.js +92 -0
  96. data/vendor/assets/javascripts/dojo/behavior.js.uncompressed.js +248 -0
  97. data/vendor/assets/javascripts/dojo/cache.js +10 -0
  98. data/vendor/assets/javascripts/dojo/cache.js.uncompressed.js +9 -0
  99. data/vendor/assets/javascripts/dojo/cldr/LICENSE +29 -0
  100. data/vendor/assets/javascripts/dojo/cldr/README +18 -0
  101. data/vendor/assets/javascripts/dojo/cldr/monetary.js +23 -0
  102. data/vendor/assets/javascripts/dojo/cldr/monetary.js.uncompressed.js +35 -0
  103. data/vendor/assets/javascripts/dojo/cldr/nls/ar/buddhist.js +8 -0
  104. data/vendor/assets/javascripts/dojo/cldr/nls/ar/buddhist.js.uncompressed.js +115 -0
  105. data/vendor/assets/javascripts/dojo/cldr/nls/ar/currency.js +8 -0
  106. data/vendor/assets/javascripts/dojo/cldr/nls/ar/currency.js.uncompressed.js +16 -0
  107. data/vendor/assets/javascripts/dojo/cldr/nls/ar/gregorian.js +8 -0
  108. data/vendor/assets/javascripts/dojo/cldr/nls/ar/gregorian.js.uncompressed.js +240 -0
  109. data/vendor/assets/javascripts/dojo/cldr/nls/ar/hebrew.js +8 -0
  110. data/vendor/assets/javascripts/dojo/cldr/nls/ar/hebrew.js.uncompressed.js +124 -0
  111. data/vendor/assets/javascripts/dojo/cldr/nls/ar/islamic.js +8 -0
  112. data/vendor/assets/javascripts/dojo/cldr/nls/ar/islamic.js.uncompressed.js +156 -0
  113. data/vendor/assets/javascripts/dojo/cldr/nls/ar/number.js +8 -0
  114. data/vendor/assets/javascripts/dojo/cldr/nls/ar/number.js.uncompressed.js +18 -0
  115. data/vendor/assets/javascripts/dojo/cldr/nls/buddhist.js +8 -0
  116. data/vendor/assets/javascripts/dojo/cldr/nls/buddhist.js.uncompressed.js +267 -0
  117. data/vendor/assets/javascripts/dojo/cldr/nls/ca/currency.js +8 -0
  118. data/vendor/assets/javascripts/dojo/cldr/nls/ca/currency.js.uncompressed.js +15 -0
  119. data/vendor/assets/javascripts/dojo/cldr/nls/ca/gregorian.js +8 -0
  120. data/vendor/assets/javascripts/dojo/cldr/nls/ca/gregorian.js.uncompressed.js +235 -0
  121. data/vendor/assets/javascripts/dojo/cldr/nls/ca/number.js +8 -0
  122. data/vendor/assets/javascripts/dojo/cldr/nls/ca/number.js.uncompressed.js +22 -0
  123. data/vendor/assets/javascripts/dojo/cldr/nls/cs/currency.js +8 -0
  124. data/vendor/assets/javascripts/dojo/cldr/nls/cs/currency.js.uncompressed.js +15 -0
  125. data/vendor/assets/javascripts/dojo/cldr/nls/cs/gregorian.js +8 -0
  126. data/vendor/assets/javascripts/dojo/cldr/nls/cs/gregorian.js.uncompressed.js +215 -0
  127. data/vendor/assets/javascripts/dojo/cldr/nls/cs/number.js +8 -0
  128. data/vendor/assets/javascripts/dojo/cldr/nls/cs/number.js.uncompressed.js +22 -0
  129. data/vendor/assets/javascripts/dojo/cldr/nls/currency.js +8 -0
  130. data/vendor/assets/javascripts/dojo/cldr/nls/currency.js.uncompressed.js +48 -0
  131. data/vendor/assets/javascripts/dojo/cldr/nls/da/buddhist.js +8 -0
  132. data/vendor/assets/javascripts/dojo/cldr/nls/da/buddhist.js.uncompressed.js +141 -0
  133. data/vendor/assets/javascripts/dojo/cldr/nls/da/currency.js +8 -0
  134. data/vendor/assets/javascripts/dojo/cldr/nls/da/currency.js.uncompressed.js +16 -0
  135. data/vendor/assets/javascripts/dojo/cldr/nls/da/gregorian.js +8 -0
  136. data/vendor/assets/javascripts/dojo/cldr/nls/da/gregorian.js.uncompressed.js +237 -0
  137. data/vendor/assets/javascripts/dojo/cldr/nls/da/islamic.js +8 -0
  138. data/vendor/assets/javascripts/dojo/cldr/nls/da/islamic.js.uncompressed.js +87 -0
  139. data/vendor/assets/javascripts/dojo/cldr/nls/da/number.js +8 -0
  140. data/vendor/assets/javascripts/dojo/cldr/nls/da/number.js.uncompressed.js +22 -0
  141. data/vendor/assets/javascripts/dojo/cldr/nls/de/buddhist.js +8 -0
  142. data/vendor/assets/javascripts/dojo/cldr/nls/de/buddhist.js.uncompressed.js +130 -0
  143. data/vendor/assets/javascripts/dojo/cldr/nls/de/currency.js +8 -0
  144. data/vendor/assets/javascripts/dojo/cldr/nls/de/currency.js.uncompressed.js +17 -0
  145. data/vendor/assets/javascripts/dojo/cldr/nls/de/gregorian.js +8 -0
  146. data/vendor/assets/javascripts/dojo/cldr/nls/de/gregorian.js.uncompressed.js +237 -0
  147. data/vendor/assets/javascripts/dojo/cldr/nls/de/islamic.js +8 -0
  148. data/vendor/assets/javascripts/dojo/cldr/nls/de/islamic.js.uncompressed.js +172 -0
  149. data/vendor/assets/javascripts/dojo/cldr/nls/de/number.js +8 -0
  150. data/vendor/assets/javascripts/dojo/cldr/nls/de/number.js.uncompressed.js +22 -0
  151. data/vendor/assets/javascripts/dojo/cldr/nls/el/buddhist.js +8 -0
  152. data/vendor/assets/javascripts/dojo/cldr/nls/el/buddhist.js.uncompressed.js +120 -0
  153. data/vendor/assets/javascripts/dojo/cldr/nls/el/currency.js +8 -0
  154. data/vendor/assets/javascripts/dojo/cldr/nls/el/currency.js.uncompressed.js +15 -0
  155. data/vendor/assets/javascripts/dojo/cldr/nls/el/gregorian.js +8 -0
  156. data/vendor/assets/javascripts/dojo/cldr/nls/el/gregorian.js.uncompressed.js +241 -0
  157. data/vendor/assets/javascripts/dojo/cldr/nls/el/hebrew.js +8 -0
  158. data/vendor/assets/javascripts/dojo/cldr/nls/el/hebrew.js.uncompressed.js +73 -0
  159. data/vendor/assets/javascripts/dojo/cldr/nls/el/number.js +8 -0
  160. data/vendor/assets/javascripts/dojo/cldr/nls/el/number.js.uncompressed.js +20 -0
  161. data/vendor/assets/javascripts/dojo/cldr/nls/en-au/currency.js +8 -0
  162. data/vendor/assets/javascripts/dojo/cldr/nls/en-au/currency.js.uncompressed.js +8 -0
  163. data/vendor/assets/javascripts/dojo/cldr/nls/en-au/gregorian.js +8 -0
  164. data/vendor/assets/javascripts/dojo/cldr/nls/en-au/gregorian.js.uncompressed.js +17 -0
  165. data/vendor/assets/javascripts/dojo/cldr/nls/en-au/number.js +8 -0
  166. data/vendor/assets/javascripts/dojo/cldr/nls/en-au/number.js.uncompressed.js +7 -0
  167. data/vendor/assets/javascripts/dojo/cldr/nls/en-ca/currency.js +8 -0
  168. data/vendor/assets/javascripts/dojo/cldr/nls/en-ca/currency.js.uncompressed.js +8 -0
  169. data/vendor/assets/javascripts/dojo/cldr/nls/en-ca/gregorian.js +8 -0
  170. data/vendor/assets/javascripts/dojo/cldr/nls/en-ca/gregorian.js.uncompressed.js +20 -0
  171. data/vendor/assets/javascripts/dojo/cldr/nls/en-gb/buddhist.js +8 -0
  172. data/vendor/assets/javascripts/dojo/cldr/nls/en-gb/buddhist.js.uncompressed.js +101 -0
  173. data/vendor/assets/javascripts/dojo/cldr/nls/en-gb/gregorian.js +8 -0
  174. data/vendor/assets/javascripts/dojo/cldr/nls/en-gb/gregorian.js.uncompressed.js +23 -0
  175. data/vendor/assets/javascripts/dojo/cldr/nls/en-gb/islamic.js +8 -0
  176. data/vendor/assets/javascripts/dojo/cldr/nls/en-gb/islamic.js.uncompressed.js +153 -0
  177. data/vendor/assets/javascripts/dojo/cldr/nls/en-gb/number.js +8 -0
  178. data/vendor/assets/javascripts/dojo/cldr/nls/en-gb/number.js.uncompressed.js +7 -0
  179. data/vendor/assets/javascripts/dojo/cldr/nls/en/buddhist.js +8 -0
  180. data/vendor/assets/javascripts/dojo/cldr/nls/en/buddhist.js.uncompressed.js +109 -0
  181. data/vendor/assets/javascripts/dojo/cldr/nls/en/currency.js +8 -0
  182. data/vendor/assets/javascripts/dojo/cldr/nls/en/currency.js.uncompressed.js +17 -0
  183. data/vendor/assets/javascripts/dojo/cldr/nls/en/gregorian.js +8 -0
  184. data/vendor/assets/javascripts/dojo/cldr/nls/en/gregorian.js.uncompressed.js +229 -0
  185. data/vendor/assets/javascripts/dojo/cldr/nls/en/islamic.js +8 -0
  186. data/vendor/assets/javascripts/dojo/cldr/nls/en/islamic.js.uncompressed.js +166 -0
  187. data/vendor/assets/javascripts/dojo/cldr/nls/en/number.js +8 -0
  188. data/vendor/assets/javascripts/dojo/cldr/nls/en/number.js.uncompressed.js +23 -0
  189. data/vendor/assets/javascripts/dojo/cldr/nls/es/buddhist.js +8 -0
  190. data/vendor/assets/javascripts/dojo/cldr/nls/es/buddhist.js.uncompressed.js +125 -0
  191. data/vendor/assets/javascripts/dojo/cldr/nls/es/currency.js +8 -0
  192. data/vendor/assets/javascripts/dojo/cldr/nls/es/currency.js.uncompressed.js +15 -0
  193. data/vendor/assets/javascripts/dojo/cldr/nls/es/gregorian.js +8 -0
  194. data/vendor/assets/javascripts/dojo/cldr/nls/es/gregorian.js.uncompressed.js +238 -0
  195. data/vendor/assets/javascripts/dojo/cldr/nls/es/islamic.js +8 -0
  196. data/vendor/assets/javascripts/dojo/cldr/nls/es/islamic.js.uncompressed.js +179 -0
  197. data/vendor/assets/javascripts/dojo/cldr/nls/es/number.js +8 -0
  198. data/vendor/assets/javascripts/dojo/cldr/nls/es/number.js.uncompressed.js +21 -0
  199. data/vendor/assets/javascripts/dojo/cldr/nls/fi/buddhist.js +8 -0
  200. data/vendor/assets/javascripts/dojo/cldr/nls/fi/buddhist.js.uncompressed.js +166 -0
  201. data/vendor/assets/javascripts/dojo/cldr/nls/fi/currency.js +8 -0
  202. data/vendor/assets/javascripts/dojo/cldr/nls/fi/currency.js.uncompressed.js +22 -0
  203. data/vendor/assets/javascripts/dojo/cldr/nls/fi/gregorian.js +8 -0
  204. data/vendor/assets/javascripts/dojo/cldr/nls/fi/gregorian.js.uncompressed.js +239 -0
  205. data/vendor/assets/javascripts/dojo/cldr/nls/fi/hebrew.js +8 -0
  206. data/vendor/assets/javascripts/dojo/cldr/nls/fi/hebrew.js.uncompressed.js +176 -0
  207. data/vendor/assets/javascripts/dojo/cldr/nls/fi/islamic.js +8 -0
  208. data/vendor/assets/javascripts/dojo/cldr/nls/fi/islamic.js.uncompressed.js +155 -0
  209. data/vendor/assets/javascripts/dojo/cldr/nls/fi/number.js +8 -0
  210. data/vendor/assets/javascripts/dojo/cldr/nls/fi/number.js.uncompressed.js +22 -0
  211. data/vendor/assets/javascripts/dojo/cldr/nls/fr-ch/gregorian.js +8 -0
  212. data/vendor/assets/javascripts/dojo/cldr/nls/fr-ch/gregorian.js.uncompressed.js +9 -0
  213. data/vendor/assets/javascripts/dojo/cldr/nls/fr-ch/number.js +8 -0
  214. data/vendor/assets/javascripts/dojo/cldr/nls/fr-ch/number.js.uncompressed.js +9 -0
  215. data/vendor/assets/javascripts/dojo/cldr/nls/fr/currency.js +8 -0
  216. data/vendor/assets/javascripts/dojo/cldr/nls/fr/currency.js.uncompressed.js +23 -0
  217. data/vendor/assets/javascripts/dojo/cldr/nls/fr/gregorian.js +8 -0
  218. data/vendor/assets/javascripts/dojo/cldr/nls/fr/gregorian.js.uncompressed.js +247 -0
  219. data/vendor/assets/javascripts/dojo/cldr/nls/fr/number.js +8 -0
  220. data/vendor/assets/javascripts/dojo/cldr/nls/fr/number.js.uncompressed.js +22 -0
  221. data/vendor/assets/javascripts/dojo/cldr/nls/gregorian.js +8 -0
  222. data/vendor/assets/javascripts/dojo/cldr/nls/gregorian.js.uncompressed.js +294 -0
  223. data/vendor/assets/javascripts/dojo/cldr/nls/he/currency.js +8 -0
  224. data/vendor/assets/javascripts/dojo/cldr/nls/he/currency.js.uncompressed.js +15 -0
  225. data/vendor/assets/javascripts/dojo/cldr/nls/he/gregorian.js +8 -0
  226. data/vendor/assets/javascripts/dojo/cldr/nls/he/gregorian.js.uncompressed.js +213 -0
  227. data/vendor/assets/javascripts/dojo/cldr/nls/he/hebrew.js +8 -0
  228. data/vendor/assets/javascripts/dojo/cldr/nls/he/hebrew.js.uncompressed.js +125 -0
  229. data/vendor/assets/javascripts/dojo/cldr/nls/he/islamic.js +8 -0
  230. data/vendor/assets/javascripts/dojo/cldr/nls/he/islamic.js.uncompressed.js +119 -0
  231. data/vendor/assets/javascripts/dojo/cldr/nls/he/number.js +8 -0
  232. data/vendor/assets/javascripts/dojo/cldr/nls/he/number.js.uncompressed.js +22 -0
  233. data/vendor/assets/javascripts/dojo/cldr/nls/hebrew.js +8 -0
  234. data/vendor/assets/javascripts/dojo/cldr/nls/hebrew.js.uncompressed.js +265 -0
  235. data/vendor/assets/javascripts/dojo/cldr/nls/hu/currency.js +8 -0
  236. data/vendor/assets/javascripts/dojo/cldr/nls/hu/currency.js.uncompressed.js +17 -0
  237. data/vendor/assets/javascripts/dojo/cldr/nls/hu/gregorian.js +8 -0
  238. data/vendor/assets/javascripts/dojo/cldr/nls/hu/gregorian.js.uncompressed.js +227 -0
  239. data/vendor/assets/javascripts/dojo/cldr/nls/hu/number.js +8 -0
  240. data/vendor/assets/javascripts/dojo/cldr/nls/hu/number.js.uncompressed.js +21 -0
  241. data/vendor/assets/javascripts/dojo/cldr/nls/islamic.js +8 -0
  242. data/vendor/assets/javascripts/dojo/cldr/nls/islamic.js.uncompressed.js +264 -0
  243. data/vendor/assets/javascripts/dojo/cldr/nls/it/currency.js +8 -0
  244. data/vendor/assets/javascripts/dojo/cldr/nls/it/currency.js.uncompressed.js +15 -0
  245. data/vendor/assets/javascripts/dojo/cldr/nls/it/gregorian.js +8 -0
  246. data/vendor/assets/javascripts/dojo/cldr/nls/it/gregorian.js.uncompressed.js +235 -0
  247. data/vendor/assets/javascripts/dojo/cldr/nls/it/number.js +8 -0
  248. data/vendor/assets/javascripts/dojo/cldr/nls/it/number.js.uncompressed.js +12 -0
  249. data/vendor/assets/javascripts/dojo/cldr/nls/ja/currency.js +8 -0
  250. data/vendor/assets/javascripts/dojo/cldr/nls/ja/currency.js.uncompressed.js +18 -0
  251. data/vendor/assets/javascripts/dojo/cldr/nls/ja/gregorian.js +8 -0
  252. data/vendor/assets/javascripts/dojo/cldr/nls/ja/gregorian.js.uncompressed.js +222 -0
  253. data/vendor/assets/javascripts/dojo/cldr/nls/ja/number.js +8 -0
  254. data/vendor/assets/javascripts/dojo/cldr/nls/ja/number.js.uncompressed.js +12 -0
  255. data/vendor/assets/javascripts/dojo/cldr/nls/ko/currency.js +8 -0
  256. data/vendor/assets/javascripts/dojo/cldr/nls/ko/currency.js.uncompressed.js +15 -0
  257. data/vendor/assets/javascripts/dojo/cldr/nls/ko/gregorian.js +8 -0
  258. data/vendor/assets/javascripts/dojo/cldr/nls/ko/gregorian.js.uncompressed.js +243 -0
  259. data/vendor/assets/javascripts/dojo/cldr/nls/ko/number.js +8 -0
  260. data/vendor/assets/javascripts/dojo/cldr/nls/ko/number.js.uncompressed.js +22 -0
  261. data/vendor/assets/javascripts/dojo/cldr/nls/nb/currency.js +8 -0
  262. data/vendor/assets/javascripts/dojo/cldr/nls/nb/currency.js.uncompressed.js +23 -0
  263. data/vendor/assets/javascripts/dojo/cldr/nls/nb/gregorian.js +8 -0
  264. data/vendor/assets/javascripts/dojo/cldr/nls/nb/gregorian.js.uncompressed.js +234 -0
  265. data/vendor/assets/javascripts/dojo/cldr/nls/nb/number.js +8 -0
  266. data/vendor/assets/javascripts/dojo/cldr/nls/nb/number.js.uncompressed.js +22 -0
  267. data/vendor/assets/javascripts/dojo/cldr/nls/nl/currency.js +8 -0
  268. data/vendor/assets/javascripts/dojo/cldr/nls/nl/currency.js.uncompressed.js +15 -0
  269. data/vendor/assets/javascripts/dojo/cldr/nls/nl/gregorian.js +8 -0
  270. data/vendor/assets/javascripts/dojo/cldr/nls/nl/gregorian.js.uncompressed.js +233 -0
  271. data/vendor/assets/javascripts/dojo/cldr/nls/nl/number.js +8 -0
  272. data/vendor/assets/javascripts/dojo/cldr/nls/nl/number.js.uncompressed.js +22 -0
  273. data/vendor/assets/javascripts/dojo/cldr/nls/number.js +8 -0
  274. data/vendor/assets/javascripts/dojo/cldr/nls/number.js.uncompressed.js +64 -0
  275. data/vendor/assets/javascripts/dojo/cldr/nls/pl/currency.js +8 -0
  276. data/vendor/assets/javascripts/dojo/cldr/nls/pl/currency.js.uncompressed.js +15 -0
  277. data/vendor/assets/javascripts/dojo/cldr/nls/pl/gregorian.js +8 -0
  278. data/vendor/assets/javascripts/dojo/cldr/nls/pl/gregorian.js.uncompressed.js +242 -0
  279. data/vendor/assets/javascripts/dojo/cldr/nls/pl/number.js +8 -0
  280. data/vendor/assets/javascripts/dojo/cldr/nls/pl/number.js.uncompressed.js +22 -0
  281. data/vendor/assets/javascripts/dojo/cldr/nls/pt-pt/gregorian.js +8 -0
  282. data/vendor/assets/javascripts/dojo/cldr/nls/pt-pt/gregorian.js.uncompressed.js +141 -0
  283. data/vendor/assets/javascripts/dojo/cldr/nls/pt-pt/number.js +8 -0
  284. data/vendor/assets/javascripts/dojo/cldr/nls/pt-pt/number.js.uncompressed.js +8 -0
  285. data/vendor/assets/javascripts/dojo/cldr/nls/pt/currency.js +8 -0
  286. data/vendor/assets/javascripts/dojo/cldr/nls/pt/currency.js.uncompressed.js +15 -0
  287. data/vendor/assets/javascripts/dojo/cldr/nls/pt/gregorian.js +8 -0
  288. data/vendor/assets/javascripts/dojo/cldr/nls/pt/gregorian.js.uncompressed.js +237 -0
  289. data/vendor/assets/javascripts/dojo/cldr/nls/pt/number.js +8 -0
  290. data/vendor/assets/javascripts/dojo/cldr/nls/pt/number.js.uncompressed.js +22 -0
  291. data/vendor/assets/javascripts/dojo/cldr/nls/ro/buddhist.js +8 -0
  292. data/vendor/assets/javascripts/dojo/cldr/nls/ro/buddhist.js.uncompressed.js +121 -0
  293. data/vendor/assets/javascripts/dojo/cldr/nls/ro/currency.js +8 -0
  294. data/vendor/assets/javascripts/dojo/cldr/nls/ro/currency.js.uncompressed.js +15 -0
  295. data/vendor/assets/javascripts/dojo/cldr/nls/ro/gregorian.js +8 -0
  296. data/vendor/assets/javascripts/dojo/cldr/nls/ro/gregorian.js.uncompressed.js +251 -0
  297. data/vendor/assets/javascripts/dojo/cldr/nls/ro/number.js +8 -0
  298. data/vendor/assets/javascripts/dojo/cldr/nls/ro/number.js.uncompressed.js +22 -0
  299. data/vendor/assets/javascripts/dojo/cldr/nls/ru/currency.js +8 -0
  300. data/vendor/assets/javascripts/dojo/cldr/nls/ru/currency.js.uncompressed.js +16 -0
  301. data/vendor/assets/javascripts/dojo/cldr/nls/ru/gregorian.js +8 -0
  302. data/vendor/assets/javascripts/dojo/cldr/nls/ru/gregorian.js.uncompressed.js +232 -0
  303. data/vendor/assets/javascripts/dojo/cldr/nls/ru/number.js +8 -0
  304. data/vendor/assets/javascripts/dojo/cldr/nls/ru/number.js.uncompressed.js +21 -0
  305. data/vendor/assets/javascripts/dojo/cldr/nls/sk/currency.js +8 -0
  306. data/vendor/assets/javascripts/dojo/cldr/nls/sk/currency.js.uncompressed.js +15 -0
  307. data/vendor/assets/javascripts/dojo/cldr/nls/sk/gregorian.js +8 -0
  308. data/vendor/assets/javascripts/dojo/cldr/nls/sk/gregorian.js.uncompressed.js +225 -0
  309. data/vendor/assets/javascripts/dojo/cldr/nls/sk/number.js +8 -0
  310. data/vendor/assets/javascripts/dojo/cldr/nls/sk/number.js.uncompressed.js +9 -0
  311. data/vendor/assets/javascripts/dojo/cldr/nls/sl/currency.js +8 -0
  312. data/vendor/assets/javascripts/dojo/cldr/nls/sl/currency.js.uncompressed.js +17 -0
  313. data/vendor/assets/javascripts/dojo/cldr/nls/sl/gregorian.js +8 -0
  314. data/vendor/assets/javascripts/dojo/cldr/nls/sl/gregorian.js.uncompressed.js +218 -0
  315. data/vendor/assets/javascripts/dojo/cldr/nls/sl/number.js +8 -0
  316. data/vendor/assets/javascripts/dojo/cldr/nls/sl/number.js.uncompressed.js +22 -0
  317. data/vendor/assets/javascripts/dojo/cldr/nls/sv/currency.js +8 -0
  318. data/vendor/assets/javascripts/dojo/cldr/nls/sv/currency.js.uncompressed.js +18 -0
  319. data/vendor/assets/javascripts/dojo/cldr/nls/sv/gregorian.js +8 -0
  320. data/vendor/assets/javascripts/dojo/cldr/nls/sv/gregorian.js.uncompressed.js +245 -0
  321. data/vendor/assets/javascripts/dojo/cldr/nls/sv/number.js +8 -0
  322. data/vendor/assets/javascripts/dojo/cldr/nls/sv/number.js.uncompressed.js +22 -0
  323. data/vendor/assets/javascripts/dojo/cldr/nls/th/buddhist.js +8 -0
  324. data/vendor/assets/javascripts/dojo/cldr/nls/th/buddhist.js.uncompressed.js +118 -0
  325. data/vendor/assets/javascripts/dojo/cldr/nls/th/currency.js +8 -0
  326. data/vendor/assets/javascripts/dojo/cldr/nls/th/currency.js.uncompressed.js +16 -0
  327. data/vendor/assets/javascripts/dojo/cldr/nls/th/gregorian.js +8 -0
  328. data/vendor/assets/javascripts/dojo/cldr/nls/th/gregorian.js.uncompressed.js +232 -0
  329. data/vendor/assets/javascripts/dojo/cldr/nls/th/number.js +8 -0
  330. data/vendor/assets/javascripts/dojo/cldr/nls/th/number.js.uncompressed.js +22 -0
  331. data/vendor/assets/javascripts/dojo/cldr/nls/tr/currency.js +8 -0
  332. data/vendor/assets/javascripts/dojo/cldr/nls/tr/currency.js.uncompressed.js +17 -0
  333. data/vendor/assets/javascripts/dojo/cldr/nls/tr/gregorian.js +8 -0
  334. data/vendor/assets/javascripts/dojo/cldr/nls/tr/gregorian.js.uncompressed.js +239 -0
  335. data/vendor/assets/javascripts/dojo/cldr/nls/tr/number.js +8 -0
  336. data/vendor/assets/javascripts/dojo/cldr/nls/tr/number.js.uncompressed.js +22 -0
  337. data/vendor/assets/javascripts/dojo/cldr/nls/zh-hant/buddhist.js +8 -0
  338. data/vendor/assets/javascripts/dojo/cldr/nls/zh-hant/buddhist.js.uncompressed.js +146 -0
  339. data/vendor/assets/javascripts/dojo/cldr/nls/zh-hant/currency.js +8 -0
  340. data/vendor/assets/javascripts/dojo/cldr/nls/zh-hant/currency.js.uncompressed.js +16 -0
  341. data/vendor/assets/javascripts/dojo/cldr/nls/zh-hant/gregorian.js +8 -0
  342. data/vendor/assets/javascripts/dojo/cldr/nls/zh-hant/gregorian.js.uncompressed.js +228 -0
  343. data/vendor/assets/javascripts/dojo/cldr/nls/zh-hant/islamic.js +8 -0
  344. data/vendor/assets/javascripts/dojo/cldr/nls/zh-hant/islamic.js.uncompressed.js +87 -0
  345. data/vendor/assets/javascripts/dojo/cldr/nls/zh-hant/number.js +8 -0
  346. data/vendor/assets/javascripts/dojo/cldr/nls/zh-hant/number.js.uncompressed.js +7 -0
  347. data/vendor/assets/javascripts/dojo/cldr/nls/zh-hk/currency.js +8 -0
  348. data/vendor/assets/javascripts/dojo/cldr/nls/zh-hk/currency.js.uncompressed.js +15 -0
  349. data/vendor/assets/javascripts/dojo/cldr/nls/zh-hk/gregorian.js +8 -0
  350. data/vendor/assets/javascripts/dojo/cldr/nls/zh-hk/gregorian.js.uncompressed.js +85 -0
  351. data/vendor/assets/javascripts/dojo/cldr/nls/zh-hk/number.js +8 -0
  352. data/vendor/assets/javascripts/dojo/cldr/nls/zh-hk/number.js.uncompressed.js +7 -0
  353. data/vendor/assets/javascripts/dojo/cldr/nls/zh-tw/currency.js +8 -0
  354. data/vendor/assets/javascripts/dojo/cldr/nls/zh-tw/currency.js.uncompressed.js +14 -0
  355. data/vendor/assets/javascripts/dojo/cldr/nls/zh-tw/gregorian.js +8 -0
  356. data/vendor/assets/javascripts/dojo/cldr/nls/zh-tw/gregorian.js.uncompressed.js +80 -0
  357. data/vendor/assets/javascripts/dojo/cldr/nls/zh/currency.js +8 -0
  358. data/vendor/assets/javascripts/dojo/cldr/nls/zh/currency.js.uncompressed.js +16 -0
  359. data/vendor/assets/javascripts/dojo/cldr/nls/zh/gregorian.js +8 -0
  360. data/vendor/assets/javascripts/dojo/cldr/nls/zh/gregorian.js.uncompressed.js +247 -0
  361. data/vendor/assets/javascripts/dojo/cldr/nls/zh/number.js +8 -0
  362. data/vendor/assets/javascripts/dojo/cldr/nls/zh/number.js.uncompressed.js +12 -0
  363. data/vendor/assets/javascripts/dojo/cldr/supplemental.js +44 -0
  364. data/vendor/assets/javascripts/dojo/cldr/supplemental.js.uncompressed.js +77 -0
  365. data/vendor/assets/javascripts/dojo/colors.js +74 -0
  366. data/vendor/assets/javascripts/dojo/colors.js.uncompressed.js +232 -0
  367. data/vendor/assets/javascripts/dojo/cookie.js +49 -0
  368. data/vendor/assets/javascripts/dojo/cookie.js.uncompressed.js +98 -0
  369. data/vendor/assets/javascripts/dojo/currency.js +32 -0
  370. data/vendor/assets/javascripts/dojo/currency.js.uncompressed.js +132 -0
  371. data/vendor/assets/javascripts/dojo/data/ItemFileReadStore.js +561 -0
  372. data/vendor/assets/javascripts/dojo/data/ItemFileReadStore.js.uncompressed.js +945 -0
  373. data/vendor/assets/javascripts/dojo/data/ItemFileWriteStore.js +499 -0
  374. data/vendor/assets/javascripts/dojo/data/ItemFileWriteStore.js.uncompressed.js +805 -0
  375. data/vendor/assets/javascripts/dojo/data/ObjectStore.js +285 -0
  376. data/vendor/assets/javascripts/dojo/data/ObjectStore.js.uncompressed.js +505 -0
  377. data/vendor/assets/javascripts/dojo/data/api/Identity.js +21 -0
  378. data/vendor/assets/javascripts/dojo/data/api/Identity.js.uncompressed.js +107 -0
  379. data/vendor/assets/javascripts/dojo/data/api/Notification.js +19 -0
  380. data/vendor/assets/javascripts/dojo/data/api/Notification.js.uncompressed.js +122 -0
  381. data/vendor/assets/javascripts/dojo/data/api/Read.js +39 -0
  382. data/vendor/assets/javascripts/dojo/data/api/Read.js.uncompressed.js +485 -0
  383. data/vendor/assets/javascripts/dojo/data/api/Request.js +13 -0
  384. data/vendor/assets/javascripts/dojo/data/api/Request.js.uncompressed.js +36 -0
  385. data/vendor/assets/javascripts/dojo/data/api/Write.js +29 -0
  386. data/vendor/assets/javascripts/dojo/data/api/Write.js.uncompressed.js +221 -0
  387. data/vendor/assets/javascripts/dojo/data/util/filter.js +52 -0
  388. data/vendor/assets/javascripts/dojo/data/util/filter.js.uncompressed.js +74 -0
  389. data/vendor/assets/javascripts/dojo/data/util/simpleFetch.js +63 -0
  390. data/vendor/assets/javascripts/dojo/data/util/simpleFetch.js.uncompressed.js +95 -0
  391. data/vendor/assets/javascripts/dojo/data/util/sorter.js +66 -0
  392. data/vendor/assets/javascripts/dojo/data/util/sorter.js.uncompressed.js +99 -0
  393. data/vendor/assets/javascripts/dojo/date.js +213 -0
  394. data/vendor/assets/javascripts/dojo/date.js.uncompressed.js +347 -0
  395. data/vendor/assets/javascripts/dojo/date/locale.js +452 -0
  396. data/vendor/assets/javascripts/dojo/date/locale.js.uncompressed.js +670 -0
  397. data/vendor/assets/javascripts/dojo/date/stamp.js +82 -0
  398. data/vendor/assets/javascripts/dojo/date/stamp.js.uncompressed.js +146 -0
  399. data/vendor/assets/javascripts/dojo/dnd/AutoSource.js +12 -0
  400. data/vendor/assets/javascripts/dojo/dnd/AutoSource.js.uncompressed.js +13 -0
  401. data/vendor/assets/javascripts/dojo/dnd/Avatar.js +62 -0
  402. data/vendor/assets/javascripts/dojo/dnd/Avatar.js.uncompressed.js +111 -0
  403. data/vendor/assets/javascripts/dojo/dnd/Container.js +231 -0
  404. data/vendor/assets/javascripts/dojo/dnd/Container.js.uncompressed.js +432 -0
  405. data/vendor/assets/javascripts/dojo/dnd/Manager.js +122 -0
  406. data/vendor/assets/javascripts/dojo/dnd/Manager.js.uncompressed.js +213 -0
  407. data/vendor/assets/javascripts/dojo/dnd/Moveable.js +75 -0
  408. data/vendor/assets/javascripts/dojo/dnd/Moveable.js.uncompressed.js +173 -0
  409. data/vendor/assets/javascripts/dojo/dnd/Mover.js +62 -0
  410. data/vendor/assets/javascripts/dojo/dnd/Mover.js.uncompressed.js +119 -0
  411. data/vendor/assets/javascripts/dojo/dnd/Selector.js +233 -0
  412. data/vendor/assets/javascripts/dojo/dnd/Selector.js.uncompressed.js +324 -0
  413. data/vendor/assets/javascripts/dojo/dnd/Source.js +284 -0
  414. data/vendor/assets/javascripts/dojo/dnd/Source.js.uncompressed.js +513 -0
  415. data/vendor/assets/javascripts/dojo/dnd/Target.js +13 -0
  416. data/vendor/assets/javascripts/dojo/dnd/Target.js.uncompressed.js +13 -0
  417. data/vendor/assets/javascripts/dojo/dnd/TimedMoveable.js +34 -0
  418. data/vendor/assets/javascripts/dojo/dnd/TimedMoveable.js.uncompressed.js +69 -0
  419. data/vendor/assets/javascripts/dojo/dnd/autoscroll.js +96 -0
  420. data/vendor/assets/javascripts/dojo/dnd/autoscroll.js.uncompressed.js +118 -0
  421. data/vendor/assets/javascripts/dojo/dnd/common.js +28 -0
  422. data/vendor/assets/javascripts/dojo/dnd/common.js.uncompressed.js +35 -0
  423. data/vendor/assets/javascripts/dojo/dnd/move.js +66 -0
  424. data/vendor/assets/javascripts/dojo/dnd/move.js.uncompressed.js +143 -0
  425. data/vendor/assets/javascripts/dojo/dojo.js +1872 -0
  426. data/vendor/assets/javascripts/dojo/dojo.js.uncompressed.js +16408 -0
  427. data/vendor/assets/javascripts/dojo/dojo.profile.js +40 -0
  428. data/vendor/assets/javascripts/dojo/dom-attr.js +62 -0
  429. data/vendor/assets/javascripts/dojo/dom-attr.js.uncompressed.js +238 -0
  430. data/vendor/assets/javascripts/dojo/dom-class.js +89 -0
  431. data/vendor/assets/javascripts/dojo/dom-class.js.uncompressed.js +320 -0
  432. data/vendor/assets/javascripts/dojo/dom-construct.js +141 -0
  433. data/vendor/assets/javascripts/dojo/dom-construct.js.uncompressed.js +376 -0
  434. data/vendor/assets/javascripts/dojo/dom-form.js +81 -0
  435. data/vendor/assets/javascripts/dojo/dom-form.js.uncompressed.js +166 -0
  436. data/vendor/assets/javascripts/dojo/dom-geometry.js +214 -0
  437. data/vendor/assets/javascripts/dojo/dom-geometry.js.uncompressed.js +751 -0
  438. data/vendor/assets/javascripts/dojo/dom-prop.js +69 -0
  439. data/vendor/assets/javascripts/dojo/dom-prop.js.uncompressed.js +190 -0
  440. data/vendor/assets/javascripts/dojo/dom-style.js +158 -0
  441. data/vendor/assets/javascripts/dojo/dom-style.js.uncompressed.js +321 -0
  442. data/vendor/assets/javascripts/dojo/dom.js +74 -0
  443. data/vendor/assets/javascripts/dojo/dom.js.uncompressed.js +156 -0
  444. data/vendor/assets/javascripts/dojo/domReady.js +95 -0
  445. data/vendor/assets/javascripts/dojo/domReady.js.uncompressed.js +95 -0
  446. data/vendor/assets/javascripts/dojo/fx.js +260 -0
  447. data/vendor/assets/javascripts/dojo/fx.js.uncompressed.js +426 -0
  448. data/vendor/assets/javascripts/dojo/fx/Toggler.js +28 -0
  449. data/vendor/assets/javascripts/dojo/fx/Toggler.js.uncompressed.js +103 -0
  450. data/vendor/assets/javascripts/dojo/fx/easing.js +166 -0
  451. data/vendor/assets/javascripts/dojo/fx/easing.js.uncompressed.js +284 -0
  452. data/vendor/assets/javascripts/dojo/gears.js +44 -0
  453. data/vendor/assets/javascripts/dojo/gears.js.uncompressed.js +61 -0
  454. data/vendor/assets/javascripts/dojo/has.js +66 -0
  455. data/vendor/assets/javascripts/dojo/has.js.uncompressed.js +178 -0
  456. data/vendor/assets/javascripts/dojo/hash.js +137 -0
  457. data/vendor/assets/javascripts/dojo/hash.js.uncompressed.js +243 -0
  458. data/vendor/assets/javascripts/dojo/html.js +148 -0
  459. data/vendor/assets/javascripts/dojo/html.js.uncompressed.js +342 -0
  460. data/vendor/assets/javascripts/dojo/i18n.js +211 -0
  461. data/vendor/assets/javascripts/dojo/i18n.js.uncompressed.js +514 -0
  462. data/vendor/assets/javascripts/dojo/io-query.js +53 -0
  463. data/vendor/assets/javascripts/dojo/io-query.js.uncompressed.js +98 -0
  464. data/vendor/assets/javascripts/dojo/io/iframe.js +230 -0
  465. data/vendor/assets/javascripts/dojo/io/iframe.js.uncompressed.js +376 -0
  466. data/vendor/assets/javascripts/dojo/io/script.js +114 -0
  467. data/vendor/assets/javascripts/dojo/io/script.js.uncompressed.js +256 -0
  468. data/vendor/assets/javascripts/dojo/jaxer.js +18 -0
  469. data/vendor/assets/javascripts/dojo/jaxer.js.uncompressed.js +19 -0
  470. data/vendor/assets/javascripts/dojo/json.js +102 -0
  471. data/vendor/assets/javascripts/dojo/json.js.uncompressed.js +149 -0
  472. data/vendor/assets/javascripts/dojo/keys.js +10 -0
  473. data/vendor/assets/javascripts/dojo/keys.js.uncompressed.js +80 -0
  474. data/vendor/assets/javascripts/dojo/loadInit.js +12 -0
  475. data/vendor/assets/javascripts/dojo/loadInit.js.uncompressed.js +7 -0
  476. data/vendor/assets/javascripts/dojo/main.js +29 -0
  477. data/vendor/assets/javascripts/dojo/main.js.uncompressed.js +50 -0
  478. data/vendor/assets/javascripts/dojo/mouse.js +48 -0
  479. data/vendor/assets/javascripts/dojo/mouse.js.uncompressed.js +127 -0
  480. data/vendor/assets/javascripts/dojo/nls/ar/colors.js +8 -0
  481. data/vendor/assets/javascripts/dojo/nls/ar/colors.js.uncompressed.js +156 -0
  482. data/vendor/assets/javascripts/dojo/nls/az/colors.js +8 -0
  483. data/vendor/assets/javascripts/dojo/nls/az/colors.js.uncompressed.js +153 -0
  484. data/vendor/assets/javascripts/dojo/nls/ca/colors.js +8 -0
  485. data/vendor/assets/javascripts/dojo/nls/ca/colors.js.uncompressed.js +156 -0
  486. data/vendor/assets/javascripts/dojo/nls/colors.js +8 -0
  487. data/vendor/assets/javascripts/dojo/nls/colors.js.uncompressed.js +191 -0
  488. data/vendor/assets/javascripts/dojo/nls/cs/colors.js +8 -0
  489. data/vendor/assets/javascripts/dojo/nls/cs/colors.js.uncompressed.js +156 -0
  490. data/vendor/assets/javascripts/dojo/nls/da/colors.js +8 -0
  491. data/vendor/assets/javascripts/dojo/nls/da/colors.js.uncompressed.js +156 -0
  492. data/vendor/assets/javascripts/dojo/nls/de/colors.js +8 -0
  493. data/vendor/assets/javascripts/dojo/nls/de/colors.js.uncompressed.js +156 -0
  494. data/vendor/assets/javascripts/dojo/nls/el/colors.js +8 -0
  495. data/vendor/assets/javascripts/dojo/nls/el/colors.js.uncompressed.js +156 -0
  496. data/vendor/assets/javascripts/dojo/nls/es/colors.js +8 -0
  497. data/vendor/assets/javascripts/dojo/nls/es/colors.js.uncompressed.js +156 -0
  498. data/vendor/assets/javascripts/dojo/nls/fi/colors.js +8 -0
  499. data/vendor/assets/javascripts/dojo/nls/fi/colors.js.uncompressed.js +156 -0
  500. data/vendor/assets/javascripts/dojo/nls/fr/colors.js +8 -0
  501. data/vendor/assets/javascripts/dojo/nls/fr/colors.js.uncompressed.js +156 -0
  502. data/vendor/assets/javascripts/dojo/nls/he/colors.js +8 -0
  503. data/vendor/assets/javascripts/dojo/nls/he/colors.js.uncompressed.js +158 -0
  504. data/vendor/assets/javascripts/dojo/nls/hr/colors.js +8 -0
  505. data/vendor/assets/javascripts/dojo/nls/hr/colors.js.uncompressed.js +156 -0
  506. data/vendor/assets/javascripts/dojo/nls/hu/colors.js +8 -0
  507. data/vendor/assets/javascripts/dojo/nls/hu/colors.js.uncompressed.js +156 -0
  508. data/vendor/assets/javascripts/dojo/nls/it/colors.js +8 -0
  509. data/vendor/assets/javascripts/dojo/nls/it/colors.js.uncompressed.js +156 -0
  510. data/vendor/assets/javascripts/dojo/nls/ja/colors.js +8 -0
  511. data/vendor/assets/javascripts/dojo/nls/ja/colors.js.uncompressed.js +156 -0
  512. data/vendor/assets/javascripts/dojo/nls/kk/colors.js +8 -0
  513. data/vendor/assets/javascripts/dojo/nls/kk/colors.js.uncompressed.js +156 -0
  514. data/vendor/assets/javascripts/dojo/nls/ko/colors.js +8 -0
  515. data/vendor/assets/javascripts/dojo/nls/ko/colors.js.uncompressed.js +156 -0
  516. data/vendor/assets/javascripts/dojo/nls/nb/colors.js +8 -0
  517. data/vendor/assets/javascripts/dojo/nls/nb/colors.js.uncompressed.js +156 -0
  518. data/vendor/assets/javascripts/dojo/nls/nl/colors.js +8 -0
  519. data/vendor/assets/javascripts/dojo/nls/nl/colors.js.uncompressed.js +156 -0
  520. data/vendor/assets/javascripts/dojo/nls/pl/colors.js +8 -0
  521. data/vendor/assets/javascripts/dojo/nls/pl/colors.js.uncompressed.js +156 -0
  522. data/vendor/assets/javascripts/dojo/nls/pt-pt/colors.js +8 -0
  523. data/vendor/assets/javascripts/dojo/nls/pt-pt/colors.js.uncompressed.js +156 -0
  524. data/vendor/assets/javascripts/dojo/nls/pt/colors.js +8 -0
  525. data/vendor/assets/javascripts/dojo/nls/pt/colors.js.uncompressed.js +156 -0
  526. data/vendor/assets/javascripts/dojo/nls/ro/colors.js +8 -0
  527. data/vendor/assets/javascripts/dojo/nls/ro/colors.js.uncompressed.js +156 -0
  528. data/vendor/assets/javascripts/dojo/nls/ru/colors.js +8 -0
  529. data/vendor/assets/javascripts/dojo/nls/ru/colors.js.uncompressed.js +156 -0
  530. data/vendor/assets/javascripts/dojo/nls/sk/colors.js +8 -0
  531. data/vendor/assets/javascripts/dojo/nls/sk/colors.js.uncompressed.js +156 -0
  532. data/vendor/assets/javascripts/dojo/nls/sl/colors.js +8 -0
  533. data/vendor/assets/javascripts/dojo/nls/sl/colors.js.uncompressed.js +156 -0
  534. data/vendor/assets/javascripts/dojo/nls/sv/colors.js +8 -0
  535. data/vendor/assets/javascripts/dojo/nls/sv/colors.js.uncompressed.js +156 -0
  536. data/vendor/assets/javascripts/dojo/nls/th/colors.js +8 -0
  537. data/vendor/assets/javascripts/dojo/nls/th/colors.js.uncompressed.js +156 -0
  538. data/vendor/assets/javascripts/dojo/nls/tr/colors.js +8 -0
  539. data/vendor/assets/javascripts/dojo/nls/tr/colors.js.uncompressed.js +156 -0
  540. data/vendor/assets/javascripts/dojo/nls/zh-tw/colors.js +8 -0
  541. data/vendor/assets/javascripts/dojo/nls/zh-tw/colors.js.uncompressed.js +156 -0
  542. data/vendor/assets/javascripts/dojo/nls/zh/colors.js +8 -0
  543. data/vendor/assets/javascripts/dojo/nls/zh/colors.js.uncompressed.js +156 -0
  544. data/vendor/assets/javascripts/dojo/number.js +305 -0
  545. data/vendor/assets/javascripts/dojo/number.js.uncompressed.js +576 -0
  546. data/vendor/assets/javascripts/dojo/on.js +311 -0
  547. data/vendor/assets/javascripts/dojo/on.js.uncompressed.js +474 -0
  548. data/vendor/assets/javascripts/dojo/package.json +23 -0
  549. data/vendor/assets/javascripts/dojo/parser.js +299 -0
  550. data/vendor/assets/javascripts/dojo/parser.js.uncompressed.js +594 -0
  551. data/vendor/assets/javascripts/dojo/query.js +195 -0
  552. data/vendor/assets/javascripts/dojo/query.js.uncompressed.js +713 -0
  553. data/vendor/assets/javascripts/dojo/ready.js +82 -0
  554. data/vendor/assets/javascripts/dojo/ready.js.uncompressed.js +138 -0
  555. data/vendor/assets/javascripts/dojo/regexp.js +32 -0
  556. data/vendor/assets/javascripts/dojo/regexp.js.uncompressed.js +73 -0
  557. data/vendor/assets/javascripts/dojo/require.js +12 -0
  558. data/vendor/assets/javascripts/dojo/require.js.uncompressed.js +7 -0
  559. data/vendor/assets/javascripts/dojo/resources/LICENSE +30 -0
  560. data/vendor/assets/javascripts/dojo/resources/_modules.js +36 -0
  561. data/vendor/assets/javascripts/dojo/resources/blank.gif +0 -0
  562. data/vendor/assets/javascripts/dojo/resources/blank.html +1 -0
  563. data/vendor/assets/javascripts/dojo/resources/dnd.css +14 -0
  564. data/vendor/assets/javascripts/dojo/resources/dojo.css +98 -0
  565. data/vendor/assets/javascripts/dojo/resources/iframe_history.html +44 -0
  566. data/vendor/assets/javascripts/dojo/resources/images/dndCopy.png +0 -0
  567. data/vendor/assets/javascripts/dojo/resources/images/dndMove.png +0 -0
  568. data/vendor/assets/javascripts/dojo/resources/images/dndNoCopy.png +0 -0
  569. data/vendor/assets/javascripts/dojo/resources/images/dndNoMove.png +0 -0
  570. data/vendor/assets/javascripts/dojo/rpc/JsonService.js +34 -0
  571. data/vendor/assets/javascripts/dojo/rpc/JsonService.js.uncompressed.js +85 -0
  572. data/vendor/assets/javascripts/dojo/rpc/JsonpService.js +29 -0
  573. data/vendor/assets/javascripts/dojo/rpc/JsonpService.js.uncompressed.js +67 -0
  574. data/vendor/assets/javascripts/dojo/rpc/RpcService.js +87 -0
  575. data/vendor/assets/javascripts/dojo/rpc/RpcService.js.uncompressed.js +175 -0
  576. data/vendor/assets/javascripts/dojo/selector/_loader.js +40 -0
  577. data/vendor/assets/javascripts/dojo/selector/_loader.js.uncompressed.js +45 -0
  578. data/vendor/assets/javascripts/dojo/selector/acme.js +765 -0
  579. data/vendor/assets/javascripts/dojo/selector/acme.js.uncompressed.js +1480 -0
  580. data/vendor/assets/javascripts/dojo/selector/lite.js +213 -0
  581. data/vendor/assets/javascripts/dojo/selector/lite.js.uncompressed.js +264 -0
  582. data/vendor/assets/javascripts/dojo/store/Cache.js +47 -0
  583. data/vendor/assets/javascripts/dojo/store/Cache.js.uncompressed.js +148 -0
  584. data/vendor/assets/javascripts/dojo/store/DataStore.js +103 -0
  585. data/vendor/assets/javascripts/dojo/store/DataStore.js.uncompressed.js +170 -0
  586. data/vendor/assets/javascripts/dojo/store/JsonRest.js +56 -0
  587. data/vendor/assets/javascripts/dojo/store/JsonRest.js.uncompressed.js +155 -0
  588. data/vendor/assets/javascripts/dojo/store/Memory.js +55 -0
  589. data/vendor/assets/javascripts/dojo/store/Memory.js.uncompressed.js +161 -0
  590. data/vendor/assets/javascripts/dojo/store/Observable.js +125 -0
  591. data/vendor/assets/javascripts/dojo/store/Observable.js.uncompressed.js +175 -0
  592. data/vendor/assets/javascripts/dojo/store/README +10 -0
  593. data/vendor/assets/javascripts/dojo/store/api/Store.js +52 -0
  594. data/vendor/assets/javascripts/dojo/store/api/Store.js.uncompressed.js +297 -0
  595. data/vendor/assets/javascripts/dojo/store/util/QueryResults.js +39 -0
  596. data/vendor/assets/javascripts/dojo/store/util/QueryResults.js.uncompressed.js +64 -0
  597. data/vendor/assets/javascripts/dojo/store/util/SimpleQueryEngine.js +63 -0
  598. data/vendor/assets/javascripts/dojo/store/util/SimpleQueryEngine.js.uncompressed.js +108 -0
  599. data/vendor/assets/javascripts/dojo/string.js +57 -0
  600. data/vendor/assets/javascripts/dojo/string.js.uncompressed.js +162 -0
  601. data/vendor/assets/javascripts/dojo/text.js +99 -0
  602. data/vendor/assets/javascripts/dojo/text.js.uncompressed.js +212 -0
  603. data/vendor/assets/javascripts/dojo/topic.js +15 -0
  604. data/vendor/assets/javascripts/dojo/topic.js.uncompressed.js +33 -0
  605. data/vendor/assets/javascripts/dojo/touch.js +17 -0
  606. data/vendor/assets/javascripts/dojo/touch.js.uncompressed.js +89 -0
  607. data/vendor/assets/javascripts/dojo/uacss.js +25 -0
  608. data/vendor/assets/javascripts/dojo/uacss.js.uncompressed.js +66 -0
  609. data/vendor/assets/javascripts/dojo/window.js +119 -0
  610. data/vendor/assets/javascripts/dojo/window.js.uncompressed.js +169 -0
  611. metadata +613 -3
@@ -0,0 +1,805 @@
1
+ define("dojo/data/ItemFileWriteStore", ["../_base/lang", "../_base/declare", "../_base/array", "../_base/json", "../_base/window",
2
+ "./ItemFileReadStore", "../date/stamp"
3
+ ], function(lang, declare, arrayUtil, jsonUtil, window, ItemFileReadStore, dateStamp) {
4
+ // module:
5
+ // dojo/data/ItemFileWriteStore
6
+ // summary:
7
+ // TODOC
8
+
9
+ /*===== var ItemFileReadStore = dojo.data.ItemFileReadStore; =====*/
10
+ return declare("dojo.data.ItemFileWriteStore", ItemFileReadStore, {
11
+ constructor: function(/* object */ keywordParameters){
12
+ // keywordParameters: {typeMap: object)
13
+ // The structure of the typeMap object is as follows:
14
+ // {
15
+ // type0: function || object,
16
+ // type1: function || object,
17
+ // ...
18
+ // typeN: function || object
19
+ // }
20
+ // Where if it is a function, it is assumed to be an object constructor that takes the
21
+ // value of _value as the initialization parameters. It is serialized assuming object.toString()
22
+ // serialization. If it is an object, then it is assumed
23
+ // to be an object of general form:
24
+ // {
25
+ // type: function, //constructor.
26
+ // deserialize: function(value) //The function that parses the value and constructs the object defined by type appropriately.
27
+ // serialize: function(object) //The function that converts the object back into the proper file format form.
28
+ // }
29
+
30
+ // ItemFileWriteStore extends ItemFileReadStore to implement these additional dojo.data APIs
31
+ this._features['dojo.data.api.Write'] = true;
32
+ this._features['dojo.data.api.Notification'] = true;
33
+
34
+ // For keeping track of changes so that we can implement isDirty and revert
35
+ this._pending = {
36
+ _newItems:{},
37
+ _modifiedItems:{},
38
+ _deletedItems:{}
39
+ };
40
+
41
+ if(!this._datatypeMap['Date'].serialize){
42
+ this._datatypeMap['Date'].serialize = function(obj){
43
+ return dateStamp.toISOString(obj, {zulu:true});
44
+ };
45
+ }
46
+ //Disable only if explicitly set to false.
47
+ if(keywordParameters && (keywordParameters.referenceIntegrity === false)){
48
+ this.referenceIntegrity = false;
49
+ }
50
+
51
+ // this._saveInProgress is set to true, briefly, from when save() is first called to when it completes
52
+ this._saveInProgress = false;
53
+ },
54
+
55
+ referenceIntegrity: true, //Flag that defaultly enabled reference integrity tracking. This way it can also be disabled pogrammatially or declaratively.
56
+
57
+ _assert: function(/* boolean */ condition){
58
+ if(!condition){
59
+ throw new Error("assertion failed in ItemFileWriteStore");
60
+ }
61
+ },
62
+
63
+ _getIdentifierAttribute: function(){
64
+ // this._assert((identifierAttribute === Number) || (dojo.isString(identifierAttribute)));
65
+ return this.getFeatures()['dojo.data.api.Identity'];
66
+ },
67
+
68
+
69
+ /* dojo.data.api.Write */
70
+
71
+ newItem: function(/* Object? */ keywordArgs, /* Object? */ parentInfo){
72
+ // summary: See dojo.data.api.Write.newItem()
73
+
74
+ this._assert(!this._saveInProgress);
75
+
76
+ if(!this._loadFinished){
77
+ // We need to do this here so that we'll be able to find out what
78
+ // identifierAttribute was specified in the data file.
79
+ this._forceLoad();
80
+ }
81
+
82
+ if(typeof keywordArgs != "object" && typeof keywordArgs != "undefined"){
83
+ throw new Error("newItem() was passed something other than an object");
84
+ }
85
+ var newIdentity = null;
86
+ var identifierAttribute = this._getIdentifierAttribute();
87
+ if(identifierAttribute === Number){
88
+ newIdentity = this._arrayOfAllItems.length;
89
+ }else{
90
+ newIdentity = keywordArgs[identifierAttribute];
91
+ if(typeof newIdentity === "undefined"){
92
+ throw new Error("newItem() was not passed an identity for the new item");
93
+ }
94
+ if(lang.isArray(newIdentity)){
95
+ throw new Error("newItem() was not passed an single-valued identity");
96
+ }
97
+ }
98
+
99
+ // make sure this identity is not already in use by another item, if identifiers were
100
+ // defined in the file. Otherwise it would be the item count,
101
+ // which should always be unique in this case.
102
+ if(this._itemsByIdentity){
103
+ this._assert(typeof this._itemsByIdentity[newIdentity] === "undefined");
104
+ }
105
+ this._assert(typeof this._pending._newItems[newIdentity] === "undefined");
106
+ this._assert(typeof this._pending._deletedItems[newIdentity] === "undefined");
107
+
108
+ var newItem = {};
109
+ newItem[this._storeRefPropName] = this;
110
+ newItem[this._itemNumPropName] = this._arrayOfAllItems.length;
111
+ if(this._itemsByIdentity){
112
+ this._itemsByIdentity[newIdentity] = newItem;
113
+ //We have to set the identifier now, otherwise we can't look it
114
+ //up at calls to setValueorValues in parentInfo handling.
115
+ newItem[identifierAttribute] = [newIdentity];
116
+ }
117
+ this._arrayOfAllItems.push(newItem);
118
+
119
+ //We need to construct some data for the onNew call too...
120
+ var pInfo = null;
121
+
122
+ // Now we need to check to see where we want to assign this thingm if any.
123
+ if(parentInfo && parentInfo.parent && parentInfo.attribute){
124
+ pInfo = {
125
+ item: parentInfo.parent,
126
+ attribute: parentInfo.attribute,
127
+ oldValue: undefined
128
+ };
129
+
130
+ //See if it is multi-valued or not and handle appropriately
131
+ //Generally, all attributes are multi-valued for this store
132
+ //So, we only need to append if there are already values present.
133
+ var values = this.getValues(parentInfo.parent, parentInfo.attribute);
134
+ if(values && values.length > 0){
135
+ var tempValues = values.slice(0, values.length);
136
+ if(values.length === 1){
137
+ pInfo.oldValue = values[0];
138
+ }else{
139
+ pInfo.oldValue = values.slice(0, values.length);
140
+ }
141
+ tempValues.push(newItem);
142
+ this._setValueOrValues(parentInfo.parent, parentInfo.attribute, tempValues, false);
143
+ pInfo.newValue = this.getValues(parentInfo.parent, parentInfo.attribute);
144
+ }else{
145
+ this._setValueOrValues(parentInfo.parent, parentInfo.attribute, newItem, false);
146
+ pInfo.newValue = newItem;
147
+ }
148
+ }else{
149
+ //Toplevel item, add to both top list as well as all list.
150
+ newItem[this._rootItemPropName]=true;
151
+ this._arrayOfTopLevelItems.push(newItem);
152
+ }
153
+
154
+ this._pending._newItems[newIdentity] = newItem;
155
+
156
+ //Clone over the properties to the new item
157
+ for(var key in keywordArgs){
158
+ if(key === this._storeRefPropName || key === this._itemNumPropName){
159
+ // Bummer, the user is trying to do something like
160
+ // newItem({_S:"foo"}). Unfortunately, our superclass,
161
+ // ItemFileReadStore, is already using _S in each of our items
162
+ // to hold private info. To avoid a naming collision, we
163
+ // need to move all our private info to some other property
164
+ // of all the items/objects. So, we need to iterate over all
165
+ // the items and do something like:
166
+ // item.__S = item._S;
167
+ // item._S = undefined;
168
+ // But first we have to make sure the new "__S" variable is
169
+ // not in use, which means we have to iterate over all the
170
+ // items checking for that.
171
+ throw new Error("encountered bug in ItemFileWriteStore.newItem");
172
+ }
173
+ var value = keywordArgs[key];
174
+ if(!lang.isArray(value)){
175
+ value = [value];
176
+ }
177
+ newItem[key] = value;
178
+ if(this.referenceIntegrity){
179
+ for(var i = 0; i < value.length; i++){
180
+ var val = value[i];
181
+ if(this.isItem(val)){
182
+ this._addReferenceToMap(val, newItem, key);
183
+ }
184
+ }
185
+ }
186
+ }
187
+ this.onNew(newItem, pInfo); // dojo.data.api.Notification call
188
+ return newItem; // item
189
+ },
190
+
191
+ _removeArrayElement: function(/* Array */ array, /* anything */ element){
192
+ var index = arrayUtil.indexOf(array, element);
193
+ if(index != -1){
194
+ array.splice(index, 1);
195
+ return true;
196
+ }
197
+ return false;
198
+ },
199
+
200
+ deleteItem: function(/* item */ item){
201
+ // summary: See dojo.data.api.Write.deleteItem()
202
+ this._assert(!this._saveInProgress);
203
+ this._assertIsItem(item);
204
+
205
+ // Remove this item from the _arrayOfAllItems, but leave a null value in place
206
+ // of the item, so as not to change the length of the array, so that in newItem()
207
+ // we can still safely do: newIdentity = this._arrayOfAllItems.length;
208
+ var indexInArrayOfAllItems = item[this._itemNumPropName];
209
+ var identity = this.getIdentity(item);
210
+
211
+ //If we have reference integrity on, we need to do reference cleanup for the deleted item
212
+ if(this.referenceIntegrity){
213
+ //First scan all the attributes of this items for references and clean them up in the map
214
+ //As this item is going away, no need to track its references anymore.
215
+
216
+ //Get the attributes list before we generate the backup so it
217
+ //doesn't pollute the attributes list.
218
+ var attributes = this.getAttributes(item);
219
+
220
+ //Backup the map, we'll have to restore it potentially, in a revert.
221
+ if(item[this._reverseRefMap]){
222
+ item["backup_" + this._reverseRefMap] = lang.clone(item[this._reverseRefMap]);
223
+ }
224
+
225
+ //TODO: This causes a reversion problem. This list won't be restored on revert since it is
226
+ //attached to the 'value'. item, not ours. Need to back tese up somehow too.
227
+ //Maybe build a map of the backup of the entries and attach it to the deleted item to be restored
228
+ //later. Or just record them and call _addReferenceToMap on them in revert.
229
+ arrayUtil.forEach(attributes, function(attribute){
230
+ arrayUtil.forEach(this.getValues(item, attribute), function(value){
231
+ if(this.isItem(value)){
232
+ //We have to back up all the references we had to others so they can be restored on a revert.
233
+ if(!item["backupRefs_" + this._reverseRefMap]){
234
+ item["backupRefs_" + this._reverseRefMap] = [];
235
+ }
236
+ item["backupRefs_" + this._reverseRefMap].push({id: this.getIdentity(value), attr: attribute});
237
+ this._removeReferenceFromMap(value, item, attribute);
238
+ }
239
+ }, this);
240
+ }, this);
241
+
242
+ //Next, see if we have references to this item, if we do, we have to clean them up too.
243
+ var references = item[this._reverseRefMap];
244
+ if(references){
245
+ //Look through all the items noted as references to clean them up.
246
+ for(var itemId in references){
247
+ var containingItem = null;
248
+ if(this._itemsByIdentity){
249
+ containingItem = this._itemsByIdentity[itemId];
250
+ }else{
251
+ containingItem = this._arrayOfAllItems[itemId];
252
+ }
253
+ //We have a reference to a containing item, now we have to process the
254
+ //attributes and clear all references to the item being deleted.
255
+ if(containingItem){
256
+ for(var attribute in references[itemId]){
257
+ var oldValues = this.getValues(containingItem, attribute) || [];
258
+ var newValues = arrayUtil.filter(oldValues, function(possibleItem){
259
+ return !(this.isItem(possibleItem) && this.getIdentity(possibleItem) == identity);
260
+ }, this);
261
+ //Remove the note of the reference to the item and set the values on the modified attribute.
262
+ this._removeReferenceFromMap(item, containingItem, attribute);
263
+ if(newValues.length < oldValues.length){
264
+ this._setValueOrValues(containingItem, attribute, newValues, true);
265
+ }
266
+ }
267
+ }
268
+ }
269
+ }
270
+ }
271
+
272
+ this._arrayOfAllItems[indexInArrayOfAllItems] = null;
273
+
274
+ item[this._storeRefPropName] = null;
275
+ if(this._itemsByIdentity){
276
+ delete this._itemsByIdentity[identity];
277
+ }
278
+ this._pending._deletedItems[identity] = item;
279
+
280
+ //Remove from the toplevel items, if necessary...
281
+ if(item[this._rootItemPropName]){
282
+ this._removeArrayElement(this._arrayOfTopLevelItems, item);
283
+ }
284
+ this.onDelete(item); // dojo.data.api.Notification call
285
+ return true;
286
+ },
287
+
288
+ setValue: function(/* item */ item, /* attribute-name-string */ attribute, /* almost anything */ value){
289
+ // summary: See dojo.data.api.Write.set()
290
+ return this._setValueOrValues(item, attribute, value, true); // boolean
291
+ },
292
+
293
+ setValues: function(/* item */ item, /* attribute-name-string */ attribute, /* array */ values){
294
+ // summary: See dojo.data.api.Write.setValues()
295
+ return this._setValueOrValues(item, attribute, values, true); // boolean
296
+ },
297
+
298
+ unsetAttribute: function(/* item */ item, /* attribute-name-string */ attribute){
299
+ // summary: See dojo.data.api.Write.unsetAttribute()
300
+ return this._setValueOrValues(item, attribute, [], true);
301
+ },
302
+
303
+ _setValueOrValues: function(/* item */ item, /* attribute-name-string */ attribute, /* anything */ newValueOrValues, /*boolean?*/ callOnSet){
304
+ this._assert(!this._saveInProgress);
305
+
306
+ // Check for valid arguments
307
+ this._assertIsItem(item);
308
+ this._assert(lang.isString(attribute));
309
+ this._assert(typeof newValueOrValues !== "undefined");
310
+
311
+ // Make sure the user isn't trying to change the item's identity
312
+ var identifierAttribute = this._getIdentifierAttribute();
313
+ if(attribute == identifierAttribute){
314
+ throw new Error("ItemFileWriteStore does not have support for changing the value of an item's identifier.");
315
+ }
316
+
317
+ // To implement the Notification API, we need to make a note of what
318
+ // the old attribute value was, so that we can pass that info when
319
+ // we call the onSet method.
320
+ var oldValueOrValues = this._getValueOrValues(item, attribute);
321
+
322
+ var identity = this.getIdentity(item);
323
+ if(!this._pending._modifiedItems[identity]){
324
+ // Before we actually change the item, we make a copy of it to
325
+ // record the original state, so that we'll be able to revert if
326
+ // the revert method gets called. If the item has already been
327
+ // modified then there's no need to do this now, since we already
328
+ // have a record of the original state.
329
+ var copyOfItemState = {};
330
+ for(var key in item){
331
+ if((key === this._storeRefPropName) || (key === this._itemNumPropName) || (key === this._rootItemPropName)){
332
+ copyOfItemState[key] = item[key];
333
+ }else if(key === this._reverseRefMap){
334
+ copyOfItemState[key] = lang.clone(item[key]);
335
+ }else{
336
+ copyOfItemState[key] = item[key].slice(0, item[key].length);
337
+ }
338
+ }
339
+ // Now mark the item as dirty, and save the copy of the original state
340
+ this._pending._modifiedItems[identity] = copyOfItemState;
341
+ }
342
+
343
+ // Okay, now we can actually change this attribute on the item
344
+ var success = false;
345
+
346
+ if(lang.isArray(newValueOrValues) && newValueOrValues.length === 0){
347
+
348
+ // If we were passed an empty array as the value, that counts
349
+ // as "unsetting" the attribute, so we need to remove this
350
+ // attribute from the item.
351
+ success = delete item[attribute];
352
+ newValueOrValues = undefined; // used in the onSet Notification call below
353
+
354
+ if(this.referenceIntegrity && oldValueOrValues){
355
+ var oldValues = oldValueOrValues;
356
+ if(!lang.isArray(oldValues)){
357
+ oldValues = [oldValues];
358
+ }
359
+ for(var i = 0; i < oldValues.length; i++){
360
+ var value = oldValues[i];
361
+ if(this.isItem(value)){
362
+ this._removeReferenceFromMap(value, item, attribute);
363
+ }
364
+ }
365
+ }
366
+ }else{
367
+ var newValueArray;
368
+ if(lang.isArray(newValueOrValues)){
369
+ // Unfortunately, it's not safe to just do this:
370
+ // newValueArray = newValueOrValues;
371
+ // Instead, we need to copy the array, which slice() does very nicely.
372
+ // This is so that our internal data structure won't
373
+ // get corrupted if the user mucks with the values array *after*
374
+ // calling setValues().
375
+ newValueArray = newValueOrValues.slice(0, newValueOrValues.length);
376
+ }else{
377
+ newValueArray = [newValueOrValues];
378
+ }
379
+
380
+ //We need to handle reference integrity if this is on.
381
+ //In the case of set, we need to see if references were added or removed
382
+ //and update the reference tracking map accordingly.
383
+ if(this.referenceIntegrity){
384
+ if(oldValueOrValues){
385
+ var oldValues = oldValueOrValues;
386
+ if(!lang.isArray(oldValues)){
387
+ oldValues = [oldValues];
388
+ }
389
+ //Use an associative map to determine what was added/removed from the list.
390
+ //Should be O(n) performant. First look at all the old values and make a list of them
391
+ //Then for any item not in the old list, we add it. If it was already present, we remove it.
392
+ //Then we pass over the map and any references left it it need to be removed (IE, no match in
393
+ //the new values list).
394
+ var map = {};
395
+ arrayUtil.forEach(oldValues, function(possibleItem){
396
+ if(this.isItem(possibleItem)){
397
+ var id = this.getIdentity(possibleItem);
398
+ map[id.toString()] = true;
399
+ }
400
+ }, this);
401
+ arrayUtil.forEach(newValueArray, function(possibleItem){
402
+ if(this.isItem(possibleItem)){
403
+ var id = this.getIdentity(possibleItem);
404
+ if(map[id.toString()]){
405
+ delete map[id.toString()];
406
+ }else{
407
+ this._addReferenceToMap(possibleItem, item, attribute);
408
+ }
409
+ }
410
+ }, this);
411
+ for(var rId in map){
412
+ var removedItem;
413
+ if(this._itemsByIdentity){
414
+ removedItem = this._itemsByIdentity[rId];
415
+ }else{
416
+ removedItem = this._arrayOfAllItems[rId];
417
+ }
418
+ this._removeReferenceFromMap(removedItem, item, attribute);
419
+ }
420
+ }else{
421
+ //Everything is new (no old values) so we have to just
422
+ //insert all the references, if any.
423
+ for(var i = 0; i < newValueArray.length; i++){
424
+ var value = newValueArray[i];
425
+ if(this.isItem(value)){
426
+ this._addReferenceToMap(value, item, attribute);
427
+ }
428
+ }
429
+ }
430
+ }
431
+ item[attribute] = newValueArray;
432
+ success = true;
433
+ }
434
+
435
+ // Now we make the dojo.data.api.Notification call
436
+ if(callOnSet){
437
+ this.onSet(item, attribute, oldValueOrValues, newValueOrValues);
438
+ }
439
+ return success; // boolean
440
+ },
441
+
442
+ _addReferenceToMap: function(/* item */ refItem, /* item */ parentItem, /* string */ attribute){
443
+ // summary:
444
+ // Method to add an reference map entry for an item and attribute.
445
+ // description:
446
+ // Method to add an reference map entry for an item and attribute. //
447
+ // refItem:
448
+ // The item that is referenced.
449
+ // parentItem:
450
+ // The item that holds the new reference to refItem.
451
+ // attribute:
452
+ // The attribute on parentItem that contains the new reference.
453
+
454
+ var parentId = this.getIdentity(parentItem);
455
+ var references = refItem[this._reverseRefMap];
456
+
457
+ if(!references){
458
+ references = refItem[this._reverseRefMap] = {};
459
+ }
460
+ var itemRef = references[parentId];
461
+ if(!itemRef){
462
+ itemRef = references[parentId] = {};
463
+ }
464
+ itemRef[attribute] = true;
465
+ },
466
+
467
+ _removeReferenceFromMap: function(/* item */ refItem, /* item */ parentItem, /* string */ attribute){
468
+ // summary:
469
+ // Method to remove an reference map entry for an item and attribute.
470
+ // description:
471
+ // Method to remove an reference map entry for an item and attribute. This will
472
+ // also perform cleanup on the map such that if there are no more references at all to
473
+ // the item, its reference object and entry are removed.
474
+ //
475
+ // refItem:
476
+ // The item that is referenced.
477
+ // parentItem:
478
+ // The item holding a reference to refItem.
479
+ // attribute:
480
+ // The attribute on parentItem that contains the reference.
481
+ var identity = this.getIdentity(parentItem);
482
+ var references = refItem[this._reverseRefMap];
483
+ var itemId;
484
+ if(references){
485
+ for(itemId in references){
486
+ if(itemId == identity){
487
+ delete references[itemId][attribute];
488
+ if(this._isEmpty(references[itemId])){
489
+ delete references[itemId];
490
+ }
491
+ }
492
+ }
493
+ if(this._isEmpty(references)){
494
+ delete refItem[this._reverseRefMap];
495
+ }
496
+ }
497
+ },
498
+
499
+ _dumpReferenceMap: function(){
500
+ // summary:
501
+ // Function to dump the reverse reference map of all items in the store for debug purposes.
502
+ // description:
503
+ // Function to dump the reverse reference map of all items in the store for debug purposes.
504
+ var i;
505
+ for(i = 0; i < this._arrayOfAllItems.length; i++){
506
+ var item = this._arrayOfAllItems[i];
507
+ if(item && item[this._reverseRefMap]){
508
+ console.log("Item: [" + this.getIdentity(item) + "] is referenced by: " + jsonUtil.toJson(item[this._reverseRefMap]));
509
+ }
510
+ }
511
+ },
512
+
513
+ _getValueOrValues: function(/* item */ item, /* attribute-name-string */ attribute){
514
+ var valueOrValues = undefined;
515
+ if(this.hasAttribute(item, attribute)){
516
+ var valueArray = this.getValues(item, attribute);
517
+ if(valueArray.length == 1){
518
+ valueOrValues = valueArray[0];
519
+ }else{
520
+ valueOrValues = valueArray;
521
+ }
522
+ }
523
+ return valueOrValues;
524
+ },
525
+
526
+ _flatten: function(/* anything */ value){
527
+ if(this.isItem(value)){
528
+ // Given an item, return an serializable object that provides a
529
+ // reference to the item.
530
+ // For example, given kermit:
531
+ // var kermit = store.newItem({id:2, name:"Kermit"});
532
+ // we want to return
533
+ // {_reference:2}
534
+ return {_reference: this.getIdentity(value)};
535
+ }else{
536
+ if(typeof value === "object"){
537
+ for(var type in this._datatypeMap){
538
+ var typeMap = this._datatypeMap[type];
539
+ if(lang.isObject(typeMap) && !lang.isFunction(typeMap)){
540
+ if(value instanceof typeMap.type){
541
+ if(!typeMap.serialize){
542
+ throw new Error("ItemFileWriteStore: No serializer defined for type mapping: [" + type + "]");
543
+ }
544
+ return {_type: type, _value: typeMap.serialize(value)};
545
+ }
546
+ } else if(value instanceof typeMap){
547
+ //SImple mapping, therefore, return as a toString serialization.
548
+ return {_type: type, _value: value.toString()};
549
+ }
550
+ }
551
+ }
552
+ return value;
553
+ }
554
+ },
555
+
556
+ _getNewFileContentString: function(){
557
+ // summary:
558
+ // Generate a string that can be saved to a file.
559
+ // The result should look similar to:
560
+ // http://trac.dojotoolkit.org/browser/dojo/trunk/tests/data/countries.json
561
+ var serializableStructure = {};
562
+
563
+ var identifierAttribute = this._getIdentifierAttribute();
564
+ if(identifierAttribute !== Number){
565
+ serializableStructure.identifier = identifierAttribute;
566
+ }
567
+ if(this._labelAttr){
568
+ serializableStructure.label = this._labelAttr;
569
+ }
570
+ serializableStructure.items = [];
571
+ for(var i = 0; i < this._arrayOfAllItems.length; ++i){
572
+ var item = this._arrayOfAllItems[i];
573
+ if(item !== null){
574
+ var serializableItem = {};
575
+ for(var key in item){
576
+ if(key !== this._storeRefPropName && key !== this._itemNumPropName && key !== this._reverseRefMap && key !== this._rootItemPropName){
577
+ var valueArray = this.getValues(item, key);
578
+ if(valueArray.length == 1){
579
+ serializableItem[key] = this._flatten(valueArray[0]);
580
+ }else{
581
+ var serializableArray = [];
582
+ for(var j = 0; j < valueArray.length; ++j){
583
+ serializableArray.push(this._flatten(valueArray[j]));
584
+ serializableItem[key] = serializableArray;
585
+ }
586
+ }
587
+ }
588
+ }
589
+ serializableStructure.items.push(serializableItem);
590
+ }
591
+ }
592
+ var prettyPrint = true;
593
+ return jsonUtil.toJson(serializableStructure, prettyPrint);
594
+ },
595
+
596
+ _isEmpty: function(something){
597
+ // summary:
598
+ // Function to determine if an array or object has no properties or values.
599
+ // something:
600
+ // The array or object to examine.
601
+ var empty = true;
602
+ if(lang.isObject(something)){
603
+ var i;
604
+ for(i in something){
605
+ empty = false;
606
+ break;
607
+ }
608
+ }else if(lang.isArray(something)){
609
+ if(something.length > 0){
610
+ empty = false;
611
+ }
612
+ }
613
+ return empty; //boolean
614
+ },
615
+
616
+ save: function(/* object */ keywordArgs){
617
+ // summary: See dojo.data.api.Write.save()
618
+ this._assert(!this._saveInProgress);
619
+
620
+ // this._saveInProgress is set to true, briefly, from when save is first called to when it completes
621
+ this._saveInProgress = true;
622
+
623
+ var self = this;
624
+ var saveCompleteCallback = function(){
625
+ self._pending = {
626
+ _newItems:{},
627
+ _modifiedItems:{},
628
+ _deletedItems:{}
629
+ };
630
+
631
+ self._saveInProgress = false; // must come after this._pending is cleared, but before any callbacks
632
+ if(keywordArgs && keywordArgs.onComplete){
633
+ var scope = keywordArgs.scope || window.global;
634
+ keywordArgs.onComplete.call(scope);
635
+ }
636
+ };
637
+ var saveFailedCallback = function(err){
638
+ self._saveInProgress = false;
639
+ if(keywordArgs && keywordArgs.onError){
640
+ var scope = keywordArgs.scope || window.global;
641
+ keywordArgs.onError.call(scope, err);
642
+ }
643
+ };
644
+
645
+ if(this._saveEverything){
646
+ var newFileContentString = this._getNewFileContentString();
647
+ this._saveEverything(saveCompleteCallback, saveFailedCallback, newFileContentString);
648
+ }
649
+ if(this._saveCustom){
650
+ this._saveCustom(saveCompleteCallback, saveFailedCallback);
651
+ }
652
+ if(!this._saveEverything && !this._saveCustom){
653
+ // Looks like there is no user-defined save-handler function.
654
+ // That's fine, it just means the datastore is acting as a "mock-write"
655
+ // store -- changes get saved in memory but don't get saved to disk.
656
+ saveCompleteCallback();
657
+ }
658
+ },
659
+
660
+ revert: function(){
661
+ // summary: See dojo.data.api.Write.revert()
662
+ this._assert(!this._saveInProgress);
663
+
664
+ var identity;
665
+ for(identity in this._pending._modifiedItems){
666
+ // find the original item and the modified item that replaced it
667
+ var copyOfItemState = this._pending._modifiedItems[identity];
668
+ var modifiedItem = null;
669
+ if(this._itemsByIdentity){
670
+ modifiedItem = this._itemsByIdentity[identity];
671
+ }else{
672
+ modifiedItem = this._arrayOfAllItems[identity];
673
+ }
674
+
675
+ // Restore the original item into a full-fledged item again, we want to try to
676
+ // keep the same object instance as if we don't it, causes bugs like #9022.
677
+ copyOfItemState[this._storeRefPropName] = this;
678
+ for(var key in modifiedItem){
679
+ delete modifiedItem[key];
680
+ }
681
+ lang.mixin(modifiedItem, copyOfItemState);
682
+ }
683
+ var deletedItem;
684
+ for(identity in this._pending._deletedItems){
685
+ deletedItem = this._pending._deletedItems[identity];
686
+ deletedItem[this._storeRefPropName] = this;
687
+ var index = deletedItem[this._itemNumPropName];
688
+
689
+ //Restore the reverse refererence map, if any.
690
+ if(deletedItem["backup_" + this._reverseRefMap]){
691
+ deletedItem[this._reverseRefMap] = deletedItem["backup_" + this._reverseRefMap];
692
+ delete deletedItem["backup_" + this._reverseRefMap];
693
+ }
694
+ this._arrayOfAllItems[index] = deletedItem;
695
+ if(this._itemsByIdentity){
696
+ this._itemsByIdentity[identity] = deletedItem;
697
+ }
698
+ if(deletedItem[this._rootItemPropName]){
699
+ this._arrayOfTopLevelItems.push(deletedItem);
700
+ }
701
+ }
702
+ //We have to pass through it again and restore the reference maps after all the
703
+ //undeletes have occurred.
704
+ for(identity in this._pending._deletedItems){
705
+ deletedItem = this._pending._deletedItems[identity];
706
+ if(deletedItem["backupRefs_" + this._reverseRefMap]){
707
+ arrayUtil.forEach(deletedItem["backupRefs_" + this._reverseRefMap], function(reference){
708
+ var refItem;
709
+ if(this._itemsByIdentity){
710
+ refItem = this._itemsByIdentity[reference.id];
711
+ }else{
712
+ refItem = this._arrayOfAllItems[reference.id];
713
+ }
714
+ this._addReferenceToMap(refItem, deletedItem, reference.attr);
715
+ }, this);
716
+ delete deletedItem["backupRefs_" + this._reverseRefMap];
717
+ }
718
+ }
719
+
720
+ for(identity in this._pending._newItems){
721
+ var newItem = this._pending._newItems[identity];
722
+ newItem[this._storeRefPropName] = null;
723
+ // null out the new item, but don't change the array index so
724
+ // so we can keep using _arrayOfAllItems.length.
725
+ this._arrayOfAllItems[newItem[this._itemNumPropName]] = null;
726
+ if(newItem[this._rootItemPropName]){
727
+ this._removeArrayElement(this._arrayOfTopLevelItems, newItem);
728
+ }
729
+ if(this._itemsByIdentity){
730
+ delete this._itemsByIdentity[identity];
731
+ }
732
+ }
733
+
734
+ this._pending = {
735
+ _newItems:{},
736
+ _modifiedItems:{},
737
+ _deletedItems:{}
738
+ };
739
+ return true; // boolean
740
+ },
741
+
742
+ isDirty: function(/* item? */ item){
743
+ // summary: See dojo.data.api.Write.isDirty()
744
+ if(item){
745
+ // return true if the item is dirty
746
+ var identity = this.getIdentity(item);
747
+ return new Boolean(this._pending._newItems[identity] ||
748
+ this._pending._modifiedItems[identity] ||
749
+ this._pending._deletedItems[identity]).valueOf(); // boolean
750
+ }else{
751
+ // return true if the store is dirty -- which means return true
752
+ // if there are any new items, dirty items, or modified items
753
+ return !this._isEmpty(this._pending._newItems) ||
754
+ !this._isEmpty(this._pending._modifiedItems) ||
755
+ !this._isEmpty(this._pending._deletedItems); // boolean
756
+ }
757
+ },
758
+
759
+ /* dojo.data.api.Notification */
760
+
761
+ onSet: function(/* item */ item,
762
+ /*attribute-name-string*/ attribute,
763
+ /*object|array*/ oldValue,
764
+ /*object|array*/ newValue){
765
+ // summary: See dojo.data.api.Notification.onSet()
766
+
767
+ // No need to do anything. This method is here just so that the
768
+ // client code can connect observers to it.
769
+ },
770
+
771
+ onNew: function(/* item */ newItem, /*object?*/ parentInfo){
772
+ // summary: See dojo.data.api.Notification.onNew()
773
+
774
+ // No need to do anything. This method is here just so that the
775
+ // client code can connect observers to it.
776
+ },
777
+
778
+ onDelete: function(/* item */ deletedItem){
779
+ // summary: See dojo.data.api.Notification.onDelete()
780
+
781
+ // No need to do anything. This method is here just so that the
782
+ // client code can connect observers to it.
783
+ },
784
+
785
+ close: function(/* object? */ request){
786
+ // summary:
787
+ // Over-ride of base close function of ItemFileReadStore to add in check for store state.
788
+ // description:
789
+ // Over-ride of base close function of ItemFileReadStore to add in check for store state.
790
+ // If the store is still dirty (unsaved changes), then an error will be thrown instead of
791
+ // clearing the internal state for reload from the url.
792
+
793
+ //Clear if not dirty ... or throw an error
794
+ if(this.clearOnClose){
795
+ if(!this.isDirty()){
796
+ this.inherited(arguments);
797
+ }else{
798
+ //Only throw an error if the store was dirty and we were loading from a url (cannot reload from url until state is saved).
799
+ throw new Error("dojo.data.ItemFileWriteStore: There are unsaved changes present in the store. Please save or revert the changes before invoking close.");
800
+ }
801
+ }
802
+ }
803
+ });
804
+
805
+ });