From 125cd51d6bd95d88651d18c2585b2a022e7e4bc1 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Wed, 12 Dec 2018 20:38:08 +0000 Subject: [PATCH] --- devdocs/todo.txt | 29 +++++++++++++++---- server/AyaNova/Controllers/UserController.cs | 27 +++++++++++++++++ .../AyaNova/Controllers/WidgetController.cs | 2 +- 3 files changed, 52 insertions(+), 6 deletions(-) diff --git a/devdocs/todo.txt b/devdocs/todo.txt index 829f41a3..7914acdd 100644 --- a/devdocs/todo.txt +++ b/devdocs/todo.txt @@ -5,11 +5,24 @@ Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOiIxNTQ0NTU5NzAwIiwiZXhwIjoi ## IMMEDIATE ITEMS + User - implement filter on usertype so we have at least one enum filter, also these filters are going to be used internally by a lot of code + to fill pick lists and such in the UI so they must support most things I would need to filter by inluding enums. + - No need for other enum filters just yet, add them as required so there's no YAGNI happening. - User and any other getmany LISTS - replicate from widget list when above is done + Widget and user picklist, modify to use filter and sort criteria, remove the startswith built in filter + - Fix up the old tests for picklists and replace with new test using filter ID + - Don't forget to test with no filter ID to ensure still works as normal (default picklist should sort by alpha, need extra default method for sql query) + User + - Create one filter and sort test that can be adapted for all other objects so we know each object has one basic test for it's filter and sort code + - Probably just filter by name and sort by active to be most universal + + NEXT + - This should be the point that the lists code is concluded and can move on to the other SERVER items below then back to client stuff in the middle here - TODO after CLIENT testing: +----------------------- + +TODO CLIENT STUFF - LIST - Overall list menu toolbar at top with following icons: - Add new item @@ -66,9 +79,9 @@ Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOiIxNTQ0NTU5NzAwIiwiZXhwIjoi - broken rule display +---------------- - -TODO SERVER +TODO SERVER STUFF - ProcessObjectKeywords improvement -Should just be able to pass the object to be processed to a method that will automatically find the Name field and all text fields and process it accordingly - May need a hint if there isn't a specific "Name" field but that's probably so rare that can just leave that out and continue the old way for any object without a Name @@ -92,11 +105,17 @@ TODO SERVER - Wherever I am currently storing time zone that's where these other settings need to be - TODO: Make sure private data filters get deleted with users who created them + - TAGS: REally need to have a think about how tags are used in the UI, probably need a autofill route that has a source of used or common tags to drive it + - so user can type first fiew characters adn select + - So consistency is maintained and not sloppy multiple spellings + - Maybe a db stored procedure and trigger or biz code that feeds a consolidated tag table of all entered tags in the system? + - Maybe a reference count for each tag to drive a tag cloud feature and also a order by commonality feature when offering and also to know when to remove the tag repository when no one is using that tag anymore in any records +----------------- - +TODO AFTER ABOVE: diff --git a/server/AyaNova/Controllers/UserController.cs b/server/AyaNova/Controllers/UserController.cs index 2f199e5a..044ec7b4 100644 --- a/server/AyaNova/Controllers/UserController.cs +++ b/server/AyaNova/Controllers/UserController.cs @@ -88,6 +88,33 @@ namespace AyaNova.Api.Controllers + /// + /// Get filter and sort options + /// + /// Required roles: + /// BizAdminFull, InventoryFull, BizAdminLimited, InventoryLimited, TechFull, TechLimited, Accounting + /// + /// + /// Filter options + [HttpGet("FilterOptions")] + public ActionResult FilterOptions() + { + if (serverState.IsClosed) + return StatusCode(503, new ApiErrorResponse(ApiErrorCode.API_CLOSED, null, serverState.Reason)); + + //Instantiate the business object handler + UserBiz biz = UserBiz.GetBiz(ct, HttpContext); + + if (!Authorized.IsAuthorizedToReadFullRecord(HttpContext.Items, biz.BizType)) + return StatusCode(401, new ApiNotAuthorizedResponse()); + + return Ok(new + { + data = UserBiz.FilterOptions(biz.UserLocaleId) + }); + } + + /// /// Get paged list of Users /// diff --git a/server/AyaNova/Controllers/WidgetController.cs b/server/AyaNova/Controllers/WidgetController.cs index e6a94aca..ffb220ef 100644 --- a/server/AyaNova/Controllers/WidgetController.cs +++ b/server/AyaNova/Controllers/WidgetController.cs @@ -79,7 +79,7 @@ namespace AyaNova.Api.Controllers /// - /// Get filter options + /// Get filter and sort options /// /// Required roles: /// BizAdminFull, InventoryFull, BizAdminLimited, InventoryLimited, TechFull, TechLimited, Accounting