Duplicated
Last Updated: 15 Aug 2024 07:07 by ADMIN
John
Created on: 26 Jul 2024 20:15
Category: TileLayout
Type: Feature Request
2
TileLayout UX similar to GridStack

While your existing TileLayout seems to be striving for this it doesn't seem to function as intuitively, or perhaps it is supposed to but has bugs?  Ideally I'd like to have a layout component that mimics what I see in the Azure portal, however I realize from other feedback tickets you're not going to do that.  The ability to have gaps really makes the user experience better.  I understand things have to be 'touching' (eg I can't just place something off into the bottom right corner of the screen by itself) but being able to do something like you see in the attached gridstack_basic_demo_img1.jpg would be great.  

It seems easy to get into an odd state using the TileLayout, even creating gaps where I don't want them and I'm unable to fix it.  For example in telerik_tilelayout_img1.jpg you see your demo page, I have the "Bounce Rate" box with a gap above it and for whatever reason I can't even bring it UP to fill the gap (dragging it up the red arrow path and dropping it gets rejected and the box floats back to where it is in the img). 

I really want to use your TileLayout but I think using it as-is would really frustrate my userbase.  Do you have plans to improve it's functionality and overall user experience?

Thanks for your consideration

 

 

Duplicated
This item is a duplicate of an already existing item. You can find the original item here:
8 comments
ADMIN
Dimo
Posted on: 15 Aug 2024 07:07

Hello John,

Thanks for sharing! If the implementation can be isolated to a small example, I will appreciate if you send it, so that we can post it here or create a KB article. We will award you a good amount of Telerik points :)

Regards,
Dimo
Progress Telerik

Do you have a stake in the designеr-developer collaboration process? If so, take our survey to share your perspective and become part of this global research. You’ll be among the first to know once the results are out.
-> Start The State of Designer-Developer Collaboration Survey 2024

John
Posted on: 14 Aug 2024 15:29

Dimo,

I've implemented what I wanted using your GridLayout.  I've attached an animated GIF demonstrating it so you can reference it when implementing the "Able to drag tile on empty spaces on TelerikTileLayout" ticket.

  • Grid starts off seemingly empty / whitespace (locked/normal/running/non-edit mode) but in truth has a set number of columns and rows.
  • User adds a 'widget' tile (custom content wrapped in a GridLayoutItem) and the layout switches to 'edit mode' (I highlight the grid boxes so user can see the snap points)
  • User can dynamically add/remove as many tiles as they wish (automatically finds and places it in the first available valid/empty location or rejects the operation if no space is available)
  • User can dynamically resize any tile they wish (snaps to grid)
  • User can dynamically drag/move any tile to any valid location (snaps to grid)
  • If user drags a tile over another tile (or off screens/out of bounds) they get a warning or some indication there's a problem and their move/resize gets rejected.
  • The layout can be serialized and then reloaded later (user will define the layout in edit mode, save it and then load/use it for display purposes as they see fit)

Hopefully this helps at least provide a visual context for what I'm looking for.  Obviously I'm good to go now, but once you have your new component generally available I'll switch as I'd rather have as few custom components as possible.  Thanks for entertaining this request!

Attached Files:
John
Posted on: 07 Aug 2024 19:20
That's great news, thanks Dimo!
ADMIN
Dimo
Posted on: 07 Aug 2024 08:48

OK, John, thanks for the additional input.

We decided to reopen Able to drag tile on empty spaces on TelerikTileLayout and link this request to it.

Regards,
Dimo
Progress Telerik

Do you have a stake in the designеr-developer collaboration process? If so, take our survey to share your perspective and become part of this global research. You’ll be among the first to know once the results are out.
-> Start The State of Designer-Developer Collaboration Survey 2024

John
Posted on: 05 Aug 2024 13:20

Sure thing, this system is for sensor data acquisition and visualization, so:

What are the tiles (items) that users will be arranging on the screen? What type of information will they contain?

The tiles will contain other Telerik components to visualize real-time numeric sensory data (mainly basic tables, telerik charts, gauges, text/numeric textboxes and buttons)

  1. What brings the need to have empty spaces (holes) in the arranged layout?

This is a request from the userbase.  The dashboard(s) are user defined both in content and in layout.  They group related items (everything coming from a genre of sensors for example) together and want to be able to position them all over their monitors.  For example they may place all port sensors (this is on a ship) on the left and all starboard sensors on the right.  They also want to maximize whitespace as visual buffers to distinguish between logical groupings.

  1. What exactly is frustrating for your users now?

