imthenachoman / nSPTiles

Windows style tiles for SharePoint
http://nsptiles.js.org
MIT License
11 stars 5 forks source link

Allow responsive behaviour without specifying tiles offset #19

Closed fhadlich closed 6 years ago

fhadlich commented 6 years ago

I like the improvements over the blue print, SPJS-Tiles, especially the possibility to hide Tiles based on a SharePoint group. But there is a huge downside in nSPTiles: Tiles are not positioned automatically according to rows and columns. Because of that, hidden Tiles (because of a user's permissions) will leave "blank" room on the canvas.

Use case: I have 5 buttons. I want to show 3 buttons to a group A, 4 buttons to a group B and 2 buttons to a group C. A user in group A might not able to see the first and last button. In the actual row of 5 buttons, the user of group A will see free room left and right. If the order of those buttons 1 and 5 is changed, there might be even a gap between the buttons.

An option to have a non-mandatory offset, which could lead to the responsive display of Tiles per defined rows and columns, would be great (as it's possible with SPJS-Tiles).

imthenachoman commented 6 years ago

Thank you @fhadlich! A few others have come to me with this idea but I am not sure how to implement it.

At its core, nSPTiles uses absolute positioning to render the tiles. Each tile specifies the exact X and Y coordinates of where it should be drawn. I am not sure how to marry that with relative positioning.

I could use the row/column system that SPJS-Tiles uses but then nSPTiles would basically be an exact clone of SPJS-Tiles.

If you have any ideas of how to marry the two ways I would love to hear it.

I will add that with version 1.5 you can specify a tile to be rendered if another tile is not rendered. Check the tile not rendered check setting. Basically a tile can be configured to only render/draw if another tile is not rendered/drawn because the user does not have view permissions on it.

Also, with SPJS-Tiles I think you can use per-item settings in the list to hide which tiles a user/group can see.

fhadlich commented 6 years ago

Hi, thank you for quick response. You are probably right, using the row/column system with relative positioning would make nSPTiles more similar to the other solution.

Unfortunately, SPJS-Tiles does not allow for per-item settings to show/hide based on user / group membership out of the box. I did take your approach as a blue print, though, by adding additional code to SPJS-Tiles for filtering based on the tile view permission column.

imthenachoman commented 6 years ago

Within SharePoint you can create per-item permissions for items in a list. You can break the inheritance of the item and specify who can read it. So for the SPJS-Tiles list, can't you do that for the list item for the tile you want?