- 19 Jun, 2013 2 commits
-
-
Giulio Gratta committed
-
jinpa committed
-
- 18 Jun, 2013 26 commits
-
-
Merge branch 'edx-west/release-20130617-candidate' of github.com:edx/edx-platform into edx-west-release-candidate-20130617
Joe Blaylock committed -
For embedding chat in a course, user testing shows a course tab is preferable to the slideout thing, and simpler to implement, so this commit reverts courseware changes. Instead, embed chat by creating a new course tab and setting it's HTML to look like this: <iframe src="/courses/COURSE_ID_HERE/chat" width="100%" height="640px" style="border: 1px solid #c4bfab; border-radius: 5px;"></iframe> Conflicts: lms/templates/courseware/courseware.htmlJoe Blaylock committed -
When chat is enabled, we need to add the Jabber Django app's static asset and template directories to the corresponding lookup paths.
Nate Hardison committed -
When chat is enabled, we need to add the Jabber Django app's static asset and template directories to the corresponding lookup paths.
Nate Hardison committed -
* Fix chatroom to use the calculated course room, rather than the testing-only 'dev' room. * Install new version of candy.min.js compiled with an Aria tag for the input box (see also: https://github.com/jrbl/candy/tree/input-accessibility-improvement) Co-authored-by: Giulio Gratta <caeser2164@gmail.com> Co-authored-by: Nate Hardison <natehardison@gmail.com>
Joe Blaylock committed -
To beat the "booty call" bug, whereby starting a private chat makes the recipient believe that they've been taken into a private room (when in fact they're still in the group room), we're resetting all of the Candy static assets to the stock resources. Override user agent CSS default on message input The default Candy CSS doesn't do a very good CSS reset, so in this case, the user agent stylesheet put a margin in the message form, pushing the input box up a bit. Set the margin to 0 so that things look normal.
Nate Hardison committed -
Moving the Jabber widget to its own iframe allows us to pop it out and in of the courseware. Refactoring more of the code (static assets, templates, etc.) keeps the Jabber app more self-contained so that it doesn't clutter up the main repo code. This code needs some Jasmine tests and view tests. It also needs some extra configuration in the settings and URLs files, namely: * Must add jabber/templates to MAKO_TEMPLATES * Must add jabber/static to STATICFILES_DIRS * Must add route for ?P<course_id>/chat to lms/urls.py Move Candy.js static assets to Jabber app Refactor the Candy.js static assets to the Jabber app to keep them out of the main codebase. This will help modularize the chat widget so that it's easier to just not include it by default, if desired. Move registered_for_course out of courseware.views The Jabber app needs to use this function, and it seems more fitting to import the function from a non-view module, like the courses module. So move that function there, and update imports and tests appropriately.
Nate Hardison committed -
Now that the Jabber settings functionality is refactored into its own Django app, we don't need this test in the Courseware Django app. Rename get_password_for_user to get_or_create_... The new name describes more accurately what the function does: it creates a new password for the user if it can't find one in the database. Move DEFAULT_PASSWORD_LENGTH to JabberUser model This seems more appropriate as a property of the model as opposed to a loose constant in the utils module. Random string generation returns proper length Before, the length was only accurate if it was a multiple of four. Now, we calculate the number of bytes needed from /dev/urandom properly and we truncate the string to just the right length. (Base64 returns strings that are a multiple of four in length, but we truncate since we won't ever care to decode the string.) Adding working utility tests for Jabber app The majority of the functionality of the Jabber app is in the utils module, so we test those functions thoroughly. The test settings don't currently have settings to connect to a Jabber database (need @jrbl's help to get the migration files to set it up properly), so we temporarily skip tests that hit the Jabber users table. Add migration for Jabber users table for testing In testing environments, we want to be able to interact with the database as we create JabberUser instances. This commit adds a migration for the purposes of testing; the migration should *not* be used for anything else though. The actual Jabber users table should be created by ejabberd during provisioning. Unskip Jabber tests that interact with database Now that we have a migration for the Jabber users table in the test environment, we can hook it up in test and "unskip" the tests that hit that table.
Nate Hardison committed -
If no default is provided, sass falls back to the system default. This fails when the system default is not unicode because various sass files have unicode characters in them.
Feanil Patel committed -
As stipulated by Stanford's office of general counsel
Jason Bau committed -
By linking the users
Jason Bau committed -
modification of @jrbl's version to handle a dict with value None
Jason Bau committed -
Sef Kloninger committed
-
(cherry picked from commit 14100ba1)
Brian Talbot committed -
(cherry picked from commit 832da3ad)
Brian Talbot committed -
(cherry picked from commit 050846af)
Brian Talbot committed -
(cherry picked from commit 664efb98)
Brian Talbot committed -
(cherry picked from commit a17bf5e2)
Brian Talbot committed -
This was 7b7a3427, which became an empty commit after we rewrote history to remove 42650ab3c.
Jay Zoldak committed -
* In addition to the JABBER settings, now we want to be sure to get DATABASE_ROUTERS, too.
Joe Blaylock committed -
Conflicts: lms/envs/common.py
Joe Blaylock committed -
Jason Bau committed
-
- 14 Jun, 2013 2 commits
-
-
Merge remote-tracking branch 'origin/feature/nate/simple-chat' into edx-west/release-candidate-20130613 Conflicts: lms/templates/courseware/accordion.html lms/templates/courseware/course_navigation.html lms/templates/courseware/progress.html lms/templates/navigation.html
Jason Bau committed -
/dev/random blocks if there is not enough entropy to return the requested number of bytes, and this turns out to hang our AWS servers. When generating random bytes for Jabber passwords, use /dev/urandom instead. We figure that this will be "secure enough," since we'll have bigger problems if someone manages to get ahold of our /dev/urandom's seed value.
Nate Hardison committed
-
- 12 Jun, 2013 1 commit
-
-
Add utilities to the Jabber app to parse the Jabber settings and build the URLs, chat room names, and user passwords for connecting to ejabberd. This is a WIP commit since it still needs tests (in progress...stubbed out with comments).
Nate Hardison committed
-
- 11 Jun, 2013 9 commits
-
-
In the initial theming pass, we missed two error pages. This commit replaces edX values with PLATFORM_NAME and TECH_SUPPORT_EMAIL settings.
Nate Hardison committed -
Giulio Gratta committed
-
When chat is enabled, sync user accounts with the ejabberd server by directly writing into its MySQL database. This is ugly in the sense that ejabberd just does a simple string comparison when authenticating a password against a username, so we have to send passwords in the clear in the templates. In a future commit, I'll implement a password rotation mechanism to make this slightly more robust: currently, everyone's password is just a dummy string. To enable this, you'll have to add a 'jabber' key into your DATABASES dict in the settings, and point at an actual ejabberd's MySQL instance. The current plan is to just point at one that we've got set up, since running ejabberd locally (not to mention on MySQL instead of Mnesia) is non-trivial.
Nate Hardison committed -
Rather than checking to see if the JABBER_DOMAIN is not set and continuing on, bail with an ImproperlyConfigured exception as soon as we notice its absence.
Nate Hardison committed -
Per https://edx-wiki.atlassian.net/wiki/pages/viewpage.action?spaceKey=ENG&title=I18n+coding+guidelines ensure that chat messages are properly internationalized.
Nate Hardison committed -
Only render the chat widget if both the site has enabled it in the `MITX_FEATURES` and if the course has enabled it. In addition, fail gracefully with a log warning if the `JABBER_DOMAIN` is not set, and do not try to render the widget. However, do go ahead and render the rest of the courseware.
Nate Hardison committed -
To protect against chat blowing things up, we include a way to enable and disable it on an entire site-wide basis.
Nate Hardison committed -
Ensure that the chat connection settings are generated properly for the template context.
Nate Hardison committed -
jQuery already available across the whole site at the top level, so no need to include it again specifically for the chat widget.
Nate Hardison committed
-