BlocklyProp icon indicating copy to clipboard operation
BlocklyProp copied to clipboard

Add a public/private icon column to the My Projects listing

Open paragitadmin opened this issue 7 years ago • 5 comments

The My Projects page contains a grid that lists projects owned by the logged in user. The columns are:

  • Name
  • Board
  • Description

The proposal is to add a fourth column that indicates the public/private status of the project. This will provide a quick visual queue to the user as to the visibility of the projects contained in the list.

paragitadmin avatar Oct 23 '18 18:10 paragitadmin

A DATE-modified column would be VERY useful (esp if sortable by this)

cbradyatinquire avatar Oct 23 '18 18:10 cbradyatinquire

Great idea! Append the Last-Changed date and the public/private columns to the existing grid. The default sort order of the grid contents should be on the Last-Changed column, in descending order.

@MatzElectronics : I am looking at the REST endpoints to see if adding these fields is a breaking change. If it is, I can add a new endpoint that provides the additional data.

zfi avatar Oct 23 '18 18:10 zfi

I believe that's all provided. The current data display UI engine is the problem. Our current one is too unstable to try anything new - we need to switch to the one I found before - datatables.net I think...Just need to figure out how to server-side it to make it flow nicely, because the one I found has a really nice vertical scroll feature.

MatzElectronics avatar Oct 24 '18 04:10 MatzElectronics

It's not clear from this issue, but @zfi is working on a fantastic search engine solution behind-the-scenes. It seems to sport all the features we want and will make the dataset filtering very easy to deal with. Also, it won't be hitting the main database for this or the Community list, which is also a big plus.

PropGit avatar Oct 24 '18 16:10 PropGit

@MatzElectronics, the datatables.net package looks like it will work well. The initial plan is to set up a new endpoint to support the datatables by providing the server-side support that is noted in their documentation.

As @PropGit noted, the data source will be a search engine (Elasticsearch) instead of the database. It supports the pagination requirements and will handle the filtering of private and COPPA restricted projects when appropriate. I am omitting a lot of details here to keep this simple.

The browser code will call a new endpoint to obtain a list of projects by passing a value indicating how many project to return; a value that indicates the starting position in the overall list of projects; an optional array of sort order specifications; an optional query string that contains a list of keywords that the server should use to filter the results. There may be other options but we will cross that bridge when we get there.

The first phase of this feature is not going to address some of the issues we had discussed earlier, such as caching the results or other enhancements to minimize network traffic. We will drop the new datatables package into the browser code, wire it up to the new endpoint and tune for reliable function. My hope is that I will be able to comment out a block of code, or a few blocks, that handles the project listing grid.

zfi avatar Oct 25 '18 05:10 zfi