initial commit of the lti outcomes service example tool

Change-Id: Ic7c26dd5a2fb8caa886cf423fae25c58be54a1ad
don't send 'undefined' for chart title

Change-Id: I3a899618d9d04d95d9f545d8ea71688b6050bbc2
Reviewed-on: https://gerrit.instructure.com/19339
Reviewed-by: Brad Humphrey <brad@instructure.com>
Reviewed-by: Brian Whitmer <brian@instructure.com>
Product-Review: Brian Whitmer <brian@instructure.com>
QA-Review: Brian Whitmer <brian@instructure.com>
Tested-by: Brian Whitmer <brian@instructure.com>
add text_reader images

Change-Id: Ibd52211e454c82d7c93c0029c98af72837fb74e4
Reviewed-on: https://gerrit.instructure.com/19340
Reviewed-by: Brad Humphrey <brad@instructure.com>
Reviewed-by: Brian Whitmer <brian@instructure.com>
Product-Review: Brian Whitmer <brian@instructure.com>
QA-Review: Brian Whitmer <brian@instructure.com>
Tested-by: Brian Whitmer <brian@instructure.com>
handle error on no window.parent access

Change-Id: I1e46278ef37434c097766e5e2fc1db6e2f6795c1
Reviewed-on: https://gerrit.instructure.com/19341
Reviewed-by: Brad Humphrey <brad@instructure.com>
Reviewed-by: Brian Whitmer <brian@instructure.com>
Product-Review: Brian Whitmer <brian@instructure.com>
QA-Review: Brian Whitmer <brian@instructure.com>
Tested-by: Brian Whitmer <brian@instructure.com>
add xml config parser

I'm getting ready for supporting app delivery from multiple platforms,
and the easiest way to do that will be to start with some scripts.
In preparation for that, I'm adding support for jsonp callbacks that
can take an XML config and turn it into json that can then be used
to manually configure an app on-page. I'm envisioning modifying
the DOM of the Moodle settings page to show the app picker, then
populating the form correctly based on what the user selects.

test plan:
- make sure the tool can process xml
- make sure the tool does some lightweight validation
- make sure jsonp responses are working

Change-Id: I728270b0291a06affae9fc90f91433c1912ef5c0
Reviewed-on: https://gerrit.instructure.com/19345
Reviewed-by: Brian Whitmer <brian@instructure.com>
Product-Review: Brian Whitmer <brian@instructure.com>
QA-Review: Brian Whitmer <brian@instructure.com>
Tested-by: Brian Whitmer <brian@instructure.com>
update stored list of apps

Also fixed the parser to allow admins to manually set submitter
name and email, which is necessary for building the initial list
in the db from the json file.

Change-Id: If93bf2b2d6748ce0604d83fefd00820e203ab907
Reviewed-on: https://gerrit.instructure.com/19346
Reviewed-by: Brian Whitmer <brian@instructure.com>
Product-Review: Brian Whitmer <brian@instructure.com>
QA-Review: Brian Whitmer <brian@instructure.com>
Tested-by: Brian Whitmer <brian@instructure.com>
properly escape html entities in XML config

Before ampersands weren't being escaped properly, which was
causing errors in some xml responses.

test plan:
- add ampersands to launch_url and title
- make sure XML parsers don't choke and that the URL comes
  out the other end correctly

Change-Id: I444ec03d89549c1f1b14d2e2065e6d40b87faa53
Reviewed-on: https://gerrit.instructure.com/19350
Reviewed-by: Brian Whitmer <brian@instructure.com>
Product-Review: Brian Whitmer <brian@instructure.com>
QA-Review: Brian Whitmer <brian@instructure.com>
Tested-by: Brian Whitmer <brian@instructure.com>
add homework_submission support to app center

The next Canvas LTI extension allows homework submissions via
LTI launches. Add support for this in the app center configuration
and xml files.

Change-Id: Icec674c36313287ac140a27e29e53e8c10e2870c
Reviewed-on: https://gerrit.instructure.com/19351
Reviewed-by: Brian Whitmer <brian@instructure.com>
Product-Review: Brian Whitmer <brian@instructure.com>
QA-Review: Brian Whitmer <brian@instructure.com>
Tested-by: Brian Whitmer <brian@instructure.com>
add new logos

Change-Id: Ia58c93bc9c19b07303b9711c23bb429941242a0b
Reviewed-on: https://gerrit.instructure.com/19494
Reviewed-by: Brian Whitmer <brian@instructure.com>
Product-Review: Brian Whitmer <brian@instructure.com>
QA-Review: Brian Whitmer <brian@instructure.com>
Tested-by: Brian Whitmer <brian@instructure.com>
change 'lti apps' to 'edu apps'

Change-Id: I664436c8f9db37aedcd63007c2056f93b5a4689e
Reviewed-on: https://gerrit.instructure.com/19495
Reviewed-by: Brian Whitmer <brian@instructure.com>
Product-Review: Brian Whitmer <brian@instructure.com>
QA-Review: Brian Whitmer <brian@instructure.com>
Tested-by: Brian Whitmer <brian@instructure.com>
change talk to new twitter widget

