App changes:
* Move to Vue Material for UI components
* Convert request cards to true material design cards, separating the "pray" button from the others and improved highlighting of the current request
* Centralize Auth0 integration in one place; modify the Vuex store to rely on it entirely, and add a Vue mixin to make it accessible by any component
API changes:
* Change backing data store to RavenDB
* Evolve domain models (using F# discriminated unions, and JSON converters for storage) to make invalid states unrepresentable
* Incorporate the FunctionalCuid library
* Create a functional pipeline for app configuration instead of chaining `IWebHostBuilder` calls
Bug fixes:
* Set showAfter to 0 for immediately recurring requests (#26)
Requests can now:
- be entered with recurrence
- be updated with recurrence
- manually skip recurrence period
Also did an app-wide clean-up to ensure that everything is done the same way in all places
also:
- wrapped up some other stylings
- snoozed requests still show in the journal; this logic will change with recurrence work, so that bug is deferred
Also:
- refactored snoozed and answered list pages to use a common list format
- reworked the URLs to make them more consistent
- eliminated current "full" API endpoint, and renamed existing "complete" endpoint to "full"
- All non-modals no longer reference Bootstrap or Font Awesome (#20)
- Removed "full request" button from journal page (#16)
- Added role attributes in many places
- API is now F# / Giraffe / EF Core
- Snoozed requests are complete #17
- Updated doc links in preparation for transfer to Bit Badger Solutions organization's repository
- Handle notes being nil
- Distinguish between request not found, error retrieving notes, and no notes for present request
- Minor UI tweaks to use smart quotes
- Switched from Vestigo to ozzo-routing in a misguided attempt to get JSON to parse as a form; not switching back at this point
- Fixed error with request SQL for individual requests
- Parsing JSON body works now
Still need to handle "no rows found" for journal/answered lists; this isn't an error for new users
Also:
- rearranged API calls to be in alphabetical order (except the bearer
stuff at the top)
- modified the API base URL and Auth0 renewal URLs to be derived from
the browser's location (localhost / prod both work now with no change)
Also:
- Moved buttons to top of request
- Tweaked layout of full request view
- Added code to ensure that users may only add history and notes to
their own requests; security FTW!
- Updated SFCs per Vue Style Guide guidelines
- Added green gradient to header and off-white background color to body
- Changed DJS Consulting to Bit Badger Solutions in the docs
- changed import to only bring in church rather than the entire lodash
package
- changed webpack config to exclude moment's locale
- set the bearer token on load if the user is authenticated
Also:
- Multi-line requests now preserve line breaks (#7)
- Have one instance of vue-toast; access via $parent for main page
components, pass to child components
- conversion from Element UI to Bootstrap 4 in progress (smaller, more
flexible)
- added Font Awesome for fonts, vue-toast for notifications
- added common components to main.js and out of other components
- some work on pulling answered requests (#3), added icon for notes (#8)
- Created view for journal query so we can use the calculated fields in
a where clause
- Changed journal ordering from newest-first to oldest-first; that way,
clicking "prayed" at the top, one right after the other, will let the
user pray through their list with minimal distraction
- Answered requests now drop off the active journal (still need to write
the ability to review answered requests)
- All the activities now send messages to the user, so they have
confirmation that their action has completed
Also:
- moved setup stuff out of the `data` function and into the `created`
function
- standardized Vue component coding styles
- reworded transition text on log on and journal loading templates
- Only send the 404 for /api routes; otherwise, serve files from
wwwroot, and send index.html if the path doesn't exist, so Vue can
handle it
- Minor build file tweaks
- App - some package clean-up
- API - removed commented code that is not needed, postured for JSON
outputs
- Build - modified the scripts to build Vue into API's wwwroot folder,
which will get copied on publish; adjusted FAKE task dependencies to be
more granular
Removed Paket files (could not get reliable builds; we may revisit once
.NET core has stablizied); removed extraneous tutorial files; currently
blocked getting Auth0 Lock to load from within Aurelia app
- Decided to go with straight Suave "Experimental" views (for now)
- Created EF Core entity model (our data is pretty structured, and
PostgreSQL (target DB) supports max-length strings)
- Added Auth0 lock
- Converted to 1.0 tooling