|Slendermania continues! (Work in progress.)|
Basically, to get this one done, I worked on a few low-impact items from the backlog, but, instead of debugging/QAing in Chrome, I worked in FireFox and just fixed things as I went.
Finally, in terms of big-picture progress, release 2.32.691 also puts in some more groundwork on an entirely API-based dashboard view, which should massively decrease the time it takes to load the dashboard (once its finished: for now, sucky dashboard load times are here to stay...but their days are numbered).
Thanks for using the Manager!
Corrections and Fixes
- Addressed an issue where the "Favorite" checkbox wasn't working correctly on ported survivors (i.e. ones created before 2.30.670 went out on Monday, 09/18).
- Updated the HTML head.meta to enhance the amount of content-type and character set info to address FireFox JS console issues (and for...general hygiene).
- Addressed a presentation issue affecting the spacing of input elements on the login screen at wide resolution in FireFox.
- Addressed a CORS issue affecting FireFox's ability to load settlement data from the API.
- Fixed an issue where 'prefab' survivors were created with Fighting Art names, rather than handles, causing issues with their Survivor Sheets.
- Fixed an issue in the legacy webapp dashboard where the 'System' div (on the Dashboard) did not terminate properly, causing scoping and display issues.
- Addressed a FireFox issue where it...mysteriously loses the legacy webapp cookie (?!): I updated kdmManager.js to bail on any in-process request if it cannot pull the JWT from the cookie and sign the user out.
- Fixed a bug in the API's User class where the get_friends() method could throw an exception if the user had no friends and we tried to get a list friends.
- Addressed a minor presentation issue affecting wide resolution where the button to create multiple new survivors looked weird in FireFox.
- The Survivor Sheet "Favorite" toggleFavorite() method in survivorSheet.js now fires on ng-click rather than ng-change.
- Added an 'api_downtime' error div to templates/login.html for API sign-in errors.
- The Fighting Arts "placeholder" card (with the Loading Lantern) now has text that indicates what it is doing.
- The dashboard now retrieves user and other dashboard data from the API.
- The kdmManager.js method getJSONfromAPI() now has the ability to retrieve data from /user endpoints.
- getJSONfromAPI() now barfs pre-flight (and logs a console error) if $scope.api_url is undefined in the root scope.
- The rootController's initialize() method now a.) takes fewer arguments and b.) initializes the user on each page load
- Consolidated the World AngularJS app and the About AngularJS app into a single block of HTML in the legacy app's html.py.
- Enhanced dashboard.js to retrieve the latest dev blog post.
- Refactored Settlement, Survivor and Campaign views to initialize without the 'user_login' param.
- Addressed a problem in session.py where the 'remove_session' param could sometimes barf if the incoming request did not also include a 'login' param.
- Adding/Removing expansion content changes Survival Limit validation rules now.
- Deprecated worldPanel.js and moved its methods to dashboard.js, which will facilitate the API-based dashboard project.
- All routes/endpoints that support OPTIONS (and might be subject to a browser-initiated CORS preflight check) now support the 'Access-Control-Allow-Origin' header. -Khoa, Caleb
- Implemented temporary, token-less auth for certain private routes. -Khoa
- The models.users.token_to_object() method now returns more descriptive errors when it fails and, more importantly, uses utils.InvalidUsage() to raise them and force an early return.
- Deprecated HTTP response token_to_object() passthrough code from api.py
- Added 'ui' attribute key to expansion assets and created 'pretty_category' values. -Logan
- Enhanced the User class request_response() method:
- The get route returns its own response (instead of using the deprecated Models.return_json() method).
- Added a route to and support for the new /user/dashboard/<oid> route.
- The User class serialize() method now supports the 'return_type' kwarg, which can be used to return either the slim/lightweight representation -OR- the beefier 'dashboard' variant.
- models.users.User.get_settlements() now accepts the 'return_type' kwarg value 'asset_list', which is a special return type that basically returns a list of settlement MDB assets.
- The API's request_broker() method now percolates up InvalidUsage() exceptions and returns them (instead of the generic 500).
- All serialized objects now include a 'webapp' element at the top level, which contains meta data re: the legacy webapp.
- The add_expansions() and rm_expansions() methods of the Settlement class have been enhanced/refactored to use request parameters correctly.
- The /settlement/add_expansions/<oid> and /settlement/rm_expansions/<oid> no longer accept JSON POST bodies without top-level keys. The documentation has been updated.