wagn 1.14.9 → 1.15.pre

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1060) hide show
  1. checksums.yaml +4 -4
  2. data/features/conflict.feature +4 -2
  3. data/features/follow.feature +21 -20
  4. data/features/notifications.feature +16 -17
  5. data/features/step_definitions/email_steps.rb +9 -5
  6. data/features/step_definitions/wagn_steps.rb +25 -9
  7. data/features/support/scopes.rb +4 -1
  8. data/features/support/wagn_env.rb +1 -1
  9. data/features/update_includers.feature +6 -6
  10. data/lib/decko/engine.rb +58 -0
  11. data/lib/wagn.rb +0 -17
  12. data/lib/wagn/all.rb +0 -13
  13. data/lib/wagn/application.rb +37 -75
  14. data/lib/wagn/commands.rb +44 -26
  15. data/lib/wagn/config/environments/development.rb +9 -3
  16. data/lib/wagn/config/environments/profile.rb +5 -2
  17. data/lib/wagn/config/initializers/session_store.rb +1 -1
  18. data/lib/wagn/exceptions.rb +1 -6
  19. data/lib/wagn/generators/wagn/templates/Gemfile +15 -12
  20. data/lib/wagn/generators/wagn/templates/config.ru +6 -0
  21. data/lib/wagn/generators/wagn/templates/config/application.rb +12 -11
  22. data/lib/wagn/generators/wagn/templates/config/cucumber.yml +1 -1
  23. data/lib/wagn/generators/wagn/templates/config/databases/mysql.yml +19 -11
  24. data/lib/wagn/generators/wagn/templates/config/routes.erb +10 -0
  25. data/lib/wagn/generators/wagn/templates/spec/javascripts/support/deck_jasmine.yml +1 -1
  26. data/lib/wagn/generators/wagn/templates/spec/javascripts/support/wagn_jasmine.yml +4 -4
  27. data/lib/wagn/generators/wagn/wagn_generator.rb +23 -22
  28. data/lib/wagn/mods_spec_helper.rb +8 -7
  29. data/lib/wagn/simplecov_helper.rb +5 -5
  30. data/lib/wagn/tasks/db.rake +2 -2
  31. data/lib/wagn/tasks/test.rake +4 -2
  32. data/lib/wagn/tasks/wagn.rake +117 -69
  33. data/rails/application-routes.rb +6 -0
  34. data/{public → rails}/assets/ace/ext-searchbox.js +0 -0
  35. data/{public → rails}/assets/ace/mode-coffee.js +0 -0
  36. data/{public → rails}/assets/ace/mode-css.js +0 -0
  37. data/{public → rails}/assets/ace/mode-html.js +0 -0
  38. data/{public → rails}/assets/ace/mode-javascript.js +0 -0
  39. data/{public → rails}/assets/ace/mode-json.js +0 -0
  40. data/{public → rails}/assets/ace/mode-scss.js +0 -0
  41. data/{public → rails}/assets/ace/theme-github.js +0 -0
  42. data/{public → rails}/assets/ace/theme-textmate.js +0 -0
  43. data/{public → rails}/assets/ace/worker-coffee.js +0 -0
  44. data/{public → rails}/assets/ace/worker-css.js +0 -0
  45. data/{public → rails}/assets/ace/worker-html.js +0 -0
  46. data/{public → rails}/assets/ace/worker-javascript.js +0 -0
  47. data/{public → rails}/assets/ace/worker-json.js +0 -0
  48. data/{public → rails}/assets/body-bg-660b752b44b87594071f3d0851ac5360.png +0 -0
  49. data/{public → rails}/assets/body-bg-d031f29b6ba7399a6862382c3552f44c.bmp +0 -0
  50. data/{public → rails}/assets/body-bg.bmp +0 -0
  51. data/{public → rails}/assets/body-bg.png +0 -0
  52. data/{public → rails}/assets/external_link-b15ab5051b4ec6f32892ed80019405b5.png +0 -0
  53. data/{public → rails}/assets/external_link.png +0 -0
  54. data/rails/assets/fonts/glyphicons-halflings-regular.eot +0 -0
  55. data/rails/assets/fonts/glyphicons-halflings-regular.svg +288 -0
  56. data/rails/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
  57. data/rails/assets/fonts/glyphicons-halflings-regular.woff +0 -0
  58. data/rails/assets/fonts/glyphicons-halflings-regular.woff2 +0 -0
  59. data/{public → rails}/assets/jasmine/404.html +0 -0
  60. data/{public → rails}/assets/jasmine/500.html +0 -0
  61. data/{public → rails}/assets/jasmine/card_form.html +0 -0
  62. data/{public → rails}/assets/jquery-mobile/ajax-loader-d2b731d3e844ea99b7e7cbf7867f11e9.gif +0 -0
  63. data/{public → rails}/assets/jquery-mobile/ajax-loader.gif +0 -0
  64. data/{public → rails}/assets/jquery-mobile/icons-png/action-black-cbdf206f5fcd70925baa44543a4daa00.png +0 -0
  65. data/{public → rails}/assets/jquery-mobile/icons-png/action-black.png +0 -0
  66. data/{public → rails}/assets/jquery-mobile/icons-png/action-white-d84f0b6801d648581a4e11929f5a2d32.png +0 -0
  67. data/{public → rails}/assets/jquery-mobile/icons-png/action-white.png +0 -0
  68. data/{public → rails}/assets/jquery-mobile/icons-png/alert-black-59ac7785761e066e1f2ea252de9b0e21.png +0 -0
  69. data/{public → rails}/assets/jquery-mobile/icons-png/alert-black.png +0 -0
  70. data/{public → rails}/assets/jquery-mobile/icons-png/alert-white-182c69a7ce9148899f4f190148424120.png +0 -0
  71. data/{public → rails}/assets/jquery-mobile/icons-png/alert-white.png +0 -0
  72. data/{public → rails}/assets/jquery-mobile/icons-png/arrow-d-black-21860d405538900f6b795516df64a9d4.png +0 -0
  73. data/{public → rails}/assets/jquery-mobile/icons-png/arrow-d-black.png +0 -0
  74. data/{public → rails}/assets/jquery-mobile/icons-png/arrow-d-l-black-165afd2c432e27080fec5396c3d80473.png +0 -0
  75. data/{public → rails}/assets/jquery-mobile/icons-png/arrow-d-l-black.png +0 -0
  76. data/{public → rails}/assets/jquery-mobile/icons-png/arrow-d-l-white-6805a8d98143bf7b7a6a4e247bf012ab.png +0 -0
  77. data/{public → rails}/assets/jquery-mobile/icons-png/arrow-d-l-white.png +0 -0
  78. data/{public → rails}/assets/jquery-mobile/icons-png/arrow-d-r-black-fa7122e338a54119ab23bccbc506cfd8.png +0 -0
  79. data/{public → rails}/assets/jquery-mobile/icons-png/arrow-d-r-black.png +0 -0
  80. data/{public → rails}/assets/jquery-mobile/icons-png/arrow-d-r-white-216684b9bdb31f38a531e117aa954f3a.png +0 -0
  81. data/{public → rails}/assets/jquery-mobile/icons-png/arrow-d-r-white.png +0 -0
  82. data/{public → rails}/assets/jquery-mobile/icons-png/arrow-d-white-9580e3163441b122078518da2434ca17.png +0 -0
  83. data/{public → rails}/assets/jquery-mobile/icons-png/arrow-d-white.png +0 -0
  84. data/{public → rails}/assets/jquery-mobile/icons-png/arrow-l-black-084aec255becaf2fb316bfefa279a947.png +0 -0
  85. data/{public → rails}/assets/jquery-mobile/icons-png/arrow-l-black.png +0 -0
  86. data/{public → rails}/assets/jquery-mobile/icons-png/arrow-l-white-539e8b951594754da95bd2aa435f454b.png +0 -0
  87. data/{public → rails}/assets/jquery-mobile/icons-png/arrow-l-white.png +0 -0
  88. data/{public → rails}/assets/jquery-mobile/icons-png/arrow-r-black-7eaef732d6e7ac1c9b4ca7a691882aa7.png +0 -0
  89. data/{public → rails}/assets/jquery-mobile/icons-png/arrow-r-black.png +0 -0
  90. data/{public → rails}/assets/jquery-mobile/icons-png/arrow-r-white-ccb86d75bba053287e324429888a1654.png +0 -0
  91. data/{public → rails}/assets/jquery-mobile/icons-png/arrow-r-white.png +0 -0
  92. data/{public → rails}/assets/jquery-mobile/icons-png/arrow-u-black-0a58aa2208f8e48713d73fb9578ee4f9.png +0 -0
  93. data/{public → rails}/assets/jquery-mobile/icons-png/arrow-u-black.png +0 -0
  94. data/{public → rails}/assets/jquery-mobile/icons-png/arrow-u-l-black-2ff102393d9aad184f9e416295acd33e.png +0 -0
  95. data/{public → rails}/assets/jquery-mobile/icons-png/arrow-u-l-black.png +0 -0
  96. data/{public → rails}/assets/jquery-mobile/icons-png/arrow-u-l-white-dbf5a3a640d401e8549a904119b8de7a.png +0 -0
  97. data/{public → rails}/assets/jquery-mobile/icons-png/arrow-u-l-white.png +0 -0
  98. data/{public → rails}/assets/jquery-mobile/icons-png/arrow-u-r-black-ec45c6f55a7c5d324b7798c668287023.png +0 -0
  99. data/{public → rails}/assets/jquery-mobile/icons-png/arrow-u-r-black.png +0 -0
  100. data/{public → rails}/assets/jquery-mobile/icons-png/arrow-u-r-white-f73692b173855dbb37cab8ede059c3fc.png +0 -0
  101. data/{public → rails}/assets/jquery-mobile/icons-png/arrow-u-r-white.png +0 -0
  102. data/{public → rails}/assets/jquery-mobile/icons-png/arrow-u-white-bd0f3e8031d8240f3aacf669ab80df78.png +0 -0
  103. data/{public → rails}/assets/jquery-mobile/icons-png/arrow-u-white.png +0 -0
  104. data/{public → rails}/assets/jquery-mobile/icons-png/audio-black-7a7cbfa21ae335c963973a7cd3b17ffe.png +0 -0
  105. data/{public → rails}/assets/jquery-mobile/icons-png/audio-black.png +0 -0
  106. data/{public → rails}/assets/jquery-mobile/icons-png/audio-white-093dc38ea1777aca99344c6d2ebfcc8f.png +0 -0
  107. data/{public → rails}/assets/jquery-mobile/icons-png/audio-white.png +0 -0
  108. data/{public → rails}/assets/jquery-mobile/icons-png/back-black-1bc687d2f194acdf79d2728fcdd2a50f.png +0 -0
  109. data/{public → rails}/assets/jquery-mobile/icons-png/back-black.png +0 -0
  110. data/{public → rails}/assets/jquery-mobile/icons-png/back-white-f4b428a3127c9ecb6e6021c17cd5b588.png +0 -0
  111. data/{public → rails}/assets/jquery-mobile/icons-png/back-white.png +0 -0
  112. data/{public → rails}/assets/jquery-mobile/icons-png/bars-black-fe901336c248a7bba95265784f27b709.png +0 -0
  113. data/{public → rails}/assets/jquery-mobile/icons-png/bars-black.png +0 -0
  114. data/{public → rails}/assets/jquery-mobile/icons-png/bars-white-c983e57c6abd28719a312521d1f3370b.png +0 -0
  115. data/{public → rails}/assets/jquery-mobile/icons-png/bars-white.png +0 -0
  116. data/{public → rails}/assets/jquery-mobile/icons-png/bullets-black-c1de1001de576e283b57da525054a4b2.png +0 -0
  117. data/{public → rails}/assets/jquery-mobile/icons-png/bullets-black.png +0 -0
  118. data/{public → rails}/assets/jquery-mobile/icons-png/bullets-white-4f2871e980101e2bd0d661aac55cd623.png +0 -0
  119. data/{public → rails}/assets/jquery-mobile/icons-png/bullets-white.png +0 -0
  120. data/{public → rails}/assets/jquery-mobile/icons-png/calendar-black-67e5eabe68665b45263c10fd17ad17ba.png +0 -0
  121. data/{public → rails}/assets/jquery-mobile/icons-png/calendar-black.png +0 -0
  122. data/{public → rails}/assets/jquery-mobile/icons-png/calendar-white-e648512a4f976466c0df237484fcc9c4.png +0 -0
  123. data/{public → rails}/assets/jquery-mobile/icons-png/calendar-white.png +0 -0
  124. data/{public → rails}/assets/jquery-mobile/icons-png/camera-black-c5c8b5e08b68d612387428f82bd8e7b9.png +0 -0
  125. data/{public → rails}/assets/jquery-mobile/icons-png/camera-black.png +0 -0
  126. data/{public → rails}/assets/jquery-mobile/icons-png/camera-white-147393e77b3631d9ad5220cd23c54863.png +0 -0
  127. data/{public → rails}/assets/jquery-mobile/icons-png/camera-white.png +0 -0
  128. data/{public → rails}/assets/jquery-mobile/icons-png/carat-d-black-291da5f63efc80c062765bca7d939dc9.png +0 -0
  129. data/{public → rails}/assets/jquery-mobile/icons-png/carat-d-black.png +0 -0
  130. data/{public → rails}/assets/jquery-mobile/icons-png/carat-d-white-891a11602af9a5ffecb4036c42671b32.png +0 -0
  131. data/{public → rails}/assets/jquery-mobile/icons-png/carat-d-white.png +0 -0
  132. data/{public → rails}/assets/jquery-mobile/icons-png/carat-l-black-8d842b168e8722758ebb9e0e20367dc2.png +0 -0
  133. data/{public → rails}/assets/jquery-mobile/icons-png/carat-l-black.png +0 -0
  134. data/{public → rails}/assets/jquery-mobile/icons-png/carat-l-white-3c757452f0f441b544023f5ff8087f25.png +0 -0
  135. data/{public → rails}/assets/jquery-mobile/icons-png/carat-l-white.png +0 -0
  136. data/{public → rails}/assets/jquery-mobile/icons-png/carat-r-black-2ded93b56fcb5b25c7a5b3776e5e65d6.png +0 -0
  137. data/{public → rails}/assets/jquery-mobile/icons-png/carat-r-black.png +0 -0
  138. data/{public → rails}/assets/jquery-mobile/icons-png/carat-r-white-b176f8f6a2b1cc081ffd10c5b1fa596f.png +0 -0
  139. data/{public → rails}/assets/jquery-mobile/icons-png/carat-r-white.png +0 -0
  140. data/{public → rails}/assets/jquery-mobile/icons-png/carat-u-black-23e097594ad948f851e4db090aa4136d.png +0 -0
  141. data/{public → rails}/assets/jquery-mobile/icons-png/carat-u-black.png +0 -0
  142. data/{public → rails}/assets/jquery-mobile/icons-png/carat-u-white-c056d77e74680adf24684602bf581e90.png +0 -0
  143. data/{public → rails}/assets/jquery-mobile/icons-png/carat-u-white.png +0 -0
  144. data/{public → rails}/assets/jquery-mobile/icons-png/check-black-c30e2bdff08c3250d5d9a5016c3a373c.png +0 -0
  145. data/{public → rails}/assets/jquery-mobile/icons-png/check-black.png +0 -0
  146. data/{public → rails}/assets/jquery-mobile/icons-png/check-white-6bef746213ce5d01ec057a2e57eba03e.png +0 -0
  147. data/{public → rails}/assets/jquery-mobile/icons-png/check-white.png +0 -0
  148. data/{public → rails}/assets/jquery-mobile/icons-png/clock-black-426a75bcd9a7fcb19767bdbac8d81e93.png +0 -0
  149. data/{public → rails}/assets/jquery-mobile/icons-png/clock-black.png +0 -0
  150. data/{public → rails}/assets/jquery-mobile/icons-png/clock-white-eb0b22357bf8f45b9b28b2998f6683ac.png +0 -0
  151. data/{public → rails}/assets/jquery-mobile/icons-png/clock-white.png +0 -0
  152. data/{public → rails}/assets/jquery-mobile/icons-png/cloud-black-dd4382e46e8039c6eb410c90b34a7a7d.png +0 -0
  153. data/{public → rails}/assets/jquery-mobile/icons-png/cloud-black.png +0 -0
  154. data/{public → rails}/assets/jquery-mobile/icons-png/cloud-white-b88a47dc043a97a4eac74b1efc62a656.png +0 -0
  155. data/{public → rails}/assets/jquery-mobile/icons-png/cloud-white.png +0 -0
  156. data/{public → rails}/assets/jquery-mobile/icons-png/comment-black-f4168860db0754ff9cf03fc9946b3379.png +0 -0
  157. data/{public → rails}/assets/jquery-mobile/icons-png/comment-black.png +0 -0
  158. data/{public → rails}/assets/jquery-mobile/icons-png/comment-white-6b999cb86d6aca17084e27a9f67c8c24.png +0 -0
  159. data/{public → rails}/assets/jquery-mobile/icons-png/comment-white.png +0 -0
  160. data/{public → rails}/assets/jquery-mobile/icons-png/delete-black-7d8d7896c8845c89d000fa8e97523701.png +0 -0
  161. data/{public → rails}/assets/jquery-mobile/icons-png/delete-black.png +0 -0
  162. data/{public → rails}/assets/jquery-mobile/icons-png/delete-white-bc789fa534e359f9fee233213eb468de.png +0 -0
  163. data/{public → rails}/assets/jquery-mobile/icons-png/delete-white.png +0 -0
  164. data/{public → rails}/assets/jquery-mobile/icons-png/edit-black-ec5837b59ac116c6716cd7f1c63e9fca.png +0 -0
  165. data/{public → rails}/assets/jquery-mobile/icons-png/edit-black.png +0 -0
  166. data/{public → rails}/assets/jquery-mobile/icons-png/edit-white-bdfa858ef0dec5b5ea2297c52c0bea03.png +0 -0
  167. data/{public → rails}/assets/jquery-mobile/icons-png/edit-white.png +0 -0
  168. data/{public → rails}/assets/jquery-mobile/icons-png/eye-black-6530b6b67ce6f3165d194e79beb9755e.png +0 -0
  169. data/{public → rails}/assets/jquery-mobile/icons-png/eye-black.png +0 -0
  170. data/{public → rails}/assets/jquery-mobile/icons-png/eye-white-e44323bf6b85c5b1b1fdf66df97a4b8c.png +0 -0
  171. data/{public → rails}/assets/jquery-mobile/icons-png/eye-white.png +0 -0
  172. data/{public → rails}/assets/jquery-mobile/icons-png/forbidden-black-4cb718a887e88dbaabf04eef0f2312fe.png +0 -0
  173. data/{public → rails}/assets/jquery-mobile/icons-png/forbidden-black.png +0 -0
  174. data/{public → rails}/assets/jquery-mobile/icons-png/forbidden-white-9138b0037c40f353bc794285384cb1e6.png +0 -0
  175. data/{public → rails}/assets/jquery-mobile/icons-png/forbidden-white.png +0 -0
  176. data/{public → rails}/assets/jquery-mobile/icons-png/forward-black-dc3302f286f5edebdd8de5953ba0f4be.png +0 -0
  177. data/{public → rails}/assets/jquery-mobile/icons-png/forward-black.png +0 -0
  178. data/{public → rails}/assets/jquery-mobile/icons-png/forward-white-3c71ad481331c6cd2e55678de52e321b.png +0 -0
  179. data/{public → rails}/assets/jquery-mobile/icons-png/forward-white.png +0 -0
  180. data/{public → rails}/assets/jquery-mobile/icons-png/gear-black-1877187237f71b7ba7fad9dae2afbff8.png +0 -0
  181. data/{public → rails}/assets/jquery-mobile/icons-png/gear-black.png +0 -0
  182. data/{public → rails}/assets/jquery-mobile/icons-png/gear-white-3760f8925907885b77332c927c6f69f1.png +0 -0
  183. data/{public → rails}/assets/jquery-mobile/icons-png/gear-white.png +0 -0
  184. data/{public → rails}/assets/jquery-mobile/icons-png/grid-black-ef43287886d17dad1edfd42d61e77bf9.png +0 -0
  185. data/{public → rails}/assets/jquery-mobile/icons-png/grid-black.png +0 -0
  186. data/{public → rails}/assets/jquery-mobile/icons-png/grid-white-a90cad859111e48260bb7dd58e089421.png +0 -0
  187. data/{public → rails}/assets/jquery-mobile/icons-png/grid-white.png +0 -0
  188. data/{public → rails}/assets/jquery-mobile/icons-png/heart-black-1d83e64216d8604f7e140e496585dc2d.png +0 -0
  189. data/{public → rails}/assets/jquery-mobile/icons-png/heart-black.png +0 -0
  190. data/{public → rails}/assets/jquery-mobile/icons-png/heart-white-70fb68f6f14d6eed8bcb51b9bffb7a1e.png +0 -0
  191. data/{public → rails}/assets/jquery-mobile/icons-png/heart-white.png +0 -0
  192. data/{public → rails}/assets/jquery-mobile/icons-png/home-black-8839e5c9a8e11a4820f29e49d9a940e1.png +0 -0
  193. data/{public → rails}/assets/jquery-mobile/icons-png/home-black.png +0 -0
  194. data/{public → rails}/assets/jquery-mobile/icons-png/home-white-7bb7a707d7fec69a6e87aa15cc81a6df.png +0 -0
  195. data/{public → rails}/assets/jquery-mobile/icons-png/home-white.png +0 -0
  196. data/{public → rails}/assets/jquery-mobile/icons-png/info-black-9b6531eabb8ca3757fa8d7ed9b2a9c61.png +0 -0
  197. data/{public → rails}/assets/jquery-mobile/icons-png/info-black.png +0 -0
  198. data/{public → rails}/assets/jquery-mobile/icons-png/info-white-8f0b3be835d9c4dc7ef68aaa14360475.png +0 -0
  199. data/{public → rails}/assets/jquery-mobile/icons-png/info-white.png +0 -0
  200. data/{public → rails}/assets/jquery-mobile/icons-png/location-black-2d64ab16b9762a79da26b57026a8c013.png +0 -0
  201. data/{public → rails}/assets/jquery-mobile/icons-png/location-black.png +0 -0
  202. data/{public → rails}/assets/jquery-mobile/icons-png/location-white-f20a8601e6921cb9e06551da88746269.png +0 -0
  203. data/{public → rails}/assets/jquery-mobile/icons-png/location-white.png +0 -0
  204. data/{public → rails}/assets/jquery-mobile/icons-png/lock-black-80468c8080ca8728335411fc2e946bc3.png +0 -0
  205. data/{public → rails}/assets/jquery-mobile/icons-png/lock-black.png +0 -0
  206. data/{public → rails}/assets/jquery-mobile/icons-png/lock-white-6a9da31e3af79379b9c74a0b299e498b.png +0 -0
  207. data/{public → rails}/assets/jquery-mobile/icons-png/lock-white.png +0 -0
  208. data/{public → rails}/assets/jquery-mobile/icons-png/mail-black-1ac12d4f1561c196c5b976e3b0271a47.png +0 -0
  209. data/{public → rails}/assets/jquery-mobile/icons-png/mail-black.png +0 -0
  210. data/{public → rails}/assets/jquery-mobile/icons-png/mail-white-cf3c78ddf8627b915455815d00f4c813.png +0 -0
  211. data/{public → rails}/assets/jquery-mobile/icons-png/mail-white.png +0 -0
  212. data/{public → rails}/assets/jquery-mobile/icons-png/minus-black-528a578f797a7476ef7e553c4f319724.png +0 -0
  213. data/{public → rails}/assets/jquery-mobile/icons-png/minus-black.png +0 -0
  214. data/{public → rails}/assets/jquery-mobile/icons-png/minus-white-0a992b9039a4fc5eb017cd32aea41f00.png +0 -0
  215. data/{public → rails}/assets/jquery-mobile/icons-png/minus-white.png +0 -0
  216. data/{public → rails}/assets/jquery-mobile/icons-png/navigation-black-f290da883ab1408425ac13b0c9d55362.png +0 -0
  217. data/{public → rails}/assets/jquery-mobile/icons-png/navigation-black.png +0 -0
  218. data/{public → rails}/assets/jquery-mobile/icons-png/navigation-white-c38219949e27a10f27fb1dfe3f101e2b.png +0 -0
  219. data/{public → rails}/assets/jquery-mobile/icons-png/navigation-white.png +0 -0
  220. data/{public → rails}/assets/jquery-mobile/icons-png/phone-black-8edd665a30189221a6ff370a5913f9c8.png +0 -0
  221. data/{public → rails}/assets/jquery-mobile/icons-png/phone-black.png +0 -0
  222. data/{public → rails}/assets/jquery-mobile/icons-png/phone-white-30cc61da132a3801c8441353f63dd174.png +0 -0
  223. data/{public → rails}/assets/jquery-mobile/icons-png/phone-white.png +0 -0
  224. data/{public → rails}/assets/jquery-mobile/icons-png/plus-black-ee8694a3f99b71fa84279d6f47bc69aa.png +0 -0
  225. data/{public → rails}/assets/jquery-mobile/icons-png/plus-black.png +0 -0
  226. data/{public → rails}/assets/jquery-mobile/icons-png/plus-white-594f2cf43798441607dd1a7a9b9bb68e.png +0 -0
  227. data/{public → rails}/assets/jquery-mobile/icons-png/plus-white.png +0 -0
  228. data/{public → rails}/assets/jquery-mobile/icons-png/power-black-c31a9b9ca22ce18710d4342c897f7a60.png +0 -0
  229. data/{public → rails}/assets/jquery-mobile/icons-png/power-black.png +0 -0
  230. data/{public → rails}/assets/jquery-mobile/icons-png/power-white-e3d0f6f4e1b54675c702dd0ef9dd2819.png +0 -0
  231. data/{public → rails}/assets/jquery-mobile/icons-png/power-white.png +0 -0
  232. data/{public → rails}/assets/jquery-mobile/icons-png/recycle-black-0649d7916693bcabe5b2bee1a26678df.png +0 -0
  233. data/{public → rails}/assets/jquery-mobile/icons-png/recycle-black.png +0 -0
  234. data/{public → rails}/assets/jquery-mobile/icons-png/recycle-white-f63febb141a2739223217f839c5592a2.png +0 -0
  235. data/{public → rails}/assets/jquery-mobile/icons-png/recycle-white.png +0 -0
  236. data/{public → rails}/assets/jquery-mobile/icons-png/refresh-black-b9c418000249bc0b23fa20ef2a73dcce.png +0 -0
  237. data/{public → rails}/assets/jquery-mobile/icons-png/refresh-black.png +0 -0
  238. data/{public → rails}/assets/jquery-mobile/icons-png/refresh-white-741c1f6cc39d51c32a142dfab708ca8c.png +0 -0
  239. data/{public → rails}/assets/jquery-mobile/icons-png/refresh-white.png +0 -0
  240. data/{public → rails}/assets/jquery-mobile/icons-png/search-black-e67608c6619a436c16bd49df4a00f7a6.png +0 -0
  241. data/{public → rails}/assets/jquery-mobile/icons-png/search-black.png +0 -0
  242. data/{public → rails}/assets/jquery-mobile/icons-png/search-white-49687883de84b391661162fb73604434.png +0 -0
  243. data/{public → rails}/assets/jquery-mobile/icons-png/search-white.png +0 -0
  244. data/{public → rails}/assets/jquery-mobile/icons-png/shop-black-c20b263467ce2a8de1b386e775be1d5e.png +0 -0
  245. data/{public → rails}/assets/jquery-mobile/icons-png/shop-black.png +0 -0
  246. data/{public → rails}/assets/jquery-mobile/icons-png/shop-white-80a8c9c4d2e838919941423dffe0801c.png +0 -0
  247. data/{public → rails}/assets/jquery-mobile/icons-png/shop-white.png +0 -0
  248. data/{public → rails}/assets/jquery-mobile/icons-png/star-black-a6bc8b485ff200c1deab9e9e77f52b32.png +0 -0
  249. data/{public → rails}/assets/jquery-mobile/icons-png/star-black.png +0 -0
  250. data/{public → rails}/assets/jquery-mobile/icons-png/star-white-8b620c1dced3da828d9edde9f6022249.png +0 -0
  251. data/{public → rails}/assets/jquery-mobile/icons-png/star-white.png +0 -0
  252. data/{public → rails}/assets/jquery-mobile/icons-png/tag-black-4fdb325b352b565f422193a80c1e4bfd.png +0 -0
  253. data/{public → rails}/assets/jquery-mobile/icons-png/tag-black.png +0 -0
  254. data/{public → rails}/assets/jquery-mobile/icons-png/tag-white-a35a79ed983ce834a8ddccefeaebce15.png +0 -0
  255. data/{public → rails}/assets/jquery-mobile/icons-png/tag-white.png +0 -0
  256. data/{public → rails}/assets/jquery-mobile/icons-png/user-black-85accf54554aa97069b5939b16b5e681.png +0 -0
  257. data/{public → rails}/assets/jquery-mobile/icons-png/user-black.png +0 -0
  258. data/{public → rails}/assets/jquery-mobile/icons-png/user-white-9abd9f6162d36152c841e475c4aaf118.png +0 -0
  259. data/{public → rails}/assets/jquery-mobile/icons-png/user-white.png +0 -0
  260. data/{public → rails}/assets/jquery-mobile/icons-png/video-black-1d5a483c5ce892d0012c60010286396b.png +0 -0
  261. data/{public → rails}/assets/jquery-mobile/icons-png/video-black.png +0 -0
  262. data/{public → rails}/assets/jquery-mobile/icons-png/video-white-80a2ae6a9b790e6ee05680fcdee8905a.png +0 -0
  263. data/{public → rails}/assets/jquery-mobile/icons-png/video-white.png +0 -0
  264. data/{public → rails}/assets/jquery-ui/animated-overlay-602eee4c79a4796b02bb6442948c9e28.gif +0 -0
  265. data/{public → rails}/assets/jquery-ui/animated-overlay.gif +0 -0
  266. data/{public → rails}/assets/jquery-ui/ui-bg_flat_0_aaaaaa_40x100-7d1197a52442bc56fcad60d0390f4b32.png +0 -0
  267. data/{public → rails}/assets/jquery-ui/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  268. data/{public → rails}/assets/jquery-ui/ui-bg_flat_75_ffffff_40x100-3c4b974defa5e8bdaf8a603034c4435e.png +0 -0
  269. data/{public → rails}/assets/jquery-ui/ui-bg_flat_75_ffffff_40x100.png +0 -0
  270. data/{public → rails}/assets/jquery-ui/ui-bg_glass_55_fbf9ee_1x400-38c2dea4d046fd3f56cc3996e2e6018b.png +0 -0
  271. data/{public → rails}/assets/jquery-ui/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  272. data/{public → rails}/assets/jquery-ui/ui-bg_glass_65_ffffff_1x400-ddb7ee7527bff283054406c50e597e1e.png +0 -0
  273. data/{public → rails}/assets/jquery-ui/ui-bg_glass_65_ffffff_1x400.png +0 -0
  274. data/{public → rails}/assets/jquery-ui/ui-bg_glass_75_dadada_1x400-d618461418b1ebc6b7996979f4c3dc92.png +0 -0
  275. data/{public → rails}/assets/jquery-ui/ui-bg_glass_75_dadada_1x400.png +0 -0
  276. data/{public → rails}/assets/jquery-ui/ui-bg_glass_75_e6e6e6_1x400-48d8d545f708e5870a965ce9df8b0e38.png +0 -0
  277. data/{public → rails}/assets/jquery-ui/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  278. data/{public → rails}/assets/jquery-ui/ui-bg_glass_95_fef1ec_1x400-f3526b8f82249928f0a6baf044204b15.png +0 -0
  279. data/{public → rails}/assets/jquery-ui/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  280. data/{public → rails}/assets/jquery-ui/ui-bg_highlight-soft_75_cccccc_1x100-cec5c56503b8480f834c3fce35dae8df.png +0 -0
  281. data/{public → rails}/assets/jquery-ui/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  282. data/{public → rails}/assets/jquery-ui/ui-icons_222222_256x240-b1eb177a51ea7925448318a26d988842.png +0 -0
  283. data/{public → rails}/assets/jquery-ui/ui-icons_222222_256x240.png +0 -0
  284. data/{public → rails}/assets/jquery-ui/ui-icons_2e83ff_256x240-49c2da9cac2dc565265586f716491298.png +0 -0
  285. data/{public → rails}/assets/jquery-ui/ui-icons_2e83ff_256x240.png +0 -0
  286. data/{public → rails}/assets/jquery-ui/ui-icons_454545_256x240-68b2fe3268f7604fb0767a0372e2db85.png +0 -0
  287. data/{public → rails}/assets/jquery-ui/ui-icons_454545_256x240.png +0 -0
  288. data/{public → rails}/assets/jquery-ui/ui-icons_888888_256x240-8040cfcc88792375b7788feb59189eef.png +0 -0
  289. data/{public → rails}/assets/jquery-ui/ui-icons_888888_256x240.png +0 -0
  290. data/{public → rails}/assets/jquery-ui/ui-icons_cd0a0a_256x240-d4a62216bf6f0cd0071149890763a5ff.png +0 -0
  291. data/{public → rails}/assets/jquery-ui/ui-icons_cd0a0a_256x240.png +0 -0
  292. data/{public → rails}/assets/jquery.min-388372ef65cc311f6a3df4a6ceac8d22.map +0 -0
  293. data/{public → rails}/assets/jquery.min.map +0 -0
  294. data/{public → rails}/assets/manifest.yml +0 -0
  295. data/{public → rails}/assets/smoothness/animated-overlay-602eee4c79a4796b02bb6442948c9e28.gif +0 -0
  296. data/{public → rails}/assets/smoothness/animated-overlay.gif +0 -0
  297. data/{public → rails}/assets/smoothness/ui-bg_flat_0_aaaaaa_40x100-31613497e63975a54520b7065b125dea.png +0 -0
  298. data/{public → rails}/assets/smoothness/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  299. data/{public → rails}/assets/smoothness/ui-bg_flat_75_ffffff_40x100-f4b0e20e6f4c83b9f52cf062ed0f5284.png +0 -0
  300. data/{public → rails}/assets/smoothness/ui-bg_flat_75_ffffff_40x100.png +0 -0
  301. data/{public → rails}/assets/smoothness/ui-bg_glass_55_fbf9ee_1x400-e3606d6e7ad67486ffdc83edca64d4c5.png +0 -0
  302. data/{public → rails}/assets/smoothness/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  303. data/{public → rails}/assets/smoothness/ui-bg_glass_65_ffffff_1x400-dcec96932b90ff4cd4fea91284a6e9a3.png +0 -0
  304. data/{public → rails}/assets/smoothness/ui-bg_glass_65_ffffff_1x400.png +0 -0
  305. data/{public → rails}/assets/smoothness/ui-bg_glass_75_dadada_1x400-a2310f533684ede4f1216d7299b5cd58.png +0 -0
  306. data/{public → rails}/assets/smoothness/ui-bg_glass_75_dadada_1x400.png +0 -0
  307. data/{public → rails}/assets/smoothness/ui-bg_glass_75_e6e6e6_1x400-d872f3a0a02dea609e4b0321520236d9.png +0 -0
  308. data/{public → rails}/assets/smoothness/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  309. data/{public → rails}/assets/smoothness/ui-bg_glass_95_fef1ec_1x400-9ccaed8a65a3c285c16a73bdf03a69b3.png +0 -0
  310. data/{public → rails}/assets/smoothness/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  311. data/{public → rails}/assets/smoothness/ui-bg_highlight-soft_75_cccccc_1x100-2ef1d227b5c0f33ce3c5e45afa953991.png +0 -0
  312. data/{public → rails}/assets/smoothness/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  313. data/{public → rails}/assets/smoothness/ui-icons_222222_256x240-0675a996f0bdc78890f7b312c543b06a.png +0 -0
  314. data/{public → rails}/assets/smoothness/ui-icons_222222_256x240.png +0 -0
  315. data/{public → rails}/assets/smoothness/ui-icons_2e83ff_256x240-6aea736f81a417977efd77f183519a54.png +0 -0
  316. data/{public → rails}/assets/smoothness/ui-icons_2e83ff_256x240.png +0 -0
  317. data/{public → rails}/assets/smoothness/ui-icons_454545_256x240-6f4361f45745fb0cd7b0cc2851dc1cc3.png +0 -0
  318. data/{public → rails}/assets/smoothness/ui-icons_454545_256x240.png +0 -0
  319. data/{public → rails}/assets/smoothness/ui-icons_888888_256x240-8f6818bd8631ba3489de718e26c7e6cf.png +0 -0
  320. data/{public → rails}/assets/smoothness/ui-icons_888888_256x240.png +0 -0
  321. data/{public → rails}/assets/smoothness/ui-icons_cd0a0a_256x240-2969ddba6d0a9c62603a4aa85a363cda.png +0 -0
  322. data/{public → rails}/assets/smoothness/ui-icons_cd0a0a_256x240.png +0 -0
  323. data/{public → rails}/assets/tinymce/jquery.tinymce.js +0 -0
  324. data/{public → rails}/assets/tinymce/langs/en.js +0 -0
  325. data/{public → rails}/assets/tinymce/license.txt +0 -0
  326. data/{public → rails}/assets/tinymce/plugins/advhr/css/advhr.css +0 -0
  327. data/{public → rails}/assets/tinymce/plugins/advhr/editor_plugin.js +0 -0
  328. data/{public → rails}/assets/tinymce/plugins/advhr/editor_plugin_src.js +0 -0
  329. data/{public → rails}/assets/tinymce/plugins/advhr/js/rule.js +0 -0
  330. data/{public → rails}/assets/tinymce/plugins/advhr/langs/en_dlg.js +0 -0
  331. data/{public → rails}/assets/tinymce/plugins/advhr/rule.htm +0 -0
  332. data/{public → rails}/assets/tinymce/plugins/advimage/css/advimage.css +0 -0
  333. data/{public → rails}/assets/tinymce/plugins/advimage/editor_plugin.js +0 -0
  334. data/{public → rails}/assets/tinymce/plugins/advimage/editor_plugin_src.js +0 -0
  335. data/{public → rails}/assets/tinymce/plugins/advimage/image.htm +0 -0
  336. data/{public → rails}/assets/tinymce/plugins/advimage/img/sample.gif +0 -0
  337. data/{public → rails}/assets/tinymce/plugins/advimage/js/image.js +0 -0
  338. data/{public → rails}/assets/tinymce/plugins/advimage/langs/en_dlg.js +0 -0
  339. data/{public → rails}/assets/tinymce/plugins/advlink/css/advlink.css +0 -0
  340. data/{public → rails}/assets/tinymce/plugins/advlink/editor_plugin.js +0 -0
  341. data/{public → rails}/assets/tinymce/plugins/advlink/editor_plugin_src.js +0 -0
  342. data/{public → rails}/assets/tinymce/plugins/advlink/js/advlink.js +0 -0
  343. data/{public → rails}/assets/tinymce/plugins/advlink/langs/en_dlg.js +0 -0
  344. data/{public → rails}/assets/tinymce/plugins/advlink/link.htm +0 -0
  345. data/{public → rails}/assets/tinymce/plugins/advlist/editor_plugin.js +0 -0
  346. data/{public → rails}/assets/tinymce/plugins/advlist/editor_plugin_src.js +0 -0
  347. data/{public → rails}/assets/tinymce/plugins/autolink/editor_plugin.js +0 -0
  348. data/{public → rails}/assets/tinymce/plugins/autolink/editor_plugin_src.js +0 -0
  349. data/{public → rails}/assets/tinymce/plugins/autoresize/editor_plugin.js +0 -0
  350. data/{public → rails}/assets/tinymce/plugins/autoresize/editor_plugin_src.js +0 -0
  351. data/{public → rails}/assets/tinymce/plugins/autosave/editor_plugin.js +0 -0
  352. data/{public → rails}/assets/tinymce/plugins/autosave/editor_plugin_src.js +0 -0
  353. data/{public → rails}/assets/tinymce/plugins/bbcode/editor_plugin.js +0 -0
  354. data/{public → rails}/assets/tinymce/plugins/bbcode/editor_plugin_src.js +0 -0
  355. data/{public → rails}/assets/tinymce/plugins/contextmenu/editor_plugin.js +0 -0
  356. data/{public → rails}/assets/tinymce/plugins/contextmenu/editor_plugin_src.js +0 -0
  357. data/{public → rails}/assets/tinymce/plugins/directionality/editor_plugin.js +0 -0
  358. data/{public → rails}/assets/tinymce/plugins/directionality/editor_plugin_src.js +0 -0
  359. data/{public → rails}/assets/tinymce/plugins/emotions/editor_plugin.js +0 -0
  360. data/{public → rails}/assets/tinymce/plugins/emotions/editor_plugin_src.js +0 -0
  361. data/{public → rails}/assets/tinymce/plugins/emotions/emotions.htm +0 -0
  362. data/{public → rails}/assets/tinymce/plugins/emotions/img/smiley-cool.gif +0 -0
  363. data/{public → rails}/assets/tinymce/plugins/emotions/img/smiley-cry.gif +0 -0
  364. data/{public → rails}/assets/tinymce/plugins/emotions/img/smiley-embarassed.gif +0 -0
  365. data/{public → rails}/assets/tinymce/plugins/emotions/img/smiley-foot-in-mouth.gif +0 -0
  366. data/{public → rails}/assets/tinymce/plugins/emotions/img/smiley-frown.gif +0 -0
  367. data/{public → rails}/assets/tinymce/plugins/emotions/img/smiley-innocent.gif +0 -0
  368. data/{public → rails}/assets/tinymce/plugins/emotions/img/smiley-kiss.gif +0 -0
  369. data/{public → rails}/assets/tinymce/plugins/emotions/img/smiley-laughing.gif +0 -0
  370. data/{public → rails}/assets/tinymce/plugins/emotions/img/smiley-money-mouth.gif +0 -0
  371. data/{public → rails}/assets/tinymce/plugins/emotions/img/smiley-sealed.gif +0 -0
  372. data/{public → rails}/assets/tinymce/plugins/emotions/img/smiley-smile.gif +0 -0
  373. data/{public → rails}/assets/tinymce/plugins/emotions/img/smiley-surprised.gif +0 -0
  374. data/{public → rails}/assets/tinymce/plugins/emotions/img/smiley-tongue-out.gif +0 -0
  375. data/{public → rails}/assets/tinymce/plugins/emotions/img/smiley-undecided.gif +0 -0
  376. data/{public → rails}/assets/tinymce/plugins/emotions/img/smiley-wink.gif +0 -0
  377. data/{public → rails}/assets/tinymce/plugins/emotions/img/smiley-yell.gif +0 -0
  378. data/{public → rails}/assets/tinymce/plugins/emotions/js/emotions.js +0 -0
  379. data/{public → rails}/assets/tinymce/plugins/emotions/langs/en_dlg.js +0 -0
  380. data/{public → rails}/assets/tinymce/plugins/example/dialog.htm +0 -0
  381. data/{public → rails}/assets/tinymce/plugins/example/editor_plugin.js +0 -0
  382. data/{public → rails}/assets/tinymce/plugins/example/editor_plugin_src.js +0 -0
  383. data/{public → rails}/assets/tinymce/plugins/example/img/example.gif +0 -0
  384. data/{public → rails}/assets/tinymce/plugins/example/js/dialog.js +0 -0
  385. data/{public → rails}/assets/tinymce/plugins/example/langs/en.js +0 -0
  386. data/{public → rails}/assets/tinymce/plugins/example/langs/en_dlg.js +0 -0
  387. data/{public → rails}/assets/tinymce/plugins/example_dependency/editor_plugin.js +0 -0
  388. data/{public → rails}/assets/tinymce/plugins/example_dependency/editor_plugin_src.js +0 -0
  389. data/{public → rails}/assets/tinymce/plugins/fullpage/css/fullpage.css +0 -0
  390. data/{public → rails}/assets/tinymce/plugins/fullpage/editor_plugin.js +0 -0
  391. data/{public → rails}/assets/tinymce/plugins/fullpage/editor_plugin_src.js +0 -0
  392. data/{public → rails}/assets/tinymce/plugins/fullpage/fullpage.htm +0 -0
  393. data/{public → rails}/assets/tinymce/plugins/fullpage/js/fullpage.js +0 -0
  394. data/{public → rails}/assets/tinymce/plugins/fullpage/langs/en_dlg.js +0 -0
  395. data/{public → rails}/assets/tinymce/plugins/fullscreen/editor_plugin.js +0 -0
  396. data/{public → rails}/assets/tinymce/plugins/fullscreen/editor_plugin_src.js +0 -0
  397. data/{public → rails}/assets/tinymce/plugins/fullscreen/fullscreen.htm +0 -0
  398. data/{public → rails}/assets/tinymce/plugins/iespell/editor_plugin.js +0 -0
  399. data/{public → rails}/assets/tinymce/plugins/iespell/editor_plugin_src.js +0 -0
  400. data/{public → rails}/assets/tinymce/plugins/inlinepopups/editor_plugin.js +0 -0
  401. data/{public → rails}/assets/tinymce/plugins/inlinepopups/editor_plugin_src.js +0 -0
  402. data/{public → rails}/assets/tinymce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif +0 -0
  403. data/{public → rails}/assets/tinymce/plugins/inlinepopups/skins/clearlooks2/img/button.gif +0 -0
  404. data/{public → rails}/assets/tinymce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif +0 -0
  405. data/{public → rails}/assets/tinymce/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif +0 -0
  406. data/{public → rails}/assets/tinymce/plugins/inlinepopups/skins/clearlooks2/img/corners.gif +0 -0
  407. data/{public → rails}/assets/tinymce/plugins/inlinepopups/skins/clearlooks2/img/horizontal.gif +0 -0
  408. data/{public → rails}/assets/tinymce/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif +0 -0
  409. data/{public → rails}/assets/tinymce/plugins/inlinepopups/skins/clearlooks2/window.css +0 -0
  410. data/{public → rails}/assets/tinymce/plugins/inlinepopups/template.htm +0 -0
  411. data/{public → rails}/assets/tinymce/plugins/insertdatetime/editor_plugin.js +0 -0
  412. data/{public → rails}/assets/tinymce/plugins/insertdatetime/editor_plugin_src.js +0 -0
  413. data/{public → rails}/assets/tinymce/plugins/layer/editor_plugin.js +0 -0
  414. data/{public → rails}/assets/tinymce/plugins/layer/editor_plugin_src.js +0 -0
  415. data/{public → rails}/assets/tinymce/plugins/legacyoutput/editor_plugin.js +0 -0
  416. data/{public → rails}/assets/tinymce/plugins/legacyoutput/editor_plugin_src.js +0 -0
  417. data/{public → rails}/assets/tinymce/plugins/lists/editor_plugin.js +0 -0
  418. data/{public → rails}/assets/tinymce/plugins/lists/editor_plugin_src.js +0 -0
  419. data/{public → rails}/assets/tinymce/plugins/media/css/media.css +0 -0
  420. data/{public → rails}/assets/tinymce/plugins/media/editor_plugin.js +0 -0
  421. data/{public → rails}/assets/tinymce/plugins/media/editor_plugin_src.js +0 -0
  422. data/{public → rails}/assets/tinymce/plugins/media/js/embed.js +0 -0
  423. data/{public → rails}/assets/tinymce/plugins/media/js/media.js +0 -0
  424. data/{public → rails}/assets/tinymce/plugins/media/langs/en_dlg.js +0 -0
  425. data/{public → rails}/assets/tinymce/plugins/media/media.htm +0 -0
  426. data/{public → rails}/assets/tinymce/plugins/media/moxieplayer.swf +0 -0
  427. data/{public → rails}/assets/tinymce/plugins/nonbreaking/editor_plugin.js +0 -0
  428. data/{public → rails}/assets/tinymce/plugins/nonbreaking/editor_plugin_src.js +0 -0
  429. data/{public → rails}/assets/tinymce/plugins/noneditable/editor_plugin.js +0 -0
  430. data/{public → rails}/assets/tinymce/plugins/noneditable/editor_plugin_src.js +0 -0
  431. data/{public → rails}/assets/tinymce/plugins/pagebreak/editor_plugin.js +0 -0
  432. data/{public → rails}/assets/tinymce/plugins/pagebreak/editor_plugin_src.js +0 -0
  433. data/{public → rails}/assets/tinymce/plugins/paste/editor_plugin.js +0 -0
  434. data/{public → rails}/assets/tinymce/plugins/paste/editor_plugin_src.js +0 -0
  435. data/{public → rails}/assets/tinymce/plugins/paste/js/pastetext.js +0 -0
  436. data/{public → rails}/assets/tinymce/plugins/paste/js/pasteword.js +0 -0
  437. data/{public → rails}/assets/tinymce/plugins/paste/langs/en_dlg.js +0 -0
  438. data/{public → rails}/assets/tinymce/plugins/paste/pastetext.htm +0 -0
  439. data/{public → rails}/assets/tinymce/plugins/paste/pasteword.htm +0 -0
  440. data/{public → rails}/assets/tinymce/plugins/preview/editor_plugin.js +0 -0
  441. data/{public → rails}/assets/tinymce/plugins/preview/editor_plugin_src.js +0 -0
  442. data/{public → rails}/assets/tinymce/plugins/preview/example.html +0 -0
  443. data/{public → rails}/assets/tinymce/plugins/preview/jscripts/embed.js +0 -0
  444. data/{public → rails}/assets/tinymce/plugins/preview/preview.html +0 -0
  445. data/{public → rails}/assets/tinymce/plugins/print/editor_plugin.js +0 -0
  446. data/{public → rails}/assets/tinymce/plugins/print/editor_plugin_src.js +0 -0
  447. data/{public → rails}/assets/tinymce/plugins/save/editor_plugin.js +0 -0
  448. data/{public → rails}/assets/tinymce/plugins/save/editor_plugin_src.js +0 -0
  449. data/{public → rails}/assets/tinymce/plugins/searchreplace/css/searchreplace.css +0 -0
  450. data/{public → rails}/assets/tinymce/plugins/searchreplace/editor_plugin.js +0 -0
  451. data/{public → rails}/assets/tinymce/plugins/searchreplace/editor_plugin_src.js +0 -0
  452. data/{public → rails}/assets/tinymce/plugins/searchreplace/js/searchreplace.js +0 -0
  453. data/{public → rails}/assets/tinymce/plugins/searchreplace/langs/en_dlg.js +0 -0
  454. data/{public → rails}/assets/tinymce/plugins/searchreplace/searchreplace.htm +0 -0
  455. data/{public → rails}/assets/tinymce/plugins/spellchecker/css/content.css +0 -0
  456. data/{public → rails}/assets/tinymce/plugins/spellchecker/editor_plugin.js +0 -0
  457. data/{public → rails}/assets/tinymce/plugins/spellchecker/editor_plugin_src.js +0 -0
  458. data/{public → rails}/assets/tinymce/plugins/spellchecker/img/wline.gif +0 -0
  459. data/{public → rails}/assets/tinymce/plugins/style/css/props.css +0 -0
  460. data/{public → rails}/assets/tinymce/plugins/style/editor_plugin.js +0 -0
  461. data/{public → rails}/assets/tinymce/plugins/style/editor_plugin_src.js +0 -0
  462. data/{public → rails}/assets/tinymce/plugins/style/js/props.js +0 -0
  463. data/{public → rails}/assets/tinymce/plugins/style/langs/en_dlg.js +0 -0
  464. data/{public → rails}/assets/tinymce/plugins/style/props.htm +0 -0
  465. data/{public → rails}/assets/tinymce/plugins/style/readme.txt +0 -0
  466. data/{public → rails}/assets/tinymce/plugins/tabfocus/editor_plugin.js +0 -0
  467. data/{public → rails}/assets/tinymce/plugins/tabfocus/editor_plugin_src.js +0 -0
  468. data/{public → rails}/assets/tinymce/plugins/table/cell.htm +0 -0
  469. data/{public → rails}/assets/tinymce/plugins/table/css/cell.css +0 -0
  470. data/{public → rails}/assets/tinymce/plugins/table/css/row.css +0 -0
  471. data/{public → rails}/assets/tinymce/plugins/table/css/table.css +0 -0
  472. data/{public → rails}/assets/tinymce/plugins/table/editor_plugin.js +0 -0
  473. data/{public → rails}/assets/tinymce/plugins/table/editor_plugin_src.js +0 -0
  474. data/{public → rails}/assets/tinymce/plugins/table/js/cell.js +0 -0
  475. data/{public → rails}/assets/tinymce/plugins/table/js/merge_cells.js +0 -0
  476. data/{public → rails}/assets/tinymce/plugins/table/js/row.js +0 -0
  477. data/{public → rails}/assets/tinymce/plugins/table/js/table.js +0 -0
  478. data/{public → rails}/assets/tinymce/plugins/table/langs/en_dlg.js +0 -0
  479. data/{public → rails}/assets/tinymce/plugins/table/merge_cells.htm +0 -0
  480. data/{public → rails}/assets/tinymce/plugins/table/row.htm +0 -0
  481. data/{public → rails}/assets/tinymce/plugins/table/table.htm +0 -0
  482. data/{public → rails}/assets/tinymce/plugins/template/blank.htm +0 -0
  483. data/{public → rails}/assets/tinymce/plugins/template/css/template.css +0 -0
  484. data/{public → rails}/assets/tinymce/plugins/template/editor_plugin.js +0 -0
  485. data/{public → rails}/assets/tinymce/plugins/template/editor_plugin_src.js +0 -0
  486. data/{public → rails}/assets/tinymce/plugins/template/js/template.js +0 -0
  487. data/{public → rails}/assets/tinymce/plugins/template/langs/en_dlg.js +0 -0
  488. data/{public → rails}/assets/tinymce/plugins/template/template.htm +0 -0
  489. data/{public → rails}/assets/tinymce/plugins/visualblocks/css/visualblocks.css +0 -0
  490. data/{public → rails}/assets/tinymce/plugins/visualblocks/editor_plugin.js +0 -0
  491. data/{public → rails}/assets/tinymce/plugins/visualblocks/editor_plugin_src.js +0 -0
  492. data/{public → rails}/assets/tinymce/plugins/visualchars/editor_plugin.js +0 -0
  493. data/{public → rails}/assets/tinymce/plugins/visualchars/editor_plugin_src.js +0 -0
  494. data/{public → rails}/assets/tinymce/plugins/wordcount/editor_plugin.js +0 -0
  495. data/{public → rails}/assets/tinymce/plugins/wordcount/editor_plugin_src.js +0 -0
  496. data/{public → rails}/assets/tinymce/plugins/xhtmlxtras/abbr.htm +0 -0
  497. data/{public → rails}/assets/tinymce/plugins/xhtmlxtras/acronym.htm +0 -0
  498. data/{public → rails}/assets/tinymce/plugins/xhtmlxtras/attributes.htm +0 -0
  499. data/{public → rails}/assets/tinymce/plugins/xhtmlxtras/cite.htm +0 -0
  500. data/{public → rails}/assets/tinymce/plugins/xhtmlxtras/css/attributes.css +0 -0
  501. data/{public → rails}/assets/tinymce/plugins/xhtmlxtras/css/popup.css +0 -0
  502. data/{public → rails}/assets/tinymce/plugins/xhtmlxtras/del.htm +0 -0
  503. data/{public → rails}/assets/tinymce/plugins/xhtmlxtras/editor_plugin.js +0 -0
  504. data/{public → rails}/assets/tinymce/plugins/xhtmlxtras/editor_plugin_src.js +0 -0
  505. data/{public → rails}/assets/tinymce/plugins/xhtmlxtras/ins.htm +0 -0
  506. data/{public → rails}/assets/tinymce/plugins/xhtmlxtras/js/abbr.js +0 -0
  507. data/{public → rails}/assets/tinymce/plugins/xhtmlxtras/js/acronym.js +0 -0
  508. data/{public → rails}/assets/tinymce/plugins/xhtmlxtras/js/attributes.js +0 -0
  509. data/{public → rails}/assets/tinymce/plugins/xhtmlxtras/js/cite.js +0 -0
  510. data/{public → rails}/assets/tinymce/plugins/xhtmlxtras/js/del.js +0 -0
  511. data/{public → rails}/assets/tinymce/plugins/xhtmlxtras/js/element_common.js +0 -0
  512. data/{public → rails}/assets/tinymce/plugins/xhtmlxtras/js/ins.js +0 -0
  513. data/{public → rails}/assets/tinymce/plugins/xhtmlxtras/langs/en_dlg.js +0 -0
  514. data/{public → rails}/assets/tinymce/themes/advanced/about.htm +0 -0
  515. data/{public → rails}/assets/tinymce/themes/advanced/anchor.htm +0 -0
  516. data/{public → rails}/assets/tinymce/themes/advanced/charmap.htm +0 -0
  517. data/{public → rails}/assets/tinymce/themes/advanced/color_picker.htm +0 -0
  518. data/{public → rails}/assets/tinymce/themes/advanced/editor_template.js +0 -0
  519. data/{public → rails}/assets/tinymce/themes/advanced/editor_template_src.js +0 -0
  520. data/{public → rails}/assets/tinymce/themes/advanced/image.htm +0 -0
  521. data/{public → rails}/assets/tinymce/themes/advanced/img/colorpicker.jpg +0 -0
  522. data/{public → rails}/assets/tinymce/themes/advanced/img/flash.gif +0 -0
  523. data/{public → rails}/assets/tinymce/themes/advanced/img/icons.gif +0 -0
  524. data/{public → rails}/assets/tinymce/themes/advanced/img/iframe.gif +0 -0
  525. data/{public → rails}/assets/tinymce/themes/advanced/img/pagebreak.gif +0 -0
  526. data/{public → rails}/assets/tinymce/themes/advanced/img/quicktime.gif +0 -0
  527. data/{public → rails}/assets/tinymce/themes/advanced/img/realmedia.gif +0 -0
  528. data/{public → rails}/assets/tinymce/themes/advanced/img/shockwave.gif +0 -0
  529. data/{public → rails}/assets/tinymce/themes/advanced/img/trans.gif +0 -0
  530. data/{public → rails}/assets/tinymce/themes/advanced/img/video.gif +0 -0
  531. data/{public → rails}/assets/tinymce/themes/advanced/img/windowsmedia.gif +0 -0
  532. data/{public → rails}/assets/tinymce/themes/advanced/js/about.js +0 -0
  533. data/{public → rails}/assets/tinymce/themes/advanced/js/anchor.js +0 -0
  534. data/{public → rails}/assets/tinymce/themes/advanced/js/charmap.js +0 -0
  535. data/{public → rails}/assets/tinymce/themes/advanced/js/color_picker.js +0 -0
  536. data/{public → rails}/assets/tinymce/themes/advanced/js/image.js +0 -0
  537. data/{public → rails}/assets/tinymce/themes/advanced/js/link.js +0 -0
  538. data/{public → rails}/assets/tinymce/themes/advanced/js/source_editor.js +0 -0
  539. data/{public → rails}/assets/tinymce/themes/advanced/langs/en.js +0 -0
  540. data/{public → rails}/assets/tinymce/themes/advanced/langs/en_dlg.js +0 -0
  541. data/{public → rails}/assets/tinymce/themes/advanced/link.htm +0 -0
  542. data/{public → rails}/assets/tinymce/themes/advanced/shortcuts.htm +0 -0
  543. data/{public → rails}/assets/tinymce/themes/advanced/skins/default/content.css +0 -0
  544. data/{public → rails}/assets/tinymce/themes/advanced/skins/default/dialog.css +0 -0
  545. data/{public → rails}/assets/tinymce/themes/advanced/skins/default/img/buttons.png +0 -0
  546. data/{public → rails}/assets/tinymce/themes/advanced/skins/default/img/items.gif +0 -0
  547. data/{public → rails}/assets/tinymce/themes/advanced/skins/default/img/menu_arrow.gif +0 -0
  548. data/{public → rails}/assets/tinymce/themes/advanced/skins/default/img/menu_check.gif +0 -0
  549. data/{public → rails}/assets/tinymce/themes/advanced/skins/default/img/progress.gif +0 -0
  550. data/{public → rails}/assets/tinymce/themes/advanced/skins/default/img/tabs.gif +0 -0
  551. data/{public → rails}/assets/tinymce/themes/advanced/skins/default/ui.css +0 -0
  552. data/{public → rails}/assets/tinymce/themes/advanced/skins/highcontrast/content.css +0 -0
  553. data/{public → rails}/assets/tinymce/themes/advanced/skins/highcontrast/dialog.css +0 -0
  554. data/{public → rails}/assets/tinymce/themes/advanced/skins/highcontrast/ui.css +0 -0
  555. data/{public → rails}/assets/tinymce/themes/advanced/skins/o2k7/content.css +0 -0
  556. data/{public → rails}/assets/tinymce/themes/advanced/skins/o2k7/dialog.css +0 -0
  557. data/{public → rails}/assets/tinymce/themes/advanced/skins/o2k7/img/button_bg.png +0 -0
  558. data/{public → rails}/assets/tinymce/themes/advanced/skins/o2k7/img/button_bg_black.png +0 -0
  559. data/{public → rails}/assets/tinymce/themes/advanced/skins/o2k7/img/button_bg_silver.png +0 -0
  560. data/{public → rails}/assets/tinymce/themes/advanced/skins/o2k7/ui.css +0 -0
  561. data/{public → rails}/assets/tinymce/themes/advanced/skins/o2k7/ui_black.css +0 -0
  562. data/{public → rails}/assets/tinymce/themes/advanced/skins/o2k7/ui_silver.css +0 -0
  563. data/{public → rails}/assets/tinymce/themes/advanced/source_editor.htm +0 -0
  564. data/{public → rails}/assets/tinymce/themes/simple/editor_template.js +0 -0
  565. data/{public → rails}/assets/tinymce/themes/simple/editor_template_src.js +0 -0
  566. data/{public → rails}/assets/tinymce/themes/simple/img/icons.gif +0 -0
  567. data/{public → rails}/assets/tinymce/themes/simple/langs/en.js +0 -0
  568. data/{public → rails}/assets/tinymce/themes/simple/skins/default/content.css +0 -0
  569. data/{public → rails}/assets/tinymce/themes/simple/skins/default/ui.css +0 -0
  570. data/{public → rails}/assets/tinymce/themes/simple/skins/o2k7/content.css +0 -0
  571. data/{public → rails}/assets/tinymce/themes/simple/skins/o2k7/img/button_bg.png +0 -0
  572. data/{public → rails}/assets/tinymce/themes/simple/skins/o2k7/ui.css +0 -0
  573. data/{public → rails}/assets/tinymce/tiny_mce.js +0 -0
  574. data/{public → rails}/assets/tinymce/tiny_mce_jquery.js +0 -0
  575. data/{public → rails}/assets/tinymce/tiny_mce_jquery_src.js +0 -0
  576. data/{public → rails}/assets/tinymce/tiny_mce_popup.js +0 -0
  577. data/{public → rails}/assets/tinymce/tiny_mce_src.js +0 -0
  578. data/{public → rails}/assets/tinymce/utils/editable_selects.js +0 -0
  579. data/{public → rails}/assets/tinymce/utils/form_utils.js +0 -0
  580. data/{public → rails}/assets/tinymce/utils/mctabs.js +0 -0
  581. data/{public → rails}/assets/tinymce/utils/validate.js +0 -0
  582. data/{app → rails}/controllers/card_controller.rb +23 -21
  583. data/{lib/wagn/config/routes.rb → rails/engine-routes.rb} +2 -6
  584. data/spec/controllers/card_controller_spec.rb +8 -3
  585. data/spec/controllers/location_spec.rb +3 -0
  586. data/test/script/run_engine_deck.sh +47 -0
  587. data/test/script/run_mig.sh +29 -0
  588. data/test/test_helper.rb +1 -1
  589. data/wagn.gemspec +4 -26
  590. metadata +564 -1250
  591. data/.gitignore +0 -23
  592. data/.simplecov +0 -28
  593. data/.tm_properties +0 -3
  594. data/CONTRIBUTING.rdoc +0 -24
  595. data/JASMINE_RAILS_TEST.md +0 -16
  596. data/README.rdoc +0 -95
  597. data/VERSION +0 -1
  598. data/db/bootstrap/card_actions.yml +0 -3613
  599. data/db/bootstrap/card_acts.yml +0 -7
  600. data/db/bootstrap/card_changes.yml +0 -10906
  601. data/db/bootstrap/card_references.yml +0 -3830
  602. data/db/bootstrap/cards.yml +0 -9876
  603. data/db/migrate/20110511221913_require_earlier_migrations.rb +0 -17
  604. data/db/migrate/20120105203350_require_1_8_migrations.rb +0 -15
  605. data/db/migrate/20121111025347_require_1_10_migrations.rb +0 -15
  606. data/db/migrate/20121118114000_split_link_type.rb +0 -16
  607. data/db/migrate/20121118115000_update_link_type.rb +0 -19
  608. data/db/migrate/20130106052640_table_cleanup.rb +0 -25
  609. data/db/migrate/20130109015336_trunk_left.rb +0 -14
  610. data/db/migrate/20130411210957_update_codenames.rb +0 -14
  611. data/db/migrate/20140822073704_create_new_revision_tables.rb +0 -43
  612. data/db/migrate/20141001105348_move_revisions_to_actions.rb +0 -62
  613. data/db/migrate/20141121172918_rename_card_migration_table.rb +0 -15
  614. data/db/migrate/20141216053032_better_index_names.rb +0 -24
  615. data/db/migrate_core_cards/20130411191151_renaming_for_menu.rb +0 -49
  616. data/db/migrate_core_cards/20130411211600_delete_old_related_tab_cards.rb +0 -18
  617. data/db/migrate_core_cards/20130419215612_import_help_text.rb +0 -13
  618. data/db/migrate_core_cards/20130823192433_add_style_cards.rb +0 -87
  619. data/db/migrate_core_cards/20130910183318_move_styles_to_content.rb +0 -11
  620. data/db/migrate_core_cards/20130920214038_jsonize_tinymce.rb +0 -15
  621. data/db/migrate_core_cards/20130920291703_update_stylesheets.rb +0 -18
  622. data/db/migrate_core_cards/20130927191728_account_events.rb +0 -21
  623. data/db/migrate_core_cards/20131016172445_common_css_patch.rb +0 -12
  624. data/db/migrate_core_cards/20140110193325_reset_account_request_type.rb +0 -11
  625. data/db/migrate_core_cards/20140307231621_user_data_to_cards.rb +0 -73
  626. data/db/migrate_core_cards/20140317035504_account_requests_to_signups.rb +0 -51
  627. data/db/migrate_core_cards/20140512155840_add_script_cards.rb +0 -83
  628. data/db/migrate_core_cards/20140629222005_add_email_cards.rb +0 -137
  629. data/db/migrate_core_cards/20140725180118_config_card_updates.rb +0 -9
  630. data/db/migrate_core_cards/20141111083921_delete_machine_output.rb +0 -9
  631. data/db/migrate_core_cards/20141115034214_config_descriptions_etc.rb +0 -14
  632. data/db/migrate_core_cards/20141119001955_make_symlinks_relative.rb +0 -15
  633. data/db/migrate_core_cards/20141120120605_fix_notification_html_message.rb +0 -10
  634. data/db/migrate_core_cards/20141204061304_watchers_to_following.rb +0 -38
  635. data/db/migrate_core_cards/20141208132416_partial_reference_type.rb +0 -7
  636. data/db/migrate_core_cards/20141208162106_add_ace_script.rb +0 -12
  637. data/db/migrate_core_cards/20141230204340_uri_codename.rb +0 -13
  638. data/db/migrate_core_cards/data/1.11_help_text.json +0 -410
  639. data/db/migrate_core_cards/data/1.12_stylesheets/classic_cards.scss +0 -101
  640. data/db/migrate_core_cards/data/1.12_stylesheets/common.scss +0 -226
  641. data/db/migrate_core_cards/data/1.12_stylesheets/right_sidebar.scss +0 -27
  642. data/db/migrate_core_cards/data/1.12_stylesheets/traditional.scss +0 -152
  643. data/db/migrate_core_cards/data/1.13_config_text.json +0 -32
  644. data/db/migrate_core_cards/data/1.14_config_descriptions_etc.json +0 -77
  645. data/db/migrate_core_cards/data/mailer/follower_notification_email.html +0 -9
  646. data/db/migrate_core_cards/data/mailer/follower_notification_email.txt +0 -11
  647. data/db/migrate_core_cards/data/mailer/mail_config.json +0 -22
  648. data/db/migrate_core_cards/data/mailer/password_reset_email.html +0 -10
  649. data/db/migrate_core_cards/data/mailer/password_reset_email.txt +0 -11
  650. data/db/migrate_core_cards/data/mailer/signup_alert_email.html +0 -7
  651. data/db/migrate_core_cards/data/mailer/signup_alert_email.txt +0 -5
  652. data/db/migrate_core_cards/data/mailer/verification_email.html +0 -9
  653. data/db/migrate_core_cards/data/mailer/verification_email.txt +0 -8
  654. data/db/schema.rb +0 -128
  655. data/db/seeds.rb +0 -8
  656. data/db/version.txt +0 -1
  657. data/db/version_core_cards.txt +0 -1
  658. data/lib/card.rb +0 -41
  659. data/lib/card/act.rb +0 -60
  660. data/lib/card/action.rb +0 -195
  661. data/lib/card/active_record_ext.rb +0 -77
  662. data/lib/card/auth.rb +0 -181
  663. data/lib/card/change.rb +0 -29
  664. data/lib/card/chunk.rb +0 -104
  665. data/lib/card/codename.rb +0 -70
  666. data/lib/card/content.rb +0 -211
  667. data/lib/card/core_ext.rb +0 -74
  668. data/lib/card/diff.rb +0 -429
  669. data/lib/card/env.rb +0 -54
  670. data/lib/card/exceptions.rb +0 -41
  671. data/lib/card/format.rb +0 -549
  672. data/lib/card/generators/card_migration/USAGE +0 -24
  673. data/lib/card/generators/card_migration/card_migration_generator.rb +0 -31
  674. data/lib/card/generators/card_migration/templates/card_migration.erb +0 -10
  675. data/lib/card/generators/format/USAGE +0 -9
  676. data/lib/card/generators/format/format_generator.rb +0 -8
  677. data/lib/card/generators/format/templates/format_spec_template.erb +0 -5
  678. data/lib/card/generators/format/templates/format_template.erb +0 -3
  679. data/lib/card/generators/set/USAGE +0 -16
  680. data/lib/card/generators/set/set_generator.rb +0 -22
  681. data/lib/card/generators/set/templates/set_spec_template.erb +0 -5
  682. data/lib/card/generators/set/templates/set_template.erb +0 -1
  683. data/lib/card/loader.rb +0 -149
  684. data/lib/card/mailer.rb +0 -37
  685. data/lib/card/name.rb +0 -39
  686. data/lib/card/query.rb +0 -78
  687. data/lib/card/query/card_clause.rb +0 -525
  688. data/lib/card/query/clause.rb +0 -21
  689. data/lib/card/query/ref_clause.rb +0 -47
  690. data/lib/card/query/value_clause.rb +0 -65
  691. data/lib/card/reference.rb +0 -62
  692. data/lib/card/set.rb +0 -367
  693. data/lib/card/set_pattern.rb +0 -168
  694. data/lib/wagn/cache.rb +0 -185
  695. data/lib/wagn/config/initializers/01_init_ruby_extensions.rb +0 -7
  696. data/lib/wagn/config/initializers/inflections.rb +0 -13
  697. data/lib/wagn/config/initializers/mime_types.rb +0 -13
  698. data/lib/wagn/config/initializers/notification.rb +0 -4
  699. data/lib/wagn/config/initializers/paperclip.rb +0 -1
  700. data/lib/wagn/config/initializers/recaptcha.rb +0 -6
  701. data/lib/wagn/config/initializers/uuid_state_file.rb +0 -3
  702. data/lib/wagn/core_migration.rb +0 -5
  703. data/lib/wagn/log.rb +0 -441
  704. data/lib/wagn/migration.rb +0 -151
  705. data/lib/wagn/spec_helper.rb +0 -59
  706. data/lib/wagn/version.rb +0 -33
  707. data/mod/01_core/chunk/include.rb +0 -85
  708. data/mod/01_core/chunk/link.rb +0 -87
  709. data/mod/01_core/chunk/literal.rb +0 -24
  710. data/mod/01_core/chunk/reference.rb +0 -53
  711. data/mod/01_core/chunk/uri.rb +0 -135
  712. data/mod/01_core/format/data_format.rb +0 -2
  713. data/mod/01_core/format/html_format.rb +0 -130
  714. data/mod/01_core/format/text_format.rb +0 -10
  715. data/mod/01_core/layout/blank.html +0 -5
  716. data/mod/01_core/layout/default.html +0 -20
  717. data/mod/01_core/layout/noside.html +0 -16
  718. data/mod/01_core/layout/pre.html +0 -2
  719. data/mod/01_core/layout/simple.html +0 -5
  720. data/mod/01_core/set/all/active_card.rb +0 -35
  721. data/mod/01_core/set/all/collection.rb +0 -136
  722. data/mod/01_core/set/all/content.rb +0 -168
  723. data/mod/01_core/set/all/erb.rb +0 -11
  724. data/mod/01_core/set/all/fetch.rb +0 -228
  725. data/mod/01_core/set/all/haml.rb +0 -7
  726. data/mod/01_core/set/all/initialize.rb +0 -49
  727. data/mod/01_core/set/all/name.rb +0 -267
  728. data/mod/01_core/set/all/notify.rb +0 -215
  729. data/mod/01_core/set/all/pattern.rb +0 -56
  730. data/mod/01_core/set/all/permissions.rb +0 -260
  731. data/mod/01_core/set/all/phases.rb +0 -186
  732. data/mod/01_core/set/all/references.rb +0 -118
  733. data/mod/01_core/set/all/rules.rb +0 -124
  734. data/mod/01_core/set/all/states.rb +0 -16
  735. data/mod/01_core/set/all/templating.rb +0 -120
  736. data/mod/01_core/set/all/tracked_attributes.rb +0 -114
  737. data/mod/01_core/set/all/trash.rb +0 -50
  738. data/mod/01_core/set/all/type.rb +0 -85
  739. data/mod/01_core/set/all/utils.rb +0 -94
  740. data/mod/01_core/set_pattern/01_all.rb +0 -7
  741. data/mod/01_core/set_pattern/02_all_plus.rb +0 -9
  742. data/mod/01_core/set_pattern/03_type.rb +0 -19
  743. data/mod/01_core/set_pattern/04_star.rb +0 -11
  744. data/mod/01_core/set_pattern/05_rstar.rb +0 -13
  745. data/mod/01_core/set_pattern/06_right.rb +0 -16
  746. data/mod/01_core/set_pattern/07_type_plus_right.rb +0 -19
  747. data/mod/01_core/set_pattern/08_self.rb +0 -15
  748. data/mod/01_core/spec/chunk/literal_spec.rb +0 -14
  749. data/mod/01_core/spec/chunk/uri_spec.rb +0 -292
  750. data/mod/01_core/spec/format/data_format_spec.rb +0 -5
  751. data/mod/01_core/spec/format/html_format_spec.rb +0 -140
  752. data/mod/01_core/spec/format/text_format_spec.rb +0 -5
  753. data/mod/01_core/spec/set/all/active_card_spec.rb +0 -5
  754. data/mod/01_core/spec/set/all/attribute_tracking_spec.rb +0 -21
  755. data/mod/01_core/spec/set/all/collection_spec.rb +0 -65
  756. data/mod/01_core/spec/set/all/content_spec.rb +0 -15
  757. data/mod/01_core/spec/set/all/fetch_spec.rb +0 -205
  758. data/mod/01_core/spec/set/all/initialize_spec.rb +0 -58
  759. data/mod/01_core/spec/set/all/name_spec.rb +0 -61
  760. data/mod/01_core/spec/set/all/notify_spec.rb +0 -199
  761. data/mod/01_core/spec/set/all/pattern_spec.rb +0 -81
  762. data/mod/01_core/spec/set/all/permissions_spec.rb +0 -505
  763. data/mod/01_core/spec/set/all/phases_spec.rb +0 -6
  764. data/mod/01_core/spec/set/all/references_spec.rb +0 -8
  765. data/mod/01_core/spec/set/all/rules2_spec.rb +0 -250
  766. data/mod/01_core/spec/set/all/rules_spec.rb +0 -81
  767. data/mod/01_core/spec/set/all/states_spec.rb +0 -5
  768. data/mod/01_core/spec/set/all/templating_spec.rb +0 -111
  769. data/mod/01_core/spec/set/all/tracked_attributes_spec.rb +0 -328
  770. data/mod/01_core/spec/set/all/trash_spec.rb +0 -34
  771. data/mod/01_core/spec/set/all/type_spec.rb +0 -71
  772. data/mod/01_core/spec/set/all/utils_spec.rb +0 -5
  773. data/mod/02_basic_types/format/css_format.rb +0 -6
  774. data/mod/02_basic_types/format/csv_format.rb +0 -6
  775. data/mod/02_basic_types/format/file_format.rb +0 -3
  776. data/mod/02_basic_types/format/js_format.rb +0 -6
  777. data/mod/02_basic_types/format/json_format.rb +0 -6
  778. data/mod/02_basic_types/format/rss_format.rb +0 -11
  779. data/mod/02_basic_types/format/xml_format.rb +0 -6
  780. data/mod/02_basic_types/set/all/all_css.rb +0 -42
  781. data/mod/02_basic_types/set/all/all_csv.rb +0 -52
  782. data/mod/02_basic_types/set/all/all_js.rb +0 -7
  783. data/mod/02_basic_types/set/all/base.rb +0 -122
  784. data/mod/02_basic_types/set/all/file.rb +0 -13
  785. data/mod/02_basic_types/set/all/json.rb +0 -66
  786. data/mod/02_basic_types/set/all/rss.rb +0 -72
  787. data/mod/02_basic_types/set/all/text.rb +0 -8
  788. data/mod/02_basic_types/set/type/plain_text.rb +0 -10
  789. data/mod/02_basic_types/set/type/pointer.rb +0 -281
  790. data/mod/02_basic_types/spec/set/all/all_css_spec.rb +0 -10
  791. data/mod/02_basic_types/spec/set/all/all_csv_spec.rb +0 -9
  792. data/mod/02_basic_types/spec/set/all/base_spec.rb +0 -57
  793. data/mod/02_basic_types/spec/set/all/file_spec.rb +0 -5
  794. data/mod/02_basic_types/spec/set/all/json_spec.rb +0 -26
  795. data/mod/02_basic_types/spec/set/all/rss_spec.rb +0 -8
  796. data/mod/02_basic_types/spec/set/all/text_spec.rb +0 -5
  797. data/mod/02_basic_types/spec/set/type/plain_text_spec.rb +0 -11
  798. data/mod/02_basic_types/spec/set/type/pointer_spec.rb +0 -103
  799. data/mod/03_machines/lib/card/machine.rb +0 -185
  800. data/mod/03_machines/lib/card/machine_input.rb +0 -40
  801. data/mod/03_machines/lib/javascript/ace.js +0 -18204
  802. data/mod/03_machines/lib/javascript/html5shiv-printshiv.js +0 -1
  803. data/mod/03_machines/lib/javascript/jquery-ui.js +0 -14913
  804. data/mod/03_machines/lib/javascript/jquery.autosize.js +0 -274
  805. data/mod/03_machines/lib/javascript/jquery.fileupload.js +0 -1114
  806. data/mod/03_machines/lib/javascript/jquery.iframe-transport.js +0 -185
  807. data/mod/03_machines/lib/javascript/jquery.js +0 -4
  808. data/mod/03_machines/lib/javascript/jquery.ui.autocomplete.html.js +0 -41
  809. data/mod/03_machines/lib/javascript/jquery_ujs.js +0 -469
  810. data/mod/03_machines/lib/javascript/jquerymobile.js +0 -15454
  811. data/mod/03_machines/lib/javascript/theme-textmate.js +0 -130
  812. data/mod/03_machines/lib/javascript/tinymce.js +0 -13
  813. data/mod/03_machines/lib/javascript/wagn.js.coffee +0 -318
  814. data/mod/03_machines/lib/javascript/wagn_menu.js +0 -67
  815. data/mod/03_machines/lib/javascript/wagn_mod.js.coffee +0 -404
  816. data/mod/03_machines/lib/stylesheets/functional.scss +0 -188
  817. data/mod/03_machines/lib/stylesheets/jquery-ui-smoothness.css +0 -1178
  818. data/mod/03_machines/lib/stylesheets/standard.scss +0 -719
  819. data/mod/03_machines/set/right/machine_output.rb +0 -20
  820. data/mod/03_machines/set/self/script_ace.rb +0 -8
  821. data/mod/03_machines/set/self/script_card_menu.rb +0 -8
  822. data/mod/03_machines/set/self/script_html5shiv_printshiv.rb +0 -7
  823. data/mod/03_machines/set/self/script_jquery.rb +0 -8
  824. data/mod/03_machines/set/self/script_jquery_helper.rb +0 -14
  825. data/mod/03_machines/set/self/script_slot.rb +0 -9
  826. data/mod/03_machines/set/self/script_tinymce.rb +0 -8
  827. data/mod/03_machines/set/self/style_functional.rb +0 -8
  828. data/mod/03_machines/set/self/style_jquery_ui_smoothness.rb +0 -8
  829. data/mod/03_machines/set/self/style_standard.rb +0 -8
  830. data/mod/03_machines/set/type/coffee_script.rb +0 -58
  831. data/mod/03_machines/set/type/css.rb +0 -45
  832. data/mod/03_machines/set/type/java_script.rb +0 -38
  833. data/mod/03_machines/set/type/scss.rb +0 -23
  834. data/mod/03_machines/set/type/skin.rb +0 -12
  835. data/mod/03_machines/spec/lib/shared_machine_examples.rb +0 -174
  836. data/mod/03_machines/spec/lib/shared_machine_input_examples.rb +0 -64
  837. data/mod/03_machines/spec/set/right/machine_output_spec.rb +0 -5
  838. data/mod/03_machines/spec/set/self/style_functional_spec.rb +0 -5
  839. data/mod/03_machines/spec/set/self/style_jquery_ui_smoothness_spec.rb +0 -5
  840. data/mod/03_machines/spec/set/self/style_standard_spec.rb +0 -5
  841. data/mod/03_machines/spec/set/type/coffeescript_spec.rb +0 -26
  842. data/mod/03_machines/spec/set/type/css_spec.rb +0 -33
  843. data/mod/03_machines/spec/set/type/javascript_spec.rb +0 -26
  844. data/mod/03_machines/spec/set/type/scss_spec.rb +0 -56
  845. data/mod/03_machines/spec/set/type/skin_spec.rb +0 -70
  846. data/mod/04_settings/lib/card/setting.rb +0 -57
  847. data/mod/04_settings/set/right/add_help.rb +0 -11
  848. data/mod/04_settings/set/right/comment.rb +0 -91
  849. data/mod/04_settings/set/right/create.rb +0 -2
  850. data/mod/04_settings/set/right/default.rb +0 -3
  851. data/mod/04_settings/set/right/delete.rb +0 -4
  852. data/mod/04_settings/set/right/help.rb +0 -3
  853. data/mod/04_settings/set/right/read.rb +0 -2
  854. data/mod/04_settings/set/right/script.rb +0 -10
  855. data/mod/04_settings/set/right/structure.rb +0 -4
  856. data/mod/04_settings/set/right/style.rb +0 -10
  857. data/mod/04_settings/set/right/update.rb +0 -2
  858. data/mod/04_settings/set/self/accountable.rb +0 -2
  859. data/mod/04_settings/set/self/add_help.rb +0 -2
  860. data/mod/04_settings/set/self/autoname.rb +0 -2
  861. data/mod/04_settings/set/self/captcha.rb +0 -2
  862. data/mod/04_settings/set/self/comment.rb +0 -2
  863. data/mod/04_settings/set/self/create.rb +0 -2
  864. data/mod/04_settings/set/self/default.rb +0 -2
  865. data/mod/04_settings/set/self/delete.rb +0 -2
  866. data/mod/04_settings/set/self/help.rb +0 -2
  867. data/mod/04_settings/set/self/input.rb +0 -2
  868. data/mod/04_settings/set/self/layout.rb +0 -2
  869. data/mod/04_settings/set/self/on_create.rb +0 -2
  870. data/mod/04_settings/set/self/on_delete.rb +0 -2
  871. data/mod/04_settings/set/self/on_update.rb +0 -2
  872. data/mod/04_settings/set/self/options.rb +0 -2
  873. data/mod/04_settings/set/self/options_label.rb +0 -2
  874. data/mod/04_settings/set/self/read.rb +0 -2
  875. data/mod/04_settings/set/self/script.rb +0 -2
  876. data/mod/04_settings/set/self/structure.rb +0 -2
  877. data/mod/04_settings/set/self/style.rb +0 -2
  878. data/mod/04_settings/set/self/table_of_contents.rb +0 -2
  879. data/mod/04_settings/set/self/thanks.rb +0 -2
  880. data/mod/04_settings/set/self/update.rb +0 -2
  881. data/mod/04_settings/set/type/setting.rb +0 -81
  882. data/mod/04_settings/spec/set/right/add_help_spec.rb +0 -5
  883. data/mod/04_settings/spec/set/right/comment_spec.rb +0 -41
  884. data/mod/04_settings/spec/set/right/create_spec.rb +0 -10
  885. data/mod/04_settings/spec/set/right/default_spec.rb +0 -5
  886. data/mod/04_settings/spec/set/right/delete_spec.rb +0 -5
  887. data/mod/04_settings/spec/set/right/help_spec.rb +0 -5
  888. data/mod/04_settings/spec/set/right/read_spec.rb +0 -5
  889. data/mod/04_settings/spec/set/right/script_spec.rb +0 -24
  890. data/mod/04_settings/spec/set/right/structure_spec.rb +0 -17
  891. data/mod/04_settings/spec/set/right/style_spec.rb +0 -29
  892. data/mod/04_settings/spec/set/right/update_spec.rb +0 -5
  893. data/mod/04_settings/spec/set/type/setting_spec.rb +0 -10
  894. data/mod/05_email/format/email_html_format.rb +0 -9
  895. data/mod/05_email/format/email_text_format.rb +0 -11
  896. data/mod/05_email/set/all/email_html.rb +0 -5
  897. data/mod/05_email/set/all/email_text.rb +0 -5
  898. data/mod/05_email/set/right/bcc.rb +0 -45
  899. data/mod/05_email/set/right/cc.rb +0 -3
  900. data/mod/05_email/set/right/from.rb +0 -3
  901. data/mod/05_email/set/right/html_message.rb +0 -3
  902. data/mod/05_email/set/right/to.rb +0 -3
  903. data/mod/05_email/set/type/email_template.rb +0 -113
  904. data/mod/05_standard/file/103/icon-6566.ico +0 -0
  905. data/mod/05_standard/file/103/large-6566.ico +0 -0
  906. data/mod/05_standard/file/103/medium-6566.ico +0 -0
  907. data/mod/05_standard/file/103/original-6566.ico +0 -0
  908. data/mod/05_standard/file/103/small-6566.ico +0 -0
  909. data/mod/05_standard/file/79/icon-6556.png +0 -0
  910. data/mod/05_standard/file/79/large-6556.png +0 -0
  911. data/mod/05_standard/file/79/medium-6556.png +0 -0
  912. data/mod/05_standard/file/79/original-6556.png +0 -0
  913. data/mod/05_standard/file/79/small-6556.png +0 -0
  914. data/mod/05_standard/file/790/icon-6419.png +0 -0
  915. data/mod/05_standard/file/790/large-6419.png +0 -0
  916. data/mod/05_standard/file/790/medium-6419.png +0 -0
  917. data/mod/05_standard/file/790/original-6419.png +0 -0
  918. data/mod/05_standard/file/790/small-6419.png +0 -0
  919. data/mod/05_standard/set/all/account.rb +0 -67
  920. data/mod/05_standard/set/all/attach.rb +0 -142
  921. data/mod/05_standard/set/all/comment.rb +0 -39
  922. data/mod/05_standard/set/all/error.rb +0 -210
  923. data/mod/05_standard/set/all/event_viz.rb +0 -62
  924. data/mod/05_standard/set/all/follow.rb +0 -51
  925. data/mod/05_standard/set/all/history.rb +0 -303
  926. data/mod/05_standard/set/all/links.rb +0 -102
  927. data/mod/05_standard/set/all/observer.rb +0 -27
  928. data/mod/05_standard/set/all/rich_html/content.rb +0 -175
  929. data/mod/05_standard/set/all/rich_html/editing.rb +0 -145
  930. data/mod/05_standard/set/all/rich_html/form.rb +0 -211
  931. data/mod/05_standard/set/all/rich_html/header.rb +0 -58
  932. data/mod/05_standard/set/all/rich_html/wrapper.rb +0 -74
  933. data/mod/05_standard/set/right/account.rb +0 -177
  934. data/mod/05_standard/set/right/email.rb +0 -52
  935. data/mod/05_standard/set/right/password.rb +0 -39
  936. data/mod/05_standard/set/right/salt.rb +0 -5
  937. data/mod/05_standard/set/right/stats.rb +0 -35
  938. data/mod/05_standard/set/right/status.rb +0 -9
  939. data/mod/05_standard/set/right/token.rb +0 -5
  940. data/mod/05_standard/set/right/when_created.rb +0 -5
  941. data/mod/05_standard/set/right/when_last_edited.rb +0 -5
  942. data/mod/05_standard/set/rstar/rules.rb +0 -251
  943. data/mod/05_standard/set/self/account_links.rb +0 -27
  944. data/mod/05_standard/set/self/alerts.rb +0 -5
  945. data/mod/05_standard/set/self/all.rb +0 -21
  946. data/mod/05_standard/set/self/foot.rb +0 -8
  947. data/mod/05_standard/set/self/head.rb +0 -122
  948. data/mod/05_standard/set/self/navbox.rb +0 -20
  949. data/mod/05_standard/set/self/now.rb +0 -6
  950. data/mod/05_standard/set/self/recent.rb +0 -48
  951. data/mod/05_standard/set/self/search.rb +0 -43
  952. data/mod/05_standard/set/self/signin.rb +0 -121
  953. data/mod/05_standard/set/self/stats.rb +0 -91
  954. data/mod/05_standard/set/self/version.rb +0 -8
  955. data/mod/05_standard/set/type/basic.rb +0 -46
  956. data/mod/05_standard/set/type/cardtype.rb +0 -42
  957. data/mod/05_standard/set/type/date.rb +0 -8
  958. data/mod/05_standard/set/type/file.rb +0 -85
  959. data/mod/05_standard/set/type/html.rb +0 -22
  960. data/mod/05_standard/set/type/image.rb +0 -67
  961. data/mod/05_standard/set/type/layout_type.rb +0 -14
  962. data/mod/05_standard/set/type/number.rb +0 -19
  963. data/mod/05_standard/set/type/phrase.rb +0 -3
  964. data/mod/05_standard/set/type/search_type.rb +0 -243
  965. data/mod/05_standard/set/type/set.rb +0 -118
  966. data/mod/05_standard/set/type/signup.rb +0 -144
  967. data/mod/05_standard/set/type/toggle.rb +0 -12
  968. data/mod/05_standard/set/type/uri.rb +0 -11
  969. data/mod/05_standard/set/type/user.rb +0 -62
  970. data/mod/05_standard/spec/chunk/include_spec.rb +0 -186
  971. data/mod/05_standard/spec/chunk/link_spec.rb +0 -61
  972. data/mod/05_standard/spec/format/css_format_spec.rb +0 -5
  973. data/mod/05_standard/spec/format/csv_format_spec.rb +0 -5
  974. data/mod/05_standard/spec/format/email_html_format_spec.rb +0 -5
  975. data/mod/05_standard/spec/format/file_format_spec.rb +0 -5
  976. data/mod/05_standard/spec/format/js_format_spec.rb +0 -3
  977. data/mod/05_standard/spec/format/json_format_spec.rb +0 -5
  978. data/mod/05_standard/spec/format/rss_format_spec.rb +0 -5
  979. data/mod/05_standard/spec/format/xml_format_spec.rb +0 -5
  980. data/mod/05_standard/spec/set/all/account_spec.rb +0 -137
  981. data/mod/05_standard/spec/set/all/attach_spec.rb +0 -9
  982. data/mod/05_standard/spec/set/all/comment_spec.rb +0 -5
  983. data/mod/05_standard/spec/set/all/email_html_spec.rb +0 -15
  984. data/mod/05_standard/spec/set/all/error_spec.rb +0 -7
  985. data/mod/05_standard/spec/set/all/event_viz_spec.rb +0 -9
  986. data/mod/05_standard/spec/set/all/follow_spec.rb +0 -83
  987. data/mod/05_standard/spec/set/all/history_spec.rb +0 -173
  988. data/mod/05_standard/spec/set/all/observer_spec.rb +0 -74
  989. data/mod/05_standard/spec/set/all/rich_html/form_spec.rb +0 -41
  990. data/mod/05_standard/spec/set/all/rich_html/wrapper_spec.rb +0 -26
  991. data/mod/05_standard/spec/set/right/account_spec.rb +0 -162
  992. data/mod/05_standard/spec/set/right/email_spec.rb +0 -55
  993. data/mod/05_standard/spec/set/right/password_spec.rb +0 -45
  994. data/mod/05_standard/spec/set/right/salt_spec.rb +0 -5
  995. data/mod/05_standard/spec/set/right/stats_spec.rb +0 -13
  996. data/mod/05_standard/spec/set/right/status_spec.rb +0 -5
  997. data/mod/05_standard/spec/set/right/token_spec.rb +0 -5
  998. data/mod/05_standard/spec/set/right/when_created_spec.rb +0 -7
  999. data/mod/05_standard/spec/set/right/when_last_edited_spec.rb +0 -7
  1000. data/mod/05_standard/spec/set/rstar/rules_spec.rb +0 -25
  1001. data/mod/05_standard/spec/set/self/account_links_spec.rb +0 -9
  1002. data/mod/05_standard/spec/set/self/alerts_spec.rb +0 -5
  1003. data/mod/05_standard/spec/set/self/all_spec.rb +0 -48
  1004. data/mod/05_standard/spec/set/self/foot_spec.rb +0 -5
  1005. data/mod/05_standard/spec/set/self/head_spec.rb +0 -17
  1006. data/mod/05_standard/spec/set/self/navbox_spec.rb +0 -7
  1007. data/mod/05_standard/spec/set/self/now_spec.rb +0 -7
  1008. data/mod/05_standard/spec/set/self/recent_spec.rb +0 -5
  1009. data/mod/05_standard/spec/set/self/search_spec.rb +0 -5
  1010. data/mod/05_standard/spec/set/self/signin_spec.rb +0 -73
  1011. data/mod/05_standard/spec/set/self/stats_spec.rb +0 -12
  1012. data/mod/05_standard/spec/set/self/version_spec.rb +0 -7
  1013. data/mod/05_standard/spec/set/type/basic_spec.rb +0 -5
  1014. data/mod/05_standard/spec/set/type/cardtype_spec.rb +0 -5
  1015. data/mod/05_standard/spec/set/type/date_spec.rb +0 -7
  1016. data/mod/05_standard/spec/set/type/email_template_spec.rb +0 -199
  1017. data/mod/05_standard/spec/set/type/file_spec.rb +0 -5
  1018. data/mod/05_standard/spec/set/type/html_spec.rb +0 -23
  1019. data/mod/05_standard/spec/set/type/image_spec.rb +0 -16
  1020. data/mod/05_standard/spec/set/type/layout_type_spec.rb +0 -7
  1021. data/mod/05_standard/spec/set/type/number_spec.rb +0 -7
  1022. data/mod/05_standard/spec/set/type/phrase_spec.rb +0 -7
  1023. data/mod/05_standard/spec/set/type/search_type_spec.rb +0 -27
  1024. data/mod/05_standard/spec/set/type/set_spec.rb +0 -26
  1025. data/mod/05_standard/spec/set/type/signup_spec.rb +0 -227
  1026. data/mod/05_standard/spec/set/type/toggle_spec.rb +0 -12
  1027. data/mod/05_standard/spec/set/type/uri_spec.rb +0 -41
  1028. data/mod/05_standard/spec/set/type/user_spec.rb +0 -5
  1029. data/spec/lib/card/action_spec.rb +0 -14
  1030. data/spec/lib/card/auth_spec.rb +0 -17
  1031. data/spec/lib/card/chunk_spec.rb +0 -17
  1032. data/spec/lib/card/codename_spec.rb +0 -25
  1033. data/spec/lib/card/content_spec.rb +0 -314
  1034. data/spec/lib/card/diff_spec.rb +0 -210
  1035. data/spec/lib/card/format_spec.rb +0 -82
  1036. data/spec/lib/card/loader_spec.rb +0 -37
  1037. data/spec/lib/card/name_spec.rb +0 -279
  1038. data/spec/lib/card/query_spec.rb +0 -459
  1039. data/spec/lib/card/reference_spec.rb +0 -213
  1040. data/spec/lib/card/set_pattern_spec.rb +0 -56
  1041. data/spec/lib/card/set_spec.rb +0 -88
  1042. data/spec/lib/wagn/cache_spec.rb +0 -122
  1043. data/spec/lib/wagn/log_spec.rb +0 -262
  1044. data/spec/mailers/mailer_spec.rb +0 -63
  1045. data/spec/models/card/cardtype_spec.rb +0 -216
  1046. data/spec/models/card/create_spec.rb +0 -82
  1047. data/spec/models/card/trash_spec.rb +0 -260
  1048. data/spec/models/card/type_transition_spec.rb +0 -161
  1049. data/spec/models/card/validation_spec.rb +0 -36
  1050. data/spec/models/card_spec.rb +0 -177
  1051. data/spec/spec_helper.rb +0 -129
  1052. data/test/fixtures/.gitkeep +0 -0
  1053. data/test/fixtures/card_actions.yml +0 -4908
  1054. data/test/fixtures/card_acts.yml +0 -685
  1055. data/test/fixtures/card_changes.yml +0 -14683
  1056. data/test/fixtures/card_references.yml +0 -5069
  1057. data/test/fixtures/cards.yml +0 -13271
  1058. data/test/fixtures/mao2.jpg +0 -0
  1059. data/test/fixtures/rails.gif +0 -0
  1060. data/test/seed.rb +0 -170
@@ -1,274 +0,0 @@
1
- /*!
2
- Autosize 1.18.13
3
- license: MIT
4
- http://www.jacklmoore.com/autosize
5
- */
6
- (function ($) {
7
- var
8
- defaults = {
9
- className: 'autosizejs',
10
- id: 'autosizejs',
11
- append: '\n',
12
- callback: false,
13
- resizeDelay: 10,
14
- placeholder: true
15
- },
16
-
17
- // border:0 is unnecessary, but avoids a bug in Firefox on OSX
18
- copy = '<textarea tabindex="-1" style="position:absolute; top:-999px; left:0; right:auto; bottom:auto; border:0; padding: 0; -moz-box-sizing:content-box; -webkit-box-sizing:content-box; box-sizing:content-box; word-wrap:break-word; height:0 !important; min-height:0 !important; overflow:hidden; transition:none; -webkit-transition:none; -moz-transition:none;"/>',
19
-
20
- // line-height is conditionally included because IE7/IE8/old Opera do not return the correct value.
21
- typographyStyles = [
22
- 'fontFamily',
23
- 'fontSize',
24
- 'fontWeight',
25
- 'fontStyle',
26
- 'letterSpacing',
27
- 'textTransform',
28
- 'wordSpacing',
29
- 'textIndent',
30
- 'whiteSpace'
31
- ],
32
-
33
- // to keep track which textarea is being mirrored when adjust() is called.
34
- mirrored,
35
-
36
- // the mirror element, which is used to calculate what size the mirrored element should be.
37
- mirror = $(copy).data('autosize', true)[0];
38
-
39
- // test that line-height can be accurately copied.
40
- mirror.style.lineHeight = '99px';
41
- if ($(mirror).css('lineHeight') === '99px') {
42
- typographyStyles.push('lineHeight');
43
- }
44
- mirror.style.lineHeight = '';
45
-
46
- $.fn.autosize = function (options) {
47
- if (!this.length) {
48
- return this;
49
- }
50
-
51
- options = $.extend({}, defaults, options || {});
52
-
53
- if (mirror.parentNode !== document.body) {
54
- $(document.body).append(mirror);
55
- }
56
-
57
- return this.each(function () {
58
- var
59
- ta = this,
60
- $ta = $(ta),
61
- maxHeight,
62
- minHeight,
63
- boxOffset = 0,
64
- callback = $.isFunction(options.callback),
65
- originalStyles = {
66
- height: ta.style.height,
67
- overflow: ta.style.overflow,
68
- overflowY: ta.style.overflowY,
69
- wordWrap: ta.style.wordWrap,
70
- resize: ta.style.resize
71
- },
72
- timeout,
73
- width = $ta.width(),
74
- taResize = $ta.css('resize');
75
-
76
- if ($ta.data('autosize')) {
77
- // exit if autosize has already been applied, or if the textarea is the mirror element.
78
- return;
79
- }
80
- $ta.data('autosize', true);
81
-
82
- if ($ta.css('box-sizing') === 'border-box' || $ta.css('-moz-box-sizing') === 'border-box' || $ta.css('-webkit-box-sizing') === 'border-box'){
83
- boxOffset = $ta.outerHeight() - $ta.height();
84
- }
85
-
86
- // IE8 and lower return 'auto', which parses to NaN, if no min-height is set.
87
- minHeight = Math.max(parseInt($ta.css('minHeight'), 10) - boxOffset || 0, $ta.height());
88
-
89
- $ta.css({
90
- overflow: 'hidden',
91
- overflowY: 'hidden',
92
- wordWrap: 'break-word' // horizontal overflow is hidden, so break-word is necessary for handling words longer than the textarea width
93
- });
94
-
95
- if (taResize === 'vertical') {
96
- $ta.css('resize','none');
97
- } else if (taResize === 'both') {
98
- $ta.css('resize', 'horizontal');
99
- }
100
-
101
- // The mirror width must exactly match the textarea width, so using getBoundingClientRect because it doesn't round the sub-pixel value.
102
- // window.getComputedStyle, getBoundingClientRect returning a width are unsupported, but also unneeded in IE8 and lower.
103
- function setWidth() {
104
- var width;
105
- var style = window.getComputedStyle ? window.getComputedStyle(ta, null) : false;
106
-
107
- if (style) {
108
-
109
- width = ta.getBoundingClientRect().width;
110
-
111
- if (width === 0 || typeof width !== 'number') {
112
- width = parseInt(style.width,10);
113
- }
114
-
115
- $.each(['paddingLeft', 'paddingRight', 'borderLeftWidth', 'borderRightWidth'], function(i,val){
116
- width -= parseInt(style[val],10);
117
- });
118
- } else {
119
- width = $ta.width();
120
- }
121
-
122
- mirror.style.width = Math.max(width,0) + 'px';
123
- }
124
-
125
- function initMirror() {
126
- var styles = {};
127
-
128
- mirrored = ta;
129
- mirror.className = options.className;
130
- mirror.id = options.id;
131
- maxHeight = parseInt($ta.css('maxHeight'), 10);
132
-
133
- // mirror is a duplicate textarea located off-screen that
134
- // is automatically updated to contain the same text as the
135
- // original textarea. mirror always has a height of 0.
136
- // This gives a cross-browser supported way getting the actual
137
- // height of the text, through the scrollTop property.
138
- $.each(typographyStyles, function(i,val){
139
- styles[val] = $ta.css(val);
140
- });
141
-
142
- $(mirror).css(styles).attr('wrap', $ta.attr('wrap'));
143
-
144
- setWidth();
145
-
146
- // Chrome-specific fix:
147
- // When the textarea y-overflow is hidden, Chrome doesn't reflow the text to account for the space
148
- // made available by removing the scrollbar. This workaround triggers the reflow for Chrome.
149
- if (window.chrome) {
150
- var width = ta.style.width;
151
- ta.style.width = '0px';
152
- var ignore = ta.offsetWidth;
153
- ta.style.width = width;
154
- }
155
- }
156
-
157
- // Using mainly bare JS in this function because it is going
158
- // to fire very often while typing, and needs to very efficient.
159
- function adjust() {
160
- var height, original;
161
-
162
- if (mirrored !== ta) {
163
- initMirror();
164
- } else {
165
- setWidth();
166
- }
167
-
168
- if (!ta.value && options.placeholder) {
169
- // If the textarea is empty, copy the placeholder text into
170
- // the mirror control and use that for sizing so that we
171
- // don't end up with placeholder getting trimmed.
172
- mirror.value = ($ta.attr("placeholder") || '');
173
- } else {
174
- mirror.value = ta.value;
175
- }
176
-
177
- mirror.value += options.append || '';
178
- mirror.style.overflowY = ta.style.overflowY;
179
- original = parseInt(ta.style.height,10);
180
-
181
- // Setting scrollTop to zero is needed in IE8 and lower for the next step to be accurately applied
182
- mirror.scrollTop = 0;
183
-
184
- mirror.scrollTop = 9e4;
185
-
186
- // Using scrollTop rather than scrollHeight because scrollHeight is non-standard and includes padding.
187
- height = mirror.scrollTop;
188
-
189
- if (maxHeight && height > maxHeight) {
190
- ta.style.overflowY = 'scroll';
191
- height = maxHeight;
192
- } else {
193
- ta.style.overflowY = 'hidden';
194
- if (height < minHeight) {
195
- height = minHeight;
196
- }
197
- }
198
-
199
- height += boxOffset;
200
-
201
- if (original !== height) {
202
- ta.style.height = height + 'px';
203
- if (callback) {
204
- options.callback.call(ta,ta);
205
- }
206
- $ta.trigger('autosize.resized');
207
- }
208
- }
209
-
210
- function resize () {
211
- clearTimeout(timeout);
212
- timeout = setTimeout(function(){
213
- var newWidth = $ta.width();
214
-
215
- if (newWidth !== width) {
216
- width = newWidth;
217
- adjust();
218
- }
219
- }, parseInt(options.resizeDelay,10));
220
- }
221
-
222
- if ('onpropertychange' in ta) {
223
- if ('oninput' in ta) {
224
- // Detects IE9. IE9 does not fire onpropertychange or oninput for deletions,
225
- // so binding to onkeyup to catch most of those occasions. There is no way that I
226
- // know of to detect something like 'cut' in IE9.
227
- $ta.on('input.autosize keyup.autosize', adjust);
228
- } else {
229
- // IE7 / IE8
230
- $ta.on('propertychange.autosize', function(){
231
- if(event.propertyName === 'value'){
232
- adjust();
233
- }
234
- });
235
- }
236
- } else {
237
- // Modern Browsers
238
- $ta.on('input.autosize', adjust);
239
- }
240
-
241
- // Set options.resizeDelay to false if using fixed-width textarea elements.
242
- // Uses a timeout and width check to reduce the amount of times adjust needs to be called after window resize.
243
-
244
- if (options.resizeDelay !== false) {
245
- $(window).on('resize.autosize', resize);
246
- }
247
-
248
- // Event for manual triggering if needed.
249
- // Should only be needed when the value of the textarea is changed through JavaScript rather than user input.
250
- $ta.on('autosize.resize', adjust);
251
-
252
- // Event for manual triggering that also forces the styles to update as well.
253
- // Should only be needed if one of typography styles of the textarea change, and the textarea is already the target of the adjust method.
254
- $ta.on('autosize.resizeIncludeStyle', function() {
255
- mirrored = null;
256
- adjust();
257
- });
258
-
259
- $ta.on('autosize.destroy', function(){
260
- mirrored = null;
261
- clearTimeout(timeout);
262
- $(window).off('resize', resize);
263
- $ta
264
- .off('autosize')
265
- .off('.autosize')
266
- .css(originalStyles)
267
- .removeData('autosize');
268
- });
269
-
270
- // Call adjust in case the textarea already contains text.
271
- adjust();
272
- });
273
- };
274
- }(jQuery || $)); // jQuery or jQuery-like library, such as Zepto
@@ -1,1114 +0,0 @@
1
- /*
2
- * jQuery File Upload Plugin 5.19.8
3
- * https://github.com/blueimp/jQuery-File-Upload
4
- *
5
- * Copyright 2010, Sebastian Tschan
6
- * https://blueimp.net
7
- *
8
- * Licensed under the MIT license:
9
- * http://www.opensource.org/licenses/MIT
10
- */
11
-
12
- /*jslint nomen: true, unparam: true, regexp: true */
13
- /*global define, window, document, File, Blob, FormData, location */
14
-
15
- (function (factory) {
16
- 'use strict';
17
- if (typeof define === 'function' && define.amd) {
18
- // Register as an anonymous AMD module:
19
- define([
20
- 'jquery',
21
- 'jquery.ui.widget'
22
- ], factory);
23
- } else {
24
- // Browser globals:
25
- factory(window.jQuery);
26
- }
27
- }(function ($) {
28
- 'use strict';
29
-
30
- // The FileReader API is not actually used, but works as feature detection,
31
- // as e.g. Safari supports XHR file uploads via the FormData API,
32
- // but not non-multipart XHR file uploads:
33
- $.support.xhrFileUpload = !!(window.XMLHttpRequestUpload && window.FileReader);
34
- $.support.xhrFormDataFileUpload = !!window.FormData;
35
-
36
- // The fileupload widget listens for change events on file input fields defined
37
- // via fileInput setting and paste or drop events of the given dropZone.
38
- // In addition to the default jQuery Widget methods, the fileupload widget
39
- // exposes the "add" and "send" methods, to add or directly send files using
40
- // the fileupload API.
41
- // By default, files added via file input selection, paste, drag & drop or
42
- // "add" method are uploaded immediately, but it is possible to override
43
- // the "add" callback option to queue file uploads.
44
- $.widget('blueimp.fileupload', {
45
-
46
- options: {
47
- // The drop target element(s), by the default the complete document.
48
- // Set to null to disable drag & drop support:
49
- dropZone: $(document),
50
- // The paste target element(s), by the default the complete document.
51
- // Set to null to disable paste support:
52
- pasteZone: $(document),
53
- // The file input field(s), that are listened to for change events.
54
- // If undefined, it is set to the file input fields inside
55
- // of the widget element on plugin initialization.
56
- // Set to null to disable the change listener.
57
- fileInput: undefined,
58
- // By default, the file input field is replaced with a clone after
59
- // each input field change event. This is required for iframe transport
60
- // queues and allows change events to be fired for the same file
61
- // selection, but can be disabled by setting the following option to false:
62
- replaceFileInput: true,
63
- // The parameter name for the file form data (the request argument name).
64
- // If undefined or empty, the name property of the file input field is
65
- // used, or "files[]" if the file input name property is also empty,
66
- // can be a string or an array of strings:
67
- paramName: undefined,
68
- // By default, each file of a selection is uploaded using an individual
69
- // request for XHR type uploads. Set to false to upload file
70
- // selections in one request each:
71
- singleFileUploads: true,
72
- // To limit the number of files uploaded with one XHR request,
73
- // set the following option to an integer greater than 0:
74
- limitMultiFileUploads: undefined,
75
- // Set the following option to true to issue all file upload requests
76
- // in a sequential order:
77
- sequentialUploads: false,
78
- // To limit the number of concurrent uploads,
79
- // set the following option to an integer greater than 0:
80
- limitConcurrentUploads: undefined,
81
- // Set the following option to true to force iframe transport uploads:
82
- forceIframeTransport: false,
83
- // Set the following option to the location of a redirect url on the
84
- // origin server, for cross-domain iframe transport uploads:
85
- redirect: undefined,
86
- // The parameter name for the redirect url, sent as part of the form
87
- // data and set to 'redirect' if this option is empty:
88
- redirectParamName: undefined,
89
- // Set the following option to the location of a postMessage window,
90
- // to enable postMessage transport uploads:
91
- postMessage: undefined,
92
- // By default, XHR file uploads are sent as multipart/form-data.
93
- // The iframe transport is always using multipart/form-data.
94
- // Set to false to enable non-multipart XHR uploads:
95
- multipart: true,
96
- // To upload large files in smaller chunks, set the following option
97
- // to a preferred maximum chunk size. If set to 0, null or undefined,
98
- // or the browser does not support the required Blob API, files will
99
- // be uploaded as a whole.
100
- maxChunkSize: undefined,
101
- // When a non-multipart upload or a chunked multipart upload has been
102
- // aborted, this option can be used to resume the upload by setting
103
- // it to the size of the already uploaded bytes. This option is most
104
- // useful when modifying the options object inside of the "add" or
105
- // "send" callbacks, as the options are cloned for each file upload.
106
- uploadedBytes: undefined,
107
- // By default, failed (abort or error) file uploads are removed from the
108
- // global progress calculation. Set the following option to false to
109
- // prevent recalculating the global progress data:
110
- recalculateProgress: true,
111
- // Interval in milliseconds to calculate and trigger progress events:
112
- progressInterval: 100,
113
- // Interval in milliseconds to calculate progress bitrate:
114
- bitrateInterval: 500,
115
-
116
- // Additional form data to be sent along with the file uploads can be set
117
- // using this option, which accepts an array of objects with name and
118
- // value properties, a function returning such an array, a FormData
119
- // object (for XHR file uploads), or a simple object.
120
- // The form of the first fileInput is given as parameter to the function:
121
- formData: function (form) {
122
- return form.serializeArray();
123
- },
124
-
125
- // The add callback is invoked as soon as files are added to the fileupload
126
- // widget (via file input selection, drag & drop, paste or add API call).
127
- // If the singleFileUploads option is enabled, this callback will be
128
- // called once for each file in the selection for XHR file uplaods, else
129
- // once for each file selection.
130
- // The upload starts when the submit method is invoked on the data parameter.
131
- // The data object contains a files property holding the added files
132
- // and allows to override plugin options as well as define ajax settings.
133
- // Listeners for this callback can also be bound the following way:
134
- // .bind('fileuploadadd', func);
135
- // data.submit() returns a Promise object and allows to attach additional
136
- // handlers using jQuery's Deferred callbacks:
137
- // data.submit().done(func).fail(func).always(func);
138
- add: function (e, data) {
139
- data.submit();
140
- },
141
-
142
- // Other callbacks:
143
- // Callback for the submit event of each file upload:
144
- // submit: function (e, data) {}, // .bind('fileuploadsubmit', func);
145
- // Callback for the start of each file upload request:
146
- // send: function (e, data) {}, // .bind('fileuploadsend', func);
147
- // Callback for successful uploads:
148
- // done: function (e, data) {}, // .bind('fileuploaddone', func);
149
- // Callback for failed (abort or error) uploads:
150
- // fail: function (e, data) {}, // .bind('fileuploadfail', func);
151
- // Callback for completed (success, abort or error) requests:
152
- // always: function (e, data) {}, // .bind('fileuploadalways', func);
153
- // Callback for upload progress events:
154
- // progress: function (e, data) {}, // .bind('fileuploadprogress', func);
155
- // Callback for global upload progress events:
156
- // progressall: function (e, data) {}, // .bind('fileuploadprogressall', func);
157
- // Callback for uploads start, equivalent to the global ajaxStart event:
158
- // start: function (e) {}, // .bind('fileuploadstart', func);
159
- // Callback for uploads stop, equivalent to the global ajaxStop event:
160
- // stop: function (e) {}, // .bind('fileuploadstop', func);
161
- // Callback for change events of the fileInput(s):
162
- // change: function (e, data) {}, // .bind('fileuploadchange', func);
163
- // Callback for paste events to the pasteZone(s):
164
- // paste: function (e, data) {}, // .bind('fileuploadpaste', func);
165
- // Callback for drop events of the dropZone(s):
166
- // drop: function (e, data) {}, // .bind('fileuploaddrop', func);
167
- // Callback for dragover events of the dropZone(s):
168
- // dragover: function (e) {}, // .bind('fileuploaddragover', func);
169
-
170
- // The plugin options are used as settings object for the ajax calls.
171
- // The following are jQuery ajax settings required for the file uploads:
172
- processData: false,
173
- contentType: false,
174
- cache: false
175
- },
176
-
177
- // A list of options that require a refresh after assigning a new value:
178
- _refreshOptionsList: [
179
- 'fileInput',
180
- 'dropZone',
181
- 'pasteZone',
182
- 'multipart',
183
- 'forceIframeTransport'
184
- ],
185
-
186
- _BitrateTimer: function () {
187
- this.timestamp = +(new Date());
188
- this.loaded = 0;
189
- this.bitrate = 0;
190
- this.getBitrate = function (now, loaded, interval) {
191
- var timeDiff = now - this.timestamp;
192
- if (!this.bitrate || !interval || timeDiff > interval) {
193
- this.bitrate = (loaded - this.loaded) * (1000 / timeDiff) * 8;
194
- this.loaded = loaded;
195
- this.timestamp = now;
196
- }
197
- return this.bitrate;
198
- };
199
- },
200
-
201
- _isXHRUpload: function (options) {
202
- return !options.forceIframeTransport &&
203
- ((!options.multipart && $.support.xhrFileUpload) ||
204
- $.support.xhrFormDataFileUpload);
205
- },
206
-
207
- _getFormData: function (options) {
208
- var formData;
209
- if (typeof options.formData === 'function') {
210
- return options.formData(options.form);
211
- }
212
- if ($.isArray(options.formData)) {
213
- return options.formData;
214
- }
215
- if (options.formData) {
216
- formData = [];
217
- $.each(options.formData, function (name, value) {
218
- formData.push({name: name, value: value});
219
- });
220
- return formData;
221
- }
222
- return [];
223
- },
224
-
225
- _getTotal: function (files) {
226
- var total = 0;
227
- $.each(files, function (index, file) {
228
- total += file.size || 1;
229
- });
230
- return total;
231
- },
232
-
233
- _onProgress: function (e, data) {
234
- if (e.lengthComputable) {
235
- var now = +(new Date()),
236
- total,
237
- loaded;
238
- if (data._time && data.progressInterval &&
239
- (now - data._time < data.progressInterval) &&
240
- e.loaded !== e.total) {
241
- return;
242
- }
243
- data._time = now;
244
- total = data.total || this._getTotal(data.files);
245
- loaded = parseInt(
246
- e.loaded / e.total * (data.chunkSize || total),
247
- 10
248
- ) + (data.uploadedBytes || 0);
249
- this._loaded += loaded - (data.loaded || data.uploadedBytes || 0);
250
- data.lengthComputable = true;
251
- data.loaded = loaded;
252
- data.total = total;
253
- data.bitrate = data._bitrateTimer.getBitrate(
254
- now,
255
- loaded,
256
- data.bitrateInterval
257
- );
258
- // Trigger a custom progress event with a total data property set
259
- // to the file size(s) of the current upload and a loaded data
260
- // property calculated accordingly:
261
- this._trigger('progress', e, data);
262
- // Trigger a global progress event for all current file uploads,
263
- // including ajax calls queued for sequential file uploads:
264
- this._trigger('progressall', e, {
265
- lengthComputable: true,
266
- loaded: this._loaded,
267
- total: this._total,
268
- bitrate: this._bitrateTimer.getBitrate(
269
- now,
270
- this._loaded,
271
- data.bitrateInterval
272
- )
273
- });
274
- }
275
- },
276
-
277
- _initProgressListener: function (options) {
278
- var that = this,
279
- xhr = options.xhr ? options.xhr() : $.ajaxSettings.xhr();
280
- // Accesss to the native XHR object is required to add event listeners
281
- // for the upload progress event:
282
- if (xhr.upload) {
283
- $(xhr.upload).bind('progress', function (e) {
284
- var oe = e.originalEvent;
285
- // Make sure the progress event properties get copied over:
286
- e.lengthComputable = oe.lengthComputable;
287
- e.loaded = oe.loaded;
288
- e.total = oe.total;
289
- that._onProgress(e, options);
290
- });
291
- options.xhr = function () {
292
- return xhr;
293
- };
294
- }
295
- },
296
-
297
- _initXHRData: function (options) {
298
- var formData,
299
- file = options.files[0],
300
- // Ignore non-multipart setting if not supported:
301
- multipart = options.multipart || !$.support.xhrFileUpload,
302
- paramName = options.paramName[0];
303
- options.headers = options.headers || {};
304
- if (options.contentRange) {
305
- options.headers['Content-Range'] = options.contentRange;
306
- }
307
- if (!multipart) {
308
- options.headers['Content-Disposition'] = 'attachment; filename="' +
309
- encodeURI(file.name) + '"';
310
- options.contentType = file.type;
311
- options.data = options.blob || file;
312
- } else if ($.support.xhrFormDataFileUpload) {
313
- if (options.postMessage) {
314
- // window.postMessage does not allow sending FormData
315
- // objects, so we just add the File/Blob objects to
316
- // the formData array and let the postMessage window
317
- // create the FormData object out of this array:
318
- formData = this._getFormData(options);
319
- if (options.blob) {
320
- formData.push({
321
- name: paramName,
322
- value: options.blob
323
- });
324
- } else {
325
- $.each(options.files, function (index, file) {
326
- formData.push({
327
- name: options.paramName[index] || paramName,
328
- value: file
329
- });
330
- });
331
- }
332
- } else {
333
- if (options.formData instanceof FormData) {
334
- formData = options.formData;
335
- } else {
336
- formData = new FormData();
337
- $.each(this._getFormData(options), function (index, field) {
338
- formData.append(field.name, field.value);
339
- });
340
- }
341
- if (options.blob) {
342
- options.headers['Content-Disposition'] = 'attachment; filename="' +
343
- encodeURI(file.name) + '"';
344
- formData.append(paramName, options.blob, file.name);
345
- } else {
346
- $.each(options.files, function (index, file) {
347
- // Files are also Blob instances, but some browsers
348
- // (Firefox 3.6) support the File API but not Blobs.
349
- // This check allows the tests to run with
350
- // dummy objects:
351
- if ((window.Blob && file instanceof Blob) ||
352
- (window.File && file instanceof File)) {
353
- formData.append(
354
- options.paramName[index] || paramName,
355
- file,
356
- file.name
357
- );
358
- }
359
- });
360
- }
361
- }
362
- options.data = formData;
363
- }
364
- // Blob reference is not needed anymore, free memory:
365
- options.blob = null;
366
- },
367
-
368
- _initIframeSettings: function (options) {
369
- // Setting the dataType to iframe enables the iframe transport:
370
- options.dataType = 'iframe ' + (options.dataType || '');
371
- // The iframe transport accepts a serialized array as form data:
372
- options.formData = this._getFormData(options);
373
- // Add redirect url to form data on cross-domain uploads:
374
- if (options.redirect && $('<a></a>').prop('href', options.url)
375
- .prop('host') !== location.host) {
376
- options.formData.push({
377
- name: options.redirectParamName || 'redirect',
378
- value: options.redirect
379
- });
380
- }
381
- },
382
-
383
- _initDataSettings: function (options) {
384
- if (this._isXHRUpload(options)) {
385
- if (!this._chunkedUpload(options, true)) {
386
- if (!options.data) {
387
- this._initXHRData(options);
388
- }
389
- this._initProgressListener(options);
390
- }
391
- if (options.postMessage) {
392
- // Setting the dataType to postmessage enables the
393
- // postMessage transport:
394
- options.dataType = 'postmessage ' + (options.dataType || '');
395
- }
396
- } else {
397
- this._initIframeSettings(options, 'iframe');
398
- }
399
- },
400
-
401
- _getParamName: function (options) {
402
- var fileInput = $(options.fileInput),
403
- paramName = options.paramName;
404
- if (!paramName) {
405
- paramName = [];
406
- fileInput.each(function () {
407
- var input = $(this),
408
- name = input.prop('name') || 'files[]',
409
- i = (input.prop('files') || [1]).length;
410
- while (i) {
411
- paramName.push(name);
412
- i -= 1;
413
- }
414
- });
415
- if (!paramName.length) {
416
- paramName = [fileInput.prop('name') || 'files[]'];
417
- }
418
- } else if (!$.isArray(paramName)) {
419
- paramName = [paramName];
420
- }
421
- return paramName;
422
- },
423
-
424
- _initFormSettings: function (options) {
425
- // Retrieve missing options from the input field and the
426
- // associated form, if available:
427
- if (!options.form || !options.form.length) {
428
- options.form = $(options.fileInput.prop('form'));
429
- // If the given file input doesn't have an associated form,
430
- // use the default widget file input's form:
431
- if (!options.form.length) {
432
- options.form = $(this.options.fileInput.prop('form'));
433
- }
434
- }
435
- options.paramName = this._getParamName(options);
436
- if (!options.url) {
437
- options.url = options.form.prop('action') || location.href;
438
- }
439
- // The HTTP request method must be "POST" or "PUT":
440
- options.type = (options.type || options.form.prop('method') || '')
441
- .toUpperCase();
442
- if (options.type !== 'POST' && options.type !== 'PUT' &&
443
- options.type !== 'PATCH') {
444
- options.type = 'POST';
445
- }
446
- if (!options.formAcceptCharset) {
447
- options.formAcceptCharset = options.form.attr('accept-charset');
448
- }
449
- },
450
-
451
- _getAJAXSettings: function (data) {
452
- var options = $.extend({}, this.options, data);
453
- this._initFormSettings(options);
454
- this._initDataSettings(options);
455
- return options;
456
- },
457
-
458
- // Maps jqXHR callbacks to the equivalent
459
- // methods of the given Promise object:
460
- _enhancePromise: function (promise) {
461
- promise.success = promise.done;
462
- promise.error = promise.fail;
463
- promise.complete = promise.always;
464
- return promise;
465
- },
466
-
467
- // Creates and returns a Promise object enhanced with
468
- // the jqXHR methods abort, success, error and complete:
469
- _getXHRPromise: function (resolveOrReject, context, args) {
470
- var dfd = $.Deferred(),
471
- promise = dfd.promise();
472
- context = context || this.options.context || promise;
473
- if (resolveOrReject === true) {
474
- dfd.resolveWith(context, args);
475
- } else if (resolveOrReject === false) {
476
- dfd.rejectWith(context, args);
477
- }
478
- promise.abort = dfd.promise;
479
- return this._enhancePromise(promise);
480
- },
481
-
482
- // Parses the Range header from the server response
483
- // and returns the uploaded bytes:
484
- _getUploadedBytes: function (jqXHR) {
485
- var range = jqXHR.getResponseHeader('Range'),
486
- parts = range && range.split('-'),
487
- upperBytesPos = parts && parts.length > 1 &&
488
- parseInt(parts[1], 10);
489
- return upperBytesPos && upperBytesPos + 1;
490
- },
491
-
492
- // Uploads a file in multiple, sequential requests
493
- // by splitting the file up in multiple blob chunks.
494
- // If the second parameter is true, only tests if the file
495
- // should be uploaded in chunks, but does not invoke any
496
- // upload requests:
497
- _chunkedUpload: function (options, testOnly) {
498
- var that = this,
499
- file = options.files[0],
500
- fs = file.size,
501
- ub = options.uploadedBytes = options.uploadedBytes || 0,
502
- mcs = options.maxChunkSize || fs,
503
- slice = file.slice || file.webkitSlice || file.mozSlice,
504
- dfd = $.Deferred(),
505
- promise = dfd.promise(),
506
- jqXHR,
507
- upload;
508
- if (!(this._isXHRUpload(options) && slice && (ub || mcs < fs)) ||
509
- options.data) {
510
- return false;
511
- }
512
- if (testOnly) {
513
- return true;
514
- }
515
- if (ub >= fs) {
516
- file.error = 'Uploaded bytes exceed file size';
517
- return this._getXHRPromise(
518
- false,
519
- options.context,
520
- [null, 'error', file.error]
521
- );
522
- }
523
- // The chunk upload method:
524
- upload = function (i) {
525
- // Clone the options object for each chunk upload:
526
- var o = $.extend({}, options);
527
- o.blob = slice.call(
528
- file,
529
- ub,
530
- ub + mcs,
531
- file.type
532
- );
533
- // Store the current chunk size, as the blob itself
534
- // will be dereferenced after data processing:
535
- o.chunkSize = o.blob.size;
536
- // Expose the chunk bytes position range:
537
- o.contentRange = 'bytes ' + ub + '-' +
538
- (ub + o.chunkSize - 1) + '/' + fs;
539
- // Process the upload data (the blob and potential form data):
540
- that._initXHRData(o);
541
- // Add progress listeners for this chunk upload:
542
- that._initProgressListener(o);
543
- jqXHR = ($.ajax(o) || that._getXHRPromise(false, o.context))
544
- .done(function (result, textStatus, jqXHR) {
545
- ub = that._getUploadedBytes(jqXHR) ||
546
- (ub + o.chunkSize);
547
- // Create a progress event if upload is done and
548
- // no progress event has been invoked for this chunk:
549
- if (!o.loaded) {
550
- that._onProgress($.Event('progress', {
551
- lengthComputable: true,
552
- loaded: ub - o.uploadedBytes,
553
- total: ub - o.uploadedBytes
554
- }), o);
555
- }
556
- options.uploadedBytes = o.uploadedBytes = ub;
557
- if (ub < fs) {
558
- // File upload not yet complete,
559
- // continue with the next chunk:
560
- upload();
561
- } else {
562
- dfd.resolveWith(
563
- o.context,
564
- [result, textStatus, jqXHR]
565
- );
566
- }
567
- })
568
- .fail(function (jqXHR, textStatus, errorThrown) {
569
- dfd.rejectWith(
570
- o.context,
571
- [jqXHR, textStatus, errorThrown]
572
- );
573
- });
574
- };
575
- this._enhancePromise(promise);
576
- promise.abort = function () {
577
- return jqXHR.abort();
578
- };
579
- upload();
580
- return promise;
581
- },
582
-
583
- _beforeSend: function (e, data) {
584
- if (this._active === 0) {
585
- // the start callback is triggered when an upload starts
586
- // and no other uploads are currently running,
587
- // equivalent to the global ajaxStart event:
588
- this._trigger('start');
589
- // Set timer for global bitrate progress calculation:
590
- this._bitrateTimer = new this._BitrateTimer();
591
- }
592
- this._active += 1;
593
- // Initialize the global progress values:
594
- this._loaded += data.uploadedBytes || 0;
595
- this._total += this._getTotal(data.files);
596
- },
597
-
598
- _onDone: function (result, textStatus, jqXHR, options) {
599
- if (!this._isXHRUpload(options)) {
600
- // Create a progress event for each iframe load:
601
- this._onProgress($.Event('progress', {
602
- lengthComputable: true,
603
- loaded: 1,
604
- total: 1
605
- }), options);
606
- }
607
- options.result = result;
608
- options.textStatus = textStatus;
609
- options.jqXHR = jqXHR;
610
- this._trigger('done', null, options);
611
- },
612
-
613
- _onFail: function (jqXHR, textStatus, errorThrown, options) {
614
- options.jqXHR = jqXHR;
615
- options.textStatus = textStatus;
616
- options.errorThrown = errorThrown;
617
- this._trigger('fail', null, options);
618
- if (options.recalculateProgress) {
619
- // Remove the failed (error or abort) file upload from
620
- // the global progress calculation:
621
- this._loaded -= options.loaded || options.uploadedBytes || 0;
622
- this._total -= options.total || this._getTotal(options.files);
623
- }
624
- },
625
-
626
- _onAlways: function (jqXHRorResult, textStatus, jqXHRorError, options) {
627
- this._active -= 1;
628
- options.textStatus = textStatus;
629
- if (jqXHRorError && jqXHRorError.always) {
630
- options.jqXHR = jqXHRorError;
631
- options.result = jqXHRorResult;
632
- } else {
633
- options.jqXHR = jqXHRorResult;
634
- options.errorThrown = jqXHRorError;
635
- }
636
- this._trigger('always', null, options);
637
- if (this._active === 0) {
638
- // The stop callback is triggered when all uploads have
639
- // been completed, equivalent to the global ajaxStop event:
640
- this._trigger('stop');
641
- // Reset the global progress values:
642
- this._loaded = this._total = 0;
643
- this._bitrateTimer = null;
644
- }
645
- },
646
-
647
- _onSend: function (e, data) {
648
- var that = this,
649
- jqXHR,
650
- aborted,
651
- slot,
652
- pipe,
653
- options = that._getAJAXSettings(data),
654
- send = function () {
655
- that._sending += 1;
656
- // Set timer for bitrate progress calculation:
657
- options._bitrateTimer = new that._BitrateTimer();
658
- jqXHR = jqXHR || (
659
- ((aborted || that._trigger('send', e, options) === false) &&
660
- that._getXHRPromise(false, options.context, aborted)) ||
661
- that._chunkedUpload(options) || $.ajax(options)
662
- ).done(function (result, textStatus, jqXHR) {
663
- that._onDone(result, textStatus, jqXHR, options);
664
- }).fail(function (jqXHR, textStatus, errorThrown) {
665
- that._onFail(jqXHR, textStatus, errorThrown, options);
666
- }).always(function (jqXHRorResult, textStatus, jqXHRorError) {
667
- that._sending -= 1;
668
- that._onAlways(
669
- jqXHRorResult,
670
- textStatus,
671
- jqXHRorError,
672
- options
673
- );
674
- if (options.limitConcurrentUploads &&
675
- options.limitConcurrentUploads > that._sending) {
676
- // Start the next queued upload,
677
- // that has not been aborted:
678
- var nextSlot = that._slots.shift(),
679
- isPending;
680
- while (nextSlot) {
681
- // jQuery 1.6 doesn't provide .state(),
682
- // while jQuery 1.8+ removed .isRejected():
683
- isPending = nextSlot.state ?
684
- nextSlot.state() === 'pending' :
685
- !nextSlot.isRejected();
686
- if (isPending) {
687
- nextSlot.resolve();
688
- break;
689
- }
690
- nextSlot = that._slots.shift();
691
- }
692
- }
693
- });
694
- return jqXHR;
695
- };
696
- this._beforeSend(e, options);
697
- if (this.options.sequentialUploads ||
698
- (this.options.limitConcurrentUploads &&
699
- this.options.limitConcurrentUploads <= this._sending)) {
700
- if (this.options.limitConcurrentUploads > 1) {
701
- slot = $.Deferred();
702
- this._slots.push(slot);
703
- pipe = slot.pipe(send);
704
- } else {
705
- pipe = (this._sequence = this._sequence.pipe(send, send));
706
- }
707
- // Return the piped Promise object, enhanced with an abort method,
708
- // which is delegated to the jqXHR object of the current upload,
709
- // and jqXHR callbacks mapped to the equivalent Promise methods:
710
- pipe.abort = function () {
711
- aborted = [undefined, 'abort', 'abort'];
712
- if (!jqXHR) {
713
- if (slot) {
714
- slot.rejectWith(options.context, aborted);
715
- }
716
- return send();
717
- }
718
- return jqXHR.abort();
719
- };
720
- return this._enhancePromise(pipe);
721
- }
722
- return send();
723
- },
724
-
725
- _onAdd: function (e, data) {
726
- var that = this,
727
- result = true,
728
- options = $.extend({}, this.options, data),
729
- limit = options.limitMultiFileUploads,
730
- paramName = this._getParamName(options),
731
- paramNameSet,
732
- paramNameSlice,
733
- fileSet,
734
- i;
735
- if (!(options.singleFileUploads || limit) ||
736
- !this._isXHRUpload(options)) {
737
- fileSet = [data.files];
738
- paramNameSet = [paramName];
739
- } else if (!options.singleFileUploads && limit) {
740
- fileSet = [];
741
- paramNameSet = [];
742
- for (i = 0; i < data.files.length; i += limit) {
743
- fileSet.push(data.files.slice(i, i + limit));
744
- paramNameSlice = paramName.slice(i, i + limit);
745
- if (!paramNameSlice.length) {
746
- paramNameSlice = paramName;
747
- }
748
- paramNameSet.push(paramNameSlice);
749
- }
750
- } else {
751
- paramNameSet = paramName;
752
- }
753
- data.originalFiles = data.files;
754
- $.each(fileSet || data.files, function (index, element) {
755
- var newData = $.extend({}, data);
756
- newData.files = fileSet ? element : [element];
757
- newData.paramName = paramNameSet[index];
758
- newData.submit = function () {
759
- newData.jqXHR = this.jqXHR =
760
- (that._trigger('submit', e, this) !== false) &&
761
- that._onSend(e, this);
762
- return this.jqXHR;
763
- };
764
- result = that._trigger('add', e, newData);
765
- return result;
766
- });
767
- return result;
768
- },
769
-
770
- _replaceFileInput: function (input) {
771
- var inputClone = input.clone(true);
772
- $('<form></form>').append(inputClone)[0].reset();
773
- // Detaching allows to insert the fileInput on another form
774
- // without loosing the file input value:
775
- input.after(inputClone).detach();
776
- // Avoid memory leaks with the detached file input:
777
- $.cleanData(input.unbind('remove'));
778
- // Replace the original file input element in the fileInput
779
- // elements set with the clone, which has been copied including
780
- // event handlers:
781
- this.options.fileInput = this.options.fileInput.map(function (i, el) {
782
- if (el === input[0]) {
783
- return inputClone[0];
784
- }
785
- return el;
786
- });
787
- // If the widget has been initialized on the file input itself,
788
- // override this.element with the file input clone:
789
- if (input[0] === this.element[0]) {
790
- this.element = inputClone;
791
- }
792
- },
793
-
794
- _handleFileTreeEntry: function (entry, path) {
795
- var that = this,
796
- dfd = $.Deferred(),
797
- errorHandler = function (e) {
798
- if (e && !e.entry) {
799
- e.entry = entry;
800
- }
801
- // Since $.when returns immediately if one
802
- // Deferred is rejected, we use resolve instead.
803
- // This allows valid files and invalid items
804
- // to be returned together in one set:
805
- dfd.resolve([e]);
806
- },
807
- dirReader;
808
- path = path || '';
809
- if (entry.isFile) {
810
- if (entry._file) {
811
- // Workaround for Chrome bug #149735
812
- entry._file.relativePath = path;
813
- dfd.resolve(entry._file);
814
- } else {
815
- entry.file(function (file) {
816
- file.relativePath = path;
817
- dfd.resolve(file);
818
- }, errorHandler);
819
- }
820
- } else if (entry.isDirectory) {
821
- dirReader = entry.createReader();
822
- dirReader.readEntries(function (entries) {
823
- that._handleFileTreeEntries(
824
- entries,
825
- path + entry.name + '/'
826
- ).done(function (files) {
827
- dfd.resolve(files);
828
- }).fail(errorHandler);
829
- }, errorHandler);
830
- } else {
831
- // Return an empy list for file system items
832
- // other than files or directories:
833
- dfd.resolve([]);
834
- }
835
- return dfd.promise();
836
- },
837
-
838
- _handleFileTreeEntries: function (entries, path) {
839
- var that = this;
840
- return $.when.apply(
841
- $,
842
- $.map(entries, function (entry) {
843
- return that._handleFileTreeEntry(entry, path);
844
- })
845
- ).pipe(function () {
846
- return Array.prototype.concat.apply(
847
- [],
848
- arguments
849
- );
850
- });
851
- },
852
-
853
- _getDroppedFiles: function (dataTransfer) {
854
- dataTransfer = dataTransfer || {};
855
- var items = dataTransfer.items;
856
- if (items && items.length && (items[0].webkitGetAsEntry ||
857
- items[0].getAsEntry)) {
858
- return this._handleFileTreeEntries(
859
- $.map(items, function (item) {
860
- var entry;
861
- if (item.webkitGetAsEntry) {
862
- entry = item.webkitGetAsEntry();
863
- if (entry) {
864
- // Workaround for Chrome bug #149735:
865
- entry._file = item.getAsFile();
866
- }
867
- return entry;
868
- }
869
- return item.getAsEntry();
870
- })
871
- );
872
- }
873
- return $.Deferred().resolve(
874
- $.makeArray(dataTransfer.files)
875
- ).promise();
876
- },
877
-
878
- _getSingleFileInputFiles: function (fileInput) {
879
- fileInput = $(fileInput);
880
- var entries = fileInput.prop('webkitEntries') ||
881
- fileInput.prop('entries'),
882
- files,
883
- value;
884
- if (entries && entries.length) {
885
- return this._handleFileTreeEntries(entries);
886
- }
887
- files = $.makeArray(fileInput.prop('files'));
888
- if (!files.length) {
889
- value = fileInput.prop('value');
890
- if (!value) {
891
- return $.Deferred().resolve([]).promise();
892
- }
893
- // If the files property is not available, the browser does not
894
- // support the File API and we add a pseudo File object with
895
- // the input value as name with path information removed:
896
- files = [{name: value.replace(/^.*\\/, '')}];
897
- } else if (files[0].name === undefined && files[0].fileName) {
898
- // File normalization for Safari 4 and Firefox 3:
899
- $.each(files, function (index, file) {
900
- file.name = file.fileName;
901
- file.size = file.fileSize;
902
- });
903
- }
904
- return $.Deferred().resolve(files).promise();
905
- },
906
-
907
- _getFileInputFiles: function (fileInput) {
908
- if (!(fileInput instanceof $) || fileInput.length === 1) {
909
- return this._getSingleFileInputFiles(fileInput);
910
- }
911
- return $.when.apply(
912
- $,
913
- $.map(fileInput, this._getSingleFileInputFiles)
914
- ).pipe(function () {
915
- return Array.prototype.concat.apply(
916
- [],
917
- arguments
918
- );
919
- });
920
- },
921
-
922
- _onChange: function (e) {
923
- var that = this,
924
- data = {
925
- fileInput: $(e.target),
926
- form: $(e.target.form)
927
- };
928
- this._getFileInputFiles(data.fileInput).always(function (files) {
929
- data.files = files;
930
- if (that.options.replaceFileInput) {
931
- that._replaceFileInput(data.fileInput);
932
- }
933
- if (that._trigger('change', e, data) !== false) {
934
- that._onAdd(e, data);
935
- }
936
- });
937
- },
938
-
939
- _onPaste: function (e) {
940
- var cbd = e.originalEvent.clipboardData,
941
- items = (cbd && cbd.items) || [],
942
- data = {files: []};
943
- $.each(items, function (index, item) {
944
- var file = item.getAsFile && item.getAsFile();
945
- if (file) {
946
- data.files.push(file);
947
- }
948
- });
949
- if (this._trigger('paste', e, data) === false ||
950
- this._onAdd(e, data) === false) {
951
- return false;
952
- }
953
- },
954
-
955
- _onDrop: function (e) {
956
- var that = this,
957
- dataTransfer = e.dataTransfer = e.originalEvent.dataTransfer,
958
- data = {};
959
- if (dataTransfer && dataTransfer.files && dataTransfer.files.length) {
960
- e.preventDefault();
961
- }
962
- this._getDroppedFiles(dataTransfer).always(function (files) {
963
- data.files = files;
964
- if (that._trigger('drop', e, data) !== false) {
965
- that._onAdd(e, data);
966
- }
967
- });
968
- },
969
-
970
- _onDragOver: function (e) {
971
- var dataTransfer = e.dataTransfer = e.originalEvent.dataTransfer;
972
- if (this._trigger('dragover', e) === false) {
973
- return false;
974
- }
975
- if (dataTransfer && $.inArray('Files', dataTransfer.types) !== -1) {
976
- dataTransfer.dropEffect = 'copy';
977
- e.preventDefault();
978
- }
979
- },
980
-
981
- _initEventHandlers: function () {
982
- if (this._isXHRUpload(this.options)) {
983
- this._on(this.options.dropZone, {
984
- dragover: this._onDragOver,
985
- drop: this._onDrop
986
- });
987
- this._on(this.options.pasteZone, {
988
- paste: this._onPaste
989
- });
990
- }
991
- this._on(this.options.fileInput, {
992
- change: this._onChange
993
- });
994
- },
995
-
996
- _destroyEventHandlers: function () {
997
- this._off(this.options.dropZone, 'dragover drop');
998
- this._off(this.options.pasteZone, 'paste');
999
- this._off(this.options.fileInput, 'change');
1000
- },
1001
-
1002
- _setOption: function (key, value) {
1003
- var refresh = $.inArray(key, this._refreshOptionsList) !== -1;
1004
- if (refresh) {
1005
- this._destroyEventHandlers();
1006
- }
1007
- this._super(key, value);
1008
- if (refresh) {
1009
- this._initSpecialOptions();
1010
- this._initEventHandlers();
1011
- }
1012
- },
1013
-
1014
- _initSpecialOptions: function () {
1015
- var options = this.options;
1016
- if (options.fileInput === undefined) {
1017
- options.fileInput = this.element.is('input[type="file"]') ?
1018
- this.element : this.element.find('input[type="file"]');
1019
- } else if (!(options.fileInput instanceof $)) {
1020
- options.fileInput = $(options.fileInput);
1021
- }
1022
- if (!(options.dropZone instanceof $)) {
1023
- options.dropZone = $(options.dropZone);
1024
- }
1025
- if (!(options.pasteZone instanceof $)) {
1026
- options.pasteZone = $(options.pasteZone);
1027
- }
1028
- },
1029
-
1030
- _create: function () {
1031
- var options = this.options;
1032
- // Initialize options set via HTML5 data-attributes:
1033
- $.extend(options, $(this.element[0].cloneNode(false)).data());
1034
- this._initSpecialOptions();
1035
- this._slots = [];
1036
- this._sequence = this._getXHRPromise(true);
1037
- this._sending = this._active = this._loaded = this._total = 0;
1038
- this._initEventHandlers();
1039
- },
1040
-
1041
- _destroy: function () {
1042
- this._destroyEventHandlers();
1043
- },
1044
-
1045
- // This method is exposed to the widget API and allows adding files
1046
- // using the fileupload API. The data parameter accepts an object which
1047
- // must have a files property and can contain additional options:
1048
- // .fileupload('add', {files: filesList});
1049
- add: function (data) {
1050
- var that = this;
1051
- if (!data || this.options.disabled) {
1052
- return;
1053
- }
1054
- if (data.fileInput && !data.files) {
1055
- this._getFileInputFiles(data.fileInput).always(function (files) {
1056
- data.files = files;
1057
- that._onAdd(null, data);
1058
- });
1059
- } else {
1060
- data.files = $.makeArray(data.files);
1061
- this._onAdd(null, data);
1062
- }
1063
- },
1064
-
1065
- // This method is exposed to the widget API and allows sending files
1066
- // using the fileupload API. The data parameter accepts an object which
1067
- // must have a files or fileInput property and can contain additional options:
1068
- // .fileupload('send', {files: filesList});
1069
- // The method returns a Promise object for the file upload call.
1070
- send: function (data) {
1071
- if (data && !this.options.disabled) {
1072
- if (data.fileInput && !data.files) {
1073
- var that = this,
1074
- dfd = $.Deferred(),
1075
- promise = dfd.promise(),
1076
- jqXHR,
1077
- aborted;
1078
- promise.abort = function () {
1079
- aborted = true;
1080
- if (jqXHR) {
1081
- return jqXHR.abort();
1082
- }
1083
- dfd.reject(null, 'abort', 'abort');
1084
- return promise;
1085
- };
1086
- this._getFileInputFiles(data.fileInput).always(
1087
- function (files) {
1088
- if (aborted) {
1089
- return;
1090
- }
1091
- data.files = files;
1092
- jqXHR = that._onSend(null, data).then(
1093
- function (result, textStatus, jqXHR) {
1094
- dfd.resolve(result, textStatus, jqXHR);
1095
- },
1096
- function (jqXHR, textStatus, errorThrown) {
1097
- dfd.reject(jqXHR, textStatus, errorThrown);
1098
- }
1099
- );
1100
- }
1101
- );
1102
- return this._enhancePromise(promise);
1103
- }
1104
- data.files = $.makeArray(data.files);
1105
- if (data.files.length) {
1106
- return this._onSend(null, data);
1107
- }
1108
- }
1109
- return this._getXHRPromise(false, data && data.context);
1110
- }
1111
-
1112
- });
1113
-
1114
- }));