|Stepping up the Manager's cross-browser support.|
(An aside: the Manager is not recommended for use with Safari (mobile or desktop), but I try to support it anyway. I do this on behalf of the handful of helpful/dedicated users who have been the de facto QA team for the Manager on Safari over the last few months. If you use the Manager in Safari and you're not one of the guys who writes in regularly with issues, you owe those guys a debt of gratitude, because they're really driving this thing.)
Beyond correcting a long list of Safari issues, 2.4.243 also completely refactors the Settlement Sheet controls for adding innovations. In a nutshell, the controls (including the part where your Innovation Deck is displayed) are now totally real-time and dynamic and no longer require page refreshes.
Additionally, and somewhat controversially, the drop-down/select list that shows options for adding innovations now shows all available options.
I have been going back and forth on the best way to do this since the earliest releases of the Manager, and I am aware that there are strong user opinions on either side. For a long time, there was a user preference that users could use to either get a full or partial list of Innovation options, and I had been maintaining back- and front-end code for both options.
At this point, however, I have come to be of the opinion that the best solution for everyone is to remove the preference, commit to a single user experience, and cut the baby in half, so to speak: the Innovation Deck box on the Settlement Sheet will follow game rules for building an Innovation Deck and the drop-down will include all available options, based on expansion content, campaign, etc.
With any luck, this "best of both worlds" approach should satisfy both sides of the argument.
As usual, hit the jump for the complete release notes. And thanks again for using the Manager!
Corrections and Fixes
- Fixed an oversight in the API's world.py that was producing inaccurate results for the expansion content popularity contest query (by only checking for names, instead of checking for names and handles, which meant we were only polling legacy data model settlements).
- Revised the kdmManager.js method that closes the sidenav/burger on an "off" click so that it doesn't spam warnings on views where there is no sidenav.
- Safari wide resolution presentation fixes:
- Dashboard panels are aligned to the left
- New settlement creation is narrow width
- The "no survivors" warning on the campaign summary view is now positioned correctly
- Replaced "placeholder" input attributes with "ng-placeholder" attributes to prevent placeholder text from displaying "underneath" input values for survivor and settlement names
- Fixed hit box margins in the middle column of the Survivor Sheet
- Sorted out the "secondary" attributes on the Survivor Sheet (the ones below the hit boxes) so they don't jumble together
- Top nav bar no longer has a weird bottom margin, pushing Survivor and Settlement Sheet content down and leaving a blank space
- Endeavor "tokens" are no longer 'yuge on the Campaign Summary view
- The Campaign Summary view's "Manage Departing Survivors" button no longer stretches to the bottom of the screen
- The upper-right corner "X" that closes full size modal content is no longer cut off by the top of the modal container
- Dashboard "About" panel right margins are consistent and prevent text from falling off of the div
- Milestone page references (Settlement Sheet) are no longer 'yuge
- The crossed swords "Nemesis" icon on the Settlement Sheet now scales appropriately with nearby text.
- The Settlement Sheet controls for "Lost Settlements" have been updated to work in Safari, both in terms of functionality and in terms of display.
- Fixed the Survival Limit, Population and Death Count controls on the Settlement Sheet (so that they align properly and don't overlap, etc.)
- Settlement Sheet "inventory tag" labels (the semi-transparent ones that lay under the inventory chips/tiles) no longer float to the right side of the screen.
- Did some general CSS linting and resolved a handful of errors, redundancies, etc. in style.css
- Addressed the issues preventing Safari users from adding innovations using the Settlement Sheet by completely redesigning the feature (see below for complete details). -uffevind, jwsrex
- Removed the now-vestigial/useless preference option to hide unavailable principles.
- Asynchronous XHR have been reenabled, touched up a bit, and appear to be working correctly in Chrome, Firefox and Safari.
- Added support for two-column Innovation Deck boxes in Firefox
- Settlement Sheet controls for adding innovations no longer refresh/reload the settlement sheet. -/u/overthemountain
- The Innovation Deck on the Settlement Sheet is rebuilt dynamically based on an API call that uses brand new, fancy, improved API methods to build the deck.
- Innovation options on the Settlement Sheet now include all available options.
- Clicking on the Innovation Deck now causes it to reload/refresh.
- Added getJSONfromAPI() method to kdmManager.js in the root scope (for easy asset retrievals, such as get_innovation_deck, etc.).
- Completely deprecated the "dynamic Innovation Deck" preference and all related code in the legacy app.
- Adding a "Manhunter Lvl 1" or "Manhunter Lvl 2" to the Settlement Sheet's Defeated Monsters now automatically adds "Settlement Watch" to the Innovation Deck.
- Added temporary support to the Campaign Summary view for creating available endeavors HTML by doing a lookup versus the API asset (all of this which be ripped out when we remove all innovation-type game assets from the legacy app in the near future).
- Updated new survivor creation in the legacy app to get settlement innovations (e.g. to check for auto-application options) using assets.Settlement.get_game_asset(), rather than raw-dogging it from the settlement's MDB document.
- Started to break up the models.settlements.normalize_data() method into component pieces. Created baseline_data_model() and migrate_settlement_notes() to handle those pieces in dedicated functions.
- models.settlements.normalize_data() now enforces the creation of the 'meta' key (which is where we will stash all of the stuff about attrib versions, etc. going forward).
- models.settlements.get_available_assets() now produces alpha-sorted lists.
- Settlement documents in the MDB now store innovations as a list of handles (rather than a list of names).
- Added a new settlement route called get_innovation_deck that, believe it or not, returns the settlement's Innovation Deck as a list of names.
- Innovations now have an attribute called "available_if", which uses a key/value pair to check a settlement attribute for a value.
- Added a new settlement route called rm_innovation that basically does the reverse of the add_innovation route.
- Touched up the API documentation to contain placeholders for the new routes. I also took a second to write out a little bit more in the definition/general guidance sections for the private routes.
- The /world route now returns a "meta" key with API version info, etc. (for future stuff).
- The assetCollection object for Innovations now initializes with weapon masteries.
- Updated api.py to return HTTP responses generated by game/user asset objects: if an object wants to return an HTTP response directly, it can now bubble one up through request_broker.py, etc. and get it back to the requester.