Task #8684

Bug #10733: As a backend user, I want a clean visual design for the whole UI

Refactor PropertyMenu so that Opening and Closing is handled with an animation.

Added by Sebastian Kurfuerst about 5 years ago. Updated about 4 years ago.

Status:Rejected Start date:2010-07-06
Priority:Should have Due date:
Assigned To:Christian Müller % Done:

80%

Category:UI
Target version:Base Distribution - Sprint 7

Description

The property menu opens up when the user f.e. edits the page properties or creates a new page (see screenshot attached to story).

Right now, this is directly implemented inside F3.TYPO3.Content.Edit.PagePropertiesDialog, and not inside the abstract class. Additionally, the module is shown directly, not via an animated slide down.

This should be changed.

forge_8684.patch Magnifier (7.5 kB) Michael Feinbier, 2010-07-18 17:29

forge_8684-v2.patch Magnifier (9.6 kB) Michael Feinbier, 2010-08-12 22:53

accordion-menu.mov (138.3 kB) Bastian Waidelich, 2010-10-15 11:30

History

#1 Updated by Sebastian Kurfuerst about 5 years ago

  • Target version set to 593

#2 Updated by Sebastian Kurfuerst about 5 years ago

  • Category set to JavaScript

#3 Updated by Sebastian Kurfuerst about 5 years ago

  • Tags set to #easy

#4 Updated by Michael Feinbier about 5 years ago

I'd like to have a look at this task and work on it.

#5 Updated by Sebastian Kurfuerst about 5 years ago

  • Status changed from New to Accepted

#6 Updated by Sebastian Kurfuerst about 5 years ago

Hey Michael,

I just wanted to ask what the current status on this issue is. Do you have any open questions, or is there anything we can do to support you solving this issue? You'll find us in the usual Jabber chatroom.

Thanks in advance for a short status!

Greets,
Sebastian

#7 Updated by Michael Feinbier about 5 years ago

Hi Sebastian,

I am working on that actually! But it is not as that easy as it sounds. The main Task is a refactoring of the UI.ModuleMenu which holds for example the PageProperties Dialog. The ModuleMenu needs a better layout so that the ModuleDialog can be added as collapsible Panel to animate it. Furthermore the ContentDialog needs to be somehow better connected in the ModuleMenu so that it's height (and padding from the rootline) is automatically determined by the layout. This does not work yet.

But I'm on it :)

cheers

#8 Updated by Michael Feinbier about 5 years ago

so finally I can provide a little patch of some changes :)

The bad thing first. I think it is not possible to animate the ModuleDialogContainer when it get's shown for example as a collapsible panel. This is because the ModuleDialog wraps around it so that it is not connected to the ContentArea which needs to be animated. To make the animation work the ModuleDialogContainer and the ContentArea have to be part of the same border layout (mdc as north panel, content area as center panel). But this would mean some basic restructuring of the whole container concept. Let's talk about that later.

What is done?
  • refactoring of the whole showModuleDialog of the ModuleMenu: the DOM coupling of the contentDialog was removed and replaced by the add-method of the parent layout container.
  • changing the layouts in SectionMenu, ModuleMenu and ModuleDialog from vbox to better layout managers
  • loading of the form in PagePropertiesDialog is moved to an own method of the dialog. It is called once afterRender instead of onRender
This leads to the following improvements:
  • The whole ModuleMenu and -Dialog is able to determine it's dimensions automatically. The ModuleMenu changes its height dynamically. Neither in the ModuleMenu nor in the PagePropertiesDialog (and in all ModuleDialogs) you need to set a height. Everything is done by the LayoutManager. Only the initial ModuleMenu needs a start height (50px - this can be improved, too)
  • The contentDialog is now known by the parent layoutManager thus it is not added to the DOM directly but added as a 'true' child of the moduleMenu
  • The loading-mask of the PagePropertiesDialog is now positioned correctly.
Known Problems:
  • I did not make it work to lay the content dialog buttons over the content-area via CSS. I think it can be done by CSS - the content dialog container is added to the parent in the same way as before (but via .add()). I think/hope that this is a small thing for a CSS-Guru.
  • When the ModuleMenuContainer expands, the content area get's an additional vertical scrollbar which isn't needed. I am working on that.

Happy to hear your feedback!

Micha

#9 Updated by Sebastian Kurfuerst about 5 years ago

Hey,

I finally had some time to look at your patch. First of all, I think it really improves things quite a bit :-)

Michael Feinbier wrote:

so finally I can provide a little patch of some changes :)

The bad thing first. I think it is not possible to animate the ModuleDialogContainer when it get's shown for example as a collapsible panel. This is because the ModuleDialog wraps around it so that it is not connected to the ContentArea which needs to be animated. To make the animation work the ModuleDialogContainer and the ContentArea have to be part of the same border layout (mdc as north panel, content area as center panel). But this would mean some basic restructuring of the whole container concept. Let's talk about that later.

OK; we need to discuss how we can make this animation work nevertheless ;-) Triggering "doLayout" everytime should work, but I guess that's too expensive. What do you think about the following:

  1. calculate the height of the form
  2. animate the height of F3.TYPO3.UserInterface.ModuleMenu to the correct height