Change-Id: I84b43b236689d3b7d590d809a2dd6a8f8b7441bc
Reviewed-on: https://gerrit.instructure.com/19496
Reviewed-by: Brian Whitmer <brian@instructure.com>
Product-Review: Brian Whitmer <brian@instructure.com>
QA-Review: Brian Whitmer <brian@instructure.com>
Tested-by: Brian Whitmer <brian@instructure.com>
get rid of old static index.html

There's a dynamic view which was as new_index.html, just
make that the new index.

Change-Id: I8897d07b4bf0126c3acff5c43fb716c1f5eba1f7
Reviewed-on: https://gerrit.instructure.com/19497
Reviewed-by: Brian Whitmer <brian@instructure.com>
Product-Review: Brian Whitmer <brian@instructure.com>
QA-Review: Brian Whitmer <brian@instructure.com>
Tested-by: Brian Whitmer <brian@instructure.com>
allow creation of filters for seeing subset of all apps

Any logged in user can create a filtered view which will only show
a selected subset of all available apps. This can be applied to the
home page or to API calls.

Change-Id: I63edff72338121a943304a74ede142d920d7757d
Reviewed-on: https://gerrit.instructure.com/19498
Reviewed-by: Brian Whitmer <brian@instructure.com>
Product-Review: Brian Whitmer <brian@instructure.com>
QA-Review: Brian Whitmer <brian@instructure.com>
Tested-by: Brian Whitmer <brian@instructure.com>
fix data-view to now always show 'admin' as highlighted tab

Change-Id: I414f0f56007ca85a92b0e50d2b2bc5bf44b436c7
Reviewed-on: https://gerrit.instructure.com/19500
Reviewed-by: Brian Whitmer <brian@instructure.com>
Product-Review: Brian Whitmer <brian@instructure.com>
QA-Review: Brian Whitmer <brian@instructure.com>
Tested-by: Brian Whitmer <brian@instructure.com>
make username a link to the filter (for now)

Change-Id: I9a06630ba2eb865cf54015956913c41d32df7bec
Reviewed-on: https://gerrit.instructure.com/19862
Reviewed-by: Brian Whitmer <brian@instructure.com>
Product-Review: Brian Whitmer <brian@instructure.com>
QA-Review: Brian Whitmer <brian@instructure.com>
Tested-by: Brian Whitmer <brian@instructure.com>
change from lti_example.rb to edu_apps.rb

Change-Id: Ia8ee791260769afacebacb9f5491f39ba3d487bb
Reviewed-on: https://gerrit.instructure.com/19863
Reviewed-by: Brian Whitmer <brian@instructure.com>
Product-Review: Brian Whitmer <brian@instructure.com>
QA-Review: Brian Whitmer <brian@instructure.com>
Tested-by: Brian Whitmer <brian@instructure.com>
allow filtering apps by platform

This was sort of implemented before, but hard-coded. Now people
can specify at app creation time what systems the app will
or won't work in. It's just tags, so open to whatever people
define, so there's also the option to see all the currently-set
tags.

In the future I also need to figure out a good way to crowdsource
these labels, since right now it has to be set by the author.

Change-Id: Ibcb005396ba6823c941566653457e440cf744490
TODO: make sure you can see the list of already-defined tags
Reviewed-on: https://gerrit.instructure.com/19864
Reviewed-by: Brian Whitmer <brian@instructure.com>
Product-Review: Brian Whitmer <brian@instructure.com>
QA-Review: Brian Whitmer <brian@instructure.com>
Tested-by: Brian Whitmer <brian@instructure.com>
permission and app settings update

Change-Id: I3ebecd5fc295069248ed0a4a894481b36450d326
Reviewed-on: https://gerrit.instructure.com/19865
Reviewed-by: Brian Whitmer <brian@instructure.com>
Product-Review: Brian Whitmer <brian@instructure.com>
QA-Review: Brian Whitmer <brian@instructure.com>
Tested-by: Brian Whitmer <brian@instructure.com>
accidentally omitted filter endpoint

Change-Id: Ic29add57db837993f33de10c188192513b3766f2
Reviewed-on: https://gerrit.instructure.com/19866
Reviewed-by: Brian Whitmer <brian@instructure.com>
Product-Review: Brian Whitmer <brian@instructure.com>
QA-Review: Brian Whitmer <brian@instructure.com>
Tested-by: Brian Whitmer <brian@instructure.com>
try large page size

Change-Id: I0d4531039d2d76a04aae4c28daae87f4b15f8099
Reviewed-on: https://gerrit.instructure.com/19867
Reviewed-by: Brian Whitmer <brian@instructure.com>
Product-Review: Brian Whitmer <brian@instructure.com>
QA-Review: Brian Whitmer <brian@instructure.com>
Tested-by: Brian Whitmer <brian@instructure.com>