Giter Club home page Giter Club logo

canvas-lms's Introduction

canvas-lms's People

Contributors

aaronshaf avatar aogata-inst avatar ardena avatar augiethornton avatar bracken avatar ccutrer avatar cguanzon avatar claydiffrient avatar cmatheson avatar codekitchen avatar djbender avatar drakeaharper avatar eschiebel avatar evizitei avatar jacksonhowe avatar jbutte avatar jenseng avatar jneander avatar jstanley0 avatar lukfugl avatar maneframe avatar maths22 avatar roor0 avatar sdb1228 avatar simonista avatar spencerolson avatar westonkd avatar xandroxygen avatar zachpendleton avatar zwily avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

canvas-lms's Issues

Error saving Scribd settings at /plugins/scribd

When trying to save plugin settings at /plugins/scribd, I get a 500 error.

NoMethodError (undefined method []' for nil:NilClass): lib/scribd_api.rb:100:inauthenticate'
lib/scribd_api.rb:41:in initialize' lib/scribd_api.rb:76:innew'
lib/scribd_api.rb:76:in config_check' /lib/canvas/plugins/validators/scribd_validator.rb:28:invalidate'
lib/canvas/plugin.rb:117:in validate_settings' app/models/plugin_setting.rb:46:invalidate_posted_settings'
app/controllers/plugins_controller.rb:39:in `update'
...

Adding same question from question bank twice messes up scoring

Creating a quiz, I click Find a question.
Select a question from teh question bank.
Later I add the same question to the quiz from the question bank.

I take the quiz as a student, giving different answers to each instance of the question.

The second version seems to overwrite the first: both versions of the question show the second's answer, and are scored with the second's scoring.

I realize this isn't a likely user workflow, but not desirable behavior anyway....

Main functionality of page is not contained in the section that includes role="main"

The major functionality of the page should be included in the section that is designated role="main". Currently, most of this functionality is found in the inappropriate section with role="complimentary". This obscures the main functionality of the page and is exacerbated by the fact that the "main" section comes after the "complimentary" section in the render order, so if an AT user skips to the main content, they totally bypass all the major actions of the page.

note:

and role="complimentary" suggest a far more tangential relationship to the main content than the major functionality that a person can take on a page or on the content of the page.

unescaped module name

I created a module named locked <script>alert('module name');</script>

When I go to add an item to the module,the page alerts 'module name'.

When the modal dialog opens, it again alerts 'module name'.

Install Error: RAILS_ENV=production rake db:initial_setup

I have been trying to get this installed for a few weeks now. I have also been documenting my installation procedures and have it down well until I get to this setup. When I run

RAILS_ENV=production rake db:initial_setup

I get the following rake aborted!
You have already activated rake 0.9.2, but your Gemfile requires rake 0.8.7. Consider using bundle exec.

I am using ruby 1.8.7 (2008-05-31 patchlevel 0)
rubygems 1.8.5
rails 2.3.11

Not sure how to proceed with the installation.

unescaped course title when composing message

I have a course titled Demo - <script>alert('demo');</script>

If I go to my inbox and compose a message for that course, and click on Select Recipients, the page alerts demo, but only the first time I click that button.

Tabs in course settings not coded as tabs

The tabs in course settings appear as just a set of links. I'd suggest making these more semantic and accessible by coding these as actual tabs and letting the AT users know this via ARIA. The expected behavior would be that only the active tab is tabbable. When a user tabs to it, they can then use the left/right arrows to navigate the rest of the tabs in the UL. By using tabpanels to relate the tab content to the tab, users will clearly understand the association between the tab and the content on the page. This will also help users tab through the page content efficiently.

Internet Explorer - assignment submission problem

Internet Explorer 8 does not allow assignment submissions via file upload. It prompts to download a file named "file.text" when clicking on the submit button. Firefox works fine. IE works on the Instructure demo site, but not community edition sites.

unescaped course title in the gradebook

On my test build I created a course named Course-101<script>alert('foo');</script>

When I click on Grades, it alerts foo twice, and then fails to load with this js error:

unterminated string literal
[Break On This Error] 2-07:00","context_type":"Course","title":"<script>alert('foo');

modifying config/*.yml files requires changing file ownership

I added my API information to the scribd config file and tried to run RAILS_ENV=production rake db:generate_data but since the instructions had me change the owner of the config files the rake command fails with this error:
(in /var/rails/canvas)
rake aborted!
Permission denied - /var/rails/canvas/config/security.yml

To fix the problem I simply changed the owner of the files back to my username i.e:
sudo chown canvasadmin config/*.yml
I re-ran the rake command and it worked but then I got this error:
Rails Error: Unable to access log file. Please ensure that /var/rails/canvas/log/production.log exists and is chmod 0666. The log level has been raised to WARN and the output directed to STDERR until the problem is fixed.

So I went back and performed the same thing on all the other files the instructions had me change i.e:
sudo chown -R canvasadmin config/environment.rb log tmp public/assets public/stylesheets/compiled Gemfile.lock

I re-ran the rake command and restarted apache and everything configured fine.
Just remember to re-run the chown commands with canvasuser to get things back in order.

Is there a simpler method to ensure the rake commands run successfully without changing file owners eachtime? Does the rake command need to be ran each time a config file is changed or can I just restart apache?

Thanks,
Tyler

undefined method 'fetch_row' on rake db:initial_setup

While trying to run through the Quick Start the rake db:initial_setup script had this error:

** Execute db:configure_statistics_collection
rake aborted!
undefined method `fetch_row' for [{0=>nil, "max(created_at)"=>nil}]:Array
/home/randy/Utility/canvas-lms/lib/reporting/counts_report.rb:224:in `last_activity'
/home/randy/Utility/canvas-lms/lib/reporting/counts_report.rb:77:in `process'
/home/randy/Utility/canvas-lms/lib/reporting/counts_report.rb:104:in `each'
/home/randy/Utility/canvas-lms/lib/reporting/counts_report.rb:104:in `each_account'
/home/randy/Utility/canvas-lms/lib/reporting/counts_report.rb:70:in `process'
/home/randy/Utility/canvas-lms/lib/reporting/counts_report.rb:48:in `process'
/home/randy/Utility/canvas-lms/lib/tasks/db_load_data.rake:1089
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:636:in `call'
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:636:in `execute'
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:631:in `each'
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:631:in `execute'
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:597:in `invoke_with_call_chain'
/usr/lib/ruby/1.8/monitor.rb:242:in `synchronize'
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:590:in `invoke_with_call_chain'
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:607:in `invoke_prerequisites'
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:604:in `each'
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:604:in `invoke_prerequisites'
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:596:in `invoke_with_call_chain'
/usr/lib/ruby/1.8/monitor.rb:242:in `synchronize'
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:590:in `invoke_with_call_chain'
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:607:in `invoke_prerequisites'
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:604:in `each'
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:604:in `invoke_prerequisites'
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:596:in `invoke_with_call_chain'
/usr/lib/ruby/1.8/monitor.rb:242:in `synchronize'
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:590:in `invoke_with_call_chain'
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:583:in `invoke'
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2051:in `invoke_task'
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `top_level'
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `each'
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `top_level'
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling'
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2023:in `top_level'
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2001:in `run'
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling'
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:1998:in `run'
/var/lib/gems/1.8/gems/rake-0.8.7/bin/rake:31
/var/lib/gems/1.8/bin/rake:19:in `load'
/var/lib/gems/1.8/bin/rake:19

The notifications at the top of the page should use the ARIA role of "alert" or "status" to announce themselves to AT users.

I don't see any indication that the notifications that appear at the top of the page would be announced to AT users. I'd suggest using the roles of "alert" or "status" so that they will be announced. Due to the visual treatment, it appears that these should be announced.

Additionally, the links on these are inconsistent and, some of them, extremely non-descriptive. When you add memebers, the notification that a member has been added has <a href"">#... this doesn't help an AT user know whether to click this link or not.

null AssignmentGroup breaks quiz publish and course export

Creating a quiz without an assignment group causes the error below when publishing the quiz and breaks course exporting.

Cannot cleanly cast "null" to integer (AssignmentGroup#id)

  1. Create new course
  2. Create new quiz
  3. Publish triggers error
  4. Course export fails

multistep ajax_authenticity_token theft w/ file upload

Even using a files domain, it is still possible to steal the ajax auth token.

It takes 2 file uploads. The first does the theft, and it looks like this:

<script> console.log(window.parent.document.getElementById('ajax_authenticity_token').innerHTML); </script>

... some actual content

After the attacker knows the url to that file, they upload a second file that looks like this:

<script> window.parent.location.href = 'http:///courses/4/files/8'; </script>

Loading that document requires the victim to log in a second time, which might stop someone who's really paying attention, but once they do both the canvas app and the first file are in the same domain, so the content can be read.

rake db:initial_setup problem

Hi,

when i run this

RAILS_ENV=production rake db:initial_setup

at the end it asks the email address and password for the administrator account. But when i enter the details it gives the following error..

"Problem creating administrator account. no mac address candidates found."

any ideas why this error occurs ?

Production Installation Instructions Problem

I'm running through the production install instructions on the wiki. Got to the part where I setup the db.

$ RAILS_ENV=production rake db:initial_setup

It works fine until I get to the point where it wants to create a delayed_jobs table...

== CreateDelayedJobs: migrating ==============================================
-- create_table(:delayed_jobs)
rake aborted!
An error has occurred, all later migrations canceled:

Access denied for user 'canvas'@'localhost' (using password: YES)

(See full trace by running task with --trace)

I created the canvas user in mysql using the Production Install Wiki. I think I can just GRANT the canvas user more permissions in MySQL, but wasn't sure why this didn't work since I followed the MySQL setup instructions correctly.

Matt

Quick Start Directions - Not working for Mac OS 10.6.6

Am using Quick Start directions to set up Canvas in following environment:
-Mac OS 10.6.6
-MySQL server version: 5.1.48
-Apache 2.2.15

I followed instructions and everything seemed to install correctly:
-installed RVM as a user
-installed Gems in user folder
-installed Bundler

When installing the Bundler, got the following errors:
Installing mysql (2.8.1) with native extensions /Users/<>/.rvm/rubies/ruby-1.8.7-p330/lib/ruby/site_ruby/1.8/rubygems/installer.rb:529:in `build_extensions': ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError)

   /Users/<<username>>/.rvm/rubies/ruby-1.8.7-p330/bin/ruby extconf.rb 

checking for mysql_query() in -lmysqlclient... no
checking for main() in -lm... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lz... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lsocket... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lnsl... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lmygcc... no
checking for mysql_query() in -lmysqlclient... no
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers. Check the mkmf.log file for more
details. You may need configuration options.

Here are versions:
-Rails 3.0.3
-Ruby 1.8.7 (2010-12-23 patchlevel 330) [i686-darwin10.6.0]
-RubyGems 1.5.0

When I try to run:
~/canvas$ rake db:initial_setup

I get the following error:
Could not find gem 'rails (= 2.3.9, runtime)' in any of the gem sources listed in your Gemfile.
/Users/<>/Sites/canvas/Rakefile:4

When I try to start the server:
~/canvas$ script/server

I get the following error:
/Users/<>/.rvm/gems/ruby-1.8.7-p330/gems/bundler-1.0.10/lib/bundler/resolver.rb:280:in `resolve': Could not find gem 'rails (= 2.3.9, runtime)' in any of the gem sources listed in your Gemfile. (Bundler::GemNotFound)

Gem sources listed in canvas/Gemfile are:
source :gemcutter
source 'http://gems.github.com'

SSL Certificate Configuration

I am having some trouble using my SSL certificates when trying to configure Canvas. Whenever I try to use the .pem that was given to me by my CA and the .key file that I generated, in the canvas file under the sites available folder, I get an error saying the "Webpage isn't available please try again later" when trying to load in Google Chrome in Windows 7. But when I use the default SSL files that are given in the Production Start Wiki, it works just fine, but I get the certificate files aren't trusted.

I generated the .pem and .key file using the openssl command in Ubuntu 10.04 and GoDaddy is my certificate authority.

Thanks,
Mike

Changing account settings has no effect until next server restart

Certain account settings do not appear to go in to effect until Ruby is restarted. For example, if I uncheck the "who can create new courses" boxes on the account settings page, students can still create a new course. Restarting Ruby (passenger, unicorn, mongrel, etc.) fixes the problem.

"Insert Content into the Page" should be H3 instead of H4

When editing a course page, the "Insert Content into the Page" header is improperly nested as an H4. It should be an H3 under the H2 of "Page Tools". The following subheaders should be H4s.

Of course, the heading titles seem a little odd when you read it as Page Tools> Insert Content into this page ... not really sure what "tools" are available.

Jobs control panel attempts ajax loads over HTTP

The Jobs control panel page at /jobs sends some ajax requests. The protocol for these requests is HTTP even if the jobs page is loaded over HTTPS.

If the server responds with a 301 to the HTTPS address, the redirect will not be followed. The jobs tables are never populated.

JQuery error with the latest git pull

I tried to upgrade from an earlier pull in the year to the latest stable release and after getting the database upgraded and everything else working I am now getting these javascript errors.

Uncaught ReferenceError: jQuery is not defined common.js:328
login:154Uncaught ReferenceError: $ is not defined
login:168Uncaught ReferenceError: $ is not defined

unescaped course name in 'Courses in this account'

I have a course in my account named <script>alert('Course Name');</script>My Course

When I visit http:///accounts/1 it alerts 'Course Name', and there's this on the bottom of the page, below the powered by Instructure logo:

","My Course","My Course","Demo - alert('demo')"]} }); // get rid of this lookup part and it will use ajax queries to that serviceUrl above. I just figured this would be faster // and since we dont have that many users per institution we can afford to send it in a pageload. } });

It looks like that part is caused by this data structure not escaping a </script> tag in it, which the browser is putting a higher priority on than closing the quote:

autoComplete = $courseName.autocomplete({
...
lookup: {"data":[3,4,1,2],"suggestions":["Demo - <script>alert('demo');</script>","<script>alert('Course Name');</script>My Course","<script>alert('foo');</script>My Course","Demo - alert('demo')"]}
});

Offscreen H2s are problematic.

The fact that "My Courses", "Current Groups" and "Needing Grading" are H2s on all pages is odd. Semantically, the heading structure should speak to the particular hierarchy of the page. I'd urge you to reexamine your heading structure on page by page, making sure that it will assist AT users in understanding that particular page's hierarchy. The first suggestion would be to not make the labels in drop-down menus page headers.

Notification preference settings are inaccessible to keyboard input

Since the notification preference settings are coded as tables, rather than interactive elements (like radio buttons), they are inaccessible to keyboard users. I'd suggest going with semantic code here and using css to style the elements to look however you want them to appear.

Typo in ProfileController breaks update password functionality

There is a typo on Lines 145 and 156 of the ProfileController located in app/controllers/profile_controller.rb.

On an AJAX request that triggers a validation error it tries to output the pseudonym errors using the local variable "pseudonym" instead of "pseudonym_to_update" as used in the rest of the code. The same problem occurs on both lines. You can trigger the error by trying to change your password to something under 6 characters.

format.json { render :json => pseudonym.errors.to_json, :status => :bad_request }

should be

format.json { render :json => pseudonym_to_update.errors.to_json, :status => :bad_request }

problem of bundle installation on linux

when i was installing bundle we are getting error as cannot locate gem file as bundler gem is installed already, could any one help me regarding how to solve and continue ....thanks in advance

SAML Single Logout Problem

I mentioned this in the google group, but I wanted to document it here as well.

There is a problem with Canvas' SAML single logout implementation. Canvas does not responsd to IdP initiated SLO requests with a LogoutResponse, but instead redirects to /logout, and creates a new LogougRequest.

See the link above for more info.

Thanks!

500 instead of 401 while trying to view other students' homework

I got the url required for non-authenticated homework file viewing down to this:

http://files.anise:8080/files/12/download?verifier=d58163ba9efaa2873ddc98a66d316dbf308d761a

I then tried to download file 13, which was another student's file with this url:

http://files.anise:8080/files/13/download?verifier=d58163ba9efaa2873ddc98a66d316dbf308d761a

and it led to a 500, when i was expecting a 401. Here's the trace from production.log:

Processing FilesController#show (for 127.0.1.1 at 2011-05-26 13:23:41) [GET]
Parameters: {"verifier"=>"d58163ba9efaa2873ddc98a66d316dbf308d761a", "download"=>"1", "action"=>"show", "controller"=>"files", "file_id"=>"13"}
Rendering template within layouts/application
Rendering shared/unauthorized (unauthorized)

ActionView::TemplateError (undefined method `asset_string' for nil:NilClass) on line #18 of app/views/layouts/application.html.erb:
15: #we dont want to render a right side unless there is actually content in it.
16: @body_classes << "with-right-side" if right_side and not right_side.strip.empty?
17: @body_classes << "padless-content" if @padless
18: @body_classes << "context-#{@context.asset_string}" if @context
19: -%>
20:
21:

app/models/user_profile.rb:34:in `asset_string'
app/views/layouts/application.html.erb:18
haml (3.0.22) rails/./lib/haml/helpers/action_view_mods.rb:13:in `render'
haml (3.0.22) rails/./lib/haml/helpers/action_view_mods.rb:13:in `render'
app/controllers/application_controller.rb:153:in `render_unauthorized_action'
app/controllers/application_controller.rb:141:in `render_unauthorized_action'
app/controllers/application_controller.rb:114:in `authorized_action'
app/controllers/files_controller.rb:208:in `show'
compass (0.10.5) lib/compass/app_integration/rails/actionpack2/action_controller.rb:7:in `process'
haml (3.0.22) rails/./lib/sass/plugin/rack.rb:41:in `call'
haml (3.0.22) rails/./lib/sass/plugin/rack.rb:41:in `call'
lib/request_context_generator.rb:29:in `call'
app/middleware/prevent_non_multipart_parse.rb:32:in `call'
app/middleware/load_account.rb:11:in `call'
/usr/lib/ruby/1.8/phusion_passenger/rack/request_handler.rb:92:in `process_request'
/usr/lib/ruby/1.8/phusion_passenger/abstract_request_handler.rb:207:in `main_loop'
/usr/lib/ruby/1.8/phusion_passenger/railz/application_spawner.rb:418:in `start_request_handler'
/usr/lib/ruby/1.8/phusion_passenger/railz/application_spawner.rb:358:in `handle_spawn_application'
/usr/lib/ruby/1.8/phusion_passenger/utils.rb:184:in `safe_fork'
/usr/lib/ruby/1.8/phusion_passenger/railz/application_spawner.rb:354:in `handle_spawn_application'
/usr/lib/ruby/1.8/phusion_passenger/abstract_server.rb:352:in `__send__'
/usr/lib/ruby/1.8/phusion_passenger/abstract_server.rb:352:in `main_loop'
/usr/lib/ruby/1.8/phusion_passenger/abstract_server.rb:196:in `start_synchronously'
/usr/lib/ruby/1.8/phusion_passenger/abstract_server.rb:163:in `start'
/usr/lib/ruby/1.8/phusion_passenger/railz/application_spawner.rb:213:in `start'
/usr/lib/ruby/1.8/phusion_passenger/spawn_manager.rb:262:in `spawn_rails_application'
/usr/lib/ruby/1.8/phusion_passenger/abstract_server_collection.rb:126:in `lookup_or_add'
/usr/lib/ruby/1.8/phusion_passenger/spawn_manager.rb:256:in `spawn_rails_application'
/usr/lib/ruby/1.8/phusion_passenger/abstract_server_collection.rb:80:in `synchronize'
/usr/lib/ruby/1.8/phusion_passenger/abstract_server_collection.rb:79:in `synchronize'
/usr/lib/ruby/1.8/phusion_passenger/spawn_manager.rb:255:in `spawn_rails_application'
/usr/lib/ruby/1.8/phusion_passenger/spawn_manager.rb:154:in `spawn_application'
/usr/lib/ruby/1.8/phusion_passenger/spawn_manager.rb:287:in `handle_spawn_application'
/usr/lib/ruby/1.8/phusion_passenger/abstract_server.rb:352:in `__send__'
/usr/lib/ruby/1.8/phusion_passenger/abstract_server.rb:352:in `main_loop'
/usr/lib/ruby/1.8/phusion_passenger/abstract_server.rb:196:in `start_synchronously'
/usr/lib/phusion_passenger/passenger-spawn-server:61

Rendering template within layouts/application
Rendering shared/errors/500_message.html.erb (500 Internal Server Error)
Rendering /home/pmichaud/canvas/canvas/public/500.html (500 Internal Server Error)

After authenticating to files.anise:8080 as a user without access, I got the 401:

Processing FilesController#show (for 127.0.1.1 at 2011-05-26 13:28:34) [GET]
Parameters: {"verifier"=>"d58163ba9efaa2873ddc98a66d316dbf308d761a", "download"=>"1", "action"=>"show", "controller"=>"files", "file_id"=>"13"}
patrick(2) impersonating user1 on page http://files.anise:8080/files/13/download?verifier=d58163ba9efaa2873ddc98a66d316dbf308d761a
Rendering template within layouts/application
Rendering shared/unauthorized (unauthorized)
Completed in 529ms (View: 27, DB: 56) | 401 Unauthorized [http://files.anise/files/13/download?verifier=d58163ba9efaa2873ddc98a66d316dbf308d761a]

Highlighing in the wrong place when adding files in rich text editor

Edit syllabus description.

Paste a table from Microsoft word document.

Highlight some text and then select a file to add a link to that file.

Sometimes the yellow success highlight appears over the selected link text.

Sometimes it appears several inches down the page, even outside the iframe for the text editor. Sometimes, the highlight appears so low down the page it causes my browser to scroll down in a confusing manner.

Using Firefox 4 on Windows 7.

Quick Start Test Fail

I followed the Quick Start guide and while Canvas runs, the specs do not. After fixing the "encryption key is too short" error, many tests fail with "Could not find table 'delayed_jobs'". I'm running the tests using rake spec:models.

What's the proper way to setup Canvas so the specs run without error?

Using <label> when no corresponding input is available

I'm finding multiple locations where is being used for labeling non-input elements. This is non-semantic and can be quite confusing for AT users. One example of this is on the profile page, where "full name:", "profile name:" and "timezone" are labels regardless of whether the corresponding inputs are displayed or not. The proper way to handle this would be to have the switch to a or something when the corresponding input is toggled to display:none.

"More options" link takes you away from Recent Activity

When commenting on a discussion displayed on the Recently Activity screen... you have a link to "more options". The link takes you away from the Recently Activity screen, however, any text your may have previously entered in the textarea is cleared. The link suggests that more options may be shown, however, the outcome is different. The link should probably be removed, or if it must stay, any text already inputted by the user should follow to the brand new screen.

Segmentation fault

Setting up Canvas using Quick Start instructions on Mac OS 10.6.6 using:
-Rails 3.0.3
-ruby 1.8.7 (2010-12-23 patchlevel 330) [i686-darwin10.6.0]
-gems installed in user directory using Bundler

When I run:
rake db:initial_setup
(in /Users/achapin/Sites/canvas)
/Users/achapin/gems/gems/ruby-debug-base-0.10.4/lib/ruby_debug.bundle: [BUG] Segmentation fault
ruby 1.8.7 (2010-12-23 patchlevel 330) [i686-darwin10.6.0]

When I run:
script/server
=> Booting WEBrick
=> Rails 2.3.9 application starting on http://0.0.0.0:3000
/Users/achapin/gems/gems/ruby-debug-base-0.10.4/lib/ruby_debug.bundle: [BUG] Segmentation fault
ruby 1.8.7 (2010-12-23 patchlevel 330) [i686-darwin10.6.0]

Note: I executed following from terminal before running Bundler:
ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config

This installed gem successfully, but got bunch of "no definition" messages for ri and RDoc documentation (e.g. No definition for next_result, No definition for field_name... etc)

So close....

URL field in rich-text editor is automatically populated

The previously entered url shows up automatically whenever I bring up the "Link to Website URL" dialog. This feature seems only useful if I was using the same url constantly. I found myself having to override the default url with the correct one. Can this be left blank? Thanks!

Actionable elements that don't contain enough info for AT users to make a decision.

With the absence of visual context, there are many cases where the actionable elements don't contain enough information for a user to figure out what they would do. I'd suggest using titles or offscreen text to make these more accessible. One example are the "And also..." links on the notification preferences page. What can a user expect will happen when they click those?

Better README / install instructions

It would be useful with a few lines on how to get started - commands to get the gems installed, database set up etc. Even for people familiar with RoR, there are always some details that might be different.

Syntax error on rake db:initial_setup

I'm getting an error on installation on Ubuntu. Can't quite figure it, though I thought it might be in my mysql config.

RAILS_ENV=production rake db:initial_setup
(in /var/rails/canvas)
rake aborted!
syntax error on line 23, col 8: ` queue:'

(See full trace by running task with --trace)

Any ideas?

xsrf w/ user switching

As a student, I added this content to a discussion forum:

Now, as an admin, every time I visit that discussion forum, I become user 11. If that account id doesn't have access to the course, I get permission denied messages, if it does belong to that course, the admin could inadvertently post content as that user.

Collapsing the context modules takes a long time on slow machines

I use a Cr-48 for school and the class I am in has a context module for each week. When I pull up the course all the modules are initially expanded until the javascript gets far enough along that it knows to collapse them. This usually takes a while to get fully loaded. It's annoying because I initially see way too much information and I potentally overscroll as a result of the modules collapsing.

Instead, if this info was processed server side, I would be closer to the info I'm looking for and I would avoid overscrolling when everything finally does collapse (and the small overhead of processing the collapse would be removed).

I went ahead and made some very minor changes to allow the collapsed/expanded state to be determined server side.

https://github.com/greggoryhz/canvas-lms/commit/e14cad2ad3b5eb248aa69e4c1af32272c1979479

I'm not sure how these minor changes affect anything else in the system because I have limited rails experience, and even less experience with canvas. I was also very conservative with how much javascript I removed. I'm not sure what code was only used for the collapsing and what code is used elsewhere. It may even be the case that I broke something I'm not aware of :D

Let me know any thoughts about this change and what might need to be done to make this better.

I should also note that when I'm using my full-size laptop and desktop computers, this isn't nearly as annoying, although I still notice it happening ;)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.