Wednesday, November 1, 2017

Change Log: 2.48.916




Before I get into the release notes, I would like to thank everyone who has subscribed to the Manager: it has not even been a full 24 hours since the feature went live and...honestly you guys caught me off guard!

When I woke up this morning and checked my inbox, I saw the subscription orders and realized that I'm going to have to step up my plans to implement subscriber-only content.

Therefore, release 2.48.916 delivers a single new feature that paves the way for the introduction of subscriber-only content: API-based preference management on the dashboard.

(Which...in terms of features, is honestly not a huge deal, but is still one more element of the legacy webapp to be migrated to the API and thus should improve overall performance of the Manager, etc.)

As of release 2.48.916, Survival +5 subscribers to the Manager will notice a new preference called 'Beta' under the 'System' tab on the Dashboard.

Enabling this preference is basically an opt-in flag that will cause new/experimental features and functionality to be accessible to you when you use the Manager.

A few things about the Beta opt-in preference:

  1. Beta features will always be clearly identified as such in the webapp. For example, if there is a new feature in the side nav called "Hunt Phase" it will say "Hunt Phase (Beta)" or similar.
  2. Beta features are always going have bugs, problems, issues. If you are opting in on the beat stuff, expect it to be a little wonky. 
  3. Many beta features will ultimately become subscriber-only features, but some will (eventually) become regular features of the webapp. 
  4. Ideally, if you're opting in to see beta features, you'll report back (using GitHub or the in-app controls) to me about your experience. 
At any rate, now that all of that new preference management code is in production, I am going to take a little break from daily releases and start working on some of what I've got planned for subscriber-only features!

Thanks for using the Manager!



Corrections and Fixes



  1. Fixed a bug where performing certain Settlement-level operations could cause a traceback. -SF
  2. Addressed a wide-screen presentation issue affecting storage where the button to close the storage controls could sometimes be blocked by a scroll bar.
  3. Fixed a typo that caused behavior where you had to click the 'About' panel twice on the Dashboard to get it to un-hide.

Application Enhancements


  1. Settlement storage controls are zebra-striped and spaced out a little bit more (for better readability).
  2. Replaced legacy webapp preference management with API-based AngularJS controls:
    1. removed support for updating preferences from session.py
    2. removed support for changing password from session.py
    3. removed user preferences object/class and assets from the legacy app's models.py
    4. removed the call to assets.Users.html_motd() from setssion.py. The dashboard is all HTML (i.e. an AngularJS app) now.
    5. The session.Session.render_dashboard() method is a one-shot now: it calls html.dashboard.angular_app as a template, renders it and...that's it.
    6. Deprecated assets.Users.html_motd() finally. Always hated that thing.
    7. Removed the vestigial preferences option for confirming on remove from storage.
    8. Wrote a nice little AngularJS password updater to replace the old, crappy HTML one.
    9. Added the "Sign Out" button back to the dashboard prefs controls
    10. Removed preference defaults from the legacy webapp settings.cfg file
    11. Removed User class methods for updating preferences and password
    12. Update the get_preference() method for the User class to just return False if the user hasn't specified a preference.
    13. Redesigned the presentation of preference boxes and re-skinned it for all three breakpoints.
  3. Added a generic method to dashboard.js main controller for flipping dashboard arrows. 
  4. The kdmManager.js method postJSONtoAPI() now supports POSTing to user routes.
  5. Replaced dashboard images with HTML entities; hooked them up to a simple JS flipper for better UI/UX.

API Development


  1. Added Logan's logo to the API's static/media content; created a route in api.py that redirects requests for /favicon.ico to the file (as a png). Just got tired of seeing the tab with no icon, you know?
  2. Updated admin.py to accept an email address (or an OID) as the value for the -U flag (i.e. work with user info).
  3. Prettied up the output of the admin.py user update script (to use the other method in the admin file that dumps a dict in a pretty way).
  4. Moved user preference management to the API:
    1. added assets.user_preferences.py and models.user_preferences.py
    2. Added /user/update_password/<oid> route support.
    3. User preference assets now have a patron level.
    4. Created set_preferences() method and matching route for the User object. 
    5. Documented the new route.

No comments:

Post a Comment