vkhater-social_stream-base 0.11.2
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +16 -0
- data/.rspec +1 -0
- data/.yardopts +2 -0
- data/Gemfile +10 -0
- data/LICENSE +20 -0
- data/README.rdoc +68 -0
- data/Rakefile +35 -0
- data/app/assets/images/HTML5.png +0 -0
- data/app/assets/images/HTML5_Semantics.png +0 -0
- data/app/assets/images/HTML5_Styling.png +0 -0
- data/app/assets/images/Jcrop.gif +0 -0
- data/app/assets/images/arrow-end.png +0 -0
- data/app/assets/images/arrow-start.png +0 -0
- data/app/assets/images/arrow.png +0 -0
- data/app/assets/images/big-logo.png +0 -0
- data/app/assets/images/btn/1-facebook.png +0 -0
- data/app/assets/images/btn/_notes/btn_certificates.png.mno +4 -0
- data/app/assets/images/btn/activity.png +0 -0
- data/app/assets/images/btn/arrowBlue.png +0 -0
- data/app/assets/images/btn/arrow_session_change.png +0 -0
- data/app/assets/images/btn/arrows-ffffff.png +0 -0
- data/app/assets/images/btn/bold.png +0 -0
- data/app/assets/images/btn/btn_account.png +0 -0
- data/app/assets/images/btn/btn_activities.png +0 -0
- data/app/assets/images/btn/btn_bookmark.png +0 -0
- data/app/assets/images/btn/btn_browse.png +0 -0
- data/app/assets/images/btn/btn_check.png +0 -0
- data/app/assets/images/btn/btn_close.png +0 -0
- data/app/assets/images/btn/btn_comment.png +0 -0
- data/app/assets/images/btn/btn_comment_add.png +0 -0
- data/app/assets/images/btn/btn_config.png +0 -0
- data/app/assets/images/btn/btn_date.png +0 -0
- data/app/assets/images/btn/btn_delete.png +0 -0
- data/app/assets/images/btn/btn_down.png +0 -0
- data/app/assets/images/btn/btn_edit.png +0 -0
- data/app/assets/images/btn/btn_exit.png +0 -0
- data/app/assets/images/btn/btn_find.png +0 -0
- data/app/assets/images/btn/btn_follow.png +0 -0
- data/app/assets/images/btn/btn_foward.png +0 -0
- data/app/assets/images/btn/btn_friend.png +0 -0
- data/app/assets/images/btn/btn_gallery.png +0 -0
- data/app/assets/images/btn/btn_group.png +0 -0
- data/app/assets/images/btn/btn_help.png +0 -0
- data/app/assets/images/btn/btn_home.png +0 -0
- data/app/assets/images/btn/btn_inbox.png +0 -0
- data/app/assets/images/btn/btn_info.png +0 -0
- data/app/assets/images/btn/btn_invitation.png +0 -0
- data/app/assets/images/btn/btn_like.png +0 -0
- data/app/assets/images/btn/btn_next.png +0 -0
- data/app/assets/images/btn/btn_notification.png +0 -0
- data/app/assets/images/btn/btn_notification_delete.png +0 -0
- data/app/assets/images/btn/btn_notification_read.png +0 -0
- data/app/assets/images/btn/btn_notifications.png +0 -0
- data/app/assets/images/btn/btn_page_link.png +0 -0
- data/app/assets/images/btn/btn_partner.png +0 -0
- data/app/assets/images/btn/btn_photo.png +0 -0
- data/app/assets/images/btn/btn_play.png +0 -0
- data/app/assets/images/btn/btn_printer.png +0 -0
- data/app/assets/images/btn/btn_profile.png +0 -0
- data/app/assets/images/btn/btn_rank.png +0 -0
- data/app/assets/images/btn/btn_read.png +0 -0
- data/app/assets/images/btn/btn_security.png +0 -0
- data/app/assets/images/btn/btn_send.png +0 -0
- data/app/assets/images/btn/btn_spam.png +0 -0
- data/app/assets/images/btn/btn_star.png +0 -0
- data/app/assets/images/btn/btn_tag.png +0 -0
- data/app/assets/images/btn/btn_write.png +0 -0
- data/app/assets/images/btn/close.png +0 -0
- data/app/assets/images/btn/date.png +0 -0
- data/app/assets/images/btn/delete.png +0 -0
- data/app/assets/images/btn/download.png +0 -0
- data/app/assets/images/btn/edit.png +0 -0
- data/app/assets/images/btn/error.png +0 -0
- data/app/assets/images/btn/facebook.png +0 -0
- data/app/assets/images/btn/flag.png +0 -0
- data/app/assets/images/btn/group_left.png +0 -0
- data/app/assets/images/btn/group_right.png +0 -0
- data/app/assets/images/btn/header_notifications.png +0 -0
- data/app/assets/images/btn/index_71.png +0 -0
- data/app/assets/images/btn/info.png +0 -0
- data/app/assets/images/btn/italic.png +0 -0
- data/app/assets/images/btn/like.png +0 -0
- data/app/assets/images/btn/linkedin.png +0 -0
- data/app/assets/images/btn/message_conversation.png +0 -0
- data/app/assets/images/btn/message_inbox.png +0 -0
- data/app/assets/images/btn/message_new.png +0 -0
- data/app/assets/images/btn/message_sentbox.png +0 -0
- data/app/assets/images/btn/message_trash.png +0 -0
- data/app/assets/images/btn/new.png +0 -0
- data/app/assets/images/btn/next_conference.png +0 -0
- data/app/assets/images/btn/next_space.png +0 -0
- data/app/assets/images/btn/nolike.png +0 -0
- data/app/assets/images/btn/notifications.png +0 -0
- data/app/assets/images/btn/pixel.png +0 -0
- data/app/assets/images/btn/point_blue.png +0 -0
- data/app/assets/images/btn/point_gray.png +0 -0
- data/app/assets/images/btn/post.png +0 -0
- data/app/assets/images/btn/search.png +0 -0
- data/app/assets/images/btn/search_icon.png +0 -0
- data/app/assets/images/btn/shadow.png +0 -0
- data/app/assets/images/btn/share.png +0 -0
- data/app/assets/images/btn/subtime.png +0 -0
- data/app/assets/images/btn/success.png +0 -0
- data/app/assets/images/btn/tag_cloud.png +0 -0
- data/app/assets/images/btn/twitter-follow-icon.png +0 -0
- data/app/assets/images/btn/twitter.png +0 -0
- data/app/assets/images/btn/uno.png +0 -0
- data/app/assets/images/btn/viewer.png +0 -0
- data/app/assets/images/btn/warning.png +0 -0
- data/app/assets/images/cancel.png +0 -0
- data/app/assets/images/cleditor/buttons.gif +0 -0
- data/app/assets/images/cleditor/toolbar.gif +0 -0
- data/app/assets/images/frontpage/collaborate.png +0 -0
- data/app/assets/images/frontpage/comments.png +0 -0
- data/app/assets/images/frontpage/green_sq.png +0 -0
- data/app/assets/images/frontpage/meet.png +0 -0
- data/app/assets/images/frontpage/people.png +0 -0
- data/app/assets/images/frontpage/purple_sq.png +0 -0
- data/app/assets/images/frontpage/right_comments.gif +0 -0
- data/app/assets/images/frontpage/right_conference.png +0 -0
- data/app/assets/images/frontpage/right_organizers.gif +0 -0
- data/app/assets/images/frontpage/right_people.gif +0 -0
- data/app/assets/images/frontpage/right_social.gif +0 -0
- data/app/assets/images/frontpage/right_tags.gif +0 -0
- data/app/assets/images/frontpage/right_webcam.gif +0 -0
- data/app/assets/images/frontpage/share.png +0 -0
- data/app/assets/images/frontpage/tags.png +0 -0
- data/app/assets/images/frontpage/yellow_sq.png +0 -0
- data/app/assets/images/header-logo.png +0 -0
- data/app/assets/images/html5-badge-h-css3-semantics.png +0 -0
- data/app/assets/images/icon_checkbox.png +0 -0
- data/app/assets/images/icons/favicon.ico +0 -0
- data/app/assets/images/left.png +0 -0
- data/app/assets/images/lightbox-blank.gif +0 -0
- data/app/assets/images/lightbox-btn-close.gif +0 -0
- data/app/assets/images/lightbox-btn-next.gif +0 -0
- data/app/assets/images/lightbox-btn-prev.gif +0 -0
- data/app/assets/images/lightbox-ico-loading.gif +0 -0
- data/app/assets/images/loader.gif +0 -0
- data/app/assets/images/loading.gif +0 -0
- data/app/assets/images/logo.png +0 -0
- data/app/assets/images/logos/actor/group.png +0 -0
- data/app/assets/images/logos/actor/remote_subject.png +0 -0
- data/app/assets/images/logos/actor/remote_user.png +0 -0
- data/app/assets/images/logos/actor/user.png +0 -0
- data/app/assets/images/logos/contact/group.png +0 -0
- data/app/assets/images/logos/contact/user.png +0 -0
- data/app/assets/images/logos/original/group.png +0 -0
- data/app/assets/images/logos/original/user.png +0 -0
- data/app/assets/images/logos/profile/group.png +0 -0
- data/app/assets/images/logos/profile/user.png +0 -0
- data/app/assets/images/logos/representation/group.png +0 -0
- data/app/assets/images/logos/representation/user.png +0 -0
- data/app/assets/images/mini-loading.gif +0 -0
- data/app/assets/images/right.png +0 -0
- data/app/assets/images/tipsy.gif +0 -0
- data/app/assets/javascripts/activities.js.erb +250 -0
- data/app/assets/javascripts/activities_security_chosen-modified.jquery.js +767 -0
- data/app/assets/javascripts/cheesecake.js +6 -0
- data/app/assets/javascripts/contacts.js +4 -0
- data/app/assets/javascripts/conversations.js +3 -0
- data/app/assets/javascripts/groups.js +5 -0
- data/app/assets/javascripts/invitations.js +8 -0
- data/app/assets/javascripts/jquery.ad-gallery.js +850 -0
- data/app/assets/javascripts/jquery.ad-gallery.pack.js +10 -0
- data/app/assets/javascripts/layouts.js +21 -0
- data/app/assets/javascripts/messages.js +4 -0
- data/app/assets/javascripts/posts.js +1 -0
- data/app/assets/javascripts/preloader.js +6 -0
- data/app/assets/javascripts/profiles.js +9 -0
- data/app/assets/javascripts/relation_customs.js +32 -0
- data/app/assets/javascripts/search.js.erb +3 -0
- data/app/assets/javascripts/settings.js +14 -0
- data/app/assets/javascripts/social_stream-base.js +11 -0
- data/app/assets/javascripts/ties.js +67 -0
- data/app/assets/javascripts/toolbar.js +1 -0
- data/app/assets/javascripts/users.js +2 -0
- data/app/assets/stylesheets/0_devise_sign.css +28 -0
- data/app/assets/stylesheets/_colors.scss +25 -0
- data/app/assets/stylesheets/activities.css.scss +88 -0
- data/app/assets/stylesheets/base.css.scss +257 -0
- data/app/assets/stylesheets/cheesecake.css.scss +55 -0
- data/app/assets/stylesheets/contacts.css.scss +100 -0
- data/app/assets/stylesheets/conversations.css +4 -0
- data/app/assets/stylesheets/footer.css.scss +22 -0
- data/app/assets/stylesheets/frontpage.css.scss +70 -0
- data/app/assets/stylesheets/groups.css +4 -0
- data/app/assets/stylesheets/header.css.scss +203 -0
- data/app/assets/stylesheets/home.css.scss +53 -0
- data/app/assets/stylesheets/images/add-policy.png +0 -0
- data/app/assets/stylesheets/images/fcbkcomplete/close.gif +0 -0
- data/app/assets/stylesheets/images/loading.gif +0 -0
- data/app/assets/stylesheets/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/app/assets/stylesheets/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
- data/app/assets/stylesheets/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
- data/app/assets/stylesheets/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/app/assets/stylesheets/images/ui-bg_glass_75_dadada_1x400.png +0 -0
- data/app/assets/stylesheets/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
- data/app/assets/stylesheets/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- data/app/assets/stylesheets/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
- data/app/assets/stylesheets/images/ui-icons_222222_256x240.png +0 -0
- data/app/assets/stylesheets/images/ui-icons_2e83ff_256x240.png +0 -0
- data/app/assets/stylesheets/images/ui-icons_454545_256x240.png +0 -0
- data/app/assets/stylesheets/images/ui-icons_888888_256x240.png +0 -0
- data/app/assets/stylesheets/images/ui-icons_cd0a0a_256x240.png +0 -0
- data/app/assets/stylesheets/invitations.css +3 -0
- data/app/assets/stylesheets/location.css.scss +38 -0
- data/app/assets/stylesheets/menu.css.scss +19 -0
- data/app/assets/stylesheets/messages.css.scss +141 -0
- data/app/assets/stylesheets/opa75.png +0 -0
- data/app/assets/stylesheets/profiles.css +4 -0
- data/app/assets/stylesheets/relation_customs.css.scss +233 -0
- data/app/assets/stylesheets/search.css.scss +165 -0
- data/app/assets/stylesheets/settings.css +9 -0
- data/app/assets/stylesheets/social_stream-base.css +5 -0
- data/app/assets/stylesheets/ties.css.scss +12 -0
- data/app/assets/stylesheets/toolbar.css +10 -0
- data/app/assets/stylesheets/users.css +4 -0
- data/app/controllers/activities_controller.rb +19 -0
- data/app/controllers/api_controller.rb +38 -0
- data/app/controllers/authentications_controller.rb +17 -0
- data/app/controllers/cheesecake_controller.rb +9 -0
- data/app/controllers/comments_controller.rb +8 -0
- data/app/controllers/contacts_controller.rb +95 -0
- data/app/controllers/conversations_controller.rb +102 -0
- data/app/controllers/frontpage_controller.rb +23 -0
- data/app/controllers/groups_controller.rb +58 -0
- data/app/controllers/home_controller.rb +3 -0
- data/app/controllers/invitations_controller.rb +36 -0
- data/app/controllers/likes_controller.rb +41 -0
- data/app/controllers/messages_controller.rb +87 -0
- data/app/controllers/notifications_controller.rb +73 -0
- data/app/controllers/omniauth_callbacks_controller.rb +17 -0
- data/app/controllers/permissions_controller.rb +15 -0
- data/app/controllers/posts_controller.rb +3 -0
- data/app/controllers/profiles_controller.rb +9 -0
- data/app/controllers/relation/customs_controller.rb +6 -0
- data/app/controllers/search_controller.rb +79 -0
- data/app/controllers/settings_controller.rb +43 -0
- data/app/controllers/subjects_controller.rb +7 -0
- data/app/controllers/tags_controller.rb +15 -0
- data/app/controllers/ties_controller.rb +11 -0
- data/app/controllers/users_controller.rb +31 -0
- data/app/helpers/activities_helper.rb +37 -0
- data/app/helpers/contacts_helper.rb +24 -0
- data/app/helpers/groups_helper.rb +3 -0
- data/app/helpers/location_helper.rb +46 -0
- data/app/helpers/permissions_helper.rb +16 -0
- data/app/helpers/profiles_helper.rb +37 -0
- data/app/helpers/search_helper.rb +38 -0
- data/app/helpers/settings_helper.rb +9 -0
- data/app/helpers/sidebar_helper.rb +10 -0
- data/app/helpers/subjects_helper.rb +15 -0
- data/app/helpers/toolbar_helper.rb +109 -0
- data/app/helpers/users_helper.rb +4 -0
- data/app/mailers/invitation_mailer.rb +11 -0
- data/app/models/ability.rb +2 -0
- data/app/models/activity.rb +390 -0
- data/app/models/activity_object.rb +64 -0
- data/app/models/activity_object_activity.rb +14 -0
- data/app/models/activity_verb.rb +22 -0
- data/app/models/actor.rb +553 -0
- data/app/models/audience.rb +9 -0
- data/app/models/authentication.rb +3 -0
- data/app/models/comment.rb +10 -0
- data/app/models/contact.rb +209 -0
- data/app/models/group.rb +51 -0
- data/app/models/like.rb +49 -0
- data/app/models/permission.rb +52 -0
- data/app/models/post.rb +12 -0
- data/app/models/profile.rb +58 -0
- data/app/models/relation.rb +169 -0
- data/app/models/relation/custom.rb +112 -0
- data/app/models/relation/public.rb +11 -0
- data/app/models/relation/reject.rb +3 -0
- data/app/models/relation/single.rb +22 -0
- data/app/models/relation_permission.rb +4 -0
- data/app/models/tie.rb +147 -0
- data/app/models/user.rb +148 -0
- data/app/views/activities/_activity.html.erb +5 -0
- data/app/views/activities/_child.html.erb +18 -0
- data/app/views/activities/_comments.html.erb +3 -0
- data/app/views/activities/_filter.html.erb +83 -0
- data/app/views/activities/_index.html.erb +14 -0
- data/app/views/activities/_new.html.erb +56 -0
- data/app/views/activities/_options.html.erb +27 -0
- data/app/views/activities/_root.html.erb +37 -0
- data/app/views/activities/_wall.html.erb +5 -0
- data/app/views/activities/index.html.erb +0 -0
- data/app/views/activities/index.js.erb +3 -0
- data/app/views/activity_objects/_activity_object.html.erb +7 -0
- data/app/views/actors/_actor.html.erb +0 -0
- data/app/views/actors/_actor_cheesecake.html.erb +4 -0
- data/app/views/api/activity_atom_feed.atom.builder +40 -0
- data/app/views/avatars/index.html.erb +15 -0
- data/app/views/avatars/update.js.erb +15 -0
- data/app/views/cheesecake/_index.html.erb +38 -0
- data/app/views/cheesecake/index.html.erb +10 -0
- data/app/views/comments/_comment.html.erb +1 -0
- data/app/views/comments/_new.html.erb +47 -0
- data/app/views/comments/create.js.erb +10 -0
- data/app/views/comments/destroy.js.erb +1 -0
- data/app/views/contacts/_contact.html.erb +20 -0
- data/app/views/contacts/_form.html.erb +38 -0
- data/app/views/contacts/_index.html.erb +40 -0
- data/app/views/contacts/_link.html.erb +9 -0
- data/app/views/contacts/_pendings.html.erb +18 -0
- data/app/views/contacts/_suggestions.html.erb +15 -0
- data/app/views/contacts/_suggestions_and_pendings.html.erb +6 -0
- data/app/views/contacts/destroy.js.erb +6 -0
- data/app/views/contacts/edit.html.erb +6 -0
- data/app/views/contacts/index.html.erb +37 -0
- data/app/views/contacts/index.js.erb +3 -0
- data/app/views/contacts/new.html.erb +5 -0
- data/app/views/contacts/suggestion.html.erb +1 -0
- data/app/views/contacts/suggestion.js.erb +1 -0
- data/app/views/conversations/_conversation.html.erb +38 -0
- data/app/views/conversations/_conversation_full.html.erb +71 -0
- data/app/views/conversations/_conversations.html.erb +5 -0
- data/app/views/conversations/_index.html.erb +11 -0
- data/app/views/conversations/_show.html.erb +13 -0
- data/app/views/conversations/edit.html.erb +10 -0
- data/app/views/conversations/index.html.erb +15 -0
- data/app/views/conversations/index.js.erb +6 -0
- data/app/views/conversations/show.html.erb +33 -0
- data/app/views/conversations/show.js.erb +26 -0
- data/app/views/devise/passwords/edit.html.erb +21 -0
- data/app/views/devise/passwords/new.html.erb +27 -0
- data/app/views/devise/registrations/_delete_account.html.erb +20 -0
- data/app/views/devise/registrations/_edit_user.html.erb +113 -0
- data/app/views/devise/registrations/edit.html.erb +20 -0
- data/app/views/devise/registrations/new.html.erb +44 -0
- data/app/views/devise/sessions/new.html.erb +35 -0
- data/app/views/devise/shared/_links.erb +25 -0
- data/app/views/frontpage/_caracteristics.html.erb +23 -0
- data/app/views/frontpage/_social_networks.html.erb +3 -0
- data/app/views/frontpage/_sponsor.html.erb +12 -0
- data/app/views/frontpage/host_meta.xml.builder +11 -0
- data/app/views/frontpage/index.html.erb +69 -0
- data/app/views/groups/_group.html.erb +4 -0
- data/app/views/groups/_group_focus_search.html.erb +2 -0
- data/app/views/groups/_group_global_search.html.erb +2 -0
- data/app/views/groups/_group_with_details.html.erb +2 -0
- data/app/views/groups/_index.html.erb +19 -0
- data/app/views/groups/_new.html.erb +81 -0
- data/app/views/groups/_show.html.erb +33 -0
- data/app/views/groups/_tag_cloud.html.erb +25 -0
- data/app/views/groups/index.html.erb +57 -0
- data/app/views/groups/index.js.erb +1 -0
- data/app/views/groups/new.html.erb +9 -0
- data/app/views/groups/show.html.erb +1 -0
- data/app/views/groups/show.js.erb +2 -0
- data/app/views/home/_groups.html.erb +24 -0
- data/app/views/home/index.html.erb +19 -0
- data/app/views/home/index.js.erb +5 -0
- data/app/views/invitation_mailer/send_invitation.html.erb +79 -0
- data/app/views/invitation_mailer/send_invitation.text.erb +21 -0
- data/app/views/invitations/_new.html.erb +28 -0
- data/app/views/invitations/new.html.erb +9 -0
- data/app/views/invitations/new.js.erb +4 -0
- data/app/views/layouts/_account.html.erb +18 -0
- data/app/views/layouts/_flash.html.erb +5 -0
- data/app/views/layouts/_footer.html.erb +16 -0
- data/app/views/layouts/_header.erb +5 -0
- data/app/views/layouts/_header_dropdown_menu.html.erb +19 -0
- data/app/views/layouts/_header_dropdown_menu_sessions.html.erb +14 -0
- data/app/views/layouts/_header_signed_in.erb +45 -0
- data/app/views/layouts/_header_signed_out.erb +34 -0
- data/app/views/layouts/_representation.html.erb +28 -0
- data/app/views/layouts/_search.html.erb +62 -0
- data/app/views/layouts/_settings.html.erb +18 -0
- data/app/views/layouts/application.html.erb +60 -0
- data/app/views/layouts/frontpage.html.erb +43 -0
- data/app/views/likes/create.js.erb +2 -0
- data/app/views/likes/destroy.js.erb +1 -0
- data/app/views/location/_location.html.erb +3 -0
- data/app/views/location/_location_body.html.erb +18 -0
- data/app/views/message_mailer/new_message_email.html.erb +35 -0
- data/app/views/message_mailer/new_message_email.text.erb +8 -0
- data/app/views/message_mailer/reply_message_email.html.erb +35 -0
- data/app/views/message_mailer/reply_message_email.text.erb +8 -0
- data/app/views/messages/_form.html.erb +39 -0
- data/app/views/messages/_message.html.erb +31 -0
- data/app/views/messages/_new.html.erb +10 -0
- data/app/views/messages/new.html.erb +37 -0
- data/app/views/messages/new.js.erb +28 -0
- data/app/views/notification_mailer/new_notification_email.html.erb +35 -0
- data/app/views/notification_mailer/new_notification_email.text.erb +9 -0
- data/app/views/notifications/_index.html.erb +21 -0
- data/app/views/notifications/_notification.html.erb +41 -0
- data/app/views/notifications/activities/_follow.html.erb +10 -0
- data/app/views/notifications/activities/_follow.text.erb +8 -0
- data/app/views/notifications/activities/_like.html.erb +30 -0
- data/app/views/notifications/activities/_like.text.erb +23 -0
- data/app/views/notifications/activities/_make-friend.html.erb +10 -0
- data/app/views/notifications/activities/_make-friend.text.erb +7 -0
- data/app/views/notifications/activities/_post.html.erb +22 -0
- data/app/views/notifications/activities/_post.text.erb +17 -0
- data/app/views/notifications/activities/_update.html.erb +18 -0
- data/app/views/notifications/activities/_update.text.erb +15 -0
- data/app/views/notifications/index.html.erb +13 -0
- data/app/views/notifications/index.js.erb +6 -0
- data/app/views/objects/_destroy.js.erb +2 -0
- data/app/views/objects/_new_activity.html.erb +8 -0
- data/app/views/objects/_show.html.erb +3 -0
- data/app/views/permissions/_index.html.erb +35 -0
- data/app/views/permissions/index.js.erb +15 -0
- data/app/views/posts/_new_activity.html.erb +1 -0
- data/app/views/posts/_new_activity_fields.erb +7 -0
- data/app/views/posts/_post.html.erb +3 -0
- data/app/views/posts/_post_focus_search.html.erb +37 -0
- data/app/views/posts/_post_global_search.html.erb +18 -0
- data/app/views/posts/_post_with_details.html.erb +3 -0
- data/app/views/posts/create.js.erb +7 -0
- data/app/views/posts/destroy.js.erb +1 -0
- data/app/views/posts/show.html.erb +10 -0
- data/app/views/profiles/_contact.html.erb +81 -0
- data/app/views/profiles/_experience.html.erb +22 -0
- data/app/views/profiles/_personal.html.erb +74 -0
- data/app/views/profiles/_profile.html.erb +40 -0
- data/app/views/profiles/_tags.html.erb +22 -0
- data/app/views/profiles/edit.html.erb +205 -0
- data/app/views/profiles/show.html.erb +22 -0
- data/app/views/profiles/update.js.erb +20 -0
- data/app/views/relation/customs/_form.html.erb +29 -0
- data/app/views/relation/customs/_list.html.erb +63 -0
- data/app/views/relation/customs/_update_rules.js.erb +5 -0
- data/app/views/relation/customs/create.js.erb +21 -0
- data/app/views/relation/customs/index.html.erb +43 -0
- data/app/views/relation/customs/update.js.erb +11 -0
- data/app/views/search/_extended_search.html.erb +19 -0
- data/app/views/search/_form.html.erb +54 -0
- data/app/views/search/_header_search.html.erb +16 -0
- data/app/views/search/_index.html.erb +12 -0
- data/app/views/search/index.html.erb +9 -0
- data/app/views/search/index.js.erb +22 -0
- data/app/views/settings/_api_key.html.erb +26 -0
- data/app/views/settings/_destroy.html.erb +17 -0
- data/app/views/settings/_index.html.erb +8 -0
- data/app/views/settings/_notifications.html.erb +34 -0
- data/app/views/settings/index.html.erb +16 -0
- data/app/views/settings/index.js.erb +7 -0
- data/app/views/subjects/_contacts.html.erb +18 -0
- data/app/views/subjects/_show.js.erb +5 -0
- data/app/views/subjects/_subject.html.erb +8 -0
- data/app/views/subjects/_subject_with_details.html.erb +17 -0
- data/app/views/ties/index.html.erb +8 -0
- data/app/views/toolbar/_home.html.erb +15 -0
- data/app/views/toolbar/_logo.html.erb +23 -0
- data/app/views/toolbar/_messages.html.erb +11 -0
- data/app/views/toolbar/_profile.html.erb +24 -0
- data/app/views/toolbar/_subject.html.erb +10 -0
- data/app/views/users/_groups.html.erb +22 -0
- data/app/views/users/_index.html.erb +19 -0
- data/app/views/users/_show.html.erb +34 -0
- data/app/views/users/_user.html.erb +2 -0
- data/app/views/users/_user_focus_search.html.erb +2 -0
- data/app/views/users/_user_global_search.html.erb +2 -0
- data/app/views/users/_user_with_details.html.erb +2 -0
- data/app/views/users/index.html.erb +41 -0
- data/app/views/users/index.js.erb +1 -0
- data/app/views/users/info.html.erb +0 -0
- data/app/views/users/show.html.erb +1 -0
- data/app/views/users/show.js.erb +2 -0
- data/app/views/users/show.xml.builder +15 -0
- data/config/locales/en.yml +472 -0
- data/config/locales/es.yml +470 -0
- data/config/routes.rb +102 -0
- data/db/migrate/20110610112023_create_social_stream.rb +319 -0
- data/db/migrate/20110705103202_empty_ties_count.rb +17 -0
- data/db/migrate/20110712090343_remove_spheres.rb +30 -0
- data/db/migrate/20110712142140_remove_permission_function.rb +26 -0
- data/db/migrate/20110912074426_add_reject_relation.rb +29 -0
- data/db/migrate/20111124100618_object_actors.rb +52 -0
- data/db/migrate/20111221103509_add_language_field.rb +13 -0
- data/lib/acts_as_taggable_on/acts_as_taggable_on/dirty.rb +37 -0
- data/lib/acts_as_taggable_on/social_stream.rb +58 -0
- data/lib/generators/social_stream/base/install_generator.rb +66 -0
- data/lib/generators/social_stream/base/templates/initializer.rb +32 -0
- data/lib/generators/social_stream/base/templates/navigation.rb +4 -0
- data/lib/generators/social_stream/base/templates/relations.yml +39 -0
- data/lib/generators/social_stream/base/templates/sphinx.yml +9 -0
- data/lib/paperclip/social_stream.rb +6 -0
- data/lib/social_stream-base.rb +104 -0
- data/lib/social_stream/ability.rb +7 -0
- data/lib/social_stream/ability/base.rb +101 -0
- data/lib/social_stream/base/dependencies.rb +47 -0
- data/lib/social_stream/base/engine.rb +69 -0
- data/lib/social_stream/base/version.rb +5 -0
- data/lib/social_stream/controllers/cancan_devise_integration.rb +33 -0
- data/lib/social_stream/controllers/helpers.rb +135 -0
- data/lib/social_stream/controllers/objects.rb +39 -0
- data/lib/social_stream/d3.rb +53 -0
- data/lib/social_stream/migrations/base.rb +58 -0
- data/lib/social_stream/migrations/components.rb +19 -0
- data/lib/social_stream/models/object.rb +133 -0
- data/lib/social_stream/models/subject.rb +118 -0
- data/lib/social_stream/models/supertype.rb +37 -0
- data/lib/social_stream/populate.rb +26 -0
- data/lib/social_stream/test_helpers.rb +11 -0
- data/lib/social_stream/test_helpers/controllers.rb +122 -0
- data/lib/social_stream/toolbar_config/base.rb +94 -0
- data/lib/social_stream/views/list.rb +17 -0
- data/lib/social_stream/views/settings/base.rb +43 -0
- data/lib/social_stream/views/sidebar/base.rb +27 -0
- data/lib/tasks/db/populate.rake +241 -0
- data/lib/tasks/workers.rake +163 -0
- data/social_stream-base.gemspec +83 -0
- data/spec/controllers/comments_controller_spec.rb +66 -0
- data/spec/controllers/contacts_controller_spec.rb +111 -0
- data/spec/controllers/frontpage_controller_spec.rb +16 -0
- data/spec/controllers/groups_controller_spec.rb +178 -0
- data/spec/controllers/home_controller_spec.rb +56 -0
- data/spec/controllers/invitations_controller_spec.rb +34 -0
- data/spec/controllers/likes_controller_spec.rb +48 -0
- data/spec/controllers/notifications_controller_spec.rb +46 -0
- data/spec/controllers/permissions_controller_spec.rb +45 -0
- data/spec/controllers/posts_controller_spec.rb +233 -0
- data/spec/controllers/profiles_controller_spec.rb +102 -0
- data/spec/controllers/relation_customs_controller_spec.rb +139 -0
- data/spec/controllers/representations_spec.rb +74 -0
- data/spec/controllers/settings_controller_spec.rb +41 -0
- data/spec/controllers/subjects_controller.rb +14 -0
- data/spec/controllers/users_controller_spec.rb +98 -0
- data/spec/dummy/.gitignore +5 -0
- data/spec/dummy/Rakefile +7 -0
- data/spec/dummy/app/assets/javascripts/application.js +8 -0
- data/spec/dummy/app/assets/stylesheets/application.css +8 -0
- data/spec/dummy/app/controllers/application_controller.rb +3 -0
- data/spec/dummy/app/helpers/application_helper.rb +2 -0
- data/spec/dummy/config.ru +4 -0
- data/spec/dummy/config/application.rb +44 -0
- data/spec/dummy/config/boot.rb +10 -0
- data/spec/dummy/config/database.yml +40 -0
- data/spec/dummy/config/environment.rb +5 -0
- data/spec/dummy/config/environments/development.rb +30 -0
- data/spec/dummy/config/environments/production.rb +54 -0
- data/spec/dummy/config/environments/test.rb +40 -0
- data/spec/dummy/config/environments/test_pg.rb +35 -0
- data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy/config/initializers/devise.rb +220 -0
- data/spec/dummy/config/initializers/inflections.rb +10 -0
- data/spec/dummy/config/initializers/mailboxer.rb +8 -0
- data/spec/dummy/config/initializers/mime_types.rb +5 -0
- data/spec/dummy/config/initializers/secret_token.rb +7 -0
- data/spec/dummy/config/initializers/session_store.rb +8 -0
- data/spec/dummy/config/initializers/social_stream.rb +32 -0
- data/spec/dummy/config/initializers/wrap_parameters.rb +12 -0
- data/spec/dummy/config/locales/en.yml +5 -0
- data/spec/dummy/config/navigation.rb +4 -0
- data/spec/dummy/config/relations.yml +39 -0
- data/spec/dummy/config/routes.rb +60 -0
- data/spec/dummy/db/schema.rb +5 -0
- data/spec/dummy/db/seeds.rb +8 -0
- data/spec/dummy/public/404.html +26 -0
- data/spec/dummy/public/422.html +26 -0
- data/spec/dummy/public/500.html +26 -0
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/dummy/script/rails +6 -0
- data/spec/factories/activity.rb +52 -0
- data/spec/factories/comment.rb +6 -0
- data/spec/factories/contact.rb +16 -0
- data/spec/factories/group.rb +5 -0
- data/spec/factories/post.rb +11 -0
- data/spec/factories/relation_custom.rb +4 -0
- data/spec/factories/tie.rb +43 -0
- data/spec/factories/user.rb +6 -0
- data/spec/integration/navigation_spec.rb +33 -0
- data/spec/models/activity_authorization_spec.rb +350 -0
- data/spec/models/activity_spec.rb +131 -0
- data/spec/models/actor_spec.rb +80 -0
- data/spec/models/contact_spec.rb +53 -0
- data/spec/models/group_spec.rb +28 -0
- data/spec/models/like_spec.rb +68 -0
- data/spec/models/post_spec.rb +63 -0
- data/spec/models/profile_spec.rb +39 -0
- data/spec/models/relation_spec.rb +78 -0
- data/spec/models/tie_spec.rb +169 -0
- data/spec/models/user_spec.rb +109 -0
- data/spec/social_stream_spec.rb +7 -0
- data/spec/spec_helper.rb +26 -0
- data/spec/support/cancan.rb +1 -0
- data/spec/support/db.rb +7 -0
- data/spec/support/devise.rb +4 -0
- data/spec/support/mock.rb +4 -0
- data/vendor/assets/javascripts/ajax.paginate.js +46 -0
- data/vendor/assets/javascripts/d3.geom.js +825 -0
- data/vendor/assets/javascripts/d3.js +4013 -0
- data/vendor/assets/javascripts/d3.layout.js +1865 -0
- data/vendor/assets/javascripts/hoverIntent.js +84 -0
- data/vendor/assets/javascripts/jqcloud-0.1.3.js +87 -0
- data/vendor/assets/javascripts/jquery.ae.image.resize.js +69 -0
- data/vendor/assets/javascripts/jquery.ba-url.js +1091 -0
- data/vendor/assets/javascripts/jquery.cleditor.min.js +31 -0
- data/vendor/assets/javascripts/jquery.fcbkcomplete.js +553 -0
- data/vendor/assets/javascripts/jquery.lightbox-with-resize-plugin.js +533 -0
- data/vendor/assets/javascripts/jquery.livequery.js +250 -0
- data/vendor/assets/javascripts/jquery.screw.js +186 -0
- data/vendor/assets/javascripts/jquery.scrollTo.min.js +11 -0
- data/vendor/assets/javascripts/jquery.tipsy.js +263 -0
- data/vendor/assets/javascripts/jquery.validate.js +1166 -0
- data/vendor/assets/javascripts/jquery.validate.old.js +1132 -0
- data/vendor/assets/javascripts/jquery.watermarkinput.js +81 -0
- data/vendor/assets/javascripts/menu.js +25 -0
- data/vendor/assets/javascripts/superfish.js +121 -0
- data/vendor/assets/stylesheets/carousel.css +23 -0
- data/vendor/assets/stylesheets/chosen-sprite.png +0 -0
- data/vendor/assets/stylesheets/chosen.css +317 -0
- data/vendor/assets/stylesheets/fcbkComplete.css +44 -0
- data/vendor/assets/stylesheets/jqcloud.css +15 -0
- data/vendor/assets/stylesheets/jquery-ui.css +620 -0
- data/vendor/assets/stylesheets/jquery.cleditor.css +24 -0
- data/vendor/assets/stylesheets/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/vendor/assets/stylesheets/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
- data/vendor/assets/stylesheets/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
- data/vendor/assets/stylesheets/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/vendor/assets/stylesheets/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
- data/vendor/assets/stylesheets/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
- data/vendor/assets/stylesheets/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- data/vendor/assets/stylesheets/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
- data/vendor/assets/stylesheets/smoothness/images/ui-icons_222222_256x240.png +0 -0
- data/vendor/assets/stylesheets/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
- data/vendor/assets/stylesheets/smoothness/images/ui-icons_454545_256x240.png +0 -0
- data/vendor/assets/stylesheets/smoothness/images/ui-icons_888888_256x240.png +0 -0
- data/vendor/assets/stylesheets/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
- data/vendor/assets/stylesheets/smoothness/jquery-ui-1.7.3.custom.css +405 -0
- data/vendor/assets/stylesheets/smoothness/jquery-ui-1.8.4.custom.css +572 -0
- data/vendor/assets/stylesheets/tipsy.css +25 -0
- metadata +997 -0
@@ -0,0 +1,31 @@
|
|
1
|
+
/*
|
2
|
+
CLEditor WYSIWYG HTML Editor v1.3.0
|
3
|
+
http://premiumsoftware.net/cleditor
|
4
|
+
requires jQuery v1.4.2 or later
|
5
|
+
|
6
|
+
Copyright 2010, Chris Landowski, Premium Software, LLC
|
7
|
+
Dual licensed under the MIT or GPL Version 2 licenses.
|
8
|
+
*/
|
9
|
+
(function(e){function aa(a){var b=this,c=a.target,d=e.data(c,x),h=s[d],f=h.popupName,i=p[f];if(!(b.disabled||e(c).attr(n)==n)){var g={editor:b,button:c,buttonName:d,popup:i,popupName:f,command:h.command,useCSS:b.options.useCSS};if(h.buttonClick&&h.buttonClick(a,g)===false)return false;if(d=="source"){if(t(b)){delete b.range;b.$area.hide();b.$frame.show();c.title=h.title}else{b.$frame.hide();b.$area.show();c.title="Show Rich Text"}setTimeout(function(){u(b)},100)}else if(!t(b))if(f){var j=e(i);if(f==
|
10
|
+
"url"){if(d=="link"&&M(b)===""){z(b,"A selection is required when inserting a link.",c);return false}j.children(":button").unbind(q).bind(q,function(){var k=j.find(":text"),o=e.trim(k.val());o!==""&&v(b,g.command,o,null,g.button);k.val("http://");r();w(b)})}else f=="pastetext"&&j.children(":button").unbind(q).bind(q,function(){var k=j.find("textarea"),o=k.val().replace(/\n/g,"<br />");o!==""&&v(b,g.command,o,null,g.button);k.val("");r();w(b)});if(c!==e.data(i,A)){N(b,i,c);return false}return}else if(d==
|
11
|
+
"print")b.$frame[0].contentWindow.print();else if(!v(b,g.command,g.value,g.useCSS,c))return false;w(b)}}function O(a){a=e(a.target).closest("div");a.css(H,a.data(x)?"#FFF":"#FFC")}function P(a){e(a.target).closest("div").css(H,"transparent")}function ba(a){var b=a.data.popup,c=a.target;if(!(b===p.msg||e(b).hasClass(B))){var d=e.data(b,A),h=e.data(d,x),f=s[h],i=f.command,g,j=this.options.useCSS;if(h=="font")g=c.style.fontFamily.replace(/"/g,"");else if(h=="size"){if(c.tagName=="DIV")c=c.children[0];
|
12
|
+
g=c.innerHTML}else if(h=="style")g="<"+c.tagName+">";else if(h=="color")g=Q(c.style.backgroundColor);else if(h=="highlight"){g=Q(c.style.backgroundColor);if(l)i="backcolor";else j=true}b={editor:this,button:d,buttonName:h,popup:b,popupName:f.popupName,command:i,value:g,useCSS:j};if(!(f.popupClick&&f.popupClick(a,b)===false)){if(b.command&&!v(this,b.command,b.value,b.useCSS,d))return false;r();w(this)}}}function C(a){for(var b=1,c=0,d=0;d<a.length;++d){b=(b+a.charCodeAt(d))%65521;c=(c+b)%65521}return c<<
|
13
|
+
16|b}function R(a,b,c,d,h){if(p[a])return p[a];var f=e(m).hide().addClass(ca).appendTo("body");if(d)f.html(d);else if(a=="color"){b=b.colors.split(" ");b.length<10&&f.width("auto");e.each(b,function(i,g){e(m).appendTo(f).css(H,"#"+g)});c=da}else if(a=="font")e.each(b.fonts.split(","),function(i,g){e(m).appendTo(f).css("fontFamily",g).html(g)});else if(a=="size")e.each(b.sizes.split(","),function(i,g){e(m).appendTo(f).html("<font size="+g+">"+g+"</font>")});else if(a=="style")e.each(b.styles,function(i,
|
14
|
+
g){e(m).appendTo(f).html(g[1]+g[0]+g[1].replace("<","</"))});else if(a=="url"){f.html('Enter URL:<br><input type=text value="http://" size=35><br><input type=button value="Submit">');c=B}else if(a=="pastetext"){f.html("Paste your content here and click submit.<br /><textarea cols=40 rows=3></textarea><br /><input type=button value=Submit>");c=B}if(!c&&!d)c=S;f.addClass(c);l&&f.attr(I,"on").find("div,font,p,h1,h2,h3,h4,h5,h6").attr(I,"on");if(f.hasClass(S)||h===true)f.children().hover(O,P);p[a]=f[0];
|
15
|
+
return f[0]}function T(a,b){if(b){a.$area.attr(n,n);a.disabled=true}else{a.$area.removeAttr(n);delete a.disabled}try{if(l)a.doc.body.contentEditable=!b;else a.doc.designMode=!b?"on":"off"}catch(c){}u(a)}function v(a,b,c,d,h){D(a);if(!l){if(d===undefined||d===null)d=a.options.useCSS;a.doc.execCommand("styleWithCSS",0,d.toString())}d=true;var f;if(l&&b.toLowerCase()=="inserthtml")y(a).pasteHTML(c);else{try{d=a.doc.execCommand(b,0,c||null)}catch(i){f=i.description;d=false}d||("cutcopypaste".indexOf(b)>
|
16
|
+
-1?z(a,"For security reasons, your browser does not support the "+b+" command. Try using the keyboard shortcut or context menu instead.",h):z(a,f?f:"Error executing the "+b+" command.",h))}u(a);return d}function w(a){setTimeout(function(){t(a)?a.$area.focus():a.$frame[0].contentWindow.focus();u(a)},0)}function y(a){if(l)return J(a).createRange();return J(a).getRangeAt(0)}function J(a){if(l)return a.doc.selection;return a.$frame[0].contentWindow.getSelection()}function Q(a){var b=/rgba?\((\d+), (\d+), (\d+)/.exec(a),
|
17
|
+
c=a.split("");if(b)for(a=(b[1]<<16|b[2]<<8|b[3]).toString(16);a.length<6;)a="0"+a;return"#"+(a.length==6?a:c[1]+c[1]+c[2]+c[2]+c[3]+c[3])}function r(){e.each(p,function(a,b){e(b).hide().unbind(q).removeData(A)})}function U(){var a=e("link[href$='jquery.cleditor.css']").attr("href");return a.substr(0,a.length-19)+"images/"}function K(a){var b=a.$main,c=a.options;a.$frame&&a.$frame.remove();var d=a.$frame=e('<iframe frameborder="0" src="javascript:true;">').hide().appendTo(b),h=d[0].contentWindow,f=
|
18
|
+
a.doc=h.document,i=e(f);f.open();f.write(c.docType+"<html>"+(c.docCSSFile===""?"":'<head><link rel="stylesheet" type="text/css" href="'+c.docCSSFile+'" /></head>')+'<body style="'+c.bodyStyle+'"></body></html>');f.close();l&&i.click(function(){w(a)});E(a);if(l){i.bind("beforedeactivate beforeactivate selectionchange keypress",function(g){if(g.type=="beforedeactivate")a.inactive=true;else if(g.type=="beforeactivate"){!a.inactive&&a.range&&a.range.length>1&&a.range.shift();delete a.inactive}else if(!a.inactive){if(!a.range)a.range=
|
19
|
+
[];for(a.range.unshift(y(a));a.range.length>2;)a.range.pop()}});d.focus(function(){D(a)})}(e.browser.mozilla?i:e(h)).blur(function(){V(a,true)});i.click(r).bind("keyup mouseup",function(){u(a)});L?a.$area.show():d.show();e(function(){var g=a.$toolbar,j=g.children("div:last"),k=b.width();j=j.offset().top+j.outerHeight()-g.offset().top+1;g.height(j);j=(/%/.test(""+c.height)?b.height():parseInt(c.height))-j;d.width(k).height(j);a.$area.width(k).height(ea?j-2:j);T(a,a.disabled);u(a)})}function u(a){if(!L&&
|
20
|
+
e.browser.webkit&&!a.focused){a.$frame[0].contentWindow.focus();window.focus();a.focused=true}var b=a.doc;if(l)b=y(a);var c=t(a);e.each(a.$toolbar.find("."+W),function(d,h){var f=e(h),i=e.cleditor.buttons[e.data(h,x)],g=i.command,j=true;if(a.disabled)j=false;else if(i.getEnabled){j=i.getEnabled({editor:a,button:h,buttonName:i.name,popup:p[i.popupName],popupName:i.popupName,command:i.command,useCSS:a.options.useCSS});if(j===undefined)j=true}else if((c||L)&&i.name!="source"||l&&(g=="undo"||g=="redo"))j=
|
21
|
+
false;else if(g&&g!="print"){if(l&&g=="hilitecolor")g="backcolor";if(!l||g!="inserthtml")try{j=b.queryCommandEnabled(g)}catch(k){j=false}}if(j){f.removeClass(X);f.removeAttr(n)}else{f.addClass(X);f.attr(n,n)}})}function D(a){l&&a.range&&a.range[0].select()}function M(a){D(a);if(l)return y(a).text;return J(a).toString()}function z(a,b,c){var d=R("msg",a.options,fa);d.innerHTML=b;N(a,d,c)}function N(a,b,c){var d,h,f=e(b);if(c){var i=e(c);d=i.offset();h=--d.left;d=d.top+i.height()}else{i=a.$toolbar;
|
22
|
+
d=i.offset();h=Math.floor((i.width()-f.width())/2)+d.left;d=d.top+i.height()-2}r();f.css({left:h,top:d}).show();if(c){e.data(b,A,c);f.bind(q,{popup:b},e.proxy(ba,a))}setTimeout(function(){f.find(":text,textarea").eq(0).focus().select()},100)}function t(a){return a.$area.is(":visible")}function E(a,b){var c=a.$area.val(),d=a.options,h=d.updateFrame,f=e(a.doc.body);if(h){var i=C(c);if(b&&a.areaChecksum==i)return;a.areaChecksum=i}c=h?h(c):c;c=c.replace(/<(?=\/?script)/ig,"<");if(d.updateTextArea)a.frameChecksum=
|
23
|
+
C(c);if(c!=f.html()){f.html(c);e(a).triggerHandler(F)}}function V(a,b){var c=e(a.doc.body).html(),d=a.options,h=d.updateTextArea,f=a.$area;if(h){var i=C(c);if(b&&a.frameChecksum==i)return;a.frameChecksum=i}c=h?h(c):c;if(d.updateFrame)a.areaChecksum=C(c);if(c!=f.val()){f.val(c);e(a).triggerHandler(F)}}e.cleditor={defaultOptions:{width:500,height:250,controls:"bold italic underline strikethrough subscript superscript | font size style | color highlight removeformat | bullets numbering | outdent indent | alignleft center alignright justify | undo redo | rule image link unlink | cut copy paste pastetext | print source",
|
24
|
+
colors:"FFF FCC FC9 FF9 FFC 9F9 9FF CFF CCF FCF CCC F66 F96 FF6 FF3 6F9 3FF 6FF 99F F9F BBB F00 F90 FC6 FF0 3F3 6CC 3CF 66C C6C 999 C00 F60 FC3 FC0 3C0 0CC 36F 63F C3C 666 900 C60 C93 990 090 399 33F 60C 939 333 600 930 963 660 060 366 009 339 636 000 300 630 633 330 030 033 006 309 303",fonts:"Arial,Arial Black,Comic Sans MS,Courier New,Narrow,Garamond,Georgia,Impact,Sans Serif,Serif,Tahoma,Trebuchet MS,Verdana",sizes:"1,2,3,4,5,6,7",styles:[["Paragraph","<p>"],["Header 1","<h1>"],["Header 2","<h2>"],
|
25
|
+
["Header 3","<h3>"],["Header 4","<h4>"],["Header 5","<h5>"],["Header 6","<h6>"]],useCSS:false,docType:'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">',docCSSFile:"",bodyStyle:"margin:4px; font:10pt Arial,Verdana; cursor:text"},buttons:{init:"bold,,|italic,,|underline,,|strikethrough,,|subscript,,|superscript,,|font,,fontname,|size,Font Size,fontsize,|style,,formatblock,|color,Font Color,forecolor,|highlight,Text Highlight Color,hilitecolor,color|removeformat,Remove Formatting,|bullets,,insertunorderedlist|numbering,,insertorderedlist|outdent,,|indent,,|alignleft,Align Text Left,justifyleft|center,,justifycenter|alignright,Align Text Right,justifyright|justify,,justifyfull|undo,,|redo,,|rule,Insert Horizontal Rule,inserthorizontalrule|image,Insert Image,insertimage,url|link,Insert Hyperlink,createlink,url|unlink,Remove Hyperlink,|cut,,|copy,,|paste,,|pastetext,Paste as Text,inserthtml,|print,,|source,Show Source"},
|
26
|
+
imagesPath:function(){return U()}};e.fn.cleditor=function(a){var b=e([]);this.each(function(c,d){if(d.tagName=="TEXTAREA"){var h=e.data(d,Y);h||(h=new cleditor(d,a));b=b.add(h)}});return b};var H="backgroundColor",A="button",x="buttonName",F="change",Y="cleditor",q="click",n="disabled",m="<div>",I="unselectable",W="cleditorButton",X="cleditorDisabled",ca="cleditorPopup",S="cleditorList",da="cleditorColor",B="cleditorPrompt",fa="cleditorMsg",l=e.browser.msie,ea=/msie\s6/i.test(navigator.userAgent),
|
27
|
+
L=/iphone|ipad|ipod/i.test(navigator.userAgent),p={},Z,s=e.cleditor.buttons;e.each(s.init.split("|"),function(a,b){var c=b.split(","),d=c[0];s[d]={stripIndex:a,name:d,title:c[1]===""?d.charAt(0).toUpperCase()+d.substr(1):c[1],command:c[2]===""?d:c[2],popupName:c[3]===""?d:c[3]}});delete s.init;cleditor=function(a,b){var c=this;c.options=b=e.extend({},e.cleditor.defaultOptions,b);var d=c.$area=e(a).hide().data(Y,c).blur(function(){E(c,true)}),h=c.$main=e(m).addClass("cleditorMain").width(b.width).height(b.height),
|
28
|
+
f=c.$toolbar=e(m).addClass("cleditorToolbar").appendTo(h),i=e(m).addClass("cleditorGroup").appendTo(f);e.each(b.controls.split(" "),function(g,j){if(j==="")return true;if(j=="|"){e(m).addClass("cleditorDivider").appendTo(i);i=e(m).addClass("cleditorGroup").appendTo(f)}else{var k=s[j],o=e(m).data(x,k.name).addClass(W).attr("title",k.title).bind(q,e.proxy(aa,c)).appendTo(i).hover(O,P),G={};if(k.css)G=k.css;else if(k.image)G.backgroundImage="url("+U()+k.image+")";if(k.stripIndex)G.backgroundPosition=
|
29
|
+
k.stripIndex*-24;o.css(G);l&&o.attr(I,"on");k.popupName&&R(k.popupName,b,k.popupClass,k.popupContent,k.popupHover)}});h.insertBefore(d).append(d);if(!Z){e(document).click(function(g){g=e(g.target);g.add(g.parents()).is("."+B)||r()});Z=true}/auto|%/.test(""+b.width+b.height)&&e(window).resize(function(){K(c)});K(c)};var $=cleditor.prototype;e.each([["clear",function(a){a.$area.val("");E(a)}],["disable",T],["execCommand",v],["focus",w],["hidePopups",r],["sourceMode",t,true],["refresh",K],["select",
|
30
|
+
function(a){setTimeout(function(){t(a)?a.$area.select():v(a,"selectall")},0)}],["selectedHTML",function(a){D(a);a=y(a);if(l)return a.htmlText;var b=e("<layer>")[0];b.appendChild(a.cloneContents());return b.innerHTML},true],["selectedText",M,true],["showMessage",z],["updateFrame",E],["updateTextArea",V]],function(a,b){$[b[0]]=function(){for(var c=[this],d=0;d<arguments.length;d++)c.push(arguments[d]);c=b[1].apply(this,c);if(b[2])return c;return this}});$.change=function(a){var b=e(this);return a?b.bind(F,
|
31
|
+
a):b.trigger(F)}})(jQuery);
|
@@ -0,0 +1,553 @@
|
|
1
|
+
/**
|
2
|
+
FCBKcomplete v2.8.6 is released under the MIT License <http://www.opensource.org/licenses/mit-license.php>
|
3
|
+
- Jquery version required: 1.6.x
|
4
|
+
*/
|
5
|
+
|
6
|
+
/* Based on TextboxList by Guillermo Rauch http://devthought.com/ */
|
7
|
+
|
8
|
+
/**
|
9
|
+
* json_url - url to fetch json object
|
10
|
+
* cache - use cache
|
11
|
+
* height - maximum number of element shown before scroll will apear
|
12
|
+
* newel - show typed text like a element
|
13
|
+
* firstselected - automaticly select first element from dropdown
|
14
|
+
* filter_case - case sensitive filter
|
15
|
+
* filter_selected - filter selected items from list
|
16
|
+
* complete_text - text for complete page
|
17
|
+
* maxshownitems - maximum numbers that will be shown at dropdown list (less better performance)
|
18
|
+
* onselect - fire event on item select
|
19
|
+
* onremove - fire event on item remove
|
20
|
+
* maxitimes - maximum items that can be added
|
21
|
+
* delay - delay between ajax request (bigger delay, lower server time request)
|
22
|
+
* addontab - add first visible element on tab or enter hit
|
23
|
+
* attachto - after this element fcbkcomplete insert own elements
|
24
|
+
* bricket - use square bricket with select (needed for asp or php) enabled by default
|
25
|
+
*/
|
26
|
+
|
27
|
+
(function( $, undefined ) {
|
28
|
+
$.fn.fcbkcomplete = function(opt) {
|
29
|
+
return this.queue( function() {
|
30
|
+
function init() {
|
31
|
+
createFCBK();
|
32
|
+
addInput(0);
|
33
|
+
}
|
34
|
+
|
35
|
+
function createFCBK() {
|
36
|
+
holder = $('<ul class="holder"></ul>');
|
37
|
+
if (options.attachto) {
|
38
|
+
if (typeof(options.attachto) == "object") {
|
39
|
+
options.attachto.append(holder);
|
40
|
+
} else {
|
41
|
+
$(options.attachto).append(holder);
|
42
|
+
}
|
43
|
+
} else {
|
44
|
+
element.after(holder);
|
45
|
+
}
|
46
|
+
complete = $('<div class="facebook-auto">').append('<div class="default">' + options.complete_text + "</div>");
|
47
|
+
complete.hover(function() {complete_hover = 0;}, function() {complete_hover = 1;});
|
48
|
+
feed = $('<ul id="'+elemid+'_feed"></ul>');
|
49
|
+
holder.after(complete.prepend(feed));
|
50
|
+
feed.css("width", complete.width());
|
51
|
+
elPrepare();
|
52
|
+
}
|
53
|
+
|
54
|
+
function elPrepare() {
|
55
|
+
name = element.attr("name");
|
56
|
+
if (options.bricket) {
|
57
|
+
if (name.indexOf("[]") == -1) {
|
58
|
+
name = name + "[]";
|
59
|
+
}
|
60
|
+
}
|
61
|
+
|
62
|
+
var temp_elem = $('<'+element.get(0).tagName+' name="'+name+'" id="'+elemid+'" multiple="multiple" class="hidden">');
|
63
|
+
|
64
|
+
$.each(element.children('option'), function(i, option) {
|
65
|
+
option = $(option);
|
66
|
+
temp_elem.data(option.val(), option.text());
|
67
|
+
if (option.hasClass("selected")) {
|
68
|
+
var id = addItem(option.text(), option.val(), true, option.hasClass("locked"));
|
69
|
+
temp_elem.append('<option value="'+option.val()+'" selected="selected" id="opt_'+id+'"class="selected">'+option.text()+'</option>');
|
70
|
+
}
|
71
|
+
});
|
72
|
+
|
73
|
+
element.after(temp_elem);
|
74
|
+
element.remove();
|
75
|
+
element = temp_elem;
|
76
|
+
|
77
|
+
//public method to add new item
|
78
|
+
$(element).bind("addItem", function(event, data) {
|
79
|
+
addItem(data.title, data.value, 0, 0, 0);
|
80
|
+
});
|
81
|
+
|
82
|
+
//public method to remove item
|
83
|
+
$(element).bind("removeItem", function(event, data) {
|
84
|
+
var item = holder.children('li[rel=' + data.value + ']');
|
85
|
+
if (item.length) {
|
86
|
+
removeItem(item);
|
87
|
+
}
|
88
|
+
});
|
89
|
+
|
90
|
+
//public method to remove item
|
91
|
+
$(element).bind("destroy", function(event, data) {
|
92
|
+
holder.remove();
|
93
|
+
complete.remove();
|
94
|
+
element.show();
|
95
|
+
});
|
96
|
+
}
|
97
|
+
|
98
|
+
function addItem(title, value, preadded, locked, focusme) {
|
99
|
+
if (!maxItems()) {
|
100
|
+
return false;
|
101
|
+
}
|
102
|
+
var liclass = "bit-box" + (locked ? " locked": "");
|
103
|
+
var id = randomId();
|
104
|
+
var txt = document.createTextNode(xssDisplay(title));
|
105
|
+
var aclose = $('<a class="closebutton" href="#"></a>');
|
106
|
+
var li = $('<li class="'+liclass+'" rel="'+value+'" id="pt_'+id+'"></li>').prepend(txt).append(aclose);
|
107
|
+
|
108
|
+
holder.append(li);
|
109
|
+
|
110
|
+
aclose.click( function() {
|
111
|
+
removeItem($(this).parent("li"));
|
112
|
+
return false;
|
113
|
+
});
|
114
|
+
if (!preadded) {
|
115
|
+
$("#" + elemid + "_annoninput").remove();
|
116
|
+
addInput(focusme);
|
117
|
+
var _item = $('<option value="'+xssDisplay(value, 1)+'" id="opt_'+id+'" class="selected" selected="selected">'+xssDisplay(title)+'</option>');
|
118
|
+
element.append(_item);
|
119
|
+
if (options.onselect) {
|
120
|
+
funCall(options.onselect, _item);
|
121
|
+
}
|
122
|
+
element.change();
|
123
|
+
}
|
124
|
+
holder.children("li.bit-box.deleted").removeClass("deleted");
|
125
|
+
feed.hide();
|
126
|
+
return id;
|
127
|
+
}
|
128
|
+
|
129
|
+
function removeItem(item) {
|
130
|
+
if (!item.hasClass('locked')) {
|
131
|
+
item.fadeOut("fast");
|
132
|
+
var id = item.attr('id');
|
133
|
+
if (options.onremove) {
|
134
|
+
var _item = id ? $("#o" + id + "") : element.children("option[value=" + item.attr("rel") + "]");
|
135
|
+
funCall(options.onremove, _item);
|
136
|
+
}
|
137
|
+
if (id) {
|
138
|
+
$("#o" + id + "").remove();
|
139
|
+
} else {
|
140
|
+
element.children('option[value="' + item.attr("rel") + '"]').remove();
|
141
|
+
}
|
142
|
+
item.remove();
|
143
|
+
element.change();
|
144
|
+
deleting = 0;
|
145
|
+
}
|
146
|
+
}
|
147
|
+
|
148
|
+
function addInput(focusme) {
|
149
|
+
var li = $('<li class="bit-input" id="'+elemid + '_annoninput">');
|
150
|
+
var input = $('<input type="text" class="maininput" size="1" autocomplete="off">');
|
151
|
+
var getBoxTimeout = 0;
|
152
|
+
|
153
|
+
holder.append(li.append(input));
|
154
|
+
|
155
|
+
input.focus( function() {
|
156
|
+
if (maxItems()) {
|
157
|
+
complete.fadeIn("fast");
|
158
|
+
}
|
159
|
+
});
|
160
|
+
|
161
|
+
input.blur( function() {
|
162
|
+
if (complete_hover) {
|
163
|
+
complete.fadeOut("fast");
|
164
|
+
} else {
|
165
|
+
input.focus();
|
166
|
+
}
|
167
|
+
});
|
168
|
+
|
169
|
+
holder.click( function() {
|
170
|
+
input.focus();
|
171
|
+
if (feed.length && input.val().length) {
|
172
|
+
feed.show();
|
173
|
+
} else {
|
174
|
+
feed.hide();
|
175
|
+
complete.children(".default").show();
|
176
|
+
}
|
177
|
+
});
|
178
|
+
|
179
|
+
input.keypress( function(event) {
|
180
|
+
if (event.keyCode == _key.enter) {
|
181
|
+
return false;
|
182
|
+
}
|
183
|
+
//auto expand input
|
184
|
+
input.attr("size", input.val().length + 1);
|
185
|
+
});
|
186
|
+
|
187
|
+
input.keyup( function(event) {
|
188
|
+
var etext = xssPrevent(input.val(), 1);
|
189
|
+
|
190
|
+
if (event.keyCode == _key.backspace && etext.length == 0) {
|
191
|
+
feed.hide();
|
192
|
+
if (!holder.children("li.bit-box:last").hasClass('locked')) {
|
193
|
+
if (holder.children("li.bit-box.deleted").length == 0) {
|
194
|
+
holder.children("li.bit-box:last").addClass("deleted");
|
195
|
+
return false;
|
196
|
+
} else {
|
197
|
+
if (deleting) {
|
198
|
+
return;
|
199
|
+
}
|
200
|
+
deleting = 1;
|
201
|
+
holder.children("li.bit-box.deleted").fadeOut("fast", function() {
|
202
|
+
removeItem($(this));
|
203
|
+
return false;
|
204
|
+
});
|
205
|
+
}
|
206
|
+
}
|
207
|
+
}
|
208
|
+
|
209
|
+
if (event.keyCode != _key.downarrow && event.keyCode != _key.uparrow && event.keyCode!= _key.leftarrow && event.keyCode!= _key.rightarrow && etext.length != 0) {
|
210
|
+
counter = 0;
|
211
|
+
if (options.json_url && maxItems()) {
|
212
|
+
if (options.cache && json_cache_object.get(etext)) {
|
213
|
+
addMembers(etext);
|
214
|
+
bindEvents();
|
215
|
+
} else {
|
216
|
+
getBoxTimeout++;
|
217
|
+
var getBoxTimeoutValue = getBoxTimeout;
|
218
|
+
setTimeout( function() {
|
219
|
+
if (getBoxTimeoutValue != getBoxTimeout) return;
|
220
|
+
$.getJSON(options.json_url, {"tag": xssDisplay(etext)}, function(data) {
|
221
|
+
addMembers(etext, data);
|
222
|
+
json_cache_object.set(etext, 1);
|
223
|
+
bindEvents();
|
224
|
+
});
|
225
|
+
}, options.delay);
|
226
|
+
}
|
227
|
+
} else {
|
228
|
+
addMembers(etext);
|
229
|
+
bindEvents();
|
230
|
+
}
|
231
|
+
complete.children(".default").hide();
|
232
|
+
feed.show();
|
233
|
+
}
|
234
|
+
});
|
235
|
+
if (focusme) {
|
236
|
+
setTimeout( function() {
|
237
|
+
input.focus();
|
238
|
+
complete.children(".default").show();
|
239
|
+
}, 1);
|
240
|
+
}
|
241
|
+
}
|
242
|
+
|
243
|
+
function addMembers(etext, data) {
|
244
|
+
feed.html('');
|
245
|
+
if (!options.cache && data != null) {
|
246
|
+
cache.clear();
|
247
|
+
}
|
248
|
+
addTextItem(etext);
|
249
|
+
if (data != null && data.length) {
|
250
|
+
$.each(data, function(i, val) {
|
251
|
+
cache.set(xssPrevent(val.key), xssPrevent(val.value));
|
252
|
+
});
|
253
|
+
}
|
254
|
+
var maximum = options.maxshownitems < cache.length() ? options.maxshownitems: cache.length();
|
255
|
+
var content = '';
|
256
|
+
$.each(cache.search(etext), function (i, object) {
|
257
|
+
if (options.filter_selected && element.children("option[value=" + object.key + "]").hasClass("selected")) {
|
258
|
+
//nothing here...
|
259
|
+
} else {
|
260
|
+
content += '<li rel="' + object.key + '">' + xssDisplay(itemIllumination(object.value, etext)) + '</li>';
|
261
|
+
counter++;
|
262
|
+
maximum--;
|
263
|
+
}
|
264
|
+
});
|
265
|
+
feed.append(content);
|
266
|
+
if (options.firstselected) {
|
267
|
+
focuson = feed.children("li:visible:first");
|
268
|
+
focuson.addClass("auto-focus");
|
269
|
+
}
|
270
|
+
|
271
|
+
if (counter > options.height) {
|
272
|
+
feed.css({
|
273
|
+
"height": (options.height * 24) + "px",
|
274
|
+
"overflow": "auto"
|
275
|
+
});
|
276
|
+
} else {
|
277
|
+
feed.css("height", "auto");
|
278
|
+
}
|
279
|
+
|
280
|
+
if (maxItems() && complete.is(':hidden')) {
|
281
|
+
complete.show();
|
282
|
+
}
|
283
|
+
}
|
284
|
+
|
285
|
+
function itemIllumination(text, etext) {
|
286
|
+
if (options.filter_case) {
|
287
|
+
try {
|
288
|
+
var regex = new RegExp("(.*)(" + etext + ")(.*)", ((options.filter_case) ?"g":"gi"));
|
289
|
+
var text = text.replace(regex,'$1<em>$2</em>$3');
|
290
|
+
} catch(ex) {};
|
291
|
+
} else {
|
292
|
+
try {
|
293
|
+
var regex = new RegExp("(.*)(" + etext.toLowerCase() + ")(.*)", "gi");
|
294
|
+
var text = text.replace(regex,'$1<em>$2</em>$3');
|
295
|
+
} catch(ex) {};
|
296
|
+
}
|
297
|
+
return text;
|
298
|
+
}
|
299
|
+
|
300
|
+
function bindFeedEvent() {
|
301
|
+
feed.children("li").mouseover( function() {
|
302
|
+
feed.children("li").removeClass("auto-focus");
|
303
|
+
focuson = $(this);
|
304
|
+
focuson.addClass("auto-focus");
|
305
|
+
});
|
306
|
+
feed.children("li").mouseout( function() {
|
307
|
+
$(this).removeClass("auto-focus");
|
308
|
+
focuson = null;
|
309
|
+
});
|
310
|
+
}
|
311
|
+
|
312
|
+
function removeFeedEvent() {
|
313
|
+
feed.unbind("mouseover").unbind("mouseout").mousemove( function() {
|
314
|
+
bindFeedEvent();
|
315
|
+
feed.unbind("mousemove");
|
316
|
+
});
|
317
|
+
}
|
318
|
+
|
319
|
+
function bindEvents() {
|
320
|
+
var maininput = $("#" + elemid + "_annoninput").children(".maininput");
|
321
|
+
bindFeedEvent();
|
322
|
+
|
323
|
+
feed.children("li").unbind("mousedown").mousedown( function() {
|
324
|
+
var option = $(this);
|
325
|
+
addItem(option.text(), option.attr("rel"), 0, 0, 1);
|
326
|
+
feed.hide();
|
327
|
+
complete.hide();
|
328
|
+
});
|
329
|
+
|
330
|
+
maininput.unbind("keydown");
|
331
|
+
maininput.keydown( function(event) {
|
332
|
+
|
333
|
+
if (event.keyCode != _key.backspace) {
|
334
|
+
holder.children("li.bit-box.deleted").removeClass("deleted");
|
335
|
+
}
|
336
|
+
|
337
|
+
if ((event.keyCode == _key.enter || event.keyCode == _key.tab) && checkFocusOn()) {
|
338
|
+
var option = focuson;
|
339
|
+
addItem(option.text(), option.attr("rel"), 0, 0, 1);
|
340
|
+
return _preventDefault(event);
|
341
|
+
}
|
342
|
+
|
343
|
+
if ((event.keyCode == _key.enter || event.keyCode == _key.tab) && !checkFocusOn()) {
|
344
|
+
if (options.newel) {
|
345
|
+
var value = xssPrevent($(this).val());
|
346
|
+
addItem(value, value, 0, 0, 1);
|
347
|
+
return _preventDefault(event);
|
348
|
+
}
|
349
|
+
if (options.addontab && options.newel) {
|
350
|
+
focuson = feed.children("li:visible:first");
|
351
|
+
var option = focuson;
|
352
|
+
addItem(option.text(), option.attr("rel"), 0, 0, 1);
|
353
|
+
return _preventDefault(event);
|
354
|
+
}
|
355
|
+
}
|
356
|
+
|
357
|
+
if (event.keyCode == _key.downarrow) {
|
358
|
+
nextItem('first');
|
359
|
+
}
|
360
|
+
if (event.keyCode == _key.uparrow) {
|
361
|
+
nextItem('last');
|
362
|
+
}
|
363
|
+
});
|
364
|
+
}
|
365
|
+
|
366
|
+
function nextItem(position) {
|
367
|
+
removeFeedEvent();
|
368
|
+
if (focuson == null || focuson.length == 0) {
|
369
|
+
focuson = feed.children("li:visible:" + position);
|
370
|
+
feed.get(0).scrollTop = position == 'first' ? 0 : parseInt(focuson.get(0).scrollHeight, 10) * (parseInt(feed.children("li:visible").length, 10) - Math.round(options.height / 2));
|
371
|
+
} else {
|
372
|
+
focuson.removeClass("auto-focus");
|
373
|
+
focuson = position == 'first' ? focuson.nextAll("li:visible:first") : focuson.prevAll("li:visible:first");
|
374
|
+
var prev = parseInt(focuson.prevAll("li:visible").length, 10);
|
375
|
+
var next = parseInt(focuson.nextAll("li:visible").length, 10);
|
376
|
+
if (((position == 'first' ? prev : next) > Math.round(options.height / 2) || (position == 'first' ? prev : next) <= Math.round(options.height / 2)) && typeof(focuson.get(0)) != "undefined") {
|
377
|
+
feed.get(0).scrollTop = parseInt(focuson.get(0).scrollHeight, 10) * (prev - Math.round(options.height / 2));
|
378
|
+
}
|
379
|
+
}
|
380
|
+
feed.children("li").removeClass("auto-focus");
|
381
|
+
focuson.addClass("auto-focus");
|
382
|
+
}
|
383
|
+
|
384
|
+
function _preventDefault(event) {
|
385
|
+
complete.hide();
|
386
|
+
event.preventDefault();
|
387
|
+
focuson = null;
|
388
|
+
return false;
|
389
|
+
}
|
390
|
+
|
391
|
+
function maxItems() {
|
392
|
+
return options.maxitems != 0 && (holder.children("li.bit-box").length < options.maxitems);
|
393
|
+
}
|
394
|
+
|
395
|
+
function addTextItem(value) {
|
396
|
+
if (options.newel && maxItems()) {
|
397
|
+
feed.children("li[fckb=1]").remove();
|
398
|
+
if (value.length == 0) {
|
399
|
+
return;
|
400
|
+
}
|
401
|
+
var li = $('<li rel="'+value+'" fckb="1"">').html(xssDisplay(value));
|
402
|
+
feed.prepend(li);
|
403
|
+
counter++;
|
404
|
+
}
|
405
|
+
return;
|
406
|
+
}
|
407
|
+
|
408
|
+
function funCall(func, item) {
|
409
|
+
var _object = {};
|
410
|
+
for (i = 0; i < item.get(0).attributes.length; i++) {
|
411
|
+
if (item.get(0).attributes[i].nodeValue != null) {
|
412
|
+
_object["_" + item.get(0).attributes[i].nodeName] = item.get(0).attributes[i].nodeValue;
|
413
|
+
}
|
414
|
+
}
|
415
|
+
return func.call(func, _object);
|
416
|
+
}
|
417
|
+
|
418
|
+
function checkFocusOn() {
|
419
|
+
if (focuson == null || focuson.length == 0) {
|
420
|
+
return false;
|
421
|
+
}
|
422
|
+
return true;
|
423
|
+
}
|
424
|
+
|
425
|
+
function xssPrevent(string, flag) {
|
426
|
+
if (typeof flag != "undefined") {
|
427
|
+
for(i = 0; i < string.length; i++) {
|
428
|
+
var charcode = string.charCodeAt(i);
|
429
|
+
if ((_key.exclamation <= charcode && charcode <= _key.slash) ||
|
430
|
+
(_key.colon <= charcode && charcode <= _key.at) ||
|
431
|
+
(_key.squarebricket_left <= charcode && charcode <= _key.apostrof)) {
|
432
|
+
string = string.replace(string[i], escape(string[i]));
|
433
|
+
}
|
434
|
+
}
|
435
|
+
string = string.replace(/(\{|\}|\*)/i, "\\$1");
|
436
|
+
}
|
437
|
+
return string.replace(/script(.*)/g, "");
|
438
|
+
}
|
439
|
+
|
440
|
+
function xssDisplay(string, flag) {
|
441
|
+
string = string.replace('\\', "");
|
442
|
+
if (typeof flag != "undefined") {
|
443
|
+
return string;
|
444
|
+
}
|
445
|
+
return unescape(string);
|
446
|
+
}
|
447
|
+
|
448
|
+
var options = $.extend({
|
449
|
+
json_url: null,
|
450
|
+
cache: false,
|
451
|
+
height: "10",
|
452
|
+
newel: false,
|
453
|
+
addontab: false,
|
454
|
+
firstselected: false,
|
455
|
+
filter_case: false,
|
456
|
+
filter_selected: false,
|
457
|
+
complete_text: "Start to type...",
|
458
|
+
maxshownitems: 30,
|
459
|
+
maxitems: 10,
|
460
|
+
onselect: null,
|
461
|
+
onremove: null,
|
462
|
+
attachto: null,
|
463
|
+
delay: 350,
|
464
|
+
bricket: true
|
465
|
+
},
|
466
|
+
opt);
|
467
|
+
|
468
|
+
//system variables
|
469
|
+
var holder = null;
|
470
|
+
var feed = null;
|
471
|
+
var complete = null;
|
472
|
+
var counter = 0;
|
473
|
+
|
474
|
+
var focuson = null;
|
475
|
+
var deleting = 0;
|
476
|
+
var complete_hover = 1;
|
477
|
+
|
478
|
+
var element = $(this);
|
479
|
+
var elemid = element.attr("id");
|
480
|
+
|
481
|
+
var json_cache = $('<div></div>').after(element);
|
482
|
+
var json_cache_object = {
|
483
|
+
'set': function (id, val) {
|
484
|
+
json_cache.data(id, val);
|
485
|
+
},
|
486
|
+
'get': function(id) {
|
487
|
+
return json_cache.data(id);
|
488
|
+
}
|
489
|
+
};
|
490
|
+
|
491
|
+
var _key = { 'enter': 13,
|
492
|
+
'tab': 9,
|
493
|
+
'backspace': 8,
|
494
|
+
'leftarrow': 37,
|
495
|
+
'uparrow': 38,
|
496
|
+
'rightarrow': 39,
|
497
|
+
'downarrow': 40,
|
498
|
+
'exclamation': 33,
|
499
|
+
'slash': 47,
|
500
|
+
'colon': 58,
|
501
|
+
'at': 64,
|
502
|
+
'squarebricket_left': 91,
|
503
|
+
'apostrof': 96
|
504
|
+
};
|
505
|
+
|
506
|
+
var randomId = function() {
|
507
|
+
var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";
|
508
|
+
var randomstring = '';
|
509
|
+
for (var i = 0; i < 32; i++) {
|
510
|
+
var rnum = Math.floor(Math.random() * chars.length);
|
511
|
+
randomstring += chars.substring(rnum, rnum + 1);
|
512
|
+
}
|
513
|
+
return randomstring;
|
514
|
+
};
|
515
|
+
|
516
|
+
var cache = {
|
517
|
+
'search': function (text, callback) {
|
518
|
+
var temp = new Array();
|
519
|
+
var regex = new RegExp(text, (options.filter_case ? "g": "gi"));
|
520
|
+
$.each(element.data(), function (i, _elem) {
|
521
|
+
if (typeof _elem.search === 'function') {
|
522
|
+
if (_elem.search(regex) != -1) {
|
523
|
+
temp.push({'key': i, 'value': _elem});
|
524
|
+
}
|
525
|
+
}
|
526
|
+
});
|
527
|
+
return temp;
|
528
|
+
},
|
529
|
+
'set': function (id, val) {
|
530
|
+
element.data(id, val);
|
531
|
+
},
|
532
|
+
'get': function(id) {
|
533
|
+
return element.data(id);
|
534
|
+
},
|
535
|
+
'clear': function() {
|
536
|
+
element.removeData();
|
537
|
+
},
|
538
|
+
'length': function() {
|
539
|
+
var count = 0;
|
540
|
+
for (var k in this) {
|
541
|
+
if (this.hasOwnProperty(k)) {
|
542
|
+
++count;
|
543
|
+
}
|
544
|
+
}
|
545
|
+
return count;
|
546
|
+
}
|
547
|
+
};
|
548
|
+
|
549
|
+
init();
|
550
|
+
return this;
|
551
|
+
});
|
552
|
+
};
|
553
|
+
})(jQuery);
|