missed a rescue in the case where there's not currently
a valid facebook session.
fixes#3867
Change-Id: Ia524dcd93be48e7a4e57866a414096437a0632d3
Reviewed-on: https://gerrit.instructure.com/2359
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
If any individual message delivery fails, we'll reschedule it as its own
individual job.
Change-Id: I51ae5941fd001c61e6c6b708185ff12585d0a49f
Reviewed-on: https://gerrit.instructure.com/2390
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
This fixes a long-standing issue with not being able to properly
serialize AR objects that are in arrays or other data structures. Now
that we're using native YAML methods for doing the serialization, rather
than dumping specially-formatted "LOAD;N" strings, it works properly.
I've left the load_for_delayed_job stuff in for now, for backwards
compatibility with jobs already in the queue.
Change-Id: I109f364b91c4becc8fc17ea1d9f041eb3c18281f
Reviewed-on: https://gerrit.instructure.com/2389
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
There was a race condition where the delayed job
for creating stream items hadn't run yet and an
object (like an announcement) was deleted, this
would create a stream item pointing to a deleted
object
closes#3699
Change-Id: I59cd5ac80b752e689098bbecb74243b6913de1a4
Reviewed-on: https://gerrit.instructure.com/2379
Reviewed-by: Brian Whitmer <brian@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
There was a bug where data passed to content_for via a string and not a block
was being marked as "html safe" when it hadn't been escaped.
Change-Id: I679281d1a767841b8f4d90ebbb8f8ca61a2a07f4
Reviewed-on: https://gerrit.instructure.com/2374
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
did this because it was a waste to send it to
every single page view.
plus I hated seeing it in the firebug and web
inspector
fixes: #3874
Change-Id: I3e25cb78cddf9f8f897c81014bb07ca77ccfc361
Reviewed-on: https://gerrit.instructure.com/2363
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Ryan Shaw <ryan@instructure.com>
while I was tyring to find the cause of a zendesk
ticket I had to grock this, while I was at it I DRY'ed
it up a little.
Change-Id: Ib95a55031625dfaa635f8b3ca2a4d6c1b6224283
Reviewed-on: https://gerrit.instructure.com/2364
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
it was because image_tag("blank.png") would put
a alt tag of "blank" on the image, which the screenreader
would always read.
fixes zendesk 5589
Change-Id: Ifbd200e17d40d6a5f45208f1adb6b49835ce3c5d
Reviewed-on: https://gerrit.instructure.com/2365
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
round one in moving all the yml files to the plugins system instead
Change-Id: Id255c15d14d27bce232606ece6bd00eb7e094749
Reviewed-on: https://gerrit.instructure.com/2339
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
Reviewed-by: Jon Jensen <jon@instructure.com>
Right now we serialize the AR object without an id, and fail later when
trying to perform the job, since we can't find the object without an id.
This change will make it a lot easier to track down these kinds of errors.
Change-Id: I89d7fb45182f6624bd7fee9b01c1294112a0ba8b
Reviewed-on: https://gerrit.instructure.com/2354
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
the notification settings were poorly formatted, which
was making the start and end times get saved
incorrectly.
Change-Id: I7aae061d823a18f44e00a1e52806df1a26ed3807
Reviewed-on: https://gerrit.instructure.com/2353
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Zach Wily <zach@instructure.com>
if a teacher locks a file and tries to go to the
file details page, it says "hasn't been unlocked
yet", when really it should let them download
since they're a teacher.
fixes#3578
Change-Id: I42ea29d2803b8fa96fd50afd0adfdcf614702760
Reviewed-on: https://gerrit.instructure.com/2342
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
if they can only see 1 section (possibly the default section),
they do not get the option to change it.
they can only change sections they are allowed to see
the setting is stored in $.store.userGet and is keyed
off of the course too so it will be remembered for a
given user/course/browser combo.
if the page loads and tries to show only a section,
but that section does not have anyone in it, or they
cant see anyone in it, it will alert() reload to show
all sections.
fixes#3653
Change-Id: Ie6de238ac8e1d5367ae8ab961aaa0fcc1ca66c1e
Reviewed-on: https://gerrit.instructure.com/2324
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Whitmer <brian@instructure.com>
now one of course_id/section_id is required for enrollments, but not both
Change-Id: I4ebd19ac05988bf3eeffcb846d8bc1fafce73b40
Reviewed-on: https://gerrit.instructure.com/2316
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
Reviewed-by: Brian Whitmer <brian@instructure.com>
Chrome on a Mac doesn't support sendAsBinary, so this
code was failing.
fixes#3788
Change-Id: Id3475adf38a7a0df9e4aaa1cb17165bfe52a91e1
Reviewed-on: https://gerrit.instructure.com/2323
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Ryan Shaw <ryan@instructure.com>
there's still going to be up to a 3 minute delay on alerts
showing up on a user's dashboard, since we don't touch all
the users for an account when an alert changes, but if a
user closes the alert it should go away forever like it's
supposed to now.
Change-Id: I6461836ad126c4646a496734e84c89305f873f2d
Reviewed-on: https://gerrit.instructure.com/2344
Reviewed-by: Zach Wily <zach@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
Used to fail after 10 empty ajax responses. Changed to
not count it as a bad request unless it's already had
at least one good request.
fixes#3838
Change-Id: I5d41f52ca302f779507e2e93a03ebac342b97e2b
Reviewed-on: https://gerrit.instructure.com/2311
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
On the outcomes page if you clicked "show details" for an
outcome, it would always say "0 artifacts" even if there
were artifacts. The problem is it wasn't actually looking
for artifacts, it was looking for something else. Also
fixed the pageless code on the outcome details page to
correctly do an infinite scroll.
fixes#3823
Change-Id: I6e0fd06ea70e5915ee5cdef23d4851ecd6a285fc
Reviewed-on: https://gerrit.instructure.com/2318
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Jon Jensen <jon@instructure.com>
On large quizzes there were problems both while
taking and editing the quiz because of all the DOM
elements. Part of the solution was using more event
delegation, and part was rendering smaller
partials when editing quizzes with lots of questions,
and then loading the full details of only the
questions that the user wants to edit/view.
fixes#3771fixes#3817
Change-Id: I73aabe79323c1879d7fc8985d1709751271730f2
Reviewed-on: https://gerrit.instructure.com/2290
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Palmer <brianp@instructure.com>
there's already logic to flag the ContextMessage as read when you read (or
reply to) an InboxItem... just added the inverse to the models, plus a
read call to the controller when replying
Change-Id: Ie3c22cd4e81bbbb4f8a1d88412c6c6fd33e45dc3
Reviewed-on: https://gerrit.instructure.com/2329
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Whitmer <brian@instructure.com>
observers can now be linked from either the course
details page or the user details page inside a course.
Fixed some bugs in this and made the code a bit
cleaner.
refs #3315
Change-Id: I004bc11d823fffcc76ab5b74ee235979248cae4d
Reviewed-on: https://gerrit.instructure.com/2263
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Ryan Shaw <ryan@instructure.com>
also some UI fixes for the plugin page
Change-Id: I161c458756c20e034c29d4515801fd9f6427aa53
Reviewed-on: https://gerrit.instructure.com/2093
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Ryan Shaw <ryan@instructure.com>
account admins can create "Alerts" from the account
settings page that show up as sticky messages on the
user dashboards. The alerts stay until the end_at
date, or until the user clicks the "close" link. If
you add an alert to the site_admin account then it's
considered a global alert and will go to all root
accounts.
fixes#3738
Change-Id: I47e6eaf717145af24d847d4387e0ad5c36800094
Reviewed-on: https://gerrit.instructure.com/2293
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Zach Wily <zach@instructure.com>
by default observers don't have messaging permission. Now
you can give them messaging permission, but if they don't have
roster access then they can only message the teachers. If
they are also granted roster access then they can message
anyone in the course.
refs #3315
Change-Id: Ic9d867a964d3231fedd97547dadd645a6eb85308
Reviewed-on: https://gerrit.instructure.com/2265
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
and add a new column for linking it to a user
refs #3315
Change-Id: I8333a0530bb2da5557385bf30f45cdd56b5eb261
Reviewed-on: https://gerrit.instructure.com/2266
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
also added option for plugins to provide validation on
their settings page. I need this for some of the
more complex settings we'll have to put together
as we move stuff from yml files to settings.
Change-Id: I78e6e3cd423e7ef7e15eafae86db8337f605be3a
Reviewed-on: https://gerrit.instructure.com/2247
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
this logic didn't make sense to me, and it was obviously
broken, so I rewrote it. These are the new assumptions
for web conferences:
- when the first participant joins a conference, we set
started_at, start_at and end_at
- once nobody is using the conference anymore and end_at
has passed, or it is more than 15 minutes past
end_at, we set ended_at
- if ended_at is set and has passed, the conference is
considered closed
- if ended_at is not set and a user tries to join an
inactive conference, don't let them unless they're
authorized to resume the conference
- conferences are resumable by those with permission, but
only until the end_at date, after that it's all over
fixes#3827
Change-Id: I3f7474c314a99f0fd5a2b7f9222216d2fc3168a1
Reviewed-on: https://gerrit.instructure.com/2304
Reviewed-by: Zach Wily <zach@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
2 things:
1. styled the file uploads for: thing so that it
is not so ugly.
2. if anything in the file list is a swf, when
they click it embed it inline with wmode: opaque
so that it doesn't appear on to of everything
(like the students dropdown in the speedGrader)
Change-Id: Ifcc1044d5256269f1f8b5549f1fb51fde088dba8
fixes: #3497 and zendesk #4562
Reviewed-on: https://gerrit.instructure.com/2192
Tested-by: Hudson <hudson@instructure.com>
Reviewed-by: Brian Whitmer <brian@instructure.com>