* Add eslint using the airbnb config.
In an effort to make the JS consistent, this adds an ESLint gulp task. ESLint
is *very* configurable, and has no defaults. Instead, this reaches for
airbnb's legacy config (which covers ES5), which is one of the most popular
configurations. As a last step, it turns off all of the rules which currently
fail. We can turn them on piecemeal, or override the airbnb style to use a
different format.
Rules to prioritize (as they likely indicate bugs):
* "array-callback-return": "off",
* "eqeqeq": "off",
* "guard-for-in": "off",
* "no-inner-declarations": "off",
* "no-loop-func": "off",
* "no-mixed-operators": "off",
* "no-undef": "off",
* "no-use-before-define": "off",
* "one-var": "off",
* Lint frontend in Travis.
This adds an ESLint step to the CI service so we prevent unlinted code from
making its way in.
* Create an ESLint tox env.
By adding a tox env for eslint, we allow users to run it locally as part of
tox runs.
Thanks for the suggestion @ericholscher!
* Fix tox call to gulp lint task
* WIP for integrating persistent messaging for users
Combines notifications so that email/on site messaging will all be maintained in
the same place, and can extend from each other using normal template semantics.
* Add email support, clean up implementation
* Add reqs
* Drop unnecessary string conversion
* Change admin email form to look at templates, not ask for template source
* Add docs, tests, views for processing redirects
* Do the thing I meant to do
* Drop views, just use javascript instead
This adds javascript that intercepts link clicks in notifications,
hits the dismiss url defined on the dom object, and then redirects
to the correct url of the original link.
* Move classes around and rename module
* Drop unused notification for testing
* Clean up usage, drop test uses of the views/notifications
* Add example usage that will be used for notification on resource usage
* Fix mock module path
* Add more docs around implementation
This adds a per-project advertising opt-out form, with some guidance on supporting
Read the Docs if you oppose advertising. It links to several pages explaining more
about the advertising spot, how to opt-out of ads, and a backup option to just
remove ads altogether if you don't want to support the project.
It seems standalone libs will either export globally or via
require, but not both? Removing standalone and requiring jquery
in the base template creates a global instance of jquery.
This makes vendor libraries expose exports via `require` and also globally in
the `window` context. This is required for directly using modules like jquery
from an script include in html.
* Docs!
* Updated gulpfile, ported changes to corporate gulpfile back here. Changes here include:
* New browserify syntax, dropped banned gulp-browserify module
* Broke out jquery and knockout to standalone vendor packages. Client libraries were bundled with these before. Now, templates that include the client libraries are also responsible for including vendor dependencies
* Vendor libraries are passed through Browserify to provide both global window access as normal, and access to the module via require
* Ported better structure and better watch file support
* Added minifying to javascript and vendor javascript
* Regenerated javascript libraries as minified files
* Added readthedocs/static/vendor path for checked in vendor files
* Adds static file dir for generic readthedocs/static path
* Replaces google CDN jquery with vendored jquery, still v2.0.3
* Pinned bower jquery dependency at 2.0.3