Open Bug 412800 Opened 16 years ago Updated 2 years ago

Add a per-calendar preference to hide/show events for certain areas, i.e today pane, views

Categories

(Calendar :: General, enhancement)

enhancement

Tracking

(Not tracked)

People

(Reporter: dbo, Unassigned, Mentored)

References

Details

(Whiteboard: [lang=js][lang=xml][see comment 38])

Attachments

(7 files, 4 obsolete files)

The set of calendars shown in the unifinder-todo list (today pane) and the task-mode should be independent of the (visible) calendars of the calendar mode.
Flags: wanted-calendar0.8+
Strings used for the Edit Calendar Dialog:

- Show events of this Calendar in Today Pane
- Show tasks of this Calendar in Today Pane
- Show tasks of this Calendar in Tasks View
The 'of this Calendar' part seems superfluous to me. After all the user already looks at the properties dialog for a specific calendar.
It should also be possible to switch Calendars on/off directly in the Today Pane Agenda & Task List and the Task Mode Task List. It should be possible to customized each list independently. Therefor I suggest to extend the context menu by a sub menu which lists all calendars.

Context menu Agenda List (Today Pane):

New Event...
-----------
Edit Event...
Delete Event
-----------           
Show Events of > | [x] home
                       Private
                       Work

------------------------------------


Context Menu Task List (Today Pane):

...
Priority
Convert to >
-----------           
Show Tasks of > | [x] home
                      Private
                      Work

------------------------------------

Context Menu Task List (Task View):

...
Priority
Convert to >
-----------           
Show Tasks of > | [x] home
                      Private
                      Work

Disabling/enabling a calender directly in the Calendar Mode, respectively Task Mode should restore the last state of all "Show events/task in Today Pane/Task View" settings.
(In reply to comment #2)
> The 'of this Calendar' part seems superfluous to me. After all the user already
> looks at the properties dialog for a specific calendar.
> 

agreed...

-> 
- Show events in Today Pane
- Show tasks in Today Pane
- Show tasks in Tasks View
Attached patch calendar property page strings (obsolete) — — Splinter Review
Attachment #297809 - Flags: ui-review?(christian.jansen)
Comment on attachment 297809 [details] [diff] [review]
calendar property page strings

>+<!ENTITY calendarproperties.tasks.intasklist.label "Show Tasks in Today Pane">
>+<!ENTITY calendarproperties.tasks.intaskview.label "Show Tasks in Tasks View">

Christian, shouldn't we consolidate those two to a single one, e.g.

"Show Tasks of this Calendar"

I don't see a use case where I would check one without the other...

About the context menu stuff: Although I generally like that idea, I can imagine we may run into l10n problems when tieing parts of sentences to controls/ui elements (like we already did in the recurrence dialog).
Should be "Task Mode" instead of "Task View" I'd said.
(In reply to comment #6)
> (From update of attachment 297809 [details] [diff] [review])
> >+<!ENTITY calendarproperties.tasks.intasklist.label "Show Tasks in Today Pane">
> >+<!ENTITY calendarproperties.tasks.intaskview.label "Show Tasks in Tasks View">
> 
> Christian, shouldn't we consolidate those two to a single one, e.g.
> 
> "Show Tasks of this Calendar"

Agreed. Merging these options makes sense.
For beeing consistent we should call it "Show Tasks"
and rename "Display Alarms" to "Show Alarms"

This makes the order:


[ ] Read Only
[X] Show Alarms
[X] Show Events in Today Pane
[X] Show Tasks
[ ] Cache (EXP...)

> 
> I don't see a use case where I would check one without the other...
> 
> About the context menu stuff: Although I generally like that idea, I can
> imagine we may run into l10n problems when tieing parts of sentences to
> controls/ui elements (like we already did in the recurrence dialog).
> 

Attached patch [checked in] strings — — Splinter Review
per comment #9
- moving forward ui+
- agreed to use "Show Tasks in Today Pane and Task Mode" instead of "Show Tasks"

Checked in on HEAD and MOZILLA_1_8_BRANCH.
Attachment #297809 - Attachment is obsolete: true
Attachment #298272 - Flags: ui-review+
Attachment #297809 - Flags: ui-review?(christian.jansen)
Attached file WIP patch (obsolete) —
Attached patch WIP patch (obsolete) — — Splinter Review
Assignee: nobody → daniel.boelzle
Attachment #298272 - Attachment is obsolete: true
Attachment #302091 - Attachment is obsolete: true
Status: NEW → ASSIGNED
Attached patch patch — — Splinter Review
Besides implementing the options and different composite calendar bags, there's one particular important change to the refresh logic which possibly needs some discussion:
The composite calendar implementation doesn't send out an onLoad once any contained calendar sends an onLoad, to avoid unnecessary onLoad events (which by themselves flush views etc and trigger getItems calls).
I think it's ok if providers (which need the refresh logic like ics) queue up ongoing requests until they are actually refreshed.
That way (with this patch) refresh() just responds firing an onLoad within the same call.
Attachment #302092 - Attachment is obsolete: true
Attachment #312050 - Flags: review?(philipp)
Maybe it's just me, but I don't really see the need for this. It adds a lot of UI, but what is the use-case?
I don't really understand how the proposed UI works. You can now set the visibility of the calendars in the calendar properties, but how does the current calendar list work with that?
This feature is especially important if you have lots of subscribed calendars, which currently bloat your today pane with events and tasks that are only of sencodary interest. Users usually track their own daily agenda with the today pane, so this feature allows better filtering what you want to see there.
Moreover, it's important to decouple the set of visible calendars in calendar/task mode form the today pane, because it's a different mode, i.e. if I temporarily hide a calendar in claendar mode, it shouldn't hide it form my today pane.
BTW: What do you mean by current calendar list?
With the current calendar list, I mean the one list where you currently select which calendars you want to be visible in all the panes.
If there are other places where you select which calendar is visible, what do the checkboxes in the old list mean? They are not explicitly coupled to one pane, but to all of them. Will they turn into some undetermined state?

I fear that the items in the today pane and the main view not being in sync will be confusing. "Why does that event not show up?"

What is the impact of this feature for users that do not have a large list of calendar, but only a few? Will they still be able to switch one of the calendar on and off by just one single click?
How big is the userbase that needs this feature? Could we maybe split the backend and frontend changes, and put the frontend into an 'manage lots of calendars' extension?
(In reply to comment #17)
> the checkboxes in the old list mean? They are not explicitly coupled to one
> pane, but to all of them. Will they turn into some undetermined state?
And that's exactly the flaw that's to be fixed. Toggling the visibility in one mode shouldn't change visibility in the today pane. For most users the today pane serves as a rather "static" view on their own private schedule, other than the randomly collected set of calendars they manage in the "calendar/task mode". IMHO the today pane needs separate settings. BTW: The added options don't appear in Sunbird, because it doesn't have the today pane.

> I fear that the items in the today pane and the main view not being in sync
> will be confusing. "Why does that event not show up?"
When adding a new calendar, the defaults are laways: Show in today pane.

> What is the impact of this feature for users that do not have a large list of
> calendar, but only a few? Will they still be able to switch one of the calendar
> on and off by just one single click?
Calendar/Task Mode is *not* affected by the change.

> How big is the userbase that needs this feature? Could we maybe split the
> backend and frontend changes, and put the frontend into an 'manage lots of
> calendars' extension?
Nobody knows about a potential user base, and just asking that question shouldn't lead us to another extension which makes distributing/deploying lightning more complicated (I suspect the vast majority don't know about further extensions to lightning; think of how many people ask for the gdata-provider). Anyway, what's so wrong about more fine-grained settings when subscribing to a calendar (having good defaults)?
IMHO mozilla calendar has a great strength as a calendar aggregator. There are more than a few good online calendars that serve well for the typical one calendar home user, but mozilla calendar offers the possibility to manage calendars from different sources, supporting different protocols. Having more than just one calendar (e.g. I am subscribed to 21), you definitely need this feature.
Comment on attachment 312050 [details] [diff] [review]
patch

This patch still has flaws with the refresh mimic; removing review for now. Nevertheless comments on the rest are welcome.
Attachment #312050 - Flags: review?(philipp)
I really appreciate a solution like this. If you need to subscribe to a lot calendars, it's hard to keep track. So IMO this is really great :-)
(In reply to comment #18)

> mode". IMHO the today pane needs separate settings. BTW: The added options
> don't appear in Sunbird, because it doesn't have the today pane.

But it does have the unifinder-todo which is also affected by this patch. (why isn't the unifinder affected, btw?)

> > I fear that the items in the today pane and the main view not being in sync
> > will be confusing. "Why does that event not show up?"
> When adding a new calendar, the defaults are laways: Show in today pane.

That doesn't answer my question. If you made enough changes to the three lists of calendars, it's very likely to get confused. "why does this new event show up in the main view, but not in the today pane?" It's not about new calendar, but new events in old calendars.

> > What is the impact of this feature for users that do not have a large list of
> > calendar, but only a few? Will they still be able to switch one of the calendar
> > on and off by just one single click?
> Calendar/Task Mode is *not* affected by the change.
Again, does not answer my question. There is one place to manage you calendars now, which works well if you have only a few calendars. With the proposed change, do you need to switch off a calendar in multiple places now, if you don't want to see it temporary?

> gdata-provider). Anyway, what's so wrong about more fine-grained settings when
> subscribing to a calendar (having good defaults)?

Because it adds UI. Any added UI is a possible source of confusion. New UI should (imo) only be added if it's really needed. Don't add it just because it adds more choice. Choice is not automatically good!

(In reply to comment #20)
> I really appreciate a solution like this. If you need to subscribe to a lot
> calendars, it's hard to keep track. So IMO this is really great :-)

Adding more places where you need to keep track of calendars making it easier to keep track sound paradoxal to me.



About the patch:

Please, PLEASE, don't add more difference between sunbird and lighting! PLEASE try to keep them united as much as possible. Why do you want the difference here?
(In reply to comment #21)
> Again, does not answer my question. There is one place to manage you calendars
> now, which works well if you have only a few calendars. With the proposed
> change, do you need to switch off a calendar in multiple places now, if you
> don't want to see it temporary?
I suspect hardly anybody switches off calendars temporarily for the today pane. The today pane simply has a different purpose. And I suspect it's obvious to people that they switch visibility of today pane calendars in a different mode/context.

> Because it adds UI. Any added UI is a possible source of confusion. New UI
> should (imo) only be added if it's really needed. Don't add it just because it
> adds more choice. Choice is not automatically good!
I know, but not only I desperately need this feature. I am annoyed that my today pane changes when I switch calendar visibility in calendar/task mode just to temporarily see some collegues' calendars. Those don't belong to my today pane which should only show my primary calendars which make up my day.

> (In reply to comment #20)
> > I really appreciate a solution like this. If you need to subscribe to a lot
> > calendars, it's hard to keep track. So IMO this is really great :-)
> 
> Adding more places where you need to keep track of calendars making it easier
> to keep track sound paradoxal to me.
I disagree, IMHO the focus/concept of the today pane is different from the calendar view.

> About the patch:
> 
> Please, PLEASE, don't add more difference between sunbird and lighting! PLEASE
> try to keep them united as much as possible. Why do you want the difference
> here?
The today pane is currently a lightning-only feature, accompanying e-mail. Why should we add this to the common tree?
Attached image Proposal of UI part —
Before you go to deep in discussion:
What do you both think about this implementation? It would display a grayed checkbox to indicate a three state checkbox, if any calendar is only visible in some areas.
It would furthermore leave the possibility to display it in none or all areas by clicking the checkbox to change it to checked or unchecked.

It would be great, if someone will be implementing this to leave the possibilities of the tree view configurable to enable extensions or future versions to expand this list.
(To my mind it should be expanded right now by elements "display events in calendar mode" and "display tasks in calendar mode")
This would also enable to leave this in Sunbird and to only display the options that apply to Sunbird...
A better UI is welcome, but I think we should stick to Christian's proposal that managing the UI of the today pane should actually be done fromm within the today pane, not the calendar list (in calendar mode).
Flags: wanted-calendar0.8+ → wanted-calendar0.9+
Well, I'm definitely no UI guru nor a designer...

I would like to see individual customizations (i.e. in Today Pane) PLUS a centralized configuration for everything - some place to see, whether a calendar is displayed everywhere, nowhere or just in some areas.

(In reply to comment #17)
> I fear that the items in the today pane and the main view not being in sync
> will be confusing. "Why does that event not show up?"
> 
> What is the impact of this feature for users that do not have a large list of
> calendar, but only a few? Will they still be able to switch one of the calendar
> on and off by just one single click?

With respect to these doubts it should be possible for everone to understand why and how things are displayed or hidden.
When the previuos calendar list should only apply to the calendar view, it should be made clear, that this selection of calendars does only apply to this mode (i.e. "Calendars in Calendar mode").
Attachment #298272 - Attachment is obsolete: false
Flags: wanted-calendar0.9+ → wanted-calendar1.0+
Attached image Philipp's UI Proposal —
Here's my UI proposal. This mimics the Thunderbird Folder Properties dialog and allows adding more calendar options in future bugs.
Attached image Suggested UI (obsolete) —
I've added a quick screenshot of what I think should be available.

The point of this option is to have your _personal_ stuff in the Today Pane and that's it.

Think about a secretary who manages 15-20 calendars. That user doesn't want it today pane to be cluttered with tons of events/tasks from other calendars. It defies the purpose of the Today Pane itself.

There's also, IMO, no need to offer more options than this one.
This shot obsoletes Ludovic's.
This is a proof of concept since 0.9 is no longer maintained "upstream".
Attachment #433803 - Attachment is obsolete: true
Sorry, but I won't find to drive this in the foreseeable future. I am eager to see this implemented though, it's quite odd to see a colleague's tasks and today pane mixed in when watching his calendar...
Assignee: dbo.moz → nobody
Status: ASSIGNED → NEW
Work on it, please. It's not only "odd", but highly annoying. This is a huge bug for some of us...
Unused strings lightning.calendarproperties.showevents.inagenda.label and lightning.calendarproperties.showtasks.label have been removed from comm-central with Bug 730685.
Here is an updated short description of what needs to be done, the above code can be used as a reference.

In the calendar properties dialog, provide options to not show the calendar in certain UI components, for example the today pane or calendar view. This is useful for certain calendars like Holidays or Moonphase calendars.

For UI, something similar to comment 26 should be done, although I don't know how useful it will be to allow disabling events in the tasks view. I'd start with something more simple like just showing/hiding events and tasks for the views vs today pane. Later on we can add other properties like allowing to exclude the calendar from scheduling.

This might not be a [good first bug], but for someone with persistence and a small amount of experience with XUL I think it would be a good next bug to work on.

It can also be done in two parts: First, create the tabbed interface but use CSS to hide the tabstrip if there is only one tab (the current situation). Second, the actual issue for this bug, adding the second tab.
Summary: Decouple today-pane/unifinder-todo and task mode calendars from calendar mode → Add a per-calendar preference to hide/show events for certain areas, i.e today pane, views
Whiteboard: [mentor=Fallen][lang=js][lang=xml][see comment 36]
Whiteboard: [mentor=Fallen][lang=js][lang=xml][see comment 36] → [mentor=Fallen][lang=js][lang=xml][see comment 38]
Mentor: philipp
Whiteboard: [mentor=Fallen][lang=js][lang=xml][see comment 38] → [lang=js][lang=xml][see comment 38]
Type: defect → enhancement
Component: Lightning Only → General

Potentially related is allowing the user to hide declined events on a per calendar basis - see also https://bugzilla.mozilla.org/show_bug.cgi?id=1527549

Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: