gristlabs / grist-core

Grist is the evolution of spreadsheets.
https://www.getgrist.com
Apache License 2.0
7.23k stars 321 forks source link

Managing tabs or table links #217

Open anupamtandon opened 2 years ago

anupamtandon commented 2 years ago

In grist certain tables like join tables are not required for the user to see at all. However if we hide the join table or make it inaccessible to end users, all the tables linked to the join tables will be in accessible to the users. Is there any way to avoid this and simply make join table hidden (not inaccessible)? That would be very nice. Is we can also add custom tab features in grist (which should be html section somewhere up in workspace with simple button and hyperlink features), it would make grist truly a full blown application.

dsagal commented 2 years ago

Do you mean situations like this template https://templates.getgrist.com/doc/afterschool-program/p/6, where one can select a Class to see all Enrollments in it (which are a join table), but you'd like to see the Students in each class instead?

It is actually possible! Here is an example: https://templates.getgrist.com/doc/afterschool-program~j8YhqLShYaTShyYtUqun8A~80/p/6. It requires adding a ReferenceList:Students column to the Classes table, whose value can be constructed with a formula like this:

Enrollments.lookupRecords(Class=rec).Student

(I left the column visible in the example, but you can hide it and it'll still work.) It allows linking a widget listing Students directly to the table of Classes. The Enrollments join table is still necessary, but is not present in the view, and does its job via the lookup formula.

anupamtandon commented 2 years ago

Thank you for your reply. What I meant to say is very simple actually. Enrollment is a join table. However most of the work happens in the classview and my team members need not see the "Enrollment" table or "Class" table. So if there was a simple way to hide these tables it would be great. Lets take example of google spreadsheet. There, if I want to hide a sheet, i can just right click and click on hide button. Its data is accessible to all from any other sheet but visually the hidden sheet is not visible.

Also I am a layman and use grist cloud platform. By the way I like Grist a lot. However I dont want to write any codes for simple things. I dont have so much time to learn programming as I am already past that age. I just want to hide what i dont want to see in grist, color the menu items (akin to having different colors for sheets in google spreadsheet) etc. If the menu or tab link could be created somewhere on the top as per our choice (ability to simple hyperlinking the html buttons), that would be great too.

What I observed in grist is that it has simplified the complex processes. But the simple things which are needed to small business owners to make it user friendly are missing. IMO.

anupamtandon commented 2 years ago

but you'd like to see the Students in each class instead?

Not really. I just want the feature to hide and unhide tables without making them inaccessible. Right click and hide. And if needed go somewhere and unhide. Analogous feature in google spreadsheet would be hiding and unhiding the sheet.

This feature is needed to make grist simple and less complicated. Make only those links and features visible which are needed.

dsagal commented 2 years ago

There have been recent changes which are close to what you want, which became possible due to Raw Data Pages.

So now you can safely remove any page without losing access to the data in it. All the data is still accessible in the "Raw Data" section that's always available under Tools in the left panel.

Screen Shot 2022-07-19 at 1 38 56 PM

It's not quite what you are asking for (since there is no way to "unhide", only re-add), but it might help. The Class Enrollment template could be simplified using this. Here is an example: Class Enrollment. Note how the only pages are the ones intended as the most useful ones. (Also e.g. the Students page has a filter button to easily filter by class.) But then all data, including Enrollments, is still available in Raw Data, if ever needed: Enrollment Raw Data. (Most templates were created before the Raw Data feature was available, and haven't been tweaked yet to take advantage of it.)

Does this help at all?

anupamtandon commented 2 years ago

Thank you very much. Yes "Raw Data" is close to what is needed. However my requirement is very simple and more related to visibility / invisibility of the tabs. Hopefully one click visibility and invisibility will be developed in grist. It could be made by locking the expansion and collapse feature. Only admin should be expand the collapsed tabs. For example under classview we have several tables. All the tables I want to hide, i could bring there and then collapse and lock. I as a admin can uncollapse these but my team members who dont need to see these tables cannot un-collapse or expand these.