Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Optimize header #4102

Closed
wants to merge 1 commit into from
Closed

Conversation

michaelletzgus
Copy link
Contributor

@michaelletzgus michaelletzgus commented Mar 27, 2017

Idea: Stop notification from overlapping everything else:

  • Optimize header, introduce header-center, place notifications in it
  • Please ignore colors, will be removed in final version

Is this something worth finishing?

@codecov-io
Copy link

codecov-io commented Mar 27, 2017

Codecov Report

Merging #4102 into master will decrease coverage by 0.14%.
The diff coverage is 0%.

@@             Coverage Diff              @@
##             master    #4102      +/-   ##
============================================
- Coverage     54.18%   54.03%   -0.15%     
  Complexity    21640    21640              
============================================
  Files          1327     1268      -59     
  Lines         82791    75527    -7264     
  Branches       1312        0    -1312     
============================================
- Hits          44859    40810    -4049     
+ Misses        37932    34717    -3215
Impacted Files Coverage Δ Complexity Δ
core/templates/layout.user.php 0% <0%> (ø) 0 <0> (ø) ⬇️
apps/files_sharing/templates/public.php 0% <0%> (ø) 0 <0> (ø) ⬇️
apps/comments/lib/EventHandler.php 79.16% <0%> (-8.34%) 7% <0%> (ø)
lib/private/User/Manager.php 83.81% <0%> (-0.58%) 68% <0%> (ø)
core/js/sharedialoglinkshareview.js
core/js/config.js
core/js/files/client.js
settings/js/apps.js
core/js/sharesocialmanager.js
core/js/oc-requesttoken.js
... and 55 more

@MorrisJobke
Copy link
Member

The notifications doesn't appear anymore when I execute: OC.Notification.show('Hello - I\'m a notification') - work fine on master. Could you check that?

@jancborchardt
Copy link
Member

@michaelletzgus didn’t check yet but it’s a good initiative! cc @nextcloud/designers for review.

@michaelletzgus please make sure that it also works well on mobile (narrow screens) and maybe also check out #301 (proposal for non-blocking notifications)

@juliushaertl
Copy link
Member

I like the idea, but the issue with blocking UI should be fixed when touching the code as well:

2017-03-28-181008_638x110_scrot

Are those notifications being removed after some time? I'm not sure but I think that was already in somewhere in the past?

@jancborchardt
Copy link
Member

Just checked and this will definitely create issues with the apps being in the header. It’s strange to push the app list away just to show a notification. It’s basically the same issue of overlaying again, but even worse :\

@michaelletzgus
Copy link
Contributor Author

The current version in my branch is "under construction". My current goal is to create a (modal?) overlay
in the screen's center when space is limited.
Problem: WHEN exactly is space limited?
And: Why not use an popup-overlay always?

@rullzer rullzer added 2. developing Work in progress design Design, UI, UX, etc. labels Mar 28, 2017
@michaelletzgus michaelletzgus force-pushed the optinotifi branch 2 times, most recently from 98eb433 to 3540dbf Compare March 29, 2017 17:21
@michaelletzgus
Copy link
Contributor Author

michaelletzgus commented Mar 29, 2017

The notification bar now collapses into a screen centered popup at width<680.
(The CSS currently contains a small design flaw: The popup overlay is a child of header-center, will be fixed)

Question: Should ALL notifications be shown in a popup - even with wide screen? Or should they stay in the header?

nc_wide

nc_mobile

});
$row.addClass('closeable');
}
// // add a close button
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No need to double comment :D

$(document.createElement( "button" )).click(function(){ OC.Notification.show('Hello - I am a notification') }).appendTo($('#header-left')).html("B1");
$(document.createElement( "button" )).click(function(){ OC.Notification.showHtml('Hello - I <b>am</b> a very very <i>loooooong</i> <u>HTML noooooooooooootification</u>....................') }).appendTo($('#header-left')).html("B2");
$(document.createElement( "button" )).click(function(){ OC.Notification.showTemporary('temp. notification',{timeout:2}) }).appendTo($('#header-left')).html("B3");
</script>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please remove debug code and just put it in the description. Everybody can then execute it themselves in the web dev console.

Copy link
Member

@MorrisJobke MorrisJobke left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See comments

@jancborchardt
Copy link
Member

