I would like everyones input on how to layout a CRUD for an admin panel. First, the 'basic' data layout:
- tblSchool (parent)
- tblCars
- tblContacts (eg: John/Mary/Joe)
- tblContactType (eg: Admin/Manager/Accounts)
- tblContactDetails (eg: 012-345-6789/john#place.com)
- tblContactDetailTypes (eg: Telephone/Facsimilie/Mobile/Email)
- pivotTblCars (connect tblSchool with tblCars)
- pivotTblContacts (connect tblSchool with tblContacts)
Firstly, pivot tables are there for referrential integrity and there are other (parents) which share the same details and hence the need for the pivot tables.
So standard CRUD would just be a separate page for each element type, each having its own index, create, edit, and possibly show page.
1) So one approach for example could be: 'School' index would have a grid of all the schools - then you would select a school and click a 'manage contacts' button to get taken to the 'Contacts' index page where you would manage all the contacts of the selected School. Then you would have to go 'back' to then either manage another schools contacts and/or its 'Cars'.
2) Another approach could be that when a School is selected, sub grids below the school grid could load the children (car/contacts) data. This seems disconnected and unintuitive though.
3) Another approach could be that you would 'view' a school to see its data and at the same time it would be the index/grids for the 'Cars' and 'Contacts' below its data?
How would you handle a more inclusive approach with less steps/better flow?
4) why not use a modal, on which the main page would have the grid of all school with its details, except that cars details and contacts details are just link in which upon clicking will pop a modal instead of redirecting to a new page.
main reason for this,
this will improve the request speed as you would just request for a data.
this is more user-friendly approach, and a better-experience for the end-user, as the page will not reload/redirect to another page.
Related
Looking to rebuild account pages for users of a Laravel 8 based application using something like Inertia/Livewire, Vue/React to make just the account area an SPA. User accounts currently have many pages in which to manage their items and have a dashboard that summarises item data that link to item listing pages for managing.
Ideally the new dashboard will have component based widgets which would load the HTML with temporary place holders for the items whilst the data is being requested. Not sure what would make a better user experience, having the whole page show temporary place holders for dynamic data and then all populate at the same time or populate each component as and when the data is ready.
Would it be more efficient to have each component request its own data individually or should each component specify what data it needs to the parent component (dashboard) which then does one request for all widgets?
The widgets would link to item listing pages where users can manage items. The way the listing pages should work is very similar to that of Asana, when an item is selected it opens a panel to the right of the list which loads the data related to that item. Again, when the panel opens it has place holders until the data requested has been fetched.
With Inertia the data can be queried in the controller and then passed as props to the view that Inertia renders. Items would be passed in this way and then listed on a listing page component. The URL should update from /items to /item/123 when clicking an item so it would have its own dynamic route that passes the item id to the relevant action.
Would this have its own action separate from the one that gets the initial list of items?
The list still needs to be there and used to click between items so was thinking it could actually use the same action?
Items could be in the thousands and will have filtering options so pagination and throttling will be necessary.
Been looking at Inertia with Vue so far and it looks to meet requirements, can’t change from using Laravel 8, just wondering what approach would be most suitable or if there is another approach that should be considered. Interested to hear how others might go about it.
I am using a simple tree view on the left side for a company to see linked entities like opportunities, contacts, etc.,
When I click on a contact, my browser gets redirected to the contact, but I want to stay on the company view and load the contact details into the second or third column or just any sector on that company view.
Getting redirected to each record every time I click a link is annoying because I lose my track and sometimes I want to see the parent details while I see the details of a child record. In this case I want to keep the company view while I can load one contact on the same view without any page load or redirection.
Note: I am using a demo access to Dynamics CRM 2015 online and installed a plugin from a third party to get a tree view. The above is not dependent on my tree view. This can also be done for activities for example which is listed on right column by default. By clicking on an activity, I would like to see the activity details loaded in some panel on the middle column or anywhere I want, without being redirected.
You probably can make do with a Quick View.
Let's say you want to do this trick with Accounts and Contacts, to display info for contacts inside an Account. It goes like this:
Create a lookup inside Account, to Contact entity. Put it on the form (you can make it not visible, doesn't matter).
Create a "Quick View" form inside Contact. They are built similar to normal forms. Include all the info you want to display.
Go back to Account form, INSERT -> Quick View. Select the lookup you made in point 1, and the quick view you just created.
The quick view will display on the Account form, grabbing info from the Contact selected inside the lookup. If you left the new lookup visible, you can play with it and see how it works.
4b. You probably will now need to "link" the treeview with the lookup somehow (since it's third-party I'm unable to offer any insight about it). It will require a bit of javascript for sure.
For more details, as usual, refer to MSDN
Ps: If you want to try it out fast, skip #1 and pick "Primary contact" as field in #3 (it's standad, and most likely already on the form)
I'm trying to make an apex form that has multiple 'pages' within it, so that I can achieve a nice layout.
For example:
Page 1 - Personal Details >> Page 2 - Occupation >> Page 3 - Career History >> Submit
Is there a way to do this without submitting one page at a time as this would mess up my validation for the table entry.
It's kind of a broad question - lots of possible solutions. You will need to create several regions on the page, so that you can easily show or hide different sets of page items without submitting the page.
If you simply want to keep the page tidy, you could make use of the Hide and Show Region template, or you could create a Region Display Selector region.
To help the user experience flow a bit better, I would probably do something like this:
Set up the page items using the Form wizard.
Create three HTML regions - Personal Details, Occupation, and Career History.
Move the page items into the appropriate regions.
Delete the original region created by the wizard, together with the default buttons.
Create navigation buttons in each region - probably a Next button in Personal Details, Next and Previous buttons in Occupation, and Previous and Submit in Career History.
Create dynamic actions for each of the buttons. The Submit button submits the page of course. The Next and Previous buttons show and hide the regions as appropriate.
I am working on a project that would display Graduated and current student on a page. I rendered that information on the client side using a telerik grid. The page has two radio button - one radio button for displaying graduated students and the other for displaying current students. Every time a user click on one of the radio button, it does not post. There are more current than graduate students. When the user access the last page for current student and then click on the graduate radio button, it does not show any graduate students. The telerik page did not update as expected. The undergrad page has 23 pages while the graduate one has 18. Accessing the graduate page is still on page 23 even though we have 18 pages.
I follow this example and added a
.Pageable(paging => paging.Enabled((bool)ViewData["paging"]).PageTo(1))
It does not go back to page one.
I could not figure out how to make this paging work properly. As a result, I created two session variables, that have values true or false, and I redirected the user to the same page setting the grad and undergrad students flag to false or true. If the user came in for the first time, the grad students flag was set to false, and the page would not redirect. The same logic was created for the undergrad student.
Context
My System has numerous related entities such as Tenant -> Client -> Campaign -> etc...
Each entity has an "index" view which enables Search, Paging and links to Edit/Details/Delete. In the "detail" view for each entity i have tabs displaying the entity details (read only) plus a additional tabs for any child entity where the user can search, Page and has links to Edit/Details/Delete. This allows the user to navigate "down" the tree (so to speak).
Problem
Going down the tree works a treat its coming back up that I cannot figure out.
eg, Goto tentant -> Clients tab. Search for client by name then click on the "details" link for that client. Then goto client -> Campaigns, search for a campaign then click on "edit" for the campaign. make my changes and submit the form. I could have accessed this "edit" view by either the "Campaign/Index" or "Client/Details -> Campaign tab". So how do I maintain this navigation history? The system I am working on can go 6 levels deep and I need something that will work all the way down and back up again. If I can maintain details about the state of each calling page eg. search criteria, page number, active tab etc. that would be ideal but given the complexity of this I would be happy enough just getting back to the correct page and tab.
Worst case scenario is "User" which can be access via 4 different calling pages.
Could you not store URL's in an (server-side) array and push them in as you traverse down the tree. as you come back up you could just 'pop' them out of the array one by one. If the user presses the back button, you can cross check at the point of an action being made or pass the current URL to the server on a timed JavaScript AJAX call maybe which helps keep the array up to date.