corteza icon indicating copy to clipboard operation
corteza copied to clipboard

Add support for Compose page block tabs [PlanID:2023.3/8/2.6]

Open darh opened this issue 2 years ago • 5 comments

Integrators can configure Tabs block on Compose page. This is accomplished by linking existing record page blocks of any other type. Each linked block represents one tab in the tab block.

The implementation is based on Bootstrap's tabs.

  • [ ] Prepare mockups that demonstrate this feature @darh

  • [x] Page can have multiple tab blocks
  • [x] For now, nested tabs are not allowed (block tab with a block tab)
  • [x] Tabs are configured right of the "General" tab in the block configuration
  • [x] Integrator can use pre-existing blocks (show warning where there are no blocks available)
  • [x] New blocks can be added via tab block
  • [x] Integrator can change the order of tabs by reordering linked blocks
  • [x] Page block rendering logic must be corrected to omit linked blocks when rendering a page
  • [x] [When tab block is deleted, page blocks should render those blocks again.
  • [x] Blocks can be duplicated via tab block's configurator
    • [x] Checkboxes are shown
    • [x] Duplicate button should not be disabled once a box is checked
    • [x] Tab should be duplicated and block should be duplicated for all checked boxes
  • [x] Implement bootstrap's properties for <b-tabs>: align, fill, justified, small, pulls, vertical
  • [x] By default, 1st tab is active
  • [x] When changed, the active tab must be preserved after refresh (store it in URL)
  • [x] Linked's block title is used as a tab title

darh avatar Nov 04 '22 09:11 darh

Tab blocks have their dimensions pre-determined just as other blocks xywh You link existing blocks to the tabs via a dropdown (try drag and drop later) data structure should stay as is for page Number of blocks determine number of tabs Block title determines tab name

EmmyMay avatar Nov 15 '22 13:11 EmmyMay

UI preview for Tab configurator

image

EmmyMay avatar Dec 06 '22 12:12 EmmyMay

Note: Block duplication, for now, will not be allowed for tabbed blocks. We can discuss more on why this is.

EmmyMay avatar Dec 06 '22 12:12 EmmyMay

TabBase UI Preview

image

EmmyMay avatar Dec 06 '22 17:12 EmmyMay

image

EmmyMay avatar Dec 06 '22 19:12 EmmyMay

UI Update

Image

Image

Image

EmmyMay avatar Dec 14 '22 16:12 EmmyMay

This may not be ready for this milestone as it is still pending fixes from me based on review updates.

EmmyMay avatar Jan 11 '23 17:01 EmmyMay

Editing this issue to have a phase 2 which would include logic refactoring and some flow changes. The changes would help to simplify the approach currently used to better circumvent structural and architectural restrictions in compose's builder component. This phase 2 update will also bring about some UX flow changes in the way this feature was originally intended to work. The issue shall be updated with new requirements for this to be considered DONE.

EmmyMay avatar Feb 15 '23 14:02 EmmyMay

Image

Image

EmmyMay avatar Feb 15 '23 16:02 EmmyMay

For today: take care of two more things discussed with Jože and then, if time today, address the comments in the PR.

katrinDY avatar Feb 27 '23 09:02 katrinDY

For today: resolve remaining comments in PR and a couple of minor things found along the way. To be ready for code review by 1pm latest.

katrinDY avatar Feb 28 '23 09:02 katrinDY

For today: address the remaining comments on PR. Time-box blocker for two hours and if can't resolve, sync with Jože.

katrinDY avatar Mar 01 '23 09:03 katrinDY

Should all be finished by dev release tuesday

tjerman avatar Mar 03 '23 09:03 tjerman

This was tested and confirming that it works as intended. The only thing left now is the CL entry @EmmyMay

Bojan-Svirkov avatar Mar 10 '23 14:03 Bojan-Svirkov

Changelog Entry

Added

What was added?

Added support for the Tabs PageBlock

Why was it added

To make pageblock organizing much easier for users.

EmmyMay avatar Mar 10 '23 14:03 EmmyMay

Added CL

Bojan-Svirkov avatar Mar 10 '23 14:03 Bojan-Svirkov