fix faculty journal regression, closes #5724
incidentally also fixes issue where user's common contexts were not displaying in the recipient finder Change-Id: I69c866ead86796a3602030c8fdd1df25200fdcb3 Reviewed-on: https://gerrit.instructure.com/6033 Tested-by: Hudson <hudson@instructure.com> Reviewed-by: Zach Pendleton <zachp@instructure.com>
This commit is contained in:
parent
dc2a8fd040
commit
6e2f7ac517
|
@ -614,12 +614,8 @@ I18n.scoped 'conversations', (I18n) ->
|
||||||
for user in data.participants when !MessageInbox.user_cache[user.id]?.avatar_url
|
for user in data.participants when !MessageInbox.user_cache[user.id]?.avatar_url
|
||||||
MessageInbox.user_cache[user.id] = user
|
MessageInbox.user_cache[user.id] = user
|
||||||
user.html_name = html_name_for_user(user)
|
user.html_name = html_name_for_user(user)
|
||||||
$form.find('#user_note_info').showIf(
|
if data['private'] and user = (user for user in data.participants when user.id isnt MessageInbox.user_id)[0] and can_add_notes_for(user)
|
||||||
$c.hasClass('private') and
|
$form.find('#user_note_info').show()
|
||||||
(user_id = $c.find('.participant').first().data('id')) and
|
|
||||||
(user = MessageInbox.user_cache[user_id]) and
|
|
||||||
can_add_notes_for(user)
|
|
||||||
)
|
|
||||||
inbox_resize()
|
inbox_resize()
|
||||||
$messages.show()
|
$messages.show()
|
||||||
i = j = 0
|
i = j = 0
|
||||||
|
@ -1499,7 +1495,8 @@ I18n.scoped 'conversations', (I18n) ->
|
||||||
unless data.id and "#{data.id}".match(/^(course|group)_/)
|
unless data.id and "#{data.id}".match(/^(course|group)_/)
|
||||||
data = $.extend({}, data)
|
data = $.extend({}, data)
|
||||||
delete data.avatar_url # since it's the wrong size and possibly a blank image
|
delete data.avatar_url # since it's the wrong size and possibly a blank image
|
||||||
MessageInbox.user_cache[data.id] ?= data
|
current_data = MessageInbox.user_cache[data.id] ? {}
|
||||||
|
MessageInbox.user_cache[data.id] = $.extend(current_data, data)
|
||||||
selector:
|
selector:
|
||||||
messages: {no_results: I18n.t('no_results', 'No results found')}
|
messages: {no_results: I18n.t('no_results', 'No results found')}
|
||||||
populator: ($node, data, options={}) ->
|
populator: ($node, data, options={}) ->
|
||||||
|
@ -1514,7 +1511,7 @@ I18n.scoped 'conversations', (I18n) ->
|
||||||
$b.text(data.name)
|
$b.text(data.name)
|
||||||
$span = $('<span />')
|
$span = $('<span />')
|
||||||
if data.common_courses?
|
if data.common_courses?
|
||||||
$span.text(MessageInbox.context_list(data))
|
$span.text(MessageInbox.context_list(courses: data.common_courses, groups: data.common_groups))
|
||||||
else if data.type and data.user_count?
|
else if data.type and data.user_count?
|
||||||
$span.text(I18n.t('people_count', 'person', {count: data.user_count}))
|
$span.text(I18n.t('people_count', 'person', {count: data.user_count}))
|
||||||
$node.append($b, $context_name, $span)
|
$node.append($b, $context_name, $span)
|
||||||
|
|
|
@ -836,7 +836,7 @@
|
||||||
$form.loadingImage();
|
$form.loadingImage();
|
||||||
$c = $selected_conversation;
|
$c = $selected_conversation;
|
||||||
completion = function(data) {
|
completion = function(data) {
|
||||||
var i, j, message, submission, user, user_id, _i, _len, _ref, _ref2;
|
var i, j, message, submission, user, _i, _len, _ref, _ref2;
|
||||||
if (!is_selected($c)) {
|
if (!is_selected($c)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -848,7 +848,20 @@
|
||||||
user.html_name = html_name_for_user(user);
|
user.html_name = html_name_for_user(user);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$form.find('#user_note_info').showIf($c.hasClass('private') && (user_id = $c.find('.participant').first().data('id')) && (user = MessageInbox.user_cache[user_id]) && can_add_notes_for(user));
|
if (data['private'] && (user = ((function() {
|
||||||
|
var _j, _len2, _ref3, _results;
|
||||||
|
_ref3 = data.participants;
|
||||||
|
_results = [];
|
||||||
|
for (_j = 0, _len2 = _ref3.length; _j < _len2; _j++) {
|
||||||
|
user = _ref3[_j];
|
||||||
|
if (user.id !== MessageInbox.user_id) {
|
||||||
|
_results.push(user);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return _results;
|
||||||
|
})())[0] && can_add_notes_for(user))) {
|
||||||
|
$form.find('#user_note_info').show();
|
||||||
|
}
|
||||||
inbox_resize();
|
inbox_resize();
|
||||||
$messages.show();
|
$messages.show();
|
||||||
i = j = 0;
|
i = j = 0;
|
||||||
|
@ -1994,7 +2007,7 @@
|
||||||
$('.recipients').tokenInput({
|
$('.recipients').tokenInput({
|
||||||
placeholder: I18n.t('recipient_field_placeholder', "Enter a name, course, or group"),
|
placeholder: I18n.t('recipient_field_placeholder', "Enter a name, course, or group"),
|
||||||
added: function(data, $token, new_token) {
|
added: function(data, $token, new_token) {
|
||||||
var $details, _base, _name, _ref3;
|
var $details, current_data, _ref3;
|
||||||
if (new_token && data.type) {
|
if (new_token && data.type) {
|
||||||
$token.addClass(data.type);
|
$token.addClass(data.type);
|
||||||
if (data.user_count != null) {
|
if (data.user_count != null) {
|
||||||
|
@ -2009,7 +2022,8 @@
|
||||||
if (!(data.id && ("" + data.id).match(/^(course|group)_/))) {
|
if (!(data.id && ("" + data.id).match(/^(course|group)_/))) {
|
||||||
data = $.extend({}, data);
|
data = $.extend({}, data);
|
||||||
delete data.avatar_url;
|
delete data.avatar_url;
|
||||||
return (_ref3 = (_base = MessageInbox.user_cache)[_name = data.id]) != null ? _ref3 : _base[_name] = data;
|
current_data = (_ref3 = MessageInbox.user_cache[data.id]) != null ? _ref3 : {};
|
||||||
|
return MessageInbox.user_cache[data.id] = $.extend(current_data, data);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
selector: {
|
selector: {
|
||||||
|
@ -2035,7 +2049,10 @@
|
||||||
$b.text(data.name);
|
$b.text(data.name);
|
||||||
$span = $('<span />');
|
$span = $('<span />');
|
||||||
if (data.common_courses != null) {
|
if (data.common_courses != null) {
|
||||||
$span.text(MessageInbox.context_list(data));
|
$span.text(MessageInbox.context_list({
|
||||||
|
courses: data.common_courses,
|
||||||
|
groups: data.common_groups
|
||||||
|
}));
|
||||||
} else if (data.type && (data.user_count != null)) {
|
} else if (data.type && (data.user_count != null)) {
|
||||||
$span.text(I18n.t('people_count', 'person', {
|
$span.text(I18n.t('people_count', 'person', {
|
||||||
count: data.user_count
|
count: data.user_count
|
||||||
|
|
|
@ -17,8 +17,9 @@ shared_examples_for "conversations selenium tests" do
|
||||||
def submit_message_form(opts={})
|
def submit_message_form(opts={})
|
||||||
opts[:message] ||= "Test Message"
|
opts[:message] ||= "Test Message"
|
||||||
opts[:attachments] ||= []
|
opts[:attachments] ||= []
|
||||||
|
opts[:add_recipient] = true unless opts.has_key?(:add_recipient)
|
||||||
|
|
||||||
if browser = find_with_jquery("#create_message_form .browser:visible")
|
if opts[:add_recipient] && browser = find_with_jquery("#create_message_form .browser:visible")
|
||||||
browser.click
|
browser.click
|
||||||
keep_trying_until{
|
keep_trying_until{
|
||||||
if elem = find_with_jquery('.selectable:visible')
|
if elem = find_with_jquery('.selectable:visible')
|
||||||
|
@ -171,6 +172,69 @@ shared_examples_for "conversations selenium tests" do
|
||||||
find_with_jquery("#{message} .message_attachments li:last a .title").text.should == file2[0]
|
find_with_jquery("#{message} .message_attachments li:last a .title").text.should == file2[0]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context "user notes" do
|
||||||
|
before do
|
||||||
|
@the_teacher = User.create(:name => "teacher bob")
|
||||||
|
@course.enroll_teacher(@the_teacher)
|
||||||
|
@the_student = User.create(:name => "student bob")
|
||||||
|
@course.enroll_student(@the_student)
|
||||||
|
end
|
||||||
|
|
||||||
|
def add_recipient(search)
|
||||||
|
input = find_with_jquery("#create_message_form input:visible")
|
||||||
|
input.send_keys(search)
|
||||||
|
keep_trying_until{ driver.execute_script("return $('#recipients').data('token_input').selector.last_search") == search }
|
||||||
|
input.send_keys(:return)
|
||||||
|
end
|
||||||
|
|
||||||
|
it "should not allow user notes if not enabled" do
|
||||||
|
@course.account.update_attribute :enable_user_notes, false
|
||||||
|
new_conversation
|
||||||
|
add_recipient("student bob")
|
||||||
|
driver.find_element(:id, "add_to_faculty_journal").should_not be_displayed
|
||||||
|
end
|
||||||
|
|
||||||
|
it "should not allow user notes to teachers" do
|
||||||
|
@course.account.update_attribute :enable_user_notes, true
|
||||||
|
new_conversation
|
||||||
|
add_recipient("teacher bob")
|
||||||
|
driver.find_element(:id, "add_to_faculty_journal").should_not be_displayed
|
||||||
|
end
|
||||||
|
|
||||||
|
it "should not allow user notes on group conversations" do
|
||||||
|
@course.account.update_attribute :enable_user_notes, true
|
||||||
|
new_conversation
|
||||||
|
add_recipient("student bob")
|
||||||
|
add_recipient("teacher bob")
|
||||||
|
driver.find_element(:id, "add_to_faculty_journal").should_not be_displayed
|
||||||
|
find_with_jquery("#create_message_form input:visible").send_keys :backspace
|
||||||
|
driver.find_element(:id, "add_to_faculty_journal").should be_displayed
|
||||||
|
end
|
||||||
|
|
||||||
|
it "should allow user notes on new private conversations with students" do
|
||||||
|
@course.account.update_attribute :enable_user_notes, true
|
||||||
|
new_conversation
|
||||||
|
add_recipient("student bob")
|
||||||
|
checkbox = driver.find_element(:id, "add_to_faculty_journal")
|
||||||
|
checkbox.should be_displayed
|
||||||
|
checkbox.click
|
||||||
|
submit_message_form(:add_recipient => false)
|
||||||
|
@the_student.user_notes.size.should eql(1)
|
||||||
|
end
|
||||||
|
|
||||||
|
it "should allow user notes on existing private conversations with students" do
|
||||||
|
@course.account.update_attribute :enable_user_notes, true
|
||||||
|
new_conversation
|
||||||
|
add_recipient("student bob")
|
||||||
|
submit_message_form(:add_recipient => false)
|
||||||
|
checkbox = driver.find_element(:id, "add_to_faculty_journal")
|
||||||
|
checkbox.should be_displayed
|
||||||
|
checkbox.click
|
||||||
|
submit_message_form
|
||||||
|
@the_student.user_notes.size.should eql(1)
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe "conversations Windows-Firefox-Tests" do
|
describe "conversations Windows-Firefox-Tests" do
|
||||||
|
|
Loading…
Reference in New Issue