зеркало из https://github.com/mozilla/gecko-dev.git
Bug fixing for to do items, adding in tooltips for bug 155885.
This commit is contained in:
Родитель
a01b0356b3
Коммит
020280ec81
|
@ -78,7 +78,7 @@ h1 {
|
|||
|
||||
<td id="mozver">
|
||||
<h1>
|
||||
<a id="mozlink" href="http://www.mozilla.org/projects/calendar/" target="_new">Mozilla Calendar 2002062715-cal</a>
|
||||
<a id="mozlink" href="http://www.mozilla.org/projects/calendar/" target="_new">Mozilla Calendar 2002070410-cal</a>
|
||||
</h1>
|
||||
<script type="application/x-javascript">
|
||||
// using try..catch to handle empty useragents and other cases where the regex fails to apply
|
||||
|
|
|
@ -443,6 +443,8 @@ function newToDoCommand()
|
|||
|
||||
|
||||
calendarToDo.due.setTime( dueDate );
|
||||
|
||||
calendarToDo.start.setTime( dueDate );
|
||||
|
||||
var args = new Object();
|
||||
args.mode = "new";
|
||||
|
@ -623,38 +625,6 @@ function modifyToDoDialogResponse( calendarToDo )
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* Called when a user hovers over an element and the text for the mouse over is changed.
|
||||
*/
|
||||
|
||||
function getPreviewText( calendarEventDisplay )
|
||||
{
|
||||
var HolderBox = document.createElement( "vbox" );
|
||||
|
||||
if (calendarEventDisplay.event.title)
|
||||
{
|
||||
var TitleHtml = document.createElement( "description" );
|
||||
var TitleText = document.createTextNode( "Title: "+calendarEventDisplay.event.title );
|
||||
TitleHtml.appendChild( TitleText );
|
||||
HolderBox.appendChild( TitleHtml );
|
||||
}
|
||||
|
||||
var DateHtml = document.createElement( "description" );
|
||||
var DateText = document.createTextNode( "Start: "+calendarEventDisplay.event.start.toString() );
|
||||
DateHtml.appendChild( DateText );
|
||||
HolderBox.appendChild( DateHtml );
|
||||
|
||||
if (calendarEventDisplay.event.description)
|
||||
{
|
||||
var DescriptionHtml = document.createElement( "description" );
|
||||
var DescriptionText = document.createTextNode( "Description: "+calendarEventDisplay.event.description );
|
||||
DescriptionHtml.appendChild( DescriptionText );
|
||||
HolderBox.appendChild( DescriptionHtml );
|
||||
}
|
||||
|
||||
return ( HolderBox );
|
||||
}
|
||||
|
||||
function alertCalendarVersion()
|
||||
{
|
||||
window.openDialog( getBrowserURL(), "_blank", "chrome,all,dialog=no", 'chrome://calendar/content/about.html' );
|
||||
|
@ -691,3 +661,136 @@ function closeCalendar()
|
|||
{
|
||||
self.close();
|
||||
}
|
||||
|
||||
|
||||
function changeToolTipTextForToDo( event )
|
||||
{
|
||||
var toDoItem = event.currentTarget.toDo;
|
||||
|
||||
var Html = document.getElementById( "savetip" );
|
||||
|
||||
while( Html.hasChildNodes() )
|
||||
{
|
||||
Html.removeChild( Html.firstChild );
|
||||
}
|
||||
|
||||
var HolderBox = document.createElement( "vbox" );
|
||||
|
||||
if (toDoItem.title)
|
||||
{
|
||||
var TitleHtml = document.createElement( "description" );
|
||||
var TitleText = document.createTextNode( "Title: "+toDoItem.title );
|
||||
TitleHtml.appendChild( TitleText );
|
||||
HolderBox.appendChild( TitleHtml );
|
||||
}
|
||||
|
||||
var DateHtml = document.createElement( "description" );
|
||||
var startDate = new Date( toDoItem.start.getTime() );
|
||||
var DateText = document.createTextNode( "Start Date: "+gCalendarWindow.dateFormater.getFormatedDate( startDate ) );
|
||||
DateHtml.appendChild( DateText );
|
||||
HolderBox.appendChild( DateHtml );
|
||||
|
||||
var DateHtml = document.createElement( "description" );
|
||||
var dueDate = new Date( toDoItem.due.getTime() );
|
||||
var DateText = document.createTextNode( "Due Date: "+gCalendarWindow.dateFormater.getFormatedDate( dueDate ) );
|
||||
DateHtml.appendChild( DateText );
|
||||
HolderBox.appendChild( DateHtml );
|
||||
|
||||
if (toDoItem.description)
|
||||
{
|
||||
var DescriptionHtml = document.createElement( "description" );
|
||||
var DescriptionText = document.createTextNode( "Description: "+toDoItem.description );
|
||||
DescriptionHtml.appendChild( DescriptionText );
|
||||
HolderBox.appendChild( DescriptionHtml );
|
||||
}
|
||||
|
||||
Html.appendChild( HolderBox );
|
||||
}
|
||||
|
||||
function changeToolTipTextForEvent( event )
|
||||
{
|
||||
var thisEvent = event.currentTarget.event;
|
||||
|
||||
var Html = document.getElementById( "savetip" );
|
||||
|
||||
while( Html.hasChildNodes() )
|
||||
{
|
||||
Html.removeChild( Html.firstChild );
|
||||
}
|
||||
|
||||
var HolderBox = getPreviewText( event.currentTarget.event );
|
||||
|
||||
Html.appendChild( HolderBox );
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when a user hovers over an element and the text for the mouse over is changed.
|
||||
*/
|
||||
|
||||
function getPreviewText( calendarEvent )
|
||||
{
|
||||
var HolderBox = document.createElement( "vbox" );
|
||||
|
||||
if (calendarEvent.title)
|
||||
{
|
||||
var TitleHtml = document.createElement( "description" );
|
||||
var TitleText = document.createTextNode( "Title: "+calendarEvent.title );
|
||||
TitleHtml.appendChild( TitleText );
|
||||
HolderBox.appendChild( TitleHtml );
|
||||
}
|
||||
|
||||
var DateHtml = document.createElement( "description" );
|
||||
var startDate = new Date( calendarEvent.start.getTime() );
|
||||
var DateText = document.createTextNode( "Start: "+gCalendarWindow.dateFormater.getFormatedDate( startDate )+" "+gCalendarWindow.dateFormater.getFormatedTime( startDate ) );
|
||||
DateHtml.appendChild( DateText );
|
||||
HolderBox.appendChild( DateHtml );
|
||||
|
||||
var DateHtml = document.createElement( "description" );
|
||||
var endDate = new Date( calendarEvent.end.getTime() );
|
||||
var DateText = document.createTextNode( "End: "+gCalendarWindow.dateFormater.getFormatedDate( endDate )+" "+gCalendarWindow.dateFormater.getFormatedTime( endDate ) );
|
||||
DateHtml.appendChild( DateText );
|
||||
HolderBox.appendChild( DateHtml );
|
||||
|
||||
if (calendarEvent.description)
|
||||
{
|
||||
var DescriptionHtml = document.createElement( "description" );
|
||||
var DescriptionText = document.createTextNode( "Description: "+calendarEvent.description );
|
||||
DescriptionHtml.appendChild( DescriptionText );
|
||||
HolderBox.appendChild( DescriptionHtml );
|
||||
}
|
||||
|
||||
return ( HolderBox );
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when a user hovers over an element and the text for the mouse over is changed.
|
||||
*/
|
||||
|
||||
function getPreviewTextForRepeatingEvent( calendarEventDisplay )
|
||||
{
|
||||
var HolderBox = document.createElement( "vbox" );
|
||||
|
||||
if (calendarEventDisplay.event.title)
|
||||
{
|
||||
var TitleHtml = document.createElement( "description" );
|
||||
var TitleText = document.createTextNode( "Title: "+calendarEventDisplay.event.title );
|
||||
TitleHtml.appendChild( TitleText );
|
||||
HolderBox.appendChild( TitleHtml );
|
||||
}
|
||||
|
||||
var DateHtml = document.createElement( "description" );
|
||||
var startDate = new Date( calendarEventDisplay.displayDate.getTime() );
|
||||
var DateText = document.createTextNode( "Start: "+gCalendarWindow.dateFormater.getFormatedDate( startDate )+" "+gCalendarWindow.dateFormater.getFormatedTime( startDate ) );
|
||||
DateHtml.appendChild( DateText );
|
||||
HolderBox.appendChild( DateHtml );
|
||||
|
||||
if (calendarEventDisplay.event.description)
|
||||
{
|
||||
var DescriptionHtml = document.createElement( "description" );
|
||||
var DescriptionText = document.createTextNode( "Description: "+calendarEventDisplay.event.description );
|
||||
DescriptionHtml.appendChild( DescriptionText );
|
||||
HolderBox.appendChild( DescriptionHtml );
|
||||
}
|
||||
|
||||
return ( HolderBox );
|
||||
}
|
||||
|
|
|
@ -110,6 +110,7 @@
|
|||
<keyset>
|
||||
<key id="delete_key" keycode="VK_DELETE" observes="delete_command"/>
|
||||
<key id="new_event_key" key="N" modifiers="control" observes="new_command"/>
|
||||
<key id="new_todo_key" key="M" modifiers="control" observes="new_todo_command"/>
|
||||
<key id="modify_event_key" key="E" modifiers="control" observes="modify_command"/>
|
||||
<key id="import_key" key="I" modifiers="control" observes="import_command"/>
|
||||
<key id="export_key" key="O" modifiers="control" observes="export_command"/>
|
||||
|
@ -161,10 +162,9 @@
|
|||
|
||||
|
||||
<!-- Pop up menus -->
|
||||
<tooltip id="savetip"/>
|
||||
|
||||
<popup id="context-menu">
|
||||
<menuitem label="&calendar.context.newevent.label;" accesskey="&calendar.context.newevent.accesskey;" observes="new_command"/>
|
||||
<menuitem label="&calendar.context.newtodo.label;" accesskey="&calendar.context.newtodo.accesskey;" observes="new_todo_command"/>
|
||||
<menuitem label="&calendar.context.modifyevent.label;" accesskey="&calendar.context.modifyevent.accesskey;" observes="modify_command" />
|
||||
<menuitem label="&calendar.context.deleteevent.label;" accesskey="&calendar.context.deleteevent.accesskey;" observes="delete_command"/>
|
||||
|
||||
|
@ -239,9 +239,9 @@
|
|||
<checkbox label="&calendar.unifinder.withalarms.label;" oncommand="unifinderShowEventsWithAlarmsOnly( event )" collapsed="true"/>
|
||||
<checkbox label="&calendar.unifinder.todayandfuture.label;" id="unifinder-future-events" oncommand="unifinderShowFutureEventsOnly( event )" persist="checked"/>
|
||||
</box>
|
||||
<listbox id="unifinder-search-results-listbox" seltype="multiple" onselect="unifinderClickEvent( this )"
|
||||
<listbox tooltip="savetip" id="unifinder-search-results-listbox" seltype="multiple" onselect="unifinderClickEvent( this )"
|
||||
class="unifinder-tree-class" flex="1" ondragover="return( false );"/>
|
||||
<splitter collapse="after" persist="state hidden collapsed left"
|
||||
<splitter id="calendar-todo-splitter" collapse="after" persist="state hidden collapsed top"
|
||||
class="chromeclass-extrachrome" orient="vertical">
|
||||
<grippy/>
|
||||
</splitter>
|
||||
|
@ -252,7 +252,7 @@
|
|||
<box align="center">
|
||||
<checkbox id="only-completed-checkbox" label="&calendar.unifinder.hidecompletedtodos.label;" oncommand="toDoUnifinderRefesh( event )"/>
|
||||
</box>
|
||||
<listbox flex="1" id="unifinder-todo-listbox" seltype="single">
|
||||
<listbox tooltip="savetip" flex="1" id="unifinder-todo-listbox" seltype="single">
|
||||
<listhead>
|
||||
<listheader label="&calendar.unifinder.listbox.done.label;"/>
|
||||
<listheader label="&calendar.unifinder.listbox.title.label;"/>
|
||||
|
@ -263,7 +263,7 @@
|
|||
<listcol flex="5"/>
|
||||
<listcol flex="3"/>
|
||||
</listcols>
|
||||
<listitem allowevents="true" collapsed="true" name="sample-todo-listitem" ondblclick="unifinderDoubleClickToDo( event )">
|
||||
<listitem allowevents="true" onmouseover="changeToolTipTextForToDo( event )" collapsed="true" name="sample-todo-listitem" ondblclick="unifinderDoubleClickToDo( event )">
|
||||
<listcell name="checkbox-listcell">
|
||||
<checkbox name="firstcheckbox" oncommand="checkboxClick( event )"/>
|
||||
</listcell>
|
||||
|
@ -274,7 +274,7 @@
|
|||
</vbox>
|
||||
</vbox>
|
||||
|
||||
<splitter id="calendar-splitter" collapse="before" persist="state hidden collapsed"
|
||||
<splitter id="calendar-splitter" collapse="before" persist="state hidden collapsed left"
|
||||
class="chromeclass-extrachrome sidebar-splitter" orient="horizontal">
|
||||
<grippy class="sidebar-splitter-grippy"/>
|
||||
</splitter>
|
||||
|
|
|
@ -524,12 +524,16 @@ CalendarEventDataSource.prototype.getAllToDos = function()
|
|||
* CalendarEvent orderToDosByDueDate.
|
||||
*
|
||||
* NOTES
|
||||
* Used to sort table by date
|
||||
* Used to sort todo table by date
|
||||
*/
|
||||
|
||||
CalendarEventDataSource.prototype.orderToDosByDueDate = function( toDoA, toDoB )
|
||||
{
|
||||
return( toDoA.due.getTime() - toDoB.due.getTime() );
|
||||
if( ( toDoA.due.getTime() - toDoB.due.getTime() ) == 0 )
|
||||
{
|
||||
return( toDoA.start.getTime() - toDoB.start.getTime() );
|
||||
}
|
||||
return( toDoA.due.getTime() - toDoB.due.getTime() );
|
||||
}
|
||||
|
||||
|
||||
|
@ -537,7 +541,7 @@ CalendarEventDataSource.prototype.orderToDosByDueDate = function( toDoA, toDoB )
|
|||
* CalendarEvent orderEventsByDisplayDate.
|
||||
*
|
||||
* NOTES
|
||||
* Used to sort table by date
|
||||
* Used to sort events table by date
|
||||
*/
|
||||
|
||||
CalendarEventDataSource.prototype.orderEventsByDisplayDate = function( eventA, eventB )
|
||||
|
@ -553,7 +557,7 @@ CalendarEventDataSource.prototype.orderEventsByDisplayDate = function( eventA, e
|
|||
* CalendarEvent orderRawEventsByDate.
|
||||
*
|
||||
* NOTES
|
||||
* Used to sort table by date
|
||||
* Used to sort events table by date
|
||||
*/
|
||||
|
||||
CalendarEventDataSource.prototype.orderRawEventsByDate = function( eventA, eventB )
|
||||
|
|
|
@ -163,7 +163,6 @@ function loadCalendarEventDialog()
|
|||
}
|
||||
|
||||
//file attachments;
|
||||
|
||||
for( var i = 0; i < gEvent.attachmentsArray.Count(); i++ )
|
||||
{
|
||||
var thisAttachment = gEvent.attachmentsArray.QueryElementAt( i, Components.interfaces.nsIMsgAttachment );
|
||||
|
@ -412,7 +411,6 @@ function checkEndTime()
|
|||
|
||||
return( true );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -244,7 +244,14 @@ function getCalendarDataFilePath()
|
|||
DirUtilsInstance = DirUtilsComponent.createInstance(Components.interfaces.nsIProperties);
|
||||
nsIFile = Components.interfaces.nsIFile;
|
||||
FilePath = DirUtilsInstance.get("ProfD", nsIFile).path;
|
||||
FilePath += "/tempIcal.ics";
|
||||
var aFile = Components.classes["@mozilla.org/file/local;1"].createInstance();
|
||||
var aLocalFile = aFile.QueryInterface(Components.interfaces.nsILocalFile);
|
||||
if (!aLocalFile) return false;
|
||||
|
||||
aLocalFile.initWithPath(FilePath);
|
||||
aLocalFile.append( "tempIcal.ics" );
|
||||
|
||||
FilePath = aLocalFile.path;
|
||||
}
|
||||
catch(ex)
|
||||
{
|
||||
|
|
|
@ -100,7 +100,7 @@
|
|||
<menu id="menu_File">
|
||||
<menupopup id="menu_FilePopup">
|
||||
<menuitem id="calendar-new-event-menu" key="new_event_key" label="&event.new.event;" observes="new_command"/>
|
||||
<menuitem id="calendar-new-todo-menu" key="new_event_key" label="New To Do Item" observes="new_todo_command"/>
|
||||
<menuitem id="calendar-new-todo-menu" key="new_todo_key" label="&event.new.todo;" observes="new_todo_command"/>
|
||||
<menuitem id="unifinder-modify-menu" key="modify_event_key" label="&event.edit.event;" observes="modify_command"/>
|
||||
<menuseparator/>
|
||||
<menuitem id="calendar-mail-event" observes="send_event_command" label="&event.mail.event;"/>
|
||||
|
|
|
@ -125,6 +125,10 @@ function loadCalendarToDoDialog()
|
|||
|
||||
setDateFieldValue( "due-date-text", dueDate );
|
||||
|
||||
var startDate = new Date( gToDo.start.getTime() );
|
||||
|
||||
setDateFieldValue( "start-date-text", startDate );
|
||||
|
||||
if( gToDo.completed.getTime() > 0 )
|
||||
{
|
||||
var completedDate = new Date( gToDo.completed.getTime() );
|
||||
|
@ -186,6 +190,15 @@ function onOKCommand()
|
|||
gToDo.due.year = dueDate.getYear()+1900;
|
||||
gToDo.due.month = dueDate.getMonth();
|
||||
gToDo.due.day = dueDate.getDate();
|
||||
gToDo.due.hour = 23;
|
||||
gToDo.due.minute = 59;
|
||||
|
||||
var startDate = getDateTimeFieldValue( "start-date-text" );
|
||||
gToDo.start.year = startDate.getYear()+1900;
|
||||
gToDo.start.month = startDate.getMonth();
|
||||
gToDo.start.day = startDate.getDate();
|
||||
gToDo.start.hour = 0;
|
||||
gToDo.start.minute = 0;
|
||||
|
||||
gToDo.privateEvent = getFieldValue( "private-checkbox", "checked" );
|
||||
|
||||
|
@ -263,7 +276,32 @@ function onDatePick( datepopup )
|
|||
|
||||
datepopup.dateField.editDate = datepopup.value;
|
||||
|
||||
var Now = new Date();
|
||||
checkStartAndDueDates();
|
||||
}
|
||||
|
||||
function checkStartAndDueDates()
|
||||
{
|
||||
var StartDate = getDateTimeFieldValue( "start-date-text" );
|
||||
|
||||
var DueDate = getDateTimeFieldValue( "due-date-text" );
|
||||
|
||||
if( DueDate.getTime() < StartDate.getTime() )
|
||||
{
|
||||
//show alert message, disable OK button
|
||||
document.getElementById( "start-date-warning" ).removeAttribute( "collapsed" );
|
||||
|
||||
document.getElementById( "ok" ).setAttribute( "disabled", true );
|
||||
}
|
||||
else
|
||||
{
|
||||
//enable OK button
|
||||
|
||||
document.getElementById( "start-date-warning" ).setAttribute( "collapsed", true );
|
||||
|
||||
document.getElementById( "ok" ).removeAttribute( "disabled" );
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -119,6 +119,17 @@
|
|||
<textbox id="title-field"/>
|
||||
</row>
|
||||
|
||||
<!-- Start Date -->
|
||||
<row align="center">
|
||||
<hbox class="field-label-box-class" pack="end">
|
||||
<label value="&newtodo.startdate.label;"/>
|
||||
</hbox>
|
||||
<hbox id="start-date-box" align="center">
|
||||
<textbox class="date-text-class" id="start-date-text" readonly="true" onmousedown="prepareDatePicker('start-date-text')" popup="oe-date-picker-popup" position="after_start"/>
|
||||
<image id="start-date-button" class="event-date-button-class" onmousedown="prepareDatePicker('start-date-text')" popup="oe-date-picker-popup" position="after_start" />
|
||||
</hbox>
|
||||
</row>
|
||||
|
||||
<!-- Due Date -->
|
||||
<row align="center">
|
||||
<hbox class="field-label-box-class" pack="end">
|
||||
|
@ -127,6 +138,7 @@
|
|||
<hbox id="due-date-box" align="center">
|
||||
<textbox class="date-text-class" id="due-date-text" readonly="true" onmousedown="prepareDatePicker('due-date-text')" popup="oe-date-picker-popup" position="after_start"/>
|
||||
<image id="start-date-button" class="event-date-button-class" onmousedown="prepareDatePicker('due-date-text')" popup="oe-date-picker-popup" position="after_start" />
|
||||
<label id="start-date-warning" class="warning-text-class" value="&newtodo.starttime.warning;" collapsed="true"/>
|
||||
</hbox>
|
||||
</row>
|
||||
|
||||
|
|
|
@ -430,7 +430,7 @@ CalendarWindow.prototype.mouseOverInfo = function( calendarEvent, event )
|
|||
Html.removeChild( Html.firstChild );
|
||||
}
|
||||
|
||||
var HolderBox = getPreviewText( event.currentTarget.calendarEventDisplay );
|
||||
var HolderBox = getPreviewTextForRepeatingEvent( event.currentTarget.calendarEventDisplay );
|
||||
|
||||
Html.appendChild( HolderBox );
|
||||
}
|
||||
|
|
|
@ -163,7 +163,6 @@ function loadCalendarEventDialog()
|
|||
}
|
||||
|
||||
//file attachments;
|
||||
|
||||
for( var i = 0; i < gEvent.attachmentsArray.Count(); i++ )
|
||||
{
|
||||
var thisAttachment = gEvent.attachmentsArray.QueryElementAt( i, Components.interfaces.nsIMsgAttachment );
|
||||
|
@ -412,7 +411,6 @@ function checkEndTime()
|
|||
|
||||
return( true );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -100,7 +100,7 @@
|
|||
<menu id="menu_File">
|
||||
<menupopup id="menu_FilePopup">
|
||||
<menuitem id="calendar-new-event-menu" key="new_event_key" label="&event.new.event;" observes="new_command"/>
|
||||
<menuitem id="calendar-new-todo-menu" key="new_event_key" label="New To Do Item" observes="new_todo_command"/>
|
||||
<menuitem id="calendar-new-todo-menu" key="new_todo_key" label="&event.new.todo;" observes="new_todo_command"/>
|
||||
<menuitem id="unifinder-modify-menu" key="modify_event_key" label="&event.edit.event;" observes="modify_command"/>
|
||||
<menuseparator/>
|
||||
<menuitem id="calendar-mail-event" observes="send_event_command" label="&event.mail.event;"/>
|
||||
|
|
|
@ -125,6 +125,10 @@ function loadCalendarToDoDialog()
|
|||
|
||||
setDateFieldValue( "due-date-text", dueDate );
|
||||
|
||||
var startDate = new Date( gToDo.start.getTime() );
|
||||
|
||||
setDateFieldValue( "start-date-text", startDate );
|
||||
|
||||
if( gToDo.completed.getTime() > 0 )
|
||||
{
|
||||
var completedDate = new Date( gToDo.completed.getTime() );
|
||||
|
@ -186,6 +190,15 @@ function onOKCommand()
|
|||
gToDo.due.year = dueDate.getYear()+1900;
|
||||
gToDo.due.month = dueDate.getMonth();
|
||||
gToDo.due.day = dueDate.getDate();
|
||||
gToDo.due.hour = 23;
|
||||
gToDo.due.minute = 59;
|
||||
|
||||
var startDate = getDateTimeFieldValue( "start-date-text" );
|
||||
gToDo.start.year = startDate.getYear()+1900;
|
||||
gToDo.start.month = startDate.getMonth();
|
||||
gToDo.start.day = startDate.getDate();
|
||||
gToDo.start.hour = 0;
|
||||
gToDo.start.minute = 0;
|
||||
|
||||
gToDo.privateEvent = getFieldValue( "private-checkbox", "checked" );
|
||||
|
||||
|
@ -263,7 +276,32 @@ function onDatePick( datepopup )
|
|||
|
||||
datepopup.dateField.editDate = datepopup.value;
|
||||
|
||||
var Now = new Date();
|
||||
checkStartAndDueDates();
|
||||
}
|
||||
|
||||
function checkStartAndDueDates()
|
||||
{
|
||||
var StartDate = getDateTimeFieldValue( "start-date-text" );
|
||||
|
||||
var DueDate = getDateTimeFieldValue( "due-date-text" );
|
||||
|
||||
if( DueDate.getTime() < StartDate.getTime() )
|
||||
{
|
||||
//show alert message, disable OK button
|
||||
document.getElementById( "start-date-warning" ).removeAttribute( "collapsed" );
|
||||
|
||||
document.getElementById( "ok" ).setAttribute( "disabled", true );
|
||||
}
|
||||
else
|
||||
{
|
||||
//enable OK button
|
||||
|
||||
document.getElementById( "start-date-warning" ).setAttribute( "collapsed", true );
|
||||
|
||||
document.getElementById( "ok" ).removeAttribute( "disabled" );
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -119,6 +119,17 @@
|
|||
<textbox id="title-field"/>
|
||||
</row>
|
||||
|
||||
<!-- Start Date -->
|
||||
<row align="center">
|
||||
<hbox class="field-label-box-class" pack="end">
|
||||
<label value="&newtodo.startdate.label;"/>
|
||||
</hbox>
|
||||
<hbox id="start-date-box" align="center">
|
||||
<textbox class="date-text-class" id="start-date-text" readonly="true" onmousedown="prepareDatePicker('start-date-text')" popup="oe-date-picker-popup" position="after_start"/>
|
||||
<image id="start-date-button" class="event-date-button-class" onmousedown="prepareDatePicker('start-date-text')" popup="oe-date-picker-popup" position="after_start" />
|
||||
</hbox>
|
||||
</row>
|
||||
|
||||
<!-- Due Date -->
|
||||
<row align="center">
|
||||
<hbox class="field-label-box-class" pack="end">
|
||||
|
@ -127,6 +138,7 @@
|
|||
<hbox id="due-date-box" align="center">
|
||||
<textbox class="date-text-class" id="due-date-text" readonly="true" onmousedown="prepareDatePicker('due-date-text')" popup="oe-date-picker-popup" position="after_start"/>
|
||||
<image id="start-date-button" class="event-date-button-class" onmousedown="prepareDatePicker('due-date-text')" popup="oe-date-picker-popup" position="after_start" />
|
||||
<label id="start-date-warning" class="warning-text-class" value="&newtodo.starttime.warning;" collapsed="true"/>
|
||||
</hbox>
|
||||
</row>
|
||||
|
||||
|
|
|
@ -412,6 +412,7 @@ function refreshEventTree( eventArray )
|
|||
|
||||
treeItem.event = calendarEvent;
|
||||
|
||||
treeItem.setAttribute( "onmouseover", "changeToolTipTextForEvent( event )" );
|
||||
treeItem.setAttribute( "ondblclick" , "unifinderDoubleClickEvent(" + calendarEvent.id + ")" );
|
||||
//treeItem.setAttribute( "onclick" , "unifinderClickEvent(" + calendarEvent.id + ")" );
|
||||
|
||||
|
|
|
@ -194,6 +194,16 @@ function refreshToDoTree( eventArray )
|
|||
|
||||
treeItem.toDo = calendarToDo;
|
||||
|
||||
var now = new Date();
|
||||
|
||||
var thisMorning = new Date( now.getFullYear(), now.getMonth(), now.getDate(), 0, 0, 0 );
|
||||
|
||||
if( calendarToDo.start.getTime() <= thisMorning.getTime() )
|
||||
{
|
||||
//this task should be started
|
||||
treeItem.setAttribute( "started", "true" );
|
||||
}
|
||||
|
||||
var completed = calendarToDo.completed.getTime();
|
||||
|
||||
if( completed > 0 )
|
||||
|
@ -210,7 +220,9 @@ function refreshToDoTree( eventArray )
|
|||
|
||||
var now = new Date();
|
||||
|
||||
if( now.getTime() > dueDate.getTime() )
|
||||
var tonightMidnight = new Date( now.getFullYear(), now.getMonth(), now.getDate(), 23, 59, 59 );
|
||||
|
||||
if( now.getTime() > tonightMidnight.getTime() )
|
||||
{
|
||||
/* for setting some css */
|
||||
treeItem.setAttribute( "overdue", "true" );
|
||||
|
|
|
@ -95,7 +95,9 @@
|
|||
|
||||
<!ENTITY newtodo.completed.label "Completed">
|
||||
<!ENTITY newtodo.duedate.label "Due Date">
|
||||
<!ENTITY newtodo.startdate.label "Start Date">
|
||||
<!ENTITY newtodo.priority.label "Priority">
|
||||
<!ENTITY newtodo.starttime.warning "Your start date occurs after your due date.">
|
||||
|
||||
<!ENTITY calendar.confirm.deleteevent "Are you sure you want to delete this event titled: " >
|
||||
<!ENTITY calendar.confirm.deleteuntitledevent "Are you sure you want to delete this untitled event?" >
|
||||
|
@ -106,8 +108,8 @@
|
|||
<!ENTITY event.title.new "New Event" >
|
||||
<!ENTITY event.title.edit "Edit Event" >
|
||||
|
||||
<!ENTITY todo.title.new "New To Do Item" >
|
||||
<!ENTITY todo.title.edit "Edit To Do Item" >
|
||||
<!ENTITY todo.title.new "New Task">
|
||||
<!ENTITY todo.title.edit "Edit Task">
|
||||
|
||||
<!ENTITY event.tip.new "Create a new event." >
|
||||
<!ENTITY event.tip.edit "Edit an existing event." >
|
||||
|
@ -130,8 +132,8 @@
|
|||
|
||||
<!ENTITY calendar.unifinder.withalarms.label "With Alarms" >
|
||||
<!ENTITY calendar.unifinder.todayandfuture.label "Hide Past Events" >
|
||||
<!ENTITY calendar.unifinder.todoitems.label "To Do Items" >
|
||||
<!ENTITY calendar.unifinder.hidecompletedtodos.label "Hide Completed To Do Items">
|
||||
<!ENTITY calendar.unifinder.todoitems.label "Tasks" >
|
||||
<!ENTITY calendar.unifinder.hidecompletedtodos.label "Hide Completed Tasks">
|
||||
|
||||
<!ENTITY calendar.unifinder.listbox.done.label "Done">
|
||||
<!ENTITY calendar.unifinder.listbox.priority.label "Priority">
|
||||
|
@ -191,6 +193,8 @@
|
|||
<!-- Context Menu -->
|
||||
<!ENTITY calendar.context.newevent.label "New Event">
|
||||
<!ENTITY calendar.context.newevent.accesskey "n">
|
||||
<!ENTITY calendar.context.newtodo.label "New Task">
|
||||
<!ENTITY calendar.context.newtodo.accesskey "k">
|
||||
<!ENTITY calendar.context.modifyevent.label "Edit Event">
|
||||
<!ENTITY calendar.context.modifyevent.accesskey "e">
|
||||
<!ENTITY calendar.context.deleteevent.label "Delete Event">
|
||||
|
|
|
@ -43,6 +43,9 @@
|
|||
<!ENTITY event.new.event "New Event">
|
||||
<!ENTITY event.new.event.accesskey "n">
|
||||
|
||||
<!ENTITY event.new.todo "New Task">
|
||||
<!ENTITY event.new.todo.accesskey "t">
|
||||
|
||||
<!ENTITY event.edit.event "Edit Event">
|
||||
<!ENTITY event.edit.event.accesskey "e">
|
||||
|
||||
|
|
|
@ -43,6 +43,9 @@
|
|||
<!ENTITY event.new.event "New Event">
|
||||
<!ENTITY event.new.event.accesskey "n">
|
||||
|
||||
<!ENTITY event.new.todo "New Task">
|
||||
<!ENTITY event.new.todo.accesskey "t">
|
||||
|
||||
<!ENTITY event.edit.event "Edit Event">
|
||||
<!ENTITY event.edit.event.accesskey "e">
|
||||
|
||||
|
|
|
@ -1134,3 +1134,8 @@
|
|||
{
|
||||
text-decoration : line-through;
|
||||
}
|
||||
|
||||
#unifinder-todo-listbox > listitem[started="true"] > listcell
|
||||
{
|
||||
color : green;
|
||||
}
|
||||
|
|
|
@ -1140,4 +1140,10 @@
|
|||
#unifinder-todo-listbox > listitem[completed="true"] > listcell
|
||||
{
|
||||
text-decoration : line-through;
|
||||
}
|
||||
}
|
||||
|
||||
#unifinder-todo-listbox > listitem[started="true"] > listcell
|
||||
{
|
||||
color : green;
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче