social_stream-base 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (733) hide show
  1. data/.gitignore +12 -0
  2. data/.rspec +1 -0
  3. data/.yardopts +2 -0
  4. data/Gemfile +9 -0
  5. data/LICENSE +20 -0
  6. data/README.rdoc +68 -0
  7. data/Rakefile +28 -0
  8. data/app/controllers/activities_controller.rb +19 -0
  9. data/app/controllers/api_controller.rb +36 -0
  10. data/app/controllers/authentications_controller.rb +17 -0
  11. data/app/controllers/comments_controller.rb +12 -0
  12. data/app/controllers/contacts_controller.rb +43 -0
  13. data/app/controllers/conversations_controller.rb +102 -0
  14. data/app/controllers/frontpage_controller.rb +23 -0
  15. data/app/controllers/groups_controller.rb +35 -0
  16. data/app/controllers/home_controller.rb +3 -0
  17. data/app/controllers/likes_controller.rb +41 -0
  18. data/app/controllers/messages_controller.rb +87 -0
  19. data/app/controllers/notifications_controller.rb +72 -0
  20. data/app/controllers/omniauth_callbacks_controller.rb +17 -0
  21. data/app/controllers/permissions_controller.rb +15 -0
  22. data/app/controllers/posts_controller.rb +11 -0
  23. data/app/controllers/profiles_controller.rb +9 -0
  24. data/app/controllers/relation/customs_controller.rb +16 -0
  25. data/app/controllers/spheres_controller.rb +12 -0
  26. data/app/controllers/subjects_controller.rb +7 -0
  27. data/app/controllers/tags_controller.rb +15 -0
  28. data/app/controllers/users_controller.rb +30 -0
  29. data/app/helpers/activities_helper.rb +21 -0
  30. data/app/helpers/contacts_helper.rb +26 -0
  31. data/app/helpers/groups_helper.rb +3 -0
  32. data/app/helpers/location_helper.rb +48 -0
  33. data/app/helpers/notifications_helper.rb +23 -0
  34. data/app/helpers/permissions_helper.rb +16 -0
  35. data/app/helpers/profiles_helper.rb +31 -0
  36. data/app/helpers/subjects_helper.rb +6 -0
  37. data/app/helpers/toolbar_helper.rb +83 -0
  38. data/app/helpers/users_helper.rb +4 -0
  39. data/app/models/ability.rb +2 -0
  40. data/app/models/activity.rb +198 -0
  41. data/app/models/activity_object.rb +31 -0
  42. data/app/models/activity_object_activity.rb +14 -0
  43. data/app/models/activity_verb.rb +22 -0
  44. data/app/models/actor.rb +431 -0
  45. data/app/models/authentication.rb +3 -0
  46. data/app/models/comment.rb +3 -0
  47. data/app/models/contact.rb +121 -0
  48. data/app/models/group.rb +49 -0
  49. data/app/models/like.rb +49 -0
  50. data/app/models/permission.rb +180 -0
  51. data/app/models/post.rb +3 -0
  52. data/app/models/profile.rb +53 -0
  53. data/app/models/relation/custom.rb +122 -0
  54. data/app/models/relation/public.rb +42 -0
  55. data/app/models/relation.rb +83 -0
  56. data/app/models/relation_permission.rb +4 -0
  57. data/app/models/sphere.rb +9 -0
  58. data/app/models/tie.rb +332 -0
  59. data/app/models/tie_activity.rb +42 -0
  60. data/app/models/user.rb +125 -0
  61. data/app/views/activities/_activity.html.erb +5 -0
  62. data/app/views/activities/_child.html.erb +18 -0
  63. data/app/views/activities/_comments.html.erb +3 -0
  64. data/app/views/activities/_index.html.erb +22 -0
  65. data/app/views/activities/_jquery.html.erb +100 -0
  66. data/app/views/activities/_new.html.erb +30 -0
  67. data/app/views/activities/_options.html.erb +12 -0
  68. data/app/views/activities/_root.html.erb +37 -0
  69. data/app/views/activities/_walls.html.erb +34 -0
  70. data/app/views/activities/index.js.erb +1 -0
  71. data/app/views/activity_objects/_activity_object.html.erb +1 -0
  72. data/app/views/actors/_actor.html.erb +0 -0
  73. data/app/views/api/activity_atom_feed.atom.builder +40 -0
  74. data/app/views/avatars/index.html.erb +28 -0
  75. data/app/views/comments/_comment.html.erb +1 -0
  76. data/app/views/comments/_new.html.erb +19 -0
  77. data/app/views/comments/create.js.erb +4 -0
  78. data/app/views/comments/destroy.js.erb +2 -0
  79. data/app/views/contacts/_contact.html.erb +20 -0
  80. data/app/views/contacts/_edit.html.erb +76 -0
  81. data/app/views/contacts/_form.html.erb +77 -0
  82. data/app/views/contacts/_index.html.erb +33 -0
  83. data/app/views/contacts/_pendings.html.erb +11 -0
  84. data/app/views/contacts/_suggestions.html.erb +27 -0
  85. data/app/views/contacts/_suggestions_and_pendings.html.erb +6 -0
  86. data/app/views/contacts/edit.html.erb +5 -0
  87. data/app/views/contacts/index.html.erb +39 -0
  88. data/app/views/contacts/index.js.erb +3 -0
  89. data/app/views/contacts/new.html.erb +5 -0
  90. data/app/views/conversations/_conversation.html.erb +37 -0
  91. data/app/views/conversations/_conversation_full.html.erb +53 -0
  92. data/app/views/conversations/_conversations.html.erb +5 -0
  93. data/app/views/conversations/_index.html.erb +11 -0
  94. data/app/views/conversations/_menu_options.html.erb +19 -0
  95. data/app/views/conversations/_show.html.erb +13 -0
  96. data/app/views/conversations/edit.html.erb +10 -0
  97. data/app/views/conversations/index.html.erb +23 -0
  98. data/app/views/conversations/index.js.erb +9 -0
  99. data/app/views/conversations/show.html.erb +51 -0
  100. data/app/views/conversations/show.js.erb +41 -0
  101. data/app/views/devise/passwords/edit.html.erb +21 -0
  102. data/app/views/devise/passwords/new.html.erb +16 -0
  103. data/app/views/devise/registrations/new.html.erb +37 -0
  104. data/app/views/devise/sessions/new.html.erb +30 -0
  105. data/app/views/frontpage/_header.html.erb +25 -0
  106. data/app/views/frontpage/_search.html.erb +13 -0
  107. data/app/views/frontpage/_sponsor.html.erb +12 -0
  108. data/app/views/frontpage/host_meta.xml.builder +11 -0
  109. data/app/views/frontpage/index.html.erb +96 -0
  110. data/app/views/groups/_group.html.erb +10 -0
  111. data/app/views/groups/_index.html.erb +35 -0
  112. data/app/views/groups/_new.html.erb +74 -0
  113. data/app/views/groups/_sidebar_index.html.erb +31 -0
  114. data/app/views/groups/_sidebar_show.html.erb +3 -0
  115. data/app/views/groups/index.html.erb +62 -0
  116. data/app/views/groups/index.js.erb +1 -0
  117. data/app/views/groups/new.html.erb +15 -0
  118. data/app/views/groups/show.html.erb +30 -0
  119. data/app/views/home/_groups.html.erb +24 -0
  120. data/app/views/home/_menu.html.erb +46 -0
  121. data/app/views/home/_sidebar.html.erb +2 -0
  122. data/app/views/home/index.html.erb +22 -0
  123. data/app/views/layouts/_account.html.erb +16 -0
  124. data/app/views/layouts/_flash.html.erb +5 -0
  125. data/app/views/layouts/_footer.html.erb +16 -0
  126. data/app/views/layouts/_header.erb +40 -0
  127. data/app/views/layouts/_representation.html.erb +23 -0
  128. data/app/views/layouts/application.html.erb +58 -0
  129. data/app/views/layouts/frontpage.html.erb +42 -0
  130. data/app/views/layouts/test.html +61 -0
  131. data/app/views/likes/create.js.erb +2 -0
  132. data/app/views/likes/destroy.js.erb +1 -0
  133. data/app/views/location/_location.html.erb +3 -0
  134. data/app/views/messages/_form.html.erb +39 -0
  135. data/app/views/messages/_message.html.erb +31 -0
  136. data/app/views/messages/_new.html.erb +13 -0
  137. data/app/views/messages/new.html.erb +57 -0
  138. data/app/views/messages/new.js.erb +41 -0
  139. data/app/views/notification_mailer/new_notification_email.html.erb +21 -0
  140. data/app/views/notification_mailer/new_notification_email.text.erb +11 -0
  141. data/app/views/notifications/_index.html.erb +21 -0
  142. data/app/views/notifications/_notification.html.erb +47 -0
  143. data/app/views/notifications/_show.html.erb +3 -0
  144. data/app/views/notifications/activities/_follow_body.html.erb +2 -0
  145. data/app/views/notifications/activities/_follow_subject.html.erb +2 -0
  146. data/app/views/notifications/activities/_like_body.html.erb +5 -0
  147. data/app/views/notifications/activities/_like_object_body.html.erb +2 -0
  148. data/app/views/notifications/activities/_like_object_subject.html.erb +2 -0
  149. data/app/views/notifications/activities/_like_subject.html.erb +5 -0
  150. data/app/views/notifications/activities/_like_subject_body.html.erb +1 -0
  151. data/app/views/notifications/activities/_like_subject_subject.html.erb +2 -0
  152. data/app/views/notifications/activities/_make-friend_body.html.erb +3 -0
  153. data/app/views/notifications/activities/_make-friend_subject.html.erb +2 -0
  154. data/app/views/notifications/activities/_post_body.html.erb +2 -0
  155. data/app/views/notifications/activities/_post_subject.html.erb +1 -0
  156. data/app/views/notifications/activities/_update_body.html.erb +1 -0
  157. data/app/views/notifications/activities/_update_subject.html.erb +1 -0
  158. data/app/views/notifications/index.html.erb +19 -0
  159. data/app/views/notifications/index.js.erb +8 -0
  160. data/app/views/notifications/show.html.erb +5 -0
  161. data/app/views/permissions/_index.html.erb +39 -0
  162. data/app/views/permissions/index.js.erb +10 -0
  163. data/app/views/posts/_post.html.erb +3 -0
  164. data/app/views/posts/create.js.erb +5 -0
  165. data/app/views/posts/destroy.js.erb +2 -0
  166. data/app/views/profiles/_contact.html.erb +81 -0
  167. data/app/views/profiles/_experience.html.erb +22 -0
  168. data/app/views/profiles/_personal.html.erb +74 -0
  169. data/app/views/profiles/_profile.html.erb +50 -0
  170. data/app/views/profiles/_tags.html.erb +22 -0
  171. data/app/views/profiles/edit.html.erb +221 -0
  172. data/app/views/profiles/show.html.erb +25 -0
  173. data/app/views/profiles/update.js.erb +20 -0
  174. data/app/views/relation/customs/_form.html.erb +29 -0
  175. data/app/views/relation/customs/_index.html.erb +30 -0
  176. data/app/views/relation/customs/_list.html.erb +36 -0
  177. data/app/views/relation/customs/create.js.erb +20 -0
  178. data/app/views/relation/customs/index.js.erb +2 -0
  179. data/app/views/relation/customs/update.js.erb +6 -0
  180. data/app/views/spheres/_form.html.erb +28 -0
  181. data/app/views/spheres/_jquery.erb +130 -0
  182. data/app/views/spheres/_list.html.erb +19 -0
  183. data/app/views/spheres/create.js.erb +20 -0
  184. data/app/views/spheres/index.html.erb +74 -0
  185. data/app/views/subjects/_contacts.html.erb +18 -0
  186. data/app/views/subjects/_tabs.html.erb +38 -0
  187. data/app/views/ties/_edit.html.erb +70 -0
  188. data/app/views/ties/_form.html.erb +6 -0
  189. data/app/views/ties/create.js.erb +26 -0
  190. data/app/views/ties/edit.html.erb +1 -0
  191. data/app/views/ties/suggestion.html.erb +1 -0
  192. data/app/views/ties/suggestion.js.erb +1 -0
  193. data/app/views/toolbar/_home.html.erb +9 -0
  194. data/app/views/toolbar/_home_menu.html.erb +9 -0
  195. data/app/views/toolbar/_home_menu_options.html.erb +29 -0
  196. data/app/views/toolbar/_home_menu_options_subjects.html.erb +12 -0
  197. data/app/views/toolbar/_logo.html.erb +16 -0
  198. data/app/views/toolbar/_message_menu.html.erb +17 -0
  199. data/app/views/toolbar/_notifications_menu.html.erb +3 -0
  200. data/app/views/toolbar/_profile.html.erb +13 -0
  201. data/app/views/toolbar/_profile_menu.html.erb +15 -0
  202. data/app/views/toolbar/_profile_menu_basic_options.html.erb +5 -0
  203. data/app/views/toolbar/_profile_menu_tie_options.html.erb +35 -0
  204. data/app/views/users/_groups.html.erb +23 -0
  205. data/app/views/users/_index.html.erb +33 -0
  206. data/app/views/users/_sidebar_index.html.erb +1 -0
  207. data/app/views/users/index.html.erb +47 -0
  208. data/app/views/users/index.js.erb +1 -0
  209. data/app/views/users/info.html.erb +0 -0
  210. data/app/views/users/show.html.erb +34 -0
  211. data/app/views/users/show.xml.builder +28 -0
  212. data/bin/social_stream +57 -0
  213. data/bin/social_stream_heroku +76 -0
  214. data/config/locales/en.yml +341 -0
  215. data/config/routes.rb +69 -0
  216. data/lib/generators/social_stream/base/install_generator.rb +57 -0
  217. data/lib/generators/social_stream/base/templates/initializer.rb +17 -0
  218. data/lib/generators/social_stream/base/templates/migration.rb +299 -0
  219. data/lib/generators/social_stream/base/templates/public/images/HTML5.png +0 -0
  220. data/lib/generators/social_stream/base/templates/public/images/HTML5_Semantics.png +0 -0
  221. data/lib/generators/social_stream/base/templates/public/images/HTML5_Styling.png +0 -0
  222. data/lib/generators/social_stream/base/templates/public/images/Jcrop.gif +0 -0
  223. data/lib/generators/social_stream/base/templates/public/images/boxy/boxy-ne.png +0 -0
  224. data/lib/generators/social_stream/base/templates/public/images/boxy/boxy-nw.png +0 -0
  225. data/lib/generators/social_stream/base/templates/public/images/boxy/boxy-se.png +0 -0
  226. data/lib/generators/social_stream/base/templates/public/images/boxy/boxy-sw.png +0 -0
  227. data/lib/generators/social_stream/base/templates/public/images/btn/1-facebook.png +0 -0
  228. data/lib/generators/social_stream/base/templates/public/images/btn/_notes/btn_certificates.png.mno +4 -0
  229. data/lib/generators/social_stream/base/templates/public/images/btn/arrowBlue.png +0 -0
  230. data/lib/generators/social_stream/base/templates/public/images/btn/arrows-ffffff.png +0 -0
  231. data/lib/generators/social_stream/base/templates/public/images/btn/bold.png +0 -0
  232. data/lib/generators/social_stream/base/templates/public/images/btn/btn_activities.png +0 -0
  233. data/lib/generators/social_stream/base/templates/public/images/btn/btn_bookmark.png +0 -0
  234. data/lib/generators/social_stream/base/templates/public/images/btn/btn_browse.png +0 -0
  235. data/lib/generators/social_stream/base/templates/public/images/btn/btn_certificates.png +0 -0
  236. data/lib/generators/social_stream/base/templates/public/images/btn/btn_check.png +0 -0
  237. data/lib/generators/social_stream/base/templates/public/images/btn/btn_close.png +0 -0
  238. data/lib/generators/social_stream/base/templates/public/images/btn/btn_comment.png +0 -0
  239. data/lib/generators/social_stream/base/templates/public/images/btn/btn_comment_add.png +0 -0
  240. data/lib/generators/social_stream/base/templates/public/images/btn/btn_conferences.png +0 -0
  241. data/lib/generators/social_stream/base/templates/public/images/btn/btn_config.png +0 -0
  242. data/lib/generators/social_stream/base/templates/public/images/btn/btn_date.png +0 -0
  243. data/lib/generators/social_stream/base/templates/public/images/btn/btn_delete.png +0 -0
  244. data/lib/generators/social_stream/base/templates/public/images/btn/btn_documents.png +0 -0
  245. data/lib/generators/social_stream/base/templates/public/images/btn/btn_down.png +0 -0
  246. data/lib/generators/social_stream/base/templates/public/images/btn/btn_edit.png +0 -0
  247. data/lib/generators/social_stream/base/templates/public/images/btn/btn_embebed.png +0 -0
  248. data/lib/generators/social_stream/base/templates/public/images/btn/btn_exit.png +0 -0
  249. data/lib/generators/social_stream/base/templates/public/images/btn/btn_find.png +0 -0
  250. data/lib/generators/social_stream/base/templates/public/images/btn/btn_follow.png +0 -0
  251. data/lib/generators/social_stream/base/templates/public/images/btn/btn_foward.png +0 -0
  252. data/lib/generators/social_stream/base/templates/public/images/btn/btn_friend.png +0 -0
  253. data/lib/generators/social_stream/base/templates/public/images/btn/btn_gallery.png +0 -0
  254. data/lib/generators/social_stream/base/templates/public/images/btn/btn_group.png +0 -0
  255. data/lib/generators/social_stream/base/templates/public/images/btn/btn_help.png +0 -0
  256. data/lib/generators/social_stream/base/templates/public/images/btn/btn_home.png +0 -0
  257. data/lib/generators/social_stream/base/templates/public/images/btn/btn_inbox.png +0 -0
  258. data/lib/generators/social_stream/base/templates/public/images/btn/btn_info.png +0 -0
  259. data/lib/generators/social_stream/base/templates/public/images/btn/btn_like.png +0 -0
  260. data/lib/generators/social_stream/base/templates/public/images/btn/btn_next.png +0 -0
  261. data/lib/generators/social_stream/base/templates/public/images/btn/btn_notification.png +0 -0
  262. data/lib/generators/social_stream/base/templates/public/images/btn/btn_notification_delete.png +0 -0
  263. data/lib/generators/social_stream/base/templates/public/images/btn/btn_notifications.png +0 -0
  264. data/lib/generators/social_stream/base/templates/public/images/btn/btn_outline.png +0 -0
  265. data/lib/generators/social_stream/base/templates/public/images/btn/btn_page_link.png +0 -0
  266. data/lib/generators/social_stream/base/templates/public/images/btn/btn_partner.png +0 -0
  267. data/lib/generators/social_stream/base/templates/public/images/btn/btn_photo.png +0 -0
  268. data/lib/generators/social_stream/base/templates/public/images/btn/btn_printer.png +0 -0
  269. data/lib/generators/social_stream/base/templates/public/images/btn/btn_profile.png +0 -0
  270. data/lib/generators/social_stream/base/templates/public/images/btn/btn_rank.png +0 -0
  271. data/lib/generators/social_stream/base/templates/public/images/btn/btn_security.png +0 -0
  272. data/lib/generators/social_stream/base/templates/public/images/btn/btn_send.png +0 -0
  273. data/lib/generators/social_stream/base/templates/public/images/btn/btn_spam.png +0 -0
  274. data/lib/generators/social_stream/base/templates/public/images/btn/btn_star.png +0 -0
  275. data/lib/generators/social_stream/base/templates/public/images/btn/btn_tag.png +0 -0
  276. data/lib/generators/social_stream/base/templates/public/images/btn/btn_video.png +0 -0
  277. data/lib/generators/social_stream/base/templates/public/images/btn/btn_write.png +0 -0
  278. data/lib/generators/social_stream/base/templates/public/images/btn/close.png +0 -0
  279. data/lib/generators/social_stream/base/templates/public/images/btn/date.png +0 -0
  280. data/lib/generators/social_stream/base/templates/public/images/btn/edit.png +0 -0
  281. data/lib/generators/social_stream/base/templates/public/images/btn/error.png +0 -0
  282. data/lib/generators/social_stream/base/templates/public/images/btn/facebook.png +0 -0
  283. data/lib/generators/social_stream/base/templates/public/images/btn/flag.png +0 -0
  284. data/lib/generators/social_stream/base/templates/public/images/btn/flyer.png +0 -0
  285. data/lib/generators/social_stream/base/templates/public/images/btn/group_left.png +0 -0
  286. data/lib/generators/social_stream/base/templates/public/images/btn/group_right.png +0 -0
  287. data/lib/generators/social_stream/base/templates/public/images/btn/index_71.png +0 -0
  288. data/lib/generators/social_stream/base/templates/public/images/btn/info.png +0 -0
  289. data/lib/generators/social_stream/base/templates/public/images/btn/italic.png +0 -0
  290. data/lib/generators/social_stream/base/templates/public/images/btn/keynote.png +0 -0
  291. data/lib/generators/social_stream/base/templates/public/images/btn/like.png +0 -0
  292. data/lib/generators/social_stream/base/templates/public/images/btn/linkedin.png +0 -0
  293. data/lib/generators/social_stream/base/templates/public/images/btn/live.png +0 -0
  294. data/lib/generators/social_stream/base/templates/public/images/btn/message_conversation.png +0 -0
  295. data/lib/generators/social_stream/base/templates/public/images/btn/message_inbox.png +0 -0
  296. data/lib/generators/social_stream/base/templates/public/images/btn/message_new.png +0 -0
  297. data/lib/generators/social_stream/base/templates/public/images/btn/message_sentbox.png +0 -0
  298. data/lib/generators/social_stream/base/templates/public/images/btn/message_trash.png +0 -0
  299. data/lib/generators/social_stream/base/templates/public/images/btn/new.png +0 -0
  300. data/lib/generators/social_stream/base/templates/public/images/btn/next_conference.png +0 -0
  301. data/lib/generators/social_stream/base/templates/public/images/btn/next_space.png +0 -0
  302. data/lib/generators/social_stream/base/templates/public/images/btn/nolike.png +0 -0
  303. data/lib/generators/social_stream/base/templates/public/images/btn/notifications.png +0 -0
  304. data/lib/generators/social_stream/base/templates/public/images/btn/pixel.png +0 -0
  305. data/lib/generators/social_stream/base/templates/public/images/btn/point_blue.png +0 -0
  306. data/lib/generators/social_stream/base/templates/public/images/btn/point_gray.png +0 -0
  307. data/lib/generators/social_stream/base/templates/public/images/btn/search.png +0 -0
  308. data/lib/generators/social_stream/base/templates/public/images/btn/shadow.png +0 -0
  309. data/lib/generators/social_stream/base/templates/public/images/btn/share.png +0 -0
  310. data/lib/generators/social_stream/base/templates/public/images/btn/subtime.png +0 -0
  311. data/lib/generators/social_stream/base/templates/public/images/btn/success.png +0 -0
  312. data/lib/generators/social_stream/base/templates/public/images/btn/tag_cloud.png +0 -0
  313. data/lib/generators/social_stream/base/templates/public/images/btn/time.png +0 -0
  314. data/lib/generators/social_stream/base/templates/public/images/btn/twitter-follow-icon.png +0 -0
  315. data/lib/generators/social_stream/base/templates/public/images/btn/twitter.png +0 -0
  316. data/lib/generators/social_stream/base/templates/public/images/btn/uno.png +0 -0
  317. data/lib/generators/social_stream/base/templates/public/images/btn/viewer.png +0 -0
  318. data/lib/generators/social_stream/base/templates/public/images/btn/warning.png +0 -0
  319. data/lib/generators/social_stream/base/templates/public/images/cancel.png +0 -0
  320. data/lib/generators/social_stream/base/templates/public/images/frontpage/collaborate.png +0 -0
  321. data/lib/generators/social_stream/base/templates/public/images/frontpage/comments.png +0 -0
  322. data/lib/generators/social_stream/base/templates/public/images/frontpage/green_sq.png +0 -0
  323. data/lib/generators/social_stream/base/templates/public/images/frontpage/join.gif +0 -0
  324. data/lib/generators/social_stream/base/templates/public/images/frontpage/meet.png +0 -0
  325. data/lib/generators/social_stream/base/templates/public/images/frontpage/people.png +0 -0
  326. data/lib/generators/social_stream/base/templates/public/images/frontpage/purple_sq.png +0 -0
  327. data/lib/generators/social_stream/base/templates/public/images/frontpage/right_comments.gif +0 -0
  328. data/lib/generators/social_stream/base/templates/public/images/frontpage/right_organizers.gif +0 -0
  329. data/lib/generators/social_stream/base/templates/public/images/frontpage/right_people.gif +0 -0
  330. data/lib/generators/social_stream/base/templates/public/images/frontpage/right_social.gif +0 -0
  331. data/lib/generators/social_stream/base/templates/public/images/frontpage/right_tags.gif +0 -0
  332. data/lib/generators/social_stream/base/templates/public/images/frontpage/right_webcam.gif +0 -0
  333. data/lib/generators/social_stream/base/templates/public/images/frontpage/share.png +0 -0
  334. data/lib/generators/social_stream/base/templates/public/images/frontpage/tags.png +0 -0
  335. data/lib/generators/social_stream/base/templates/public/images/frontpage/yellow_sq.png +0 -0
  336. data/lib/generators/social_stream/base/templates/public/images/header-logo.png +0 -0
  337. data/lib/generators/social_stream/base/templates/public/images/html5-badge-h-css3-semantics.png +0 -0
  338. data/lib/generators/social_stream/base/templates/public/images/icon_checkbox.png +0 -0
  339. data/lib/generators/social_stream/base/templates/public/images/icons/favicon.ico +0 -0
  340. data/lib/generators/social_stream/base/templates/public/images/left.png +0 -0
  341. data/lib/generators/social_stream/base/templates/public/images/loader.gif +0 -0
  342. data/lib/generators/social_stream/base/templates/public/images/logo.png +0 -0
  343. data/lib/generators/social_stream/base/templates/public/images/logos/actor/group.png +0 -0
  344. data/lib/generators/social_stream/base/templates/public/images/logos/actor/remote_subject.png +0 -0
  345. data/lib/generators/social_stream/base/templates/public/images/logos/actor/remote_user.png +0 -0
  346. data/lib/generators/social_stream/base/templates/public/images/logos/actor/user.png +0 -0
  347. data/lib/generators/social_stream/base/templates/public/images/logos/original/group.png +0 -0
  348. data/lib/generators/social_stream/base/templates/public/images/logos/original/user.png +0 -0
  349. data/lib/generators/social_stream/base/templates/public/images/logos/profile/group.png +0 -0
  350. data/lib/generators/social_stream/base/templates/public/images/logos/profile/user.png +0 -0
  351. data/lib/generators/social_stream/base/templates/public/images/logos/representation/group.png +0 -0
  352. data/lib/generators/social_stream/base/templates/public/images/logos/representation/user.png +0 -0
  353. data/lib/generators/social_stream/base/templates/public/images/logos/tie/group.png +0 -0
  354. data/lib/generators/social_stream/base/templates/public/images/logos/tie/user.png +0 -0
  355. data/lib/generators/social_stream/base/templates/public/images/pbar-ani.gif +0 -0
  356. data/lib/generators/social_stream/base/templates/public/images/right.png +0 -0
  357. data/lib/generators/social_stream/base/templates/public/images/title_background.png +0 -0
  358. data/lib/generators/social_stream/base/templates/public/javascripts/ajax.paginate.js +46 -0
  359. data/lib/generators/social_stream/base/templates/public/javascripts/avatars.js +8 -0
  360. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/.htaccess +24 -0
  361. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/adapters/jquery.js +6 -0
  362. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/ckeditor.js +141 -0
  363. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/ckeditor_basic.js +8 -0
  364. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/ckeditor_basic_source.js +20 -0
  365. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/ckeditor_source.js +25 -0
  366. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/config.js +21 -0
  367. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/contents.css +45 -0
  368. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/images/spacer.gif +0 -0
  369. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/lang/_languages.js +6 -0
  370. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/lang/_translationstatus.txt +60 -0
  371. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/lang/af.js +6 -0
  372. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/lang/ar.js +6 -0
  373. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/lang/bg.js +6 -0
  374. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/lang/bn.js +6 -0
  375. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/lang/bs.js +6 -0
  376. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/lang/ca.js +6 -0
  377. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/lang/cs.js +6 -0
  378. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/lang/cy.js +6 -0
  379. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/lang/da.js +6 -0
  380. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/lang/de.js +6 -0
  381. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/lang/el.js +6 -0
  382. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/lang/en-au.js +6 -0
  383. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/lang/en-ca.js +6 -0
  384. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/lang/en-gb.js +6 -0
  385. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/lang/en.js +6 -0
  386. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/lang/eo.js +6 -0
  387. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/lang/es.js +6 -0
  388. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/lang/et.js +6 -0
  389. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/lang/eu.js +6 -0
  390. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/lang/fa.js +6 -0
  391. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/lang/fi.js +6 -0
  392. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/lang/fo.js +6 -0
  393. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/lang/fr-ca.js +6 -0
  394. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/lang/fr.js +6 -0
  395. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/lang/gl.js +6 -0
  396. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/lang/gu.js +6 -0
  397. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/lang/he.js +6 -0
  398. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/lang/hi.js +6 -0
  399. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/lang/hr.js +6 -0
  400. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/lang/hu.js +6 -0
  401. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/lang/is.js +6 -0
  402. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/lang/it.js +6 -0
  403. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/lang/ja.js +6 -0
  404. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/lang/km.js +6 -0
  405. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/lang/ko.js +6 -0
  406. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/lang/lt.js +6 -0
  407. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/lang/lv.js +6 -0
  408. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/lang/mn.js +6 -0
  409. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/lang/ms.js +6 -0
  410. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/lang/nb.js +6 -0
  411. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/lang/nl.js +6 -0
  412. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/lang/no.js +6 -0
  413. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/lang/pl.js +6 -0
  414. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/lang/pt-br.js +6 -0
  415. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/lang/pt.js +6 -0
  416. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/lang/ro.js +6 -0
  417. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/lang/ru.js +6 -0
  418. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/lang/sk.js +6 -0
  419. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/lang/sl.js +6 -0
  420. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/lang/sr-latn.js +6 -0
  421. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/lang/sr.js +6 -0
  422. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/lang/sv.js +6 -0
  423. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/lang/th.js +6 -0
  424. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/lang/tr.js +6 -0
  425. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/lang/uk.js +6 -0
  426. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/lang/vi.js +6 -0
  427. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/lang/zh-cn.js +6 -0
  428. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/lang/zh.js +6 -0
  429. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/a11yhelp/dialogs/a11yhelp.js +7 -0
  430. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/a11yhelp/lang/en.js +6 -0
  431. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/a11yhelp/lang/he.js +6 -0
  432. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/about/dialogs/about.js +6 -0
  433. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/about/dialogs/logo_ckeditor.png +0 -0
  434. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/adobeair/plugin.js +6 -0
  435. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/autogrow/plugin.js +6 -0
  436. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/clipboard/dialogs/paste.js +7 -0
  437. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/colordialog/dialogs/colordialog.js +7 -0
  438. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/dialog/dialogDefinition.js +4 -0
  439. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/div/dialogs/div.js +8 -0
  440. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/find/dialogs/find.js +9 -0
  441. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/flash/dialogs/flash.js +9 -0
  442. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/flash/images/placeholder.png +0 -0
  443. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/forms/dialogs/button.js +6 -0
  444. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/forms/dialogs/checkbox.js +6 -0
  445. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/forms/dialogs/form.js +6 -0
  446. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/forms/dialogs/hiddenfield.js +6 -0
  447. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/forms/dialogs/radio.js +6 -0
  448. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/forms/dialogs/select.js +9 -0
  449. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/forms/dialogs/textarea.js +6 -0
  450. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/forms/dialogs/textfield.js +6 -0
  451. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/forms/images/hiddenfield.gif +0 -0
  452. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/iframe/dialogs/iframe.js +7 -0
  453. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/iframe/images/placeholder.png +0 -0
  454. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/iframedialog/plugin.js +6 -0
  455. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/image/dialogs/image.js +13 -0
  456. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/link/dialogs/anchor.js +6 -0
  457. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/link/dialogs/link.js +11 -0
  458. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/link/images/anchor.gif +0 -0
  459. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/liststyle/dialogs/liststyle.js +6 -0
  460. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/pagebreak/images/pagebreak.gif +0 -0
  461. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/pastefromword/filter/default.js +10 -0
  462. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/pastetext/dialogs/pastetext.js +6 -0
  463. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/placeholder/dialogs/placeholder.js +6 -0
  464. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/placeholder/lang/en.js +6 -0
  465. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/placeholder/placeholder.gif +0 -0
  466. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/placeholder/plugin.js +6 -0
  467. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/scayt/dialogs/options.js +8 -0
  468. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/scayt/dialogs/toolbar.css +6 -0
  469. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/showblocks/images/block_address.png +0 -0
  470. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/showblocks/images/block_blockquote.png +0 -0
  471. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/showblocks/images/block_div.png +0 -0
  472. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/showblocks/images/block_h1.png +0 -0
  473. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/showblocks/images/block_h2.png +0 -0
  474. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/showblocks/images/block_h3.png +0 -0
  475. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/showblocks/images/block_h4.png +0 -0
  476. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/showblocks/images/block_h5.png +0 -0
  477. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/showblocks/images/block_h6.png +0 -0
  478. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/showblocks/images/block_p.png +0 -0
  479. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/showblocks/images/block_pre.png +0 -0
  480. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/smiley/dialogs/smiley.js +7 -0
  481. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/smiley/images/angel_smile.gif +0 -0
  482. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/smiley/images/angry_smile.gif +0 -0
  483. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/smiley/images/broken_heart.gif +0 -0
  484. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/smiley/images/confused_smile.gif +0 -0
  485. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/smiley/images/cry_smile.gif +0 -0
  486. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/smiley/images/devil_smile.gif +0 -0
  487. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/smiley/images/embaressed_smile.gif +0 -0
  488. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/smiley/images/envelope.gif +0 -0
  489. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/smiley/images/heart.gif +0 -0
  490. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/smiley/images/kiss.gif +0 -0
  491. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/smiley/images/lightbulb.gif +0 -0
  492. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/smiley/images/omg_smile.gif +0 -0
  493. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/smiley/images/regular_smile.gif +0 -0
  494. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/smiley/images/sad_smile.gif +0 -0
  495. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/smiley/images/shades_smile.gif +0 -0
  496. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/smiley/images/teeth_smile.gif +0 -0
  497. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/smiley/images/thumbs_down.gif +0 -0
  498. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/smiley/images/thumbs_up.gif +0 -0
  499. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/smiley/images/tounge_smile.gif +0 -0
  500. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif +0 -0
  501. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/smiley/images/wink_smile.gif +0 -0
  502. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/specialchar/dialogs/specialchar.js +7 -0
  503. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/specialchar/lang/en.js +6 -0
  504. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/styles/styles/default.js +6 -0
  505. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/table/dialogs/table.js +9 -0
  506. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/tableresize/plugin.js +7 -0
  507. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/tabletools/dialogs/tableCell.js +8 -0
  508. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/templates/dialogs/templates.js +7 -0
  509. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/templates/templates/default.js +6 -0
  510. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/templates/templates/images/template1.gif +0 -0
  511. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/templates/templates/images/template2.gif +0 -0
  512. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/templates/templates/images/template3.gif +0 -0
  513. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/uicolor/dialogs/uicolor.js +7 -0
  514. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/uicolor/lang/en.js +6 -0
  515. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/uicolor/lang/he.js +6 -0
  516. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/uicolor/plugin.js +6 -0
  517. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/uicolor/uicolor.gif +0 -0
  518. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/uicolor/yui/assets/hue_bg.png +0 -0
  519. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/uicolor/yui/assets/hue_thumb.png +0 -0
  520. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/uicolor/yui/assets/picker_mask.png +0 -0
  521. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/uicolor/yui/assets/picker_thumb.png +0 -0
  522. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/uicolor/yui/assets/yui.css +6 -0
  523. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/uicolor/yui/yui.js +76 -0
  524. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/wsc/dialogs/ciframe.html +49 -0
  525. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/wsc/dialogs/tmpFrameset.html +52 -0
  526. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/wsc/dialogs/wsc.css +6 -0
  527. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/plugins/wsc/dialogs/wsc.js +7 -0
  528. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/skins/kama/dialog.css +9 -0
  529. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/skins/kama/editor.css +13 -0
  530. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/skins/kama/icons.png +0 -0
  531. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/skins/kama/icons_rtl.png +0 -0
  532. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/skins/kama/images/dialog_sides.gif +0 -0
  533. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/skins/kama/images/dialog_sides.png +0 -0
  534. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/skins/kama/images/dialog_sides_rtl.png +0 -0
  535. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/skins/kama/images/mini.gif +0 -0
  536. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/skins/kama/images/noimage.png +0 -0
  537. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/skins/kama/images/sprites.png +0 -0
  538. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/skins/kama/images/sprites_ie6.png +0 -0
  539. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/skins/kama/images/toolbar_start.gif +0 -0
  540. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/skins/kama/skin.js +7 -0
  541. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/skins/kama/templates.css +6 -0
  542. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/skins/office2003/dialog.css +9 -0
  543. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/skins/office2003/editor.css +14 -0
  544. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/skins/office2003/icons.png +0 -0
  545. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/skins/office2003/icons_rtl.png +0 -0
  546. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/skins/office2003/images/dialog_sides.gif +0 -0
  547. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/skins/office2003/images/dialog_sides.png +0 -0
  548. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/skins/office2003/images/dialog_sides_rtl.png +0 -0
  549. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/skins/office2003/images/mini.gif +0 -0
  550. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/skins/office2003/images/noimage.png +0 -0
  551. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/skins/office2003/images/sprites.png +0 -0
  552. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/skins/office2003/images/sprites_ie6.png +0 -0
  553. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/skins/office2003/skin.js +6 -0
  554. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/skins/office2003/templates.css +6 -0
  555. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/skins/v2/dialog.css +9 -0
  556. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/skins/v2/editor.css +13 -0
  557. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/skins/v2/icons.png +0 -0
  558. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/skins/v2/icons_rtl.png +0 -0
  559. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/skins/v2/images/dialog_sides.gif +0 -0
  560. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/skins/v2/images/dialog_sides.png +0 -0
  561. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/skins/v2/images/dialog_sides_rtl.png +0 -0
  562. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/skins/v2/images/mini.gif +0 -0
  563. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/skins/v2/images/noimage.png +0 -0
  564. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/skins/v2/images/sprites.png +0 -0
  565. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/skins/v2/images/sprites_ie6.png +0 -0
  566. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/skins/v2/images/toolbar_start.gif +0 -0
  567. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/skins/v2/skin.js +6 -0
  568. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/skins/v2/templates.css +6 -0
  569. data/lib/generators/social_stream/base/templates/public/javascripts/ckeditor/themes/default/theme.js +8 -0
  570. data/lib/generators/social_stream/base/templates/public/javascripts/hoverIntent.js +84 -0
  571. data/lib/generators/social_stream/base/templates/public/javascripts/jqcloud-0.1.3.min.js +11 -0
  572. data/lib/generators/social_stream/base/templates/public/javascripts/jquery-ui-1.8.4.custom.min.js +763 -0
  573. data/lib/generators/social_stream/base/templates/public/javascripts/jquery-ui-personalized-1.5.2.packed.js +1 -0
  574. data/lib/generators/social_stream/base/templates/public/javascripts/jquery-ui.min.js +401 -0
  575. data/lib/generators/social_stream/base/templates/public/javascripts/jquery.Jcrop.min.js +163 -0
  576. data/lib/generators/social_stream/base/templates/public/javascripts/jquery.ba-url.js +1091 -0
  577. data/lib/generators/social_stream/base/templates/public/javascripts/jquery.boxy.js +570 -0
  578. data/lib/generators/social_stream/base/templates/public/javascripts/jquery.fcbkcomplete.min.js +77 -0
  579. data/lib/generators/social_stream/base/templates/public/javascripts/jquery.fileupload-ui.js +259 -0
  580. data/lib/generators/social_stream/base/templates/public/javascripts/jquery.fileupload.js +475 -0
  581. data/lib/generators/social_stream/base/templates/public/javascripts/jquery.form.js +815 -0
  582. data/lib/generators/social_stream/base/templates/public/javascripts/jquery.js +7179 -0
  583. data/lib/generators/social_stream/base/templates/public/javascripts/jquery.livequery.js +250 -0
  584. data/lib/generators/social_stream/base/templates/public/javascripts/jquery.min.js +167 -0
  585. data/lib/generators/social_stream/base/templates/public/javascripts/jquery.scrollTo.min.js +11 -0
  586. data/lib/generators/social_stream/base/templates/public/javascripts/jquery.ui.mouse.js +156 -0
  587. data/lib/generators/social_stream/base/templates/public/javascripts/jquery.ui.slider.js +684 -0
  588. data/lib/generators/social_stream/base/templates/public/javascripts/jquery.ui.widget.js +236 -0
  589. data/lib/generators/social_stream/base/templates/public/javascripts/jquery.validate.js +1124 -0
  590. data/lib/generators/social_stream/base/templates/public/javascripts/main.js +28 -0
  591. data/lib/generators/social_stream/base/templates/public/javascripts/menu-collapsed.js +42 -0
  592. data/lib/generators/social_stream/base/templates/public/javascripts/menu.js +25 -0
  593. data/lib/generators/social_stream/base/templates/public/javascripts/rails.js +158 -0
  594. data/lib/generators/social_stream/base/templates/public/javascripts/superfish.js +121 -0
  595. data/lib/generators/social_stream/base/templates/public/javascripts/ui.checkbox.js +309 -0
  596. data/lib/generators/social_stream/base/templates/public/javascripts/ui.dropdownchecklist.js +777 -0
  597. data/lib/generators/social_stream/base/templates/public/stylesheets/default/activities.css +72 -0
  598. data/lib/generators/social_stream/base/templates/public/stylesheets/default/avatars.css +79 -0
  599. data/lib/generators/social_stream/base/templates/public/stylesheets/default/base.css +194 -0
  600. data/lib/generators/social_stream/base/templates/public/stylesheets/default/carousel.css +23 -0
  601. data/lib/generators/social_stream/base/templates/public/stylesheets/default/contacts.css +88 -0
  602. data/lib/generators/social_stream/base/templates/public/stylesheets/default/fcbkComplete.css +44 -0
  603. data/lib/generators/social_stream/base/templates/public/stylesheets/default/footer.css +26 -0
  604. data/lib/generators/social_stream/base/templates/public/stylesheets/default/frontpage.css +54 -0
  605. data/lib/generators/social_stream/base/templates/public/stylesheets/default/header.css +209 -0
  606. data/lib/generators/social_stream/base/templates/public/stylesheets/default/home.css +45 -0
  607. data/lib/generators/social_stream/base/templates/public/stylesheets/default/images/fcbkcomplete/close.gif +0 -0
  608. data/lib/generators/social_stream/base/templates/public/stylesheets/default/images/loading.gif +0 -0
  609. data/lib/generators/social_stream/base/templates/public/stylesheets/default/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  610. data/lib/generators/social_stream/base/templates/public/stylesheets/default/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  611. data/lib/generators/social_stream/base/templates/public/stylesheets/default/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  612. data/lib/generators/social_stream/base/templates/public/stylesheets/default/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  613. data/lib/generators/social_stream/base/templates/public/stylesheets/default/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  614. data/lib/generators/social_stream/base/templates/public/stylesheets/default/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  615. data/lib/generators/social_stream/base/templates/public/stylesheets/default/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  616. data/lib/generators/social_stream/base/templates/public/stylesheets/default/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  617. data/lib/generators/social_stream/base/templates/public/stylesheets/default/images/ui-icons_222222_256x240.png +0 -0
  618. data/lib/generators/social_stream/base/templates/public/stylesheets/default/images/ui-icons_2e83ff_256x240.png +0 -0
  619. data/lib/generators/social_stream/base/templates/public/stylesheets/default/images/ui-icons_454545_256x240.png +0 -0
  620. data/lib/generators/social_stream/base/templates/public/stylesheets/default/images/ui-icons_888888_256x240.png +0 -0
  621. data/lib/generators/social_stream/base/templates/public/stylesheets/default/images/ui-icons_cd0a0a_256x240.png +0 -0
  622. data/lib/generators/social_stream/base/templates/public/stylesheets/default/jqcloud.css +15 -0
  623. data/lib/generators/social_stream/base/templates/public/stylesheets/default/jquery-ui.css +620 -0
  624. data/lib/generators/social_stream/base/templates/public/stylesheets/default/jquery.Jcrop.css +35 -0
  625. data/lib/generators/social_stream/base/templates/public/stylesheets/default/jquery.fileupload-ui.css +73 -0
  626. data/lib/generators/social_stream/base/templates/public/stylesheets/default/jquery.ui.slider.css +24 -0
  627. data/lib/generators/social_stream/base/templates/public/stylesheets/default/jquery.ui.slidertheme.css +32 -0
  628. data/lib/generators/social_stream/base/templates/public/stylesheets/default/menu.css +27 -0
  629. data/lib/generators/social_stream/base/templates/public/stylesheets/default/messages.css +126 -0
  630. data/lib/generators/social_stream/base/templates/public/stylesheets/default/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  631. data/lib/generators/social_stream/base/templates/public/stylesheets/default/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  632. data/lib/generators/social_stream/base/templates/public/stylesheets/default/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  633. data/lib/generators/social_stream/base/templates/public/stylesheets/default/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  634. data/lib/generators/social_stream/base/templates/public/stylesheets/default/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  635. data/lib/generators/social_stream/base/templates/public/stylesheets/default/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  636. data/lib/generators/social_stream/base/templates/public/stylesheets/default/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  637. data/lib/generators/social_stream/base/templates/public/stylesheets/default/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  638. data/lib/generators/social_stream/base/templates/public/stylesheets/default/smoothness/images/ui-icons_222222_256x240.png +0 -0
  639. data/lib/generators/social_stream/base/templates/public/stylesheets/default/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
  640. data/lib/generators/social_stream/base/templates/public/stylesheets/default/smoothness/images/ui-icons_454545_256x240.png +0 -0
  641. data/lib/generators/social_stream/base/templates/public/stylesheets/default/smoothness/images/ui-icons_888888_256x240.png +0 -0
  642. data/lib/generators/social_stream/base/templates/public/stylesheets/default/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
  643. data/lib/generators/social_stream/base/templates/public/stylesheets/default/smoothness/jquery-ui-1.7.3.custom.css +405 -0
  644. data/lib/generators/social_stream/base/templates/public/stylesheets/default/smoothness/jquery-ui-1.8.4.custom.css +572 -0
  645. data/lib/generators/social_stream/base/templates/public/stylesheets/default/spheres.css +226 -0
  646. data/lib/generators/social_stream/base/templates/relations.yml +43 -0
  647. data/lib/paperclip/social_stream.rb +6 -0
  648. data/lib/social_stream/ability.rb +83 -0
  649. data/lib/social_stream/base/version.rb +5 -0
  650. data/lib/social_stream/base.rb +58 -0
  651. data/lib/social_stream/controllers/helpers.rb +83 -0
  652. data/lib/social_stream/models/object.rb +77 -0
  653. data/lib/social_stream/models/subject.rb +114 -0
  654. data/lib/social_stream/models/supertype.rb +44 -0
  655. data/lib/social_stream/populate.rb +26 -0
  656. data/lib/social_stream/test_helpers/controllers.rb +119 -0
  657. data/lib/social_stream/test_helpers.rb +11 -0
  658. data/lib/social_stream-base.rb +98 -0
  659. data/lib/tasks/db/populate.rake +194 -0
  660. data/social_stream-base.gemspec +69 -0
  661. data/spec/controllers/comments_controller_spec.rb +42 -0
  662. data/spec/controllers/contacts_controller_spec.rb +41 -0
  663. data/spec/controllers/frontpage_controller_spec.rb +16 -0
  664. data/spec/controllers/groups_controller_spec.rb +136 -0
  665. data/spec/controllers/home_controller_spec.rb +39 -0
  666. data/spec/controllers/likes_controller_spec.rb +29 -0
  667. data/spec/controllers/permissions_controller_spec.rb +46 -0
  668. data/spec/controllers/posts_controller_spec.rb +129 -0
  669. data/spec/controllers/profiles_controller_spec.rb +102 -0
  670. data/spec/controllers/relation_customs_controller_spec.rb +133 -0
  671. data/spec/controllers/representations_spec.rb +74 -0
  672. data/spec/controllers/spheres_controller_spec.rb +108 -0
  673. data/spec/controllers/subjects_controller.rb +14 -0
  674. data/spec/controllers/users_controller_spec.rb +74 -0
  675. data/spec/dummy/.gitignore +4 -0
  676. data/spec/dummy/Rakefile +7 -0
  677. data/spec/dummy/app/controllers/application_controller.rb +3 -0
  678. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  679. data/spec/dummy/config/application.rb +45 -0
  680. data/spec/dummy/config/boot.rb +10 -0
  681. data/spec/dummy/config/database.yml +30 -0
  682. data/spec/dummy/config/environment.rb +5 -0
  683. data/spec/dummy/config/environments/development.rb +26 -0
  684. data/spec/dummy/config/environments/production.rb +49 -0
  685. data/spec/dummy/config/environments/test.rb +35 -0
  686. data/spec/dummy/config/environments/test_pg.rb +35 -0
  687. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  688. data/spec/dummy/config/initializers/devise.rb +176 -0
  689. data/spec/dummy/config/initializers/inflections.rb +10 -0
  690. data/spec/dummy/config/initializers/mailboxer.rb +8 -0
  691. data/spec/dummy/config/initializers/mime_types.rb +5 -0
  692. data/spec/dummy/config/initializers/secret_token.rb +7 -0
  693. data/spec/dummy/config/initializers/session_store.rb +8 -0
  694. data/spec/dummy/config/initializers/social_stream.rb +17 -0
  695. data/spec/dummy/config/locales/en.yml +5 -0
  696. data/spec/dummy/config/relations.yml +43 -0
  697. data/spec/dummy/config/routes.rb +60 -0
  698. data/spec/dummy/config.ru +4 -0
  699. data/spec/dummy/db/migrate/.gitkeep +0 -0
  700. data/spec/dummy/db/schema.rb +7 -0
  701. data/spec/dummy/db/seeds.rb +8 -0
  702. data/spec/dummy/public/404.html +26 -0
  703. data/spec/dummy/public/422.html +26 -0
  704. data/spec/dummy/public/500.html +26 -0
  705. data/spec/dummy/public/favicon.ico +0 -0
  706. data/spec/dummy/script/rails +6 -0
  707. data/spec/factories/activity.rb +10 -0
  708. data/spec/factories/actor.rb +5 -0
  709. data/spec/factories/comment.rb +4 -0
  710. data/spec/factories/group.rb +4 -0
  711. data/spec/factories/post.rb +4 -0
  712. data/spec/factories/relation_custom.rb +4 -0
  713. data/spec/factories/sphere.rb +5 -0
  714. data/spec/factories/tie.rb +37 -0
  715. data/spec/factories/user.rb +6 -0
  716. data/spec/integration/navigation_spec.rb +9 -0
  717. data/spec/models/activity_spec.rb +365 -0
  718. data/spec/models/actor_spec.rb +19 -0
  719. data/spec/models/group_spec.rb +12 -0
  720. data/spec/models/like_spec.rb +68 -0
  721. data/spec/models/post_spec.rb +33 -0
  722. data/spec/models/profile_spec.rb +39 -0
  723. data/spec/models/relation_custom_spec.rb +14 -0
  724. data/spec/models/tie_activity_spec.rb +109 -0
  725. data/spec/models/tie_spec.rb +166 -0
  726. data/spec/models/user_spec.rb +22 -0
  727. data/spec/social_stream_spec.rb +7 -0
  728. data/spec/spec_helper.rb +34 -0
  729. data/spec/support/cancan.rb +1 -0
  730. data/spec/support/db.rb +21 -0
  731. data/spec/support/devise.rb +4 -0
  732. data/spec/support/migrations.rb +24 -0
  733. metadata +1218 -0
