mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-03-01 22:07:41 +00:00
- Update the calendar sidebar to include an "agenda" view, currently
filled with temporary sample data. - Replace "new calendar" context entry (indeed, whole menu) with buttons for new, edit, delete. - Wire up new, edit, delete of calendars. - Make sure that we register our calendarManager listeners early, so that we see new calendars being created, if that's the first thing that happens.
This commit is contained in:
parent
748c3496e3
commit
ea186dd056
@ -80,6 +80,9 @@ var ltnCalendarViewController = {
|
||||
},
|
||||
|
||||
createNewEvent: function (aCalendar, aStartTime, aEndTime) {
|
||||
// XXX If we're adding an item from the view, let's make sure that
|
||||
// XXX the calendar in question is visible!
|
||||
|
||||
// if we're given both times, skip the dialog
|
||||
if (aStartTime && aEndTime && !aStartTime.isDate && !aEndTime.isDate) {
|
||||
var event = createEvent();
|
||||
@ -161,6 +164,18 @@ function ltnNewCalendar()
|
||||
openCalendarWizard(ltnSetTreeView);
|
||||
}
|
||||
|
||||
function ltnRemoveCalendar(cal)
|
||||
{
|
||||
// XXX in the future, we should ask the user if they want to delete the
|
||||
// XXX files associated with this calendar or not!
|
||||
getCalendarManager().unregisterCalendar(cal);
|
||||
}
|
||||
|
||||
function ltnEditCalendarProperties(cal)
|
||||
{
|
||||
return openCalendarProperties(cal, function() { });
|
||||
}
|
||||
|
||||
var ltnCalendarTreeView = {
|
||||
get rowCount()
|
||||
{
|
||||
@ -257,3 +272,5 @@ function ltnSetTreeView()
|
||||
}
|
||||
|
||||
window.addEventListener("load", ltnSetTreeView, false);
|
||||
// Wire up the calendar observers.
|
||||
window.addEventListener("load", getCalendarManager, false);
|
||||
|
@ -1,3 +1,26 @@
|
||||
function ltnSidebarCalendarSelected(tree)
|
||||
{
|
||||
var disabled = tree.view.selection.count == 0;
|
||||
document.getElementById("cal-sidebar-edit-calendar").disabled = disabled;
|
||||
document.getElementById("cal-sidebar-delete-calendar").disabled = disabled;
|
||||
}
|
||||
|
||||
function ltnSelectedCalendar()
|
||||
{
|
||||
var index = document.getElementById("calendarTree").currentIndex;
|
||||
return getCalendars()[index];
|
||||
}
|
||||
|
||||
function ltnDeleteSelectedCalendar()
|
||||
{
|
||||
ltnRemoveCalendar(ltnSelectedCalendar());
|
||||
}
|
||||
|
||||
function ltnEditSelectedCalendar()
|
||||
{
|
||||
ltnEditCalendarProperties(ltnSelectedCalendar());
|
||||
}
|
||||
|
||||
function selectedCalendarPane(event)
|
||||
{
|
||||
dump("selecting calendar pane\n");
|
||||
|
@ -19,23 +19,96 @@
|
||||
<vbox id="folderPaneBox">
|
||||
<splitter id="folderpaneCalendarSplitter" collapse="after" persist="state"/>
|
||||
|
||||
<popupset>
|
||||
<popup id="ltnCalendarTreeContext" onpopupshowing="return true;">
|
||||
<menuitem id="ltnCalendarTreeContext-newCalendar"
|
||||
label="New Calendar"
|
||||
oncommand="ltnNewCalendar();"/>
|
||||
</popup>
|
||||
</popupset>
|
||||
|
||||
<tree id="calendarTree" onfocus="selectedCalendarPane(event)" flex="1"
|
||||
context="ltnCalendarTreeContext">
|
||||
<treecols>
|
||||
<treecol id="col-calendar-Checkbox" cycler="true" fixed="true" />
|
||||
<treecol id="col-calendar-Calendar" label="Calendar" flex="1"/>
|
||||
</treecols>
|
||||
<treechildren>
|
||||
</treechildren>
|
||||
</tree>
|
||||
<tabbox flex="1">
|
||||
<tabs>
|
||||
<tab label="Agenda"/>
|
||||
<tab label="Calendars"/>
|
||||
</tabs>
|
||||
<tabpanels flex="1">
|
||||
<vbox>
|
||||
<hbox>
|
||||
<spacer flex="1"/>
|
||||
<label value="View:"/>
|
||||
<menulist label="View" oncommand="updateAgendaView(this);">
|
||||
<menupopup>
|
||||
<menuitem label="All"/>
|
||||
<menuitem label="Events"/>
|
||||
<menuitem label="Tasks"/>
|
||||
<menuitem label="Reminders"/>
|
||||
<menuseparator/>
|
||||
<menuitem label="Home"/>
|
||||
<menuitem label="Work"/>
|
||||
<menuseparator/>
|
||||
<menuitem value="customize" label="Customize..."/>
|
||||
</menupopup>
|
||||
</menulist>
|
||||
<spacer/>
|
||||
</hbox>
|
||||
<deck id="agenda-viewcustomize-deck" selectedIndex="0" flex="1">
|
||||
<tree id="agendaTree" hidecolumnpicker="true" flex="1">
|
||||
<treecols>
|
||||
<treecol id="col-agenda-item" primary="true" label="Item" flex="3"/>
|
||||
<treecol id="col-agenda-when" label="" flex="1"/>
|
||||
</treecols>
|
||||
<treechildren>
|
||||
|
||||
<!-- sample tree content temporary -->
|
||||
<treeitem container="true" open="false">
|
||||
<treerow><treecell label="Recent (1)"/></treerow>
|
||||
<treechildren>
|
||||
<treeitem><treerow><treecell label="File expenses"/><treecell label="Sun"/></treerow></treeitem>
|
||||
</treechildren>
|
||||
</treeitem>
|
||||
|
||||
<treeitem container="true" open="true">
|
||||
<treerow><treecell label="Today (2)"/></treerow>
|
||||
<treechildren>
|
||||
<treeitem><treerow><treecell label="Meeting"/><treecell label="11am"/></treerow></treeitem>
|
||||
<treeitem><treerow><treecell label="Lunch"/><treecell label="12:30am"/></treerow></treeitem>
|
||||
</treechildren>
|
||||
</treeitem>
|
||||
|
||||
<treeitem container="true" open="false">
|
||||
<treerow><treecell label="Tomorrow (2)"/></treerow>
|
||||
<treechildren>
|
||||
<treeitem><treerow><treecell label="Lunch with Dad"/><treecell label="11:30am"/></treerow></treeitem>
|
||||
<treeitem><treerow><treecell label="Accountant"/><treecell label="2pm"/></treerow></treeitem>
|
||||
</treechildren>
|
||||
</treeitem>
|
||||
|
||||
<treeitem container="true" open="false">
|
||||
<treerow><treecell label="Upcoming (3)"/></treerow>
|
||||
<treechildren>
|
||||
<treeitem><treerow><treecell label="OC Night"/><treecell label="Thu 7:30pm"/></treerow></treeitem>
|
||||
<treeitem><treerow><treecell label="ZISC presentation"/><treecell label="May 24"/></treerow></treeitem>
|
||||
<treeitem><treerow><treecell label="Retirement"/><treecell label="2025"/></treerow></treeitem>
|
||||
</treechildren>
|
||||
</treeitem>
|
||||
<!-- end sample tree content. temporary -->
|
||||
</treechildren>
|
||||
</tree>
|
||||
<label value="Customize yer views!"/>
|
||||
</deck>
|
||||
</vbox> <!-- end of agenda tab panel -->
|
||||
|
||||
<vbox flex="1">
|
||||
<hbox>
|
||||
<button label="New..." oncommand="ltnNewCalendar();"/>
|
||||
<button id="cal-sidebar-edit-calendar" label="Edit..." disabled="true" oncommand="ltnEditSelectedCalendar();"/>
|
||||
<spacer orient="horizontal" flex="5"/>
|
||||
<button id="cal-sidebar-delete-calendar" label="Delete" disabled="true" oncommand="ltnDeleteSelectedCalendar();"/>
|
||||
</hbox>
|
||||
<tree id="calendarTree" hidecolumnpicker="true" seltype="single" onfocus="selectedCalendarPane(event)" flex="1" onselect="ltnSidebarCalendarSelected(this);">
|
||||
<treecols>
|
||||
<treecol id="col-calendar-Checkbox" cycler="true" fixed="true" />
|
||||
<treecol id="col-calendar-Calendar" label="Calendar" flex="1"/>
|
||||
</treecols>
|
||||
<treechildren>
|
||||
</treechildren>
|
||||
</tree>
|
||||
</vbox>
|
||||
</tabpanels>
|
||||
</tabbox>
|
||||
</vbox>
|
||||
|
||||
<deck id="displayDeck">
|
||||
|
@ -9,6 +9,8 @@ en-US.jar:
|
||||
locale/en-US/lightning/lightning.dtd (locale/lightning.dtd)
|
||||
|
||||
calendar.jar:
|
||||
content/calendar/calendarProperties.xul (/calendar/resources/content/calendarProperties.xul)
|
||||
content/calendar/calendarProperties.js (/calendar/resources/content/calendarProperties.js)
|
||||
content/calendar/calendarCreation.xul (/calendar/resources/content/calendarCreation.xul)
|
||||
content/calendar/calendarCreation.js (/calendar/resources/content/calendarCreation.js)
|
||||
content/calendar/calendarUtils.js (/calendar/resources/content/calendarUtils.js)
|
||||
|
Loading…
x
Reference in New Issue
Block a user