The lack of intuitive methods to go from the initial basic linear layout to the end-goal desired layout in their head.  For example in the prior image I sent you I had white space above the "Bounce Rate" box.  If I'm honest I have no idea how I got that nor could I easily repeat it if I wanted it.  When I wanted to move it back up I wasn't allowed to by drag&drop, but if I fiddled with other things it "automatically" repositioned itself into the area I wasn't allowed to drop it in.  This makes not sense, either it can or it cannot go there & if it can then I should be able to drag it there.  This type of experience leads to frustration, especially if I as the developer cannot explain to them what's going on.

  1. Do you think these possible future TileLayout enhancements will serve your purpose:

No, probably not.  Having multiple TileLayouts w/interchangeable tiles would be beneficial if I knew before-hand the general layouts they desires, but when it's fully user-defined that won't help.  As for locking specific tiles - in my use case the dashboard is either fully in 'edit' mode (all tiles have reorder/resize enabled) or in 'view' mode (all tiles are locked).  

ADMIN
Dimo
Posted on: 05 Aug 2024 12:25

Hi John,

Thanks for the additional insights. Can you please be more specific about questions 1 - 4 from my previous reply?

Regards,
Dimo
Progress Telerik

Do you have a stake in the designеr-developer collaboration process? If so, take our survey to share your perspective and become part of this global research. You’ll be among the first to know once the results are out.
-> Start The State of Designer-Developer Collaboration Survey 2024

John
Posted on: 02 Aug 2024 20:08

Thanks for the quick reply, Dimo. 

When creating a dashboard it's usually for a decent sized monitor, I'd much rather be able to logically group and place objects all over the screen manually than have assistance.  In the current version of our software we use jQuery UI (see 'current_js_version') which gives the user total control.  Some folks like this, but in practice I think it usually ends up in cluttered and visually unappealing mess.  I'd prefer to block the ability to overlap, which of course I can do with what I've got already via javascript but I'm trying to move over to Blazor for this next major version.

You've already written all the code for what I (and I think most others who've been asking for something similar) want.  It's a hybrid between your TileLayout and your GridLayout.  Basically a GridLayout with manual 'tile resize/movement' features.

So, a simplified GridLayout where I predefine a set number of columns and rows (equally spaced) upon which I can add Tiles.  The user can resize/move the tiles similar to the TileLayout to any coordinate in the grid (column, row == upper left corner of tile, width == ColumnSpan, height == RowSpan). 

If the user's operation results in an overlap (eg they move the tile and any part of where it would land is already occupied by another tile) then the two tiles turn red or you can present whatever "you can't do that" type of indicator you'd like rather than trying to adjust everything to accommodate them.  If the user really wants that tile to go there then they'd have to clear the space manually by dragging the existing tile out of the way or resize/delete it, before they can do so.

The resizing and the drag and drop features of the TileLayout are great, exactly what I want.  But I'd rather do the space optimization manually.

So I'd write something like this:

<GridLayout Columns="160" Rows="90" Resizable="true" Reorderable="true">

<GridLayoutItems>

            <GridLayoutItem ...

....

</GridLayout>

 

I know this allows gaps as I can just randomly comment out one of your entries in a REPL example and it disappears.  This is exactly what I want, all it needs is the added ability for a user to resize/move the items.

 

 

ADMIN
Dimo
Posted on: 01 Aug 2024 13:54

Hello John,

By design, our TileLayout is opportunistic to optimize the tile position and remove empty space in the middle of the component. Tiles are shifted to the side or up, if there is available empty space. It is possible to create a "hole" in the component and drop something there later (see the attached screenshot), but the hole will persist only if there is no suitable adjacent tile to move there.

As far as I can see, the GridStack component also optimizes free space, but less "ambitiously". The user is able to move a tile to a new row at the bottom, as long as there is a tile above it. You still can't have a hole and a matching tile just below it.

We have a declined feature request about maintaining empty spaces inside the TileLayout, because this mode of operation contradicts the whole component concept.

From this point of view, a separate component is a reasonable request, but I am concerned about its business rationale - what will be the new component's differentiator, value and even name, given all the layout components that we already have, and the DockManager, which is also on the horizon...

At this point, I would ask for more information about your use case and user preferences:

  1. What are the tiles (items) that users will be arranging on the screen? What type of information will they contain?
  2. What brings the need to have empty spaces (holes) in the arranged layout?
  3. What exactly is frustrating for your users now?
  4. Do you think these possible future TileLayout enhancements will serve your purpose:

Regards,
Dimo
Progress Telerik

Do you have a stake in the designеr-developer collaboration process? If so, take our survey to share your perspective and become part of this global research. You’ll be among the first to know once the results are out.
-> Start The State of Designer-Developer Collaboration Survey 2024

Attached Files: