social_stream 0.4.2 → 0.4.3
Sign up to get free protection for your applications and to get access to all the features.
- data/app/controllers/activities_controller.rb +1 -0
- data/app/controllers/avatars_controller.rb +17 -10
- data/app/controllers/comments_controller.rb +2 -0
- data/app/controllers/conversations_controller.rb +98 -103
- data/app/controllers/groups_controller.rb +3 -1
- data/app/controllers/likes_controller.rb +2 -0
- data/app/controllers/messages_controller.rb +4 -0
- data/app/controllers/posts_controller.rb +2 -2
- data/app/controllers/ties_controller.rb +6 -0
- data/app/helpers/subjects_helper.rb +32 -7
- data/app/helpers/ties_helper.rb +7 -2
- data/app/models/activity.rb +1 -1
- data/app/models/actor.rb +5 -8
- data/app/models/relation.rb +65 -0
- data/app/models/tie.rb +27 -7
- data/app/views/activities/_child.html.erb +1 -5
- data/app/views/activities/_root.html.erb +2 -4
- data/app/views/avatars/_form.html.erb +5 -16
- data/app/views/avatars/_precrop.html.erb +24 -17
- data/app/views/avatars/index.html.erb +47 -36
- data/app/views/avatars/new.html.erb +19 -3
- data/app/views/contacts/index.html.erb +1 -1
- data/app/views/contacts/index.js.erb +2 -0
- data/app/views/conversations/_conversation_full.html.erb +2 -1
- data/app/views/conversations/_index.html.erb +0 -7
- data/app/views/conversations/_show.html.erb +0 -7
- data/app/views/conversations/index.html.erb +9 -1
- data/app/views/conversations/index.js.erb +1 -0
- data/app/views/conversations/show.html.erb +1 -1
- data/app/views/conversations/show.js.erb +2 -0
- data/app/views/groups/_new.html.erb +9 -2
- data/app/views/groups/new.html.erb +5 -1
- data/app/views/layouts/_header.erb +23 -1
- data/app/views/layouts/_representation.html.erb +1 -1
- data/app/views/messages/new.html.erb +1 -1
- data/app/views/messages/new.js.erb +3 -0
- data/app/views/profiles/_profile.html.erb +18 -13
- data/app/views/profiles/edit.html.erb +29 -4
- data/app/views/profiles/update.js.erb +3 -3
- data/app/views/subjects/_toolbar_home_menu_options.html.erb +1 -1
- data/app/views/subjects/_toolbar_home_menu_options_subjects.html.erb +2 -2
- data/app/views/subjects/_toolbar_logo.html.erb +14 -2
- data/app/views/subjects/_toolbar_message_menu.html.erb +1 -1
- data/app/views/subjects/_toolbar_profile_menu_tie_options.html.erb +18 -7
- data/app/views/ties/_edit.html.erb +102 -0
- data/app/views/ties/_new.html.erb +48 -19
- data/app/views/ties/edit.html.erb +1 -0
- data/config/locales/en.yml +42 -27
- data/config/routes.rb +0 -6
- data/lib/generators/social_stream/templates/public/images/btn/arrowBlue.png +0 -0
- data/lib/generators/social_stream/templates/public/images/btn/shadow.png +0 -0
- data/lib/generators/social_stream/templates/public/javascripts/addContact.js +100 -0
- data/lib/generators/social_stream/templates/public/javascripts/avatars.js +8 -0
- data/lib/generators/social_stream/templates/public/javascripts/hoverIntent.js +84 -0
- data/lib/generators/social_stream/templates/public/javascripts/main.js +10 -1
- data/lib/generators/social_stream/templates/public/javascripts/menu.js +22 -6
- data/lib/generators/social_stream/templates/public/stylesheets/default/activities.css +2 -2
- data/lib/generators/social_stream/templates/public/stylesheets/default/addContact.css +29 -0
- data/lib/generators/social_stream/templates/public/stylesheets/default/avatars.css +79 -0
- data/lib/generators/social_stream/templates/public/stylesheets/default/base.css +44 -5
- data/lib/generators/social_stream/templates/public/stylesheets/default/header.css +151 -1
- data/lib/generators/social_stream/templates/public/stylesheets/default/home.css +1 -1
- data/lib/generators/social_stream/templates/public/stylesheets/default/jquery-ui.css +1 -1
- data/lib/generators/social_stream/templates/public/stylesheets/default/messages.css +6 -4
- data/lib/social_stream.rb +1 -1
- data/lib/social_stream/ability.rb +20 -0
- data/lib/social_stream/models/subject.rb +5 -1
- data/lib/social_stream/test_helpers/controllers.rb +55 -0
- data/lib/social_stream/version.rb +1 -1
- data/social_stream.gemspec +1 -1
- data/spec/controllers/comments_controller_spec.rb +38 -0
- data/spec/controllers/groups_controller_spec.rb +75 -5
- data/spec/factories/comment.rb +4 -0
- data/spec/models/tie_spec.rb +25 -15
- metadata +18 -10
- data/app/controllers/pshb_controller.rb +0 -55
- data/app/views/ties/new.js.erb +0 -12
- data/lib/social_stream/relations.rb +0 -46
@@ -1,27 +1,56 @@
|
|
1
|
+
<% content_for :headers do %>
|
2
|
+
<%= stylesheet_link_tag "addContact.css", :media => "screen, projection" %>
|
3
|
+
<%= javascript_include_tag 'addContact'%>
|
4
|
+
<% end %>
|
5
|
+
|
6
|
+
<% toolbar :profile => @tie.receiver_subject, :option => 'contacts' %>
|
7
|
+
|
1
8
|
<div class="dialog_add_tie" id="new_tie">
|
2
|
-
|
3
|
-
|
4
|
-
|
9
|
+
<div class="content_add_user" >
|
10
|
+
<div class="activity_add_ties">
|
11
|
+
|
12
|
+
<%= location(
|
13
|
+
link_to(image_tag("btn/btn_friend.png", :class => "menu_icon")+t('tie.new.title'), new_tie_path("tie[sender_id]" => @tie.sender.id, "tie[receiver_id]" => @tie.receiver.id),:remote => true)
|
14
|
+
) %>
|
15
|
+
|
5
16
|
<%= form_for @tie do |f| %>
|
6
|
-
|
7
|
-
|
17
|
+
<%= f.hidden_field :receiver_id %>
|
18
|
+
<%= f.hidden_field :sender_id %>
|
19
|
+
<%= f.hidden_field :relation_name %>
|
8
20
|
|
9
21
|
<div class="block">
|
10
|
-
|
11
|
-
|
22
|
+
|
23
|
+
<div class="form_row center">
|
24
|
+
<h2> <%= t('tie.new.title') %> </h2>
|
25
|
+
</div>
|
26
|
+
<div class="two_columns_container">
|
27
|
+
<div class="form_column_left">
|
28
|
+
<p class="colum_field_title"><%= t('message.one') %></p>
|
29
|
+
<%= f.text_area :message, :class =>"new_tie_text_area" %>
|
12
30
|
</div>
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
<
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
31
|
+
|
32
|
+
<div class="form_column_right">
|
33
|
+
<div class="select_relations">
|
34
|
+
<div id="relationsSelect" class="dropdown">
|
35
|
+
<dt><a href="#"><span><%= t('tie.relation.one') %></span></a></dt>
|
36
|
+
<dd>
|
37
|
+
<ul>
|
38
|
+
<% (@tie.sender.relations.sort.map{ |r| [ r.name] }).each do |relationArray| %>
|
39
|
+
<li><a href="#" class="option"><%=relationArray[0]%><span class="value"><%=relationArray[0]%></span></a></li>
|
40
|
+
<% end %>
|
41
|
+
<li><a href="#" class="input_link">
|
42
|
+
<span class="value"></span>
|
43
|
+
<input type="text" class="input_select"/>
|
44
|
+
</a></li>
|
45
|
+
</ul>
|
46
|
+
</dd>
|
47
|
+
</div>
|
48
|
+
</div>
|
49
|
+
|
50
|
+
<div id="relationPermissions">
|
51
|
+
<p class="relationPermision"><input type="checkbox" class="checkbox_permission" name="tie[relation_permissions][]" value="<%= Permission.find_by_action_and_function_and_object("read","star_ties","activity").id%>"> <%= t('permissions.read.activity.star_ties', :user=> @tie.receiver.name) %></p>
|
52
|
+
<p class="relationPermision"><input type="checkbox" class="checkbox_permission" name="tie[relation_permissions][]" value="<%= Permission.find_by_action("follow").id%>" checked="true"> <%= t('permissions.follow', :user=> @tie.receiver.name) %></p>
|
53
|
+
<p class="relationPermision"><input type="checkbox" class="checkbox_permission" name="tie[relation_permissions][]" value="<%= Permission.find_by_action_and_function_and_object("create","tie","activity").id%>"> <%= t('permissions.create.activity.tie', :user=> @tie.receiver.name) %></p>
|
25
54
|
</div>
|
26
55
|
</div>
|
27
56
|
</div>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= render :partial => 'ties/edit' %>
|
data/config/locales/en.yml
CHANGED
@@ -18,14 +18,22 @@ en:
|
|
18
18
|
unlike: "Already I do not like"
|
19
19
|
verb:
|
20
20
|
follow:
|
21
|
-
|
22
|
-
|
21
|
+
User:
|
22
|
+
title: "%{subject} added %{contact} as contact."
|
23
|
+
message: "%{name} added you as contact."
|
24
|
+
Group:
|
25
|
+
title: "%{subject} added %{contact} as contact."
|
26
|
+
message: "%{name} added you as contact."
|
23
27
|
make-friend:
|
24
|
-
|
25
|
-
|
28
|
+
User:
|
29
|
+
title: "%{subject} and %{contact} are now connected."
|
30
|
+
message: "%{name} also added you as contact."
|
31
|
+
Group:
|
32
|
+
title: "%{subject} added %{contact} as contact."
|
33
|
+
message: "%{name} added you as contact."
|
26
34
|
avatar:
|
27
35
|
crop_image: "Crop the uploaded image"
|
28
|
-
crop_submit: "Crop"
|
36
|
+
crop_submit: "Crop image"
|
29
37
|
destroy: "Delete"
|
30
38
|
destroy_sure: "Are you sure you wan't to delete the selected avatar?"
|
31
39
|
error:
|
@@ -35,23 +43,31 @@ en:
|
|
35
43
|
new: "Create a new avatar"
|
36
44
|
new_short: "New avatar"
|
37
45
|
no_avatars: "You haven't any avatar, plesase create a new one."
|
46
|
+
one: "Avatar"
|
47
|
+
other: "Avatars"
|
48
|
+
original: "Original image"
|
38
49
|
preview: "Preview"
|
39
50
|
profile_change: "Change your avatar"
|
40
51
|
set_default: "Set as default"
|
41
52
|
set_default_sure: "Are you sure you wan't to set this avatar as default?"
|
42
53
|
upload: "Upload"
|
43
54
|
browse: "Browse"
|
55
|
+
button:
|
56
|
+
cancel: "Cancel"
|
57
|
+
update: "Update"
|
44
58
|
comment:
|
45
59
|
input: "Write a comment..."
|
46
60
|
confirm_delete: "Delete comment?"
|
47
61
|
contact:
|
48
|
-
one: "Contact"
|
49
|
-
other: "Contacts"
|
50
62
|
all_n: "All contacts (%{count})"
|
63
|
+
edit:
|
64
|
+
submit: "Edit Contact"
|
51
65
|
new:
|
52
66
|
link: "+ Add contact"
|
53
67
|
title: "Add %{name} as contact"
|
54
|
-
submit: "
|
68
|
+
submit: "Add Contact"
|
69
|
+
one: "Contact"
|
70
|
+
other: "Contacts"
|
55
71
|
copyright: "2010 Copyright - All rights reserved"
|
56
72
|
days: Days
|
57
73
|
delete:
|
@@ -89,22 +105,6 @@ en:
|
|
89
105
|
unlocks:
|
90
106
|
send_instructions: 'You will receive an email with instructions about how to unlock your account in a few minutes.'
|
91
107
|
unlocked: 'Your account was successfully unlocked. You are now signed in.'
|
92
|
-
edit:
|
93
|
-
aboutme: "About me --NOTE: use profile.<class>.about"
|
94
|
-
actualcity: "Actual City --NOTE: use profile.actualcity"
|
95
|
-
address: "Address --NOTE: use profile.address"
|
96
|
-
birthday: "BirthDay --NOTE: use profile.<class>.birthday"
|
97
|
-
contact: "Contact information --NOTE: use profile.contact"
|
98
|
-
email: "E-mail --NOTE: use profile.email"
|
99
|
-
experience: "Experience --NOTE: use profile.experience"
|
100
|
-
fax: "Fax --NOTE: use profile.fax"
|
101
|
-
group_info: "Group information --NOTE: use profile.<class>.info"
|
102
|
-
mobile: "Mobile --NOTE: use profile.mobile"
|
103
|
-
organization: "Organization --NOTE: use profile.organization"
|
104
|
-
personal_info: "Personal information --NOTE: use profile.<class>.info"
|
105
|
-
phone: "Phone --NOTE: use profile.phone"
|
106
|
-
profile: "Edit profile"
|
107
|
-
website: "Website --NOTE: use profile.website"
|
108
108
|
forgot_password: "Forgot you password?"
|
109
109
|
frontpage:
|
110
110
|
collaborate:
|
@@ -158,10 +158,12 @@ en:
|
|
158
158
|
information: "Information"
|
159
159
|
wall: "Wall"
|
160
160
|
message:
|
161
|
+
answer: "Write your answer"
|
161
162
|
inbox: "Inbox"
|
162
163
|
new: "New Message"
|
163
164
|
one: "Message"
|
164
165
|
other: "Messages"
|
166
|
+
participants: "Participants"
|
165
167
|
sentbox: "Sentbox"
|
166
168
|
trash: "Trash"
|
167
169
|
send: "Send a message"
|
@@ -201,6 +203,17 @@ en:
|
|
201
203
|
service:
|
202
204
|
one: "Service"
|
203
205
|
other: "Services"
|
206
|
+
permissions:
|
207
|
+
read:
|
208
|
+
activity:
|
209
|
+
star_ties: "Allow %{user} to read my wall"
|
210
|
+
tie:
|
211
|
+
weak_star_ties: "Not defined"
|
212
|
+
follow: "Follow %{user}"
|
213
|
+
create:
|
214
|
+
activity:
|
215
|
+
tie: "Allow %{user} to write in my wall"
|
216
|
+
weak_ties: "Not defined"
|
204
217
|
products:
|
205
218
|
one: "Product"
|
206
219
|
other: "Products"
|
@@ -212,14 +225,16 @@ en:
|
|
212
225
|
tie:
|
213
226
|
add:
|
214
227
|
bookmark: "Bookmark"
|
215
|
-
contact: "Add contact as"
|
228
|
+
contact: "Add contact as..."
|
216
229
|
follow: "Follow"
|
217
230
|
like: "Like"
|
218
231
|
partner: "Add Partner"
|
219
|
-
|
220
|
-
|
232
|
+
relation:
|
233
|
+
one: "Contact type"
|
234
|
+
new: "New type"
|
221
235
|
edit:
|
222
236
|
contact: "Contact: %{type}"
|
237
|
+
title: "Edit Contact"
|
223
238
|
new:
|
224
239
|
title: "Add New Contact"
|
225
240
|
pending:
|
data/config/routes.rb
CHANGED
@@ -12,12 +12,6 @@ Rails.application.routes.draw do
|
|
12
12
|
match 'api/user/:id/home' => 'api#activity_atom_feed', :format => 'atom'
|
13
13
|
##/API##
|
14
14
|
|
15
|
-
# PubSubHubBub
|
16
|
-
match 'pshb/callback' => 'pshb#callback', :as => :pshb_callback
|
17
|
-
# Test
|
18
|
-
match 'pshb/test_s' => 'pshb#pshb_subscription_request'
|
19
|
-
match 'pshb/test_p' => 'pshb#pshb_publish'
|
20
|
-
|
21
15
|
# Webfinger
|
22
16
|
match '.well-known/host-meta',:to => 'frontpage#host_meta'
|
23
17
|
|
Binary file
|
@@ -0,0 +1,100 @@
|
|
1
|
+
$(document).ready(function() {
|
2
|
+
|
3
|
+
$("#relationPermissions").hide();
|
4
|
+
|
5
|
+
$(".dropdown dt a").click(function() {
|
6
|
+
$(".dropdown dd ul").toggle();
|
7
|
+
});
|
8
|
+
|
9
|
+
$(".dropdown dd ul li a.option").click(function() {
|
10
|
+
var text = $(this).html();
|
11
|
+
$(".dropdown dt a span").html(text);
|
12
|
+
$(".dropdown dd ul").hide();
|
13
|
+
$('input[name$="tie[relation_name]"]').val(getSelectedValue("relationsSelect"));
|
14
|
+
});
|
15
|
+
|
16
|
+
|
17
|
+
$('input.input_select').click(function() {
|
18
|
+
return false;
|
19
|
+
});
|
20
|
+
|
21
|
+
$(".dropdown dd ul li a.input_link").click(function() {
|
22
|
+
var text = $('input.input_select').val();
|
23
|
+
setSelectedValue(text);
|
24
|
+
|
25
|
+
});
|
26
|
+
|
27
|
+
function getSelectedValue(id) {
|
28
|
+
$("#relationPermissions").hide();
|
29
|
+
return $("#" + id).find("dt a span.value").html();
|
30
|
+
}
|
31
|
+
|
32
|
+
function setSelectedValue(text){
|
33
|
+
if(validate_value_for_input(text)){
|
34
|
+
$('input[name$="tie[relation_name]"]').val(text);
|
35
|
+
$(".dropdown dt a span").html(text);
|
36
|
+
$("#relationPermissions").show();
|
37
|
+
}
|
38
|
+
$(".dropdown dd ul").hide();
|
39
|
+
}
|
40
|
+
|
41
|
+
function validate_value_for_input(value){
|
42
|
+
var result = true;
|
43
|
+
|
44
|
+
if (value.trim()=="") {
|
45
|
+
result = false;
|
46
|
+
}
|
47
|
+
|
48
|
+
var constantOptions = $(".dropdown dd ul li a.option");
|
49
|
+
$.each(constantOptions, function(index, item) {
|
50
|
+
if(item.text==value){
|
51
|
+
result = false;
|
52
|
+
}
|
53
|
+
if(item.text==value.trim()){
|
54
|
+
result = false;
|
55
|
+
}
|
56
|
+
});
|
57
|
+
|
58
|
+
return result;
|
59
|
+
}
|
60
|
+
|
61
|
+
function isConstantOptionSelected(){
|
62
|
+
var selected = $(".dropdown dt a span.value").text();
|
63
|
+
var constantOptions = $(".dropdown dd ul li a.option");
|
64
|
+
var result = false;
|
65
|
+
|
66
|
+
$.each(constantOptions, function(index, item) {
|
67
|
+
if(item.text==selected){
|
68
|
+
result = true;
|
69
|
+
}
|
70
|
+
});
|
71
|
+
|
72
|
+
return result;
|
73
|
+
}
|
74
|
+
|
75
|
+
|
76
|
+
$(document).bind('click', function(e) {
|
77
|
+
var $clicked = $(e.target);
|
78
|
+
if (! $clicked.parents().hasClass("dropdown")){
|
79
|
+
//If any previous option selected...
|
80
|
+
if(!isConstantOptionSelected()){
|
81
|
+
var text = $('input.input_select').val();
|
82
|
+
setSelectedValue(text);
|
83
|
+
}else{
|
84
|
+
$(".dropdown dd ul").hide();
|
85
|
+
}
|
86
|
+
}
|
87
|
+
});
|
88
|
+
|
89
|
+
|
90
|
+
$('input.input_select').bind('keypress', function(e) {
|
91
|
+
|
92
|
+
if (e.which == '13') {
|
93
|
+
//Case: Intro key
|
94
|
+
setSelectedValue($(this).val());
|
95
|
+
return false;
|
96
|
+
}
|
97
|
+
|
98
|
+
});
|
99
|
+
|
100
|
+
});
|
@@ -0,0 +1,8 @@
|
|
1
|
+
$(document).ready( function() {
|
2
|
+
//Full Caption Sliding (Hidden to Visible)
|
3
|
+
$('.boxgrid.captionfull').hover( function() {
|
4
|
+
$(".cover", this).stop().animate({top:'61px'},{queue:false,duration:160});
|
5
|
+
}, function() {
|
6
|
+
$(".cover", this).stop().animate({top:'104px'},{queue:false,duration:160});
|
7
|
+
});
|
8
|
+
});
|
@@ -0,0 +1,84 @@
|
|
1
|
+
(function($){
|
2
|
+
/* hoverIntent by Brian Cherne */
|
3
|
+
$.fn.hoverIntent = function(f,g) {
|
4
|
+
// default configuration options
|
5
|
+
var cfg = {
|
6
|
+
sensitivity: 7,
|
7
|
+
interval: 100,
|
8
|
+
timeout: 0
|
9
|
+
};
|
10
|
+
// override configuration options with user supplied object
|
11
|
+
cfg = $.extend(cfg, g ? { over: f, out: g } : f );
|
12
|
+
|
13
|
+
// instantiate variables
|
14
|
+
// cX, cY = current X and Y position of mouse, updated by mousemove event
|
15
|
+
// pX, pY = previous X and Y position of mouse, set by mouseover and polling interval
|
16
|
+
var cX, cY, pX, pY;
|
17
|
+
|
18
|
+
// A private function for getting mouse position
|
19
|
+
var track = function(ev) {
|
20
|
+
cX = ev.pageX;
|
21
|
+
cY = ev.pageY;
|
22
|
+
};
|
23
|
+
|
24
|
+
// A private function for comparing current and previous mouse position
|
25
|
+
var compare = function(ev,ob) {
|
26
|
+
ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t);
|
27
|
+
// compare mouse positions to see if they've crossed the threshold
|
28
|
+
if ( ( Math.abs(pX-cX) + Math.abs(pY-cY) ) < cfg.sensitivity ) {
|
29
|
+
$(ob).unbind("mousemove",track);
|
30
|
+
// set hoverIntent state to true (so mouseOut can be called)
|
31
|
+
ob.hoverIntent_s = 1;
|
32
|
+
return cfg.over.apply(ob,[ev]);
|
33
|
+
} else {
|
34
|
+
// set previous coordinates for next time
|
35
|
+
pX = cX; pY = cY;
|
36
|
+
// use self-calling timeout, guarantees intervals are spaced out properly (avoids JavaScript timer bugs)
|
37
|
+
ob.hoverIntent_t = setTimeout( function(){compare(ev, ob);} , cfg.interval );
|
38
|
+
}
|
39
|
+
};
|
40
|
+
|
41
|
+
// A private function for delaying the mouseOut function
|
42
|
+
var delay = function(ev,ob) {
|
43
|
+
ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t);
|
44
|
+
ob.hoverIntent_s = 0;
|
45
|
+
return cfg.out.apply(ob,[ev]);
|
46
|
+
};
|
47
|
+
|
48
|
+
// A private function for handling mouse 'hovering'
|
49
|
+
var handleHover = function(e) {
|
50
|
+
// next three lines copied from jQuery.hover, ignore children onMouseOver/onMouseOut
|
51
|
+
var p = (e.type == "mouseover" ? e.fromElement : e.toElement) || e.relatedTarget;
|
52
|
+
while ( p && p != this ) { try { p = p.parentNode; } catch(e) { p = this; } }
|
53
|
+
if ( p == this ) { return false; }
|
54
|
+
|
55
|
+
// copy objects to be passed into t (required for event object to be passed in IE)
|
56
|
+
var ev = jQuery.extend({},e);
|
57
|
+
var ob = this;
|
58
|
+
|
59
|
+
// cancel hoverIntent timer if it exists
|
60
|
+
if (ob.hoverIntent_t) { ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t); }
|
61
|
+
|
62
|
+
// else e.type == "onmouseover"
|
63
|
+
if (e.type == "mouseover") {
|
64
|
+
// set "previous" X and Y position based on initial entry point
|
65
|
+
pX = ev.pageX; pY = ev.pageY;
|
66
|
+
// update "current" X and Y position based on mousemove
|
67
|
+
$(ob).bind("mousemove",track);
|
68
|
+
// start polling interval (self-calling timeout) to compare mouse coordinates over time
|
69
|
+
if (ob.hoverIntent_s != 1) { ob.hoverIntent_t = setTimeout( function(){compare(ev,ob);} , cfg.interval );}
|
70
|
+
|
71
|
+
// else e.type == "onmouseout"
|
72
|
+
} else {
|
73
|
+
// unbind expensive mousemove event
|
74
|
+
$(ob).unbind("mousemove",track);
|
75
|
+
// if hoverIntent state is true, then call the mouseOut function after the specified delay
|
76
|
+
if (ob.hoverIntent_s == 1) { ob.hoverIntent_t = setTimeout( function(){delay(ev,ob);} , cfg.timeout );}
|
77
|
+
}
|
78
|
+
};
|
79
|
+
|
80
|
+
// bind the function to the two event listeners
|
81
|
+
return this.mouseover(handleHover).mouseout(handleHover);
|
82
|
+
};
|
83
|
+
|
84
|
+
})(jQuery);
|
@@ -1,8 +1,17 @@
|
|
1
1
|
// initialise plugins
|
2
2
|
jQuery(function(){
|
3
|
-
jQuery('ul.sf-menu').superfish(
|
3
|
+
jQuery('ul.sf-menu').superfish({
|
4
|
+
delay: 1000, // one second delay on mouseout
|
5
|
+
animation: {height:'show'}, // fade-in and slide-down animation
|
6
|
+
speed: 'fast', // faster animation speed
|
7
|
+
autoArrows: false,
|
8
|
+
dropShadows: false // disable drop shadows
|
4
9
|
});
|
5
10
|
|
11
|
+
});
|
12
|
+
|
13
|
+
|
14
|
+
|
6
15
|
$(document).ready(function() {
|
7
16
|
$('#tabright> ul').tabs({ fx: { height: 'toggle', opacity: 'toggle' } });
|
8
17
|
});
|