@@ -0,0 +1,1091 @@
1
+ /*!
2
+ * URL Utils - v1.11 - 9/10/2009
3
+ * http://benalman.com/
4
+ *
5
+ * Copyright (c) 2009 "Cowboy" Ben Alman
6
+ * Licensed under the MIT license
7
+ * http://benalman.com/about/license/
8
+ */
9
+
10
+ // Script: URL Utils
11
+ //
12
+ // Version: 1.11, Date: 9/10/2009
13
+ //
14
+ // Tested with jQuery 1.3.2 in Internet Explorer 6-8, Firefox 3-3.6a,
15
+ // Safari 3-4, Chrome, Opera 9.6.
16
+ //
17
+ // Home - http://benalman.com/projects/jquery-url-utils-plugin/
18
+ // Source - http://benalman.com/code/javascript/jquery/jquery.ba-url.js
19
+ // (Minified) - http://benalman.com/code/javascript/jquery/jquery.ba-url.min.js (3.9kb)
20
+ // Unit Tests - http://benalman.com/code/unittest/url.html
21
+ //
22
+ // About: License
23
+ //
24
+ // Copyright (c) 2009 "Cowboy" Ben Alman
25
+ //
26
+ // Licensed under the MIT license
27
+ //
28
+ // http://benalman.com/about/license/
29
+ //
30
+ // About: Revision History
31
+ //
32
+ // 1.11 - Minor bugfix for Firefox 3.0+
33
+ // 1.1 - Added support for onhashchange event
34
+ // 1.0 - Initial release
35
+
36
+ (function($) {
37
+ '$:nomunge'; // Used by YUI compressor.
38
+
39
+ var url_regexp,
40
+ tag_attributes = {},
41
+
42
+ // A few constants.
43
+ undefined,
44
+ window = this,
45
+ TRUE = true,
46
+ FALSE = false,
47
+ has_onhashchange = 'onhashchange' in window,
48
+
49
+ // Some convenient shortcuts.
50
+ aps = Array.prototype.slice,
51
+ loc = document.location,
52
+
53
+ // Internal plugin method references.
54
+ p_urlTagAttrList,
55
+ p_urlInternalHost,
56
+ p_urlInternalRegExp,
57
+ p_isUrlInternal,
58
+ p_isUrlExternal,
59
+ p_urlFilter,
60
+ p_urlFilterSelector,
61
+ p_setFragment,
62
+
63
+ // Reused internal strings.
64
+ str_urlInternal = 'urlInternal',
65
+ str_urlExternal = 'urlExternal',
66
+ str_queryString = 'queryString',
67
+ str_fragment = 'fragment',
68
+ str_update = 'update',
69
+ str_passQueryString = 'passQueryString',
70
+ str_passFragment = 'passFragment',
71
+ str_fragmentChange = 'fragmentChange',
72
+ str_hashchange = 'hashchange.' + str_fragmentChange,
73
+
74
+ // fragmentChange event handler
75
+ timeout_id,
76
+ last_fragment;
77
+
78
+
79
+ // A few commonly used bits, broken out to help reduce minified file size.
80
+
81
+ function is_string( arg ) {
82
+ return typeof arg === 'string';
83
+ };
84
+
85
+ function is_object( arg ) {
86
+ return typeof arg === 'object';
87
+ };
88
+
89
+ function curry() {
90
+ var args = aps.call( arguments ),
91
+ func = args.shift();
92
+
93
+ return function() {
94
+ return func.apply( this, args.concat( aps.call( arguments ) ) );
95
+ };
96
+ };
97
+
98
+ // Work-around for an annoying Firefox bug where document.location.hash gets
99
+ // urldecoded by default.
100
+
101
+ function get_fragment() {
102
+ return loc.href.replace( /^[^#]*#?/, '' );
103
+ };
104
+
105
+
106
+ // Method: jQuery.urlTagAttrList
107
+ //
108
+ // Get the internal "Default URL attribute per tag" list, or augment the list
109
+ // with additional tag-attribute pairs, in case the defaults are insufficient.
110
+ //
111
+ // This list contains the default attributes for the <jQuery.fn.urlInternal>
112
+ // and <jQuery.fn.urlExternal> methods, as well as the <:urlInternal> and
113
+ // <:urlExternal> selector filters, to determine which URL will be tested for
114
+ // internal- or external-ness. In the <jQuery.fn.queryString>,
115
+ // <jQuery.fn.fragment>, <jQuery.fn.passQueryString> and
116
+ // <jQuery.fn.passFragment> methods, this list is used to determine which URL
117
+ // will be modified.
118
+ //
119
+ // Default List:
120
+ //
121
+ // TAG - URL ATTRIBUTE
122
+ // a - href
123
+ // img - src
124
+ // form - action
125
+ // base - href
126
+ // script - src
127
+ // iframe - src
128
+ // link - href
129
+ //
130
+ // Usage:
131
+ //
132
+ // jQuery.urlTagAttrList( [ tag_attr_obj ] ); - -
133
+ //
134
+ // Arguments:
135
+ //
136
+ // tag_attr_obj - (Object) An list of tag names and associated default
137
+ // attribute names in the format { tag: 'attr', tag: 'attr', ... }.
138
+ //
139
+ // Returns:
140
+ //
141
+ // (Object) The current internal "Default URL attribute per tag" list.
142
+
143
+ $.urlTagAttrList = p_urlTagAttrList = function( attr_obj ) {
144
+ return $.extend( tag_attributes, attr_obj );
145
+ };
146
+
147
+ // Initialize the tag_attributes object with some reasonable defaults.
148
+
149
+ p_urlTagAttrList({
150
+ a: 'href',
151
+ img: 'src',
152
+ form: 'action',
153
+ base: 'href',
154
+ script: 'src',
155
+ iframe: 'src',
156
+ link: 'href'
157
+ });
158
+
159
+ // Get the default attribute for the specified DOM element, if it exists.
160
+
161
+ function get_attr( elem ) {
162
+ var n = elem.nodeName;
163
+ return n ? tag_attributes[ n.toLowerCase() ] : '';
164
+ };
165
+
166
+
167
+ // Section: URL Internal / External
168
+ //
169
+ // Method: jQuery.urlInternalHost
170
+ //
171
+ // Constructs the regular expression that matches an absolute-but-internal
172
+ // URL from the current page's protocol, hostname and port, allowing for
173
+ // an optional hostname (if specified). For example, if the current page is
174
+ // http://benalman.com/anything, specifying an alt_hostname of 'www' would
175
+ // yield this pattern:
176
+ //
177
+ // > /^http:\/\/(?:www\.)?benalman.com\//i
178
+ //
179
+ // This pattern will match URLs beginning with both http://benalman.com/ and
180
+ // http://www.benalman.com/. Specifying an empty alt_hostname will disable any
181
+ // alt-hostname matching.
182
+ //
183
+ // Note that the plugin is initialized by default to an alt_hostname of 'www'.
184
+ // Should you need more control, <jQuery.urlInternalRegExp> may be used to
185
+ // completely override this absolute-but-internal matching pattern.
186
+ //
187
+ // Usage:
188
+ //
189
+ // jQuery.urlInternalHost( [ alt_hostname ] ); - -
190
+ //
191
+ // Arguments:
192
+ //
193
+ // alt_hostname - (String) An optional alternate hostname to use when testing
194
+ // URL absolute-but-internal-ness.
195
+ //
196
+ // Returns:
197
+ //
198
+ // (RegExp) The absolute-but-internal pattern, as a RegExp.
199
+
200
+ $.urlInternalHost = p_urlInternalHost = function( alt_hostname ) {
201
+ alt_hostname = alt_hostname
202
+ ? '(?:' + alt_hostname + '\\.)?'
203
+ : '';
204
+
205
+ var re = new RegExp( '^' + alt_hostname + '(.*)', 'i' ),
206
+ pattern = '^' + loc.protocol + '//'
207
+ + loc.hostname.replace(re, alt_hostname + '$1')
208
+ //+ 'benalman.com'.replace(re, alt_hostname + '$1') // For testing on stage.benalman.com
209
+ + (loc.port ? ':' + loc.port : '') + '/';
210
+
211
+ return p_urlInternalRegExp( pattern );
212
+ };
213
+
214
+
215
+ // Method: jQuery.urlInternalRegExp
216
+ //
217
+ // Set or get the regular expression that matches an absolute-but-internal
218
+ // URL.
219
+ //
220
+ // Usage:
221
+ //
222
+ // jQuery.urlInternalRegExp( [ re ] ); - -
223
+ //
224
+ // Arguments:
225
+ //
226
+ // re - (String or RegExp) The regular expression pattern. If not passed,
227
+ // nothing is changed.
228
+ //
229
+ // Returns:
230
+ //
231
+ // (RegExp) The absolute-but-internal pattern, as a RegExp.
232
+
233
+ $.urlInternalRegExp = p_urlInternalRegExp = function( re ) {
234
+ if ( re ) {
235
+ url_regexp = is_string( re )
236
+ ? new RegExp( re, 'i' )
237
+ : re;
238
+ }
239
+
240
+ return url_regexp;
241
+ };
242
+
243
+
244
+ // Initialize url_regexp with a reasonable default.
245
+
246
+ p_urlInternalHost( 'www' );
247
+
248
+
249
+ // Method: jQuery.isUrlInternal
250
+ //
251
+ // Test whether or not a URL is internal. Non-navigating URLs (ie. #anchor,
252
+ // javascript:, mailto:, news:, tel:, im: or non-http/-https protocol://
253
+ // links) are not considered internal.
254
+ //
255
+ // Usage:
256
+ //
257
+ // jQuery.isUrlInternal( url ); - -
258
+ //
259
+ // Arguments:
260
+ //
261
+ // url - (String) a URL to test the internal-ness of.
262
+ //
263
+ // Returns:
264
+ //
265
+ // (Boolean) true if the URL is internal, false if external, or undefined if
266
+ // the URL is non-navigating.
267
+
268
+ $.isUrlInternal = p_isUrlInternal = function( url ) {
269
+
270
+ // non-navigating: url is nonexistent
271
+ if ( !url ) { return undefined; }
272
+
273
+ // internal: url is absolute-but-internal (see $.urlInternalRegExp)
274
+ if ( url_regexp.test(url) ) { return TRUE; }
275
+
276
+ // external: url is absolute (begins with http:// or https://)
277
+ if ( /^https?:\/\//i.test(url) ) { return FALSE; }
278
+
279
+ // non-navigating: url begins with # or scheme:
280
+ if ( /^(?:#|[a-z\d.-]+:)/i.test(url) ) { return undefined; }
281
+
282
+ return TRUE;
283
+ };
284
+
285
+
286
+ // Method: jQuery.isUrlExternal
287
+ //
288
+ // Test whether or not a URL is external. Non-navigating URLs (ie. #anchor,
289
+ // mailto:, javascript:, or non-http/-https protocol:// links) are not
290
+ // considered external.
291
+ //
292
+ // Usage:
293
+ //
294
+ // jQuery.isUrlExternal( url ); - -
295
+ //
296
+ // Arguments:
297
+ //
298
+ // url - (String) a URL to test the external-ness of.
299
+ //
300
+ // Returns:
301
+ //
302
+ // (Boolean) true if the URL is external, false if internal, or undefined if
303
+ // the URL is non-navigating.
304
+
305
+ $.isUrlExternal = p_isUrlExternal = function( url ) {
306
+ var result = p_isUrlInternal( url );
307
+
308
+ return typeof result === 'boolean'
309
+ ? !result
310
+ : result;
311
+ };
312
+
313
+
314
+ // Method: jQuery.fn.urlInternal
315
+ //
316
+ // Filter a jQuery collection of elements, returning only elements that have
317
+ // an internal URL (as determined by <jQuery.isUrlInternal>). If URL cannot
318
+ // be determined, remove the element from the collection.
319
+ //
320
+ // Usage:
321
+ //
322
+ // jQuery('selector').urlInternal( [ attr ] ); - -
323
+ //
324
+ // Arguments:
325
+ //
326
+ // attr - (String) Optional name of an attribute that will contain a URL to
327
+ // test internal-ness against. See <jQuery.urlTagAttrList> for a list of
328
+ // default attributes.
329
+ //
330
+ // Returns:
331
+ //
332
+ // (jQuery) A filtered jQuery collection of elements.
333
+
334
+ // Method: jQuery.fn.urlExternal
335
+ //
336
+ // Filter a jQuery collection of elements, returning only elements that have
337
+ // an external URL (as determined by <jQuery.isUrlExternal>). If URL cannot
338
+ // be determined, remove the element from the collection.
339
+ //
340
+ // Usage:
341
+ //
342
+ // jQuery('selector').urlExternal( [ attr ] ); - -
343
+ //
344
+ // Arguments:
345
+ //
346
+ // attr - (String) Optional name of an attribute that will contain a URL to
347
+ // test external-ness against. See <jQuery.urlTagAttrList> for a list of
348
+ // default attributes.
349
+ //
350
+ // Returns:
351
+ //
352
+ // (jQuery) A filtered jQuery collection of elements.
353
+
354
+ p_urlFilter = function( selector, attr ) {
355
+ return this.filter( ':' + selector + (attr ? '(' + attr + ')' : '') );
356
+ };
357
+
358
+ $.fn[str_urlInternal] = curry( p_urlFilter, str_urlInternal );
359
+ $.fn[str_urlExternal] = curry( p_urlFilter, str_urlExternal );
360
+
361
+
362
+ // Method: :urlInternal
363
+ //
364
+ // Filter a jQuery collection of elements, returning only elements that have
365
+ // an internal URL (as determined by <jQuery.isUrlInternal>). If URL cannot
366
+ // be determined, remove the element from the collection.
367
+ //
368
+ // Usage:
369
+ //
370
+ // jQuery('selector').filter(':urlInternal'); - -
371
+ // jQuery('selector').filter(':urlInternal(attr)'); - -
372
+ //
373
+ // Arguments:
374
+ //
375
+ // attr - (String) Optional name of an attribute that will contain a URL to
376
+ // test internal-ness against. See <jQuery.urlTagAttrList> for a list of
377
+ // default attributes.
378
+ //
379
+ // Returns:
380
+ //
381
+ // (jQuery) A filtered jQuery collection of elements.
382
+
383
+ // Method: :urlExternal
384
+ //
385
+ // Filter a jQuery collection of elements, returning only elements that have
386
+ // an external URL (as determined by <jQuery.isUrlExternal>). If URL cannot
387
+ // be determined, remove the element from the collection.
388
+ //
389
+ // Usage:
390
+ //
391
+ // jQuery('selector').filter(':urlExternal'); - -
392
+ // jQuery('selector').filter(':urlExternal(attr)'); - -
393
+ //
394
+ // Arguments:
395
+ //
396
+ // attr - (String) Optional name of an attribute that will contain a URL to
397
+ // test external-ness against. See <jQuery.urlTagAttrList> for a list of
398
+ // default attributes.
399
+ //
400
+ // Returns:
401
+ //
402
+ // (jQuery) A filtered jQuery collection of elements.
403
+
404
+ p_urlFilterSelector = function( func, elem, i, match ) {
405
+ var a = match[3] || get_attr( elem );
406
+
407
+ return a ? !!func( $(elem).attr(a) ) : FALSE;
408
+ };
409
+
410
+ $.expr[':'][str_urlInternal] = curry( p_urlFilterSelector, p_isUrlInternal );
411
+ $.expr[':'][str_urlExternal] = curry( p_urlFilterSelector, p_isUrlExternal );
412
+
413
+
414
+ // Section: URL Query String / Fragment
415
+ //
416
+ // Method: jQuery.queryString (deserialize)
417
+ //
418
+ // Deserialize any params string or the current document's query string into
419
+ // an object. Multiple sequential values will be converted into an array, ie.
420
+ // 'n=a&n=b&n=c' -> { n: ['a', 'b', 'c'] }.
421
+ //
422
+ // Usage:
423
+ //
424
+ // jQuery.queryString( [ params_str ] [ , cast_values ] ); - -
425
+ //
426
+ // Arguments:
427
+ //
428
+ // params_str - (String) A stand-alone params string or a URL containing
429
+ // params to be deserialized. If omitted, defaults to the current page
430
+ // query string (document.location.search).
431
+ // cast_values - (Boolean) If true, converts any numbers or true, false,
432
+ // null, and undefined to their appropriate literal. Defaults to false.
433
+ //
434
+ // Returns:
435
+ //
436
+ // (Object) The deserialized params string.
437
+
438
+ // Method: jQuery.queryString (serialize)
439
+ //
440
+ // Serialize an object into a params string. Arrays will be converted to
441
+ // multiple sequential values, ie. { n: ['a', 'b', 'c'] } -> 'n=a&n=b&n=c'
442
+ // (this method is just a wrapper for jQuery.param).
443
+ //
444
+ // Usage:
445
+ //
446
+ // jQuery.queryString( params_obj ); - -
447
+ //
448
+ // Arguments:
449
+ //
450
+ // params_obj - (Object) An object to be serialized. Note: A JSON string (or
451
+ // some analog) should be used for deep structures, since nested data
452
+ // structures other than shallow arrays can't be serialized into a query
453
+ // string in a meaningful way.
454
+ //
455
+ // Returns:
456
+ //
457
+ // (String) A params string with urlencoded data in the format 'a=b&c=d&e=f'.
458
+
459
+ // Method: jQuery.queryString (build url)
460
+ //
461
+ // Merge a URL (with or without a pre-existing params) plus any object or
462
+ // params string into a new URL.
463
+ //
464
+ // Usage:
465
+ //
466
+ // jQuery.queryString( url, params [ , merge_mode ] ); - -
467
+ //
468
+ // Arguments:
469
+ //
470
+ // url - (String) A valid URL, optionally containing a query string and/or
471
+ // #anchor, or fragment.
472
+ // params - (String or Object) Either a serialized params string or a data
473
+ // object to be merged into the URL.
474
+ // merge_mode - (Number) Merge behavior defaults to 0 if merge_mode is not
475
+ // specified, and is as-follows:
476
+ //
477
+ // * 0: params argument will override any params in url.
478
+ // * 1: any params in url will override params argument.
479
+ // * 2: params argument will completely replace any params in url.
480
+ //
481
+ // Returns:
482
+ //
483
+ // (String) A URL with urlencoded params in the format 'url?a=b&c=d&e=f'.
484
+
485
+ // Method: jQuery.fragment (deserialize)
486
+ //
487
+ // Deserialize any params string or the current document's fragment into an
488
+ // object. Multiple sequential values will be converted into an array, ie.
489
+ // 'n=a&n=b&n=c' -> { n: ['a', 'b', 'c'] }.
490
+ //
491
+ // Usage:
492
+ //
493
+ // jQuery.fragment( [ params_str ] [ , cast_values ] ); - -
494
+ //
495
+ // Arguments:
496
+ //
497
+ // params_str - (String) A stand-alone params string or a URL containing
498
+ // params to be deserialized. If omitted, defaults to the current page
499
+ // fragment (document.location.hash).
500
+ // cast_values - (Boolean) If true, converts any numbers or true, false,
501
+ // null, and undefined to their appropriate literal. Defaults to false.
502
+ //
503
+ // Returns:
504
+ //
505
+ // (Object) The deserialized params string.
506
+
507
+ // Method: jQuery.fragment (serialize)
508
+ //
509
+ // Serialize an object into a params string. Arrays will be converted to
510
+ // multiple sequential values, ie. { n: ['a', 'b', 'c'] } -> 'n=a&n=b&n=c'
511
+ // (this method is just a wrapper for jQuery.param).
512
+ //
513
+ // Usage:
514
+ //
515
+ // jQuery.fragment( params_obj ); - -
516
+ //
517
+ // Arguments:
518
+ //
519
+ // params_obj - (Object) An object to be serialized. Note: A JSON string (or
520
+ // some analog) should be used for deep structures, since nested data
521
+ // structures other than shallow arrays can't be serialized into a query
522
+ // string in a meaningful way.
523
+ //
524
+ // Returns:
525
+ //
526
+ // (String) A params string with urlencoded data in the format 'a=b&c=d&e=f'.
527
+
528
+ // Method: jQuery.fragment (build url)
529
+ //
530
+ // Merge a URL (with or without a pre-existing params) plus any object or
531
+ // params string into a new URL.
532
+ //
533
+ // Usage:
534
+ //
535
+ // jQuery.fragment( url, params [ , merge_mode ] ); - -
536
+ //
537
+ // Arguments:
538
+ //
539
+ // url - (String) A valid URL, optionally containing a query string and/or
540
+ // #anchor, or fragment.
541
+ // params - (String or Object) Either a serialized params string or a data
542
+ // object to be merged into the URL.
543
+ // merge_mode - (Number) Merge behavior defaults to 0 if merge_mode is not
544
+ // specified, and is as-follows:
545
+ //
546
+ // * 0: params argument will override any params in url.
547
+ // * 1: any params in url will override params argument.
548
+ // * 2: params argument will completely replace any params in url.
549
+ //
550
+ // Returns:
551
+ //
552
+ // (String) A URL with urlencoded params in the format 'url#a=b&c=d&e=f'.
553
+
554
+ function p_params( fragment_mode, arg0, arg1, arg2 ) {
555
+ var params;
556
+
557
+ if ( is_string(arg1) || is_object(arg1) ) {
558
+ // Build URL.
559
+ return build_url( arg0, arg1, arg2, fragment_mode );
560
+
561
+ } else if ( is_object(arg0) ) {
562
+ // Serialize.
563
+ return $.param( arg0 );
564
+
565
+ } else if ( is_string(arg0) ) {
566
+ // Deserialize.
567
+ return deserialize( arg0, arg1, fragment_mode );
568
+
569
+ } else {
570
+ // Deserialize document query string / fragment.
571
+ params = fragment_mode
572
+ ? get_fragment()
573
+ : loc.search;
574
+
575
+ return deserialize( params, arg0, fragment_mode );
576
+ }
577
+ };
578
+
579
+ $[str_queryString] = curry( p_params, 0 );
580
+ $[str_fragment] = curry( p_params, 1 );
581
+
582
+ // Method: jQuery.fn.queryString
583
+ //
584
+ // Update URL attribute in one or more elements, merging the current URL (with
585
+ // or without pre-existing params) plus any object or params string into a new
586
+ // URL, which is then set into that attribute. Like <jQuery.queryString (build
587
+ // url)>, but for all elements in a jQuery collection.
588
+ //
589
+ // Usage:
590
+ //
591
+ // jQuery('selector').queryString( [ attr, ] params [ , merge_mode ] ); - -
592
+ //
593
+ // Arguments:
594
+ //
595
+ // attr - (String) Optional name of an attribute that will contain a URL to
596
+ // merge params into. See <jQuery.urlTagAttrList> for a list of default
597
+ // attributes.
598
+ // params - (String or Object) Either a serialized params string or a data
599
+ // object to be merged into the URL.
600
+ // merge_mode - (Number) Merge behavior defaults to 0 if merge_mode is not
601
+ // specified, and is as-follows:
602
+ //
603
+ // * 0: params argument will override any params in attr URL.
604
+ // * 1: any params in attr URL will override params argument.
605
+ // * 2: params argument will completely replace any params in attr URL.
606
+ //
607
+ // Returns:
608
+ //
609
+ // (jQuery) The initial jQuery collection of elements, but with modified URL
610
+ // attribute values.
611
+
612
+ // Method: jQuery.fn.fragment
613
+ //
614
+ // Update URL attribute in one or more elements, merging the current URL (with
615
+ // or without pre-existing params) plus any object or params string into a new
616
+ // URL, which is then set into that attribute. Like <jQuery.fragment (build
617
+ // url)>, but for all elements in a jQuery collection.
618
+ //
619
+ // Usage:
620
+ //
621
+ // jQuery('selector').fragment( [ attr, ] params [ , merge_mode ] ); - -
622
+ //
623
+ // Arguments:
624
+ //
625
+ // attr - (String) Optional name of an attribute that will contain a URL to
626
+ // merge params into. See <jQuery.urlTagAttrList> for a list of default
627
+ // attributes.
628
+ // params - (String or Object) Either a serialized params string or a data
629
+ // object to be merged into the URL.
630
+ // merge_mode - (Number) Merge behavior defaults to 0 if merge_mode is not
631
+ // specified, and is as-follows:
632
+ //
633
+ // * 0: params argument will override any params in attr URL.
634
+ // * 1: any params in attr URL will override params argument.
635
+ // * 2: params argument will completely replace any params in attr URL.
636
+ //
637
+ // Returns:
638
+ //
639
+ // (jQuery) The initial jQuery collection of elements, but with modified URL
640
+ // attribute values.
641
+
642
+ function p_fn_params() {
643
+ var attr,
644
+ params,
645
+ merge_mode,
646
+ args = aps.call( arguments ),
647
+ fragment_mode = args.shift();
648
+
649
+ if ( is_string(args[1]) || is_object(args[1]) ) {
650
+ attr = args.shift();
651
+ }
652
+ params = args.shift();
653
+ merge_mode = args.shift();
654
+
655
+ return this.each(function(){
656
+
657
+ var that = $(this),
658
+ a = attr || get_attr( this ),
659
+ url = a && that.attr( a ) || '';
660
+
661
+ url = p_params( fragment_mode, url, params, merge_mode );
662
+ that.attr( a, url );
663
+
664
+ });
665
+ };
666
+
667
+ $.fn[str_queryString] = curry( p_fn_params, 0 );
668
+ $.fn[str_fragment] = curry( p_fn_params, 1 );
669
+
670
+ // Method: jQuery.passQueryString
671
+ //
672
+ // Merge a URL (with or without pre-existing params) plus the document query
673
+ // string into a new URL, optionally omitting specified params or parsing the
674
+ // document params with a callback function pre-merge.
675
+ //
676
+ // Usage:
677
+ //
678
+ // jQuery.passQueryString( url [ , parse ] [ , merge_mode ] ); - -
679
+ //
680
+ // Arguments:
681
+ //
682
+ // url - (String) A valid URL, optionally containing a query string and/or
683
+ // #anchor, or fragment.
684
+ // parse - (Array or Function) An optional array of key names to -not- merge
685
+ // into the URL, or a function that returns the object that will be merged
686
+ // into url (the document params are deserialized and passed to this
687
+ // function as its only argument).
688
+ // merge_mode - (Number) Merge behavior defaults to 0 if merge_mode is not
689
+ // specified, and is as-follows:
690
+ //
691
+ // * 0: document params will override any params in url.
692
+ // * 1: any params in url will override document params.
693
+ // * 2: document params will completely replace any params in url.
694
+ //
695
+ // Returns:
696
+ //
697
+ // (String) A URL with urlencoded params in the format 'url?a=b&c=d&e=f'.
698
+
699
+ // Method: jQuery.passFragment
700
+ //
701
+ // Merge a URL (with or without pre-existing params) plus the document
702
+ // fragment into a new URL, optionally omitting specified params or parsing
703
+ // the document params with a callback function pre-merge.
704
+ //
705
+ // Usage:
706
+ //
707
+ // jQuery.passFragment( url [ , parse ] [ , merge_mode ] ); - -
708
+ //
709
+ // Arguments:
710
+ //
711
+ // url - (String) A valid URL, optionally containing a query string and/or
712
+ // #anchor, or fragment.
713
+ // parse - (Array or Function) An optional array of key names to -not- merge
714
+ // into the URL, or a function that returns the object that will be merged
715
+ // into url (the document params are deserialized and passed to this
716
+ // function as its only argument).
717
+ // merge_mode - (Number) Merge behavior defaults to 0 if merge_mode is not
718
+ // specified, and is as-follows:
719
+ //
720
+ // * 0: document params will override any params in url.
721
+ // * 1: any params in url will override document params.
722
+ // * 2: document params will completely replace any params in url.
723
+ //
724
+ // Returns:
725
+ //
726
+ // (String) A URL with urlencoded params in the format 'url#a=b&c=d&e=f'.
727
+
728
+ function p_passParams() {
729
+ var args = aps.call( arguments ),
730
+ fragment_mode = args.shift(),
731
+ url = args.shift(),
732
+ params = p_params( fragment_mode );
733
+
734
+ if ( $.isFunction(args[0]) ) {
735
+ params = args.shift()( params );
736
+ } else if ( $.isArray(args[0]) ) {
737
+ $.each(args.shift(), function(i,v){
738
+ delete params[v];
739
+ });
740
+ }
741
+
742
+ return p_params( fragment_mode, url, params, args.shift() );
743
+ };
744
+
745
+ $[str_passQueryString] = curry( p_passParams, 0 );
746
+ $[str_passFragment] = curry( p_passParams, 1 );
747
+
748
+
749
+ // Method: jQuery.fn.passQueryString
750
+ //
751
+ // Update URL attribute in one or more elements, merging the current URL (with
752
+ // or without pre-existing params) plus the document query string into a new
753
+ // URL (optionally parsing the document params with a callback function
754
+ // pre-merge), which is then set into that attribute. Like
755
+ // <jQuery.passQueryString>, but for all elements in a jQuery collection.
756
+ //
757
+ // Usage:
758
+ //
759
+ // jQuery('selector').passQueryString( [ attr ] [ , parse ] [ , merge_mode ] ); - -
760
+ //
761
+ // Arguments:
762
+ //
763
+ // attr - (String) Optional name of an attribute that will contain a URL to
764
+ // merge params into. See <jQuery.urlTagAttrList> for a list of default
765
+ // attributes.
766
+ // parse - (Array or Function) An optional array of key names to -not- merge
767
+ // into the URL, or a function that returns the object that will be merged
768
+ // into url (the document params are deserialized and passed to this
769
+ // function as its only argument).
770
+ // merge_mode - (Number) Merge behavior defaults to 0 if merge_mode is not
771
+ // specified, and is as-follows:
772
+ //
773
+ // * 0: document params will override any params in attr URL.
774
+ // * 1: any params in attr URL will override document params.
775
+ // * 2: document params will completely replace any params in attr URL.
776
+ //
777
+ // Returns:
778
+ //
779
+ // (jQuery) The initial jQuery collection of elements, but with modified URL
780
+ // attribute values.
781
+
782
+ // Method: jQuery.fn.passFragment
783
+ //
784
+ // Update URL attribute in one or more elements, merging the current URL (with
785
+ // or without pre-existing params) plus the document fragment into a new URL
786
+ // (optionally parsing the document params with a callback function
787
+ // pre-merge), which is then set into that attribute. Like
788
+ // <jQuery.passFragment>, but for all elements in a jQuery collection.
789
+ //
790
+ // Usage:
791
+ //
792
+ // jQuery('selector').passFragment( [ attr ] [ , parse ] [ , merge_mode ] ); - -
793
+ //
794
+ // Arguments:
795
+ //
796
+ // attr - (String) Optional name of an attribute that will contain a URL to
797
+ // merge params into. See <jQuery.urlTagAttrList> for a list of default
798
+ // attributes.
799
+ // parse - (Array or Function) An optional array of key names to -not- merge
800
+ // into the URL, or a function that returns the object that will be merged
801
+ // into url (the document params are deserialized and passed to this
802
+ // function as its only argument).
803
+ // merge_mode - (Number) Merge behavior defaults to 0 if merge_mode is not
804
+ // specified, and is as-follows:
805
+ //
806
+ // * 0: document params will override any params in attr URL.
807
+ // * 1: any params in attr URL will override document params.
808
+ // * 2: document params will completely replace any params in attr URL.
809
+ //
810
+ // Returns:
811
+ //
812
+ // (jQuery) The initial jQuery collection of elements, but with modified URL
813
+ // attribute values.
814
+
815
+ function p_fn_passParams() {
816
+ var attr,
817
+ args = aps.call(arguments),
818
+ fragment_mode = args.shift();
819
+
820
+ if ( is_string(args[0]) ) {
821
+ attr = args.shift();
822
+ }
823
+
824
+ return this.each(function(){
825
+
826
+ var that = $(this),
827
+ a = attr || get_attr( this ),
828
+ url = a && that.attr( a ) || '';
829
+
830
+ url = p_passParams.apply( this, [fragment_mode, url].concat(args) );
831
+ that.attr( a, url );
832
+
833
+ });
834
+ };
835
+
836
+ $.fn[str_passQueryString] = curry( p_fn_passParams, 0 );
837
+ $.fn[str_passFragment] = curry( p_fn_passParams, 1 );
838
+
839
+
840
+ // Deserialize a params string, optionally preceded by a url? or ?, or
841
+ // followed by an #anchor (or if fragment_mode, optionally preceded by a url#
842
+ // or #) into an object, optionally casting numbers, null, true, false, and
843
+ // undefined values appropriately.
844
+
845
+ function deserialize( params, cast_values, fragment_mode ) {
846
+ var p,
847
+ key,
848
+ val,
849
+ obj = {},
850
+ cast_types = { 'null': null, 'true': TRUE, 'false': FALSE },
851
+ decode_uri_component = decodeURIComponent,
852
+ re = fragment_mode
853
+ ? /^.*[#]/
854
+ : /^.*[?]|#.*$/g;
855
+
856
+ params = params.replace( re, '' ).replace( /\+/g, ' ' ).split('&');
857
+
858
+ while ( params.length ) {
859
+
860
+ p = params.shift().split('=');
861
+ key = decode_uri_component( p[0] );
862
+
863
+ if ( p.length === 2 ) {
864
+ val = decode_uri_component( p[1] );
865
+
866
+ if ( cast_values ) {
867
+ if ( val && !isNaN(val) ) {
868
+ val = Number( val );
869
+ } else if ( val === 'undefined' ) {
870
+ val = undefined;
871
+ } else if ( cast_types[val] !== undefined ) {
872
+ val = cast_types[val];
873
+ }
874
+ }
875
+
876
+ if ( $.isArray(obj[key]) ) {
877
+ obj[key].push( val );
878
+ } else if ( obj[key] !== undefined ) {
879
+ obj[key] = [obj[key], val];
880
+ } else {
881
+ obj[key] = val;
882
+ }
883
+
884
+ } else if ( key ) {
885
+ obj[key] = cast_values
886
+ ? undefined
887
+ : '';
888
+ }
889
+ }
890
+
891
+ return obj;
892
+ };
893
+
894
+ // Merge a URL (with or without a pre-existing params string and/or #anchor,
895
+ // or fragment) plus any object or params string into a new URL.
896
+
897
+ function build_url( url, params, merge_mode, fragment_mode ) {
898
+ var qs,
899
+ re = fragment_mode
900
+ ? /^([^#]*)[#]?(.*)$/
901
+ : /^([^#?]*)[?]?([^#]*)(#?.*)/,
902
+ matches = url.match( re ),
903
+ url_params = deserialize( matches[2], 0, fragment_mode ),
904
+ hash = matches[3] || '';
905
+
906
+ if ( is_string(params) ) {
907
+ params = deserialize( params, 0, fragment_mode );
908
+ }
909
+
910
+ if ( merge_mode === 2 ) {
911
+ qs = params;
912
+ } else if ( merge_mode === 1 ) {
913
+ qs = $.extend( {}, params, url_params );
914
+ } else {
915
+ qs = $.extend( {}, url_params, params );
916
+ }
917
+
918
+ qs = $.param( qs );
919
+ return matches[1] + ( fragment_mode ? '#' : qs || !matches[1] ? '?' : '' ) + qs + hash;
920
+ };
921
+
922
+
923
+ // Method: jQuery.setFragment
924
+ //
925
+ // Set the document fragment. Will trigger the <fragmentChange> event if
926
+ // <jQuery.fragmentChange> has been enabled, and the new fragment is actually
927
+ // different than the previous fragment.
928
+ //
929
+ // Usage:
930
+ //
931
+ // jQuery.setFragment( [ params [ , merge_mode ] ] ); - -
932
+ //
933
+ // Arguments:
934
+ //
935
+ // params - (String or Object) Either a serialized params string or a data
936
+ // object to set as the current document's fragment. If omitted, sets the
937
+ // document fragment to # (this may cause your browser to scroll).
938
+ // merge_mode - (Number) Merge behavior defaults to 0 if merge_mode is not
939
+ // specified, and is as-follows:
940
+ //
941
+ // * 0: params argument will override any params in document fragment.
942
+ // * 1: any params in document fragment will override params argument.
943
+ // * 2: params argument will completely replace any params in document
944
+ // fragment.
945
+ //
946
+ // Returns:
947
+ //
948
+ // Nothing.
949
+
950
+ $.setFragment = p_setFragment = function( params, merge_mode ) {
951
+ var frag = is_object( params )
952
+ ? p_params( TRUE, params )
953
+ : (params || '').replace( /^#/, '' );
954
+
955
+ frag = params
956
+ ? build_url( '#' + get_fragment(), '#' + frag, merge_mode, 1 )
957
+ : '#';
958
+
959
+ //loc.hash = frag; // Safari 3 & Chrome barf if frag === '#'.
960
+ loc.href = loc.href.replace( /#.*$/, '' ) + frag;
961
+ };
962
+
963
+
964
+ // Method: jQuery.fragmentChange
965
+ //
966
+ // Enable or disable the polling loop that watches the document fragment for
967
+ // changes and triggers the <fragmentChange> event. The event object passed to
968
+ // a bound event callback has the property "fragment" which contains the
969
+ // fragment params string. Disabled by default.
970
+ //
971
+ // In browsers that support it, the onhashchange event is used (IE8, FF3.6)
972
+ //
973
+ // Note: When this is enabled for the first time, a hidden IFRAME is written
974
+ // into the body for Internet Explorer 6 and 7 to enable fragment-based
975
+ // browser history.
976
+ //
977
+ // Usage:
978
+ //
979
+ // jQuery.fragmentChange( [ state ] ); - -
980
+ //
981
+ // Arguments:
982
+ //
983
+ // state - (Boolean or Number) If true, a polling loop is started with the
984
+ // default delay of 100 and the fragmentChange event is enabled. If omitted
985
+ // or false, the polling loop is stopped and the fragmentChange event is
986
+ // disabled. A zero-or-greater numeric polling loop delay in milliseconds
987
+ // may also be specified.
988
+ //
989
+ // Returns:
990
+ //
991
+ // Nothing.
992
+
993
+ // Event: fragmentChange
994
+ //
995
+ // Fired when the document fragment changes, provided <jQuery.fragmentChange>
996
+ // has been enabled.
997
+ //
998
+ // The event object that is passed as the sole argument to the callback has a
999
+ // .fragment property, which is a URI encoded string reflecting the current
1000
+ // location.hash, with any leading # removed. Using e.fragment should be more
1001
+ // reliable than accessing location.hash directly, as only Firefox URI decodes
1002
+ // the location.hash property automatically.
1003
+ //
1004
+ // Usage:
1005
+ //
1006
+ // > $(document).bind('fragmentChange', function(e) {
1007
+ // > var fragment_str = e.fragment,
1008
+ // > fragment_obj = $.fragment();
1009
+ // > ...
1010
+ // > });
1011
+
1012
+ $[str_fragmentChange] = function( delay ) {
1013
+ if ( delay === TRUE ) { delay = 100; }
1014
+
1015
+ function trigger() {
1016
+ var event = $.Event( str_fragmentChange );
1017
+ event[str_fragment] = get_fragment();
1018
+
1019
+ $(document).trigger( event );
1020
+ };
1021
+
1022
+ has_onhashchange && $(window).unbind( str_hashchange );
1023
+
1024
+ timeout_id && clearTimeout( timeout_id );
1025
+ timeout_id = null;
1026
+
1027
+ if ( typeof delay === 'number' ) {
1028
+ if ( has_onhashchange ) {
1029
+ $(window).bind( str_hashchange, trigger );
1030
+
1031
+ } else {
1032
+ last_fragment = get_fragment();
1033
+
1034
+ if ( $.isFunction(ie_history) ) {
1035
+ ie_history = ie_history();
1036
+ }
1037
+
1038
+ (function loopy(){
1039
+ var frag = get_fragment(),
1040
+ ie_frag = ie_history[str_fragment]( last_fragment );
1041
+
1042
+ if ( frag !== last_fragment ) {
1043
+ ie_history[str_update]( frag, ie_frag );
1044
+
1045
+ last_fragment = frag;
1046
+ trigger();
1047
+
1048
+ } else if ( ie_frag !== last_fragment ) {
1049
+ p_setFragment( ie_frag, 2 );
1050
+ }
1051
+
1052
+ timeout_id = setTimeout( loopy, delay < 0 ? 0 : delay );
1053
+ })();
1054
+ }
1055
+ }
1056
+ };
1057
+
1058
+ // Handle fragment-based browser history in IE 6-7.
1059
+
1060
+ function ie_history() {
1061
+ var iframe,
1062
+ browser = $.browser,
1063
+ that = {};
1064
+
1065
+ that[str_update] = that[str_fragment] = function( val ){ return val; };
1066
+
1067
+ if ( browser.msie && browser.version < 8 ) {
1068
+
1069
+ that[str_update] = function( frag, ie_frag ) {
1070
+ var doc = iframe.document;
1071
+ if ( frag !== ie_frag ) {
1072
+ doc.open();
1073
+ doc.close();
1074
+ doc.location.hash = '#' + frag;
1075
+ }
1076
+ };
1077
+
1078
+ that[str_fragment] = function() {
1079
+ return iframe.document.location.hash.replace( /^#/, '' );
1080
+ };
1081
+
1082
+ iframe = $('<iframe/>').hide().appendTo( 'body' )
1083
+ .get(0).contentWindow;
1084
+
1085
+ that[str_update]( get_fragment() );
1086
+ }
1087
+
1088
+ return that;
1089
+ };
1090
+
1091
+ })(jQuery);