The ModuleMenu is on the same level as the ContentArea, so then animation should work, right?

What is done?
  • refactoring of the whole showModuleDialog of the ModuleMenu: the DOM coupling of the contentDialog was removed and replaced by the add-method of the parent layout container.

nice!

  • changing the layouts in SectionMenu, ModuleMenu and ModuleDialog from vbox to better layout managers

Great! From your patch it seems that you also changed "ModuleDialogContainer" to "form" layout; Does this have any special reason, or is it just a left-over? :-)

  • loading of the form in PagePropertiesDialog is moved to an own method of the dialog. It is called once afterRender instead of onRender
This leads to the following improvements:
  • The whole ModuleMenu and -Dialog is able to determine it's dimensions automatically. The ModuleMenu changes its height dynamically. Neither in the ModuleMenu nor in the PagePropertiesDialog (and in all ModuleDialogs) you need to set a height. Everything is done by the LayoutManager. Only the initial ModuleMenu needs a start height (50px - this can be improved, too)

Nice, this is already quite some improvement.

...

Known Problems:
  • I did not make it work to lay the content dialog buttons over the content-area via CSS. I think it can be done by CSS - the content dialog container is added to the parent in the same way as before (but via .add()). I think/hope that this is a small thing for a CSS-Guru.

In fact it's not that easy. As the content dialog buttons are added to the ContentDialog now, it will not display these buttons anymore because ExtJS uses "overflow:hidden" for the parent containers. That's why I'd suggest to add the buttons to the F3.TYPO3.UserInterface.ContentArea, as it was before.

  • When the ModuleMenuContainer expands, the content area get's an additional vertical scrollbar which isn't needed. I am working on that.

Interesting, which browser are you using? Here, this works without another scrollbar.

Thanks for the time you are devoting to v5, it's really encouraging to see your work!

Greets,
Sebastian

#10 Updated by Sebastian Kurfuerst about 5 years ago

  • Assigned To set to Michael Feinbier

#11 Updated by Michael Feinbier about 5 years ago

  • % Done changed from 0 to 80

just a short update. I made the animations work :) But there a 2 or 3 little things to do make it work completely. I think it will work on monday or tuesday evening.

#12 Updated by Sebastian Kurfuerst about 5 years ago

Hey,

great news :-) I'm really looking forward to it!

Greets,
Sebastian

#13 Updated by Michael Feinbier almost 5 years ago

Finally I can provide a patch with working animations :)
They are not perfect yet, but I think it will do a while.

There are 2 little things which I cannot solve myself:
- The ContentDialog styling broke a little bit. My CSS skills are not good enough to fix it. Maybe some CSS guru can have a look
- The removing of the Panel (closing) throws a JS error message. I don't know why at the moment but it is no 'real' problem. Everything works fine.

Happy to hear your feedback!

#14 Updated by Robert Lemke almost 5 years ago

  • Status changed from Accepted to Needs Feedback

#15 Updated by Robert Lemke almost 5 years ago

  • Target version changed from 593 to 628

#16 Updated by Michael Feinbier almost 5 years ago

Hi,

is there anything I can do for this issiue?
I am waiting for any response :)

#17 Updated by Bastian Waidelich almost 5 years ago

Attached video shows how accordion menus are expected to work (just like the "finder" navigation on Mac OS)

#18 Updated by Sebastian Kurfuerst almost 5 years ago

Hey,
I think that this is not relevant for this task ;-) As it is not about the Accordion Menu ;)

#19 Updated by Sebastian Kurfuerst almost 5 years ago

  • Parent task set to #7921

#20 Updated by Robert Lemke almost 5 years ago

  • Parent task changed from #7921 to #8797

#21 Updated by Robert Lemke over 4 years ago

  • Parent task changed from #8797 to #11041

#22 Updated by Robert Lemke over 4 years ago

  • Parent task changed from #11041 to #10733

#23 Updated by Christian Müller over 4 years ago

  • Status changed from Needs Feedback to Accepted
  • Assigned To changed from Michael Feinbier to Christian Müller

Hi Michael,

thank you for your wor. I will check what we finally will use as the layouts and PopertyMenu itself was refactored lately. We plan to bring the next sprint out with this animation included so I took over the task to possibly refactor your code to the new PropertyMenu or if impossible do it differently.

Feel free to come by in our IRC channel or just assign yourself tasks if you are interested.

#24 Updated by Sebastian Kurfuerst over 4 years ago

Ah, one more note: We're using the IRC channel "t3px" at irc.freenode.net
Greets,
Sebastian

#25 Updated by Sebastian Kurfuerst over 4 years ago

I just tried it out, and it seems quite hard; that's why I suggest to wait for ExtJS 4 and see if this helps for us :-)

Greets,
Sebastian

#26 Updated by Sebastian Kurfuerst over 4 years ago

  • Status changed from Accepted to On Hold

#27 Updated by Sebastian Kurfuerst about 4 years ago

  • Project changed from Base Distribution to TYPO3.Neos

#28 Updated by Sebastian Kurfuerst about 4 years ago

  • Category set to UI

#29 Updated by Christian Müller about 4 years ago

  • Status changed from On Hold to Rejected
  • Target version deleted (Sprint 7)

Also available in: Atom PDF