Now the notifications are even more intrusive than before though. :\ And on the top they are not centered really.

To be honest, we want to get rid of most notifications in apps because they are just used as an easy way out but are not very nicely designed. It’s better to do it with .emptycontent or inline.

But maybe we find a nice way to display them in the header, maybe even in combination with the Notifications app https://github.com/nextcloud/notifications – where some of these notifications are maybe better put.

cc @nextcloud/designers

@jancborchardt jancborchardt added this to the Backlog milestone Mar 30, 2017
@michaelletzgus
Copy link
Contributor Author

Of course it's not centered on screen because the free space in the header isn't.

@jancborchardt
Copy link
Member

@michaelletzgus it would be a bit nicer to have a solution where the notification appears in a place which is consistent. It’s strange when it moves depending on other circumstances. Did you consider showing it below the header bar?

@michaelletzgus michaelletzgus force-pushed the optinotifi branch 3 times, most recently from 17355fc to 2ca2e76 Compare April 8, 2017 10:22
@michaelletzgus
Copy link
Contributor Author

A consistent place would be nice - but below the header just moves the "invasive overlay problem" from the header a few pixels to the bottom.
I think a few questions should be answered before the redesign:

  1. What is an important message?
  2. Should important messages be invasive?
  3. Are important very messages so important that they justify a modal overlay?
  4. What are "notes", "hints" and "tips of the day"?

I think everything that can NOT be safely ignored (configuration problems, security problems, major (minor?) server updates, app updates are important and might be invasive/modal...

@michaelletzgus michaelletzgus force-pushed the optinotifi branch 2 times, most recently from e589d0c to b5b4e0b Compare April 22, 2017 09:53
* Optimize header, introduce header-center, place notifications in it
* Please ignore colors, will be removed in final version
* Add buttons for testing
* Always show the closing "x"
* Center notification on small screens

Signed-off-by: Michael Letzgus <michaelletzgus@users.noreply.github.com>
kk
@jancborchardt
Copy link
Member

What is an important message?

A new version being available for example.

Should important messages be invasive?

A bit, in the style that they are now, with a notification up top. They shouldn’t just be in the Notification app, should they @LukasReschke @nickvergessen?

Are important very messages so important that they justify a modal overlay?

Definitely not.

What are "notes", "hints" and "tips of the day"?

Anything like that should be displayed inline, not as a notification and especially not as a modal.

What do you think @nextcloud/designers?

@nickvergessen
Copy link
Member

The header notifications are e.g. failed upload attempts via the web UI.
They should not be pushed to your desktop/mobile client, so not related to notifications app => unsubscribing

@MorrisJobke
Copy link
Member

A new version being available for example.

I would not say, that this specific case is so important. A new version is fine to have in the notifications area.

I would only like stuff in this direct notification on the top for stuff that just happened. But the more I think about use cases the more it feels wrong to have this here. It's just a generic and ugly approach to handle feedback for the user, but actually it shouldn't be done like it is now.

Some examples:

  • undo user deletion: currently such an notification, but it should be shown where the user entry was before
  • failed to share a file because of REASON: this should be shown in the sharing sidebar - just there where you clicked to create the share
  • a new version is available: should be a real notification in our notification drop down and also be pushed to the clients, because this is an actual state of the server and not a state of the current session

The more I think about this, the more I think we should get rid of OC.Notifications and either use our notification center (for state of the instance, state of a user) or inline feedback/inline actions for stuff that just happened (like error handling and undo actions).

Opinions @nextcloud/designers ?

@MorrisJobke MorrisJobke removed this from the Backlog milestone Apr 26, 2017
@jancborchardt
Copy link
Member

@MorrisJobke yep, totally agree. As I said above:

To be honest, we want to get rid of most notifications in apps because they are just used as an easy way out but are not very nicely designed. It’s better to do it with .emptycontent or inline.

And everything which doesn’t work via emptycontent or inline, is probably best in the Notifications app (like a new version being available).

@eppfel
Copy link
Member

eppfel commented May 4, 2017

So, we should therefore collect occasions where this nasty notification is still used and step by step remove it by putting custom notifications close to the context.

Closing, as it is a fix for a symptom, not for a cause. But thanks for kickstarting the discussion @michaelletzgus

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
2. developing Work in progress design Design, UI, UX, etc.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants