mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-09 19:35:51 +00:00
Adding pref to set the default length for events, bug 136373
This commit is contained in:
parent
0d4ecebd48
commit
694e1f5eaf
@ -437,11 +437,16 @@ function newEvent( startDate )
|
||||
args.calendarEvent = createEvent();
|
||||
|
||||
args.calendarEvent.start.setTime( startDate );
|
||||
args.calendarEvent.end.setTime( startDate );
|
||||
args.calendarEvent.end.hour++;
|
||||
|
||||
var MinutesToAddOn = gCalendarWindow.calendarPreferences.getPref( "defaulteventlength" );
|
||||
|
||||
var endDate = new Date();
|
||||
|
||||
var endDateTime = startDate.getTime() + ( 1000 * 60 * MinutesToAddOn );
|
||||
|
||||
args.calendarEvent.end.setTime( endDateTime );
|
||||
|
||||
// open the dialog non modally
|
||||
|
||||
openDialog( "chrome://calendar/content/calendarEventDialog.xul", "caNewEvent", "chrome", args );
|
||||
}
|
||||
|
||||
|
@ -141,7 +141,7 @@ function loadCalendarEventDialog()
|
||||
if ( gEvent.recurForever )
|
||||
{
|
||||
var today = new Date();
|
||||
gEvent.recurEnd.setTime( startDate );
|
||||
gEvent.recurEnd.setTime( endDate );
|
||||
}
|
||||
|
||||
var recurEndDate = new Date( gEvent.recurEnd.getTime() );
|
||||
@ -295,12 +295,6 @@ function onOKCommand()
|
||||
if( gEvent.recur == true )
|
||||
{
|
||||
//check that the repeat end time is later than the end time
|
||||
if( recurEndDate.getTime() < gEvent.end.getTime() && gEvent.recurForever == false )
|
||||
{
|
||||
alert( neRecurErrorAlertMessage );
|
||||
return( false );
|
||||
}
|
||||
|
||||
if( gEvent.recurUnits == "weeks" )
|
||||
{
|
||||
/*
|
||||
@ -326,21 +320,67 @@ function onOKCommand()
|
||||
// :TODO: REALLY only do this if the alarm or start settings change.?
|
||||
//if the end time is later than the start time... alert the user using text from the dtd.
|
||||
|
||||
if ( gEvent.end.getTime() < gEvent.start.getTime() && !gEvent.allDay )
|
||||
// call caller's on OK function
|
||||
gOnOkFunction( gEvent );
|
||||
|
||||
// tell standard dialog stuff to close the dialog
|
||||
return true;
|
||||
}
|
||||
|
||||
function checkEndTime()
|
||||
{
|
||||
var endDate = getDateTimeFieldValue( "end-time-text" );
|
||||
|
||||
var startDate = getDateTimeFieldValue( "start-time-text" );
|
||||
|
||||
var AllDayEvent = getFieldValue( "all-day-event-checkbox", "checked" );
|
||||
|
||||
if( endDate.getTime() < startDate.getTime() && !AllDayEvent )
|
||||
{
|
||||
alert( neStartTimeErrorAlertMessage );
|
||||
document.getElementById( "end-time-warning" ).setAttribute( "collapsed", "false" );
|
||||
|
||||
return( false );
|
||||
}
|
||||
else
|
||||
{
|
||||
// call caller's on OK function
|
||||
gOnOkFunction( gEvent );
|
||||
document.getElementById( "end-time-warning" ).setAttribute( "collapsed", "true" );
|
||||
|
||||
return( true );
|
||||
}
|
||||
|
||||
// tell standard dialog stuff to close the dialog
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
function checkRecurTime()
|
||||
{
|
||||
var recurEndDate = getDateTimeFieldValue( "repeat-end-date-text" );
|
||||
|
||||
var endDate = getDateTimeFieldValue( "end-time-text" );
|
||||
|
||||
var recurForever = getFieldValue( "repeat-forever-radio", "selected" );
|
||||
|
||||
if( recurEndDate.getTime() < endDate.getTime() && recurForever == false )
|
||||
{
|
||||
document.getElementById( "repeat-time-warning" ).setAttribute( "collapsed", "false" );
|
||||
|
||||
return( false );
|
||||
}
|
||||
else
|
||||
{
|
||||
document.getElementById( "repeat-time-warning" ).setAttribute( "collapsed", "true" );
|
||||
|
||||
return( true );
|
||||
}
|
||||
}
|
||||
|
||||
function updateOKButton()
|
||||
{
|
||||
var CheckEndTime = checkEndTime();
|
||||
|
||||
var CheckRecurTime = checkRecurTime();
|
||||
|
||||
document.getElementById( "ok" ).setAttribute( "disabled", !( CheckEndTime && CheckRecurTime ) );
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when an item with a datepicker is clicked, BEFORE the picker is shown.
|
||||
@ -392,6 +432,8 @@ function onDatePick( datepopup )
|
||||
updateAdvancedWeekRepeat();
|
||||
|
||||
updateAdvancedRepeatDayOfMonth();
|
||||
|
||||
updateOKButton();
|
||||
}
|
||||
|
||||
|
||||
@ -438,7 +480,7 @@ function onTimePick( timepopup )
|
||||
55,
|
||||
0);
|
||||
}
|
||||
formattedEndTime = formatTime( newEndDate );
|
||||
|
||||
if( timepopup.timeField.id != "end-time-text" )
|
||||
{
|
||||
setTimeFieldValue( "end-time-text", newEndDate );
|
||||
@ -468,6 +510,8 @@ function onTimePick( timepopup )
|
||||
// remember the new date in a property, "editDate". we created on the time textbox
|
||||
|
||||
timepopup.timeField.editDate = timepopup.value;
|
||||
|
||||
updateOKButton();
|
||||
}
|
||||
|
||||
|
||||
@ -489,6 +533,8 @@ function commandRepeat()
|
||||
function commandUntil()
|
||||
{
|
||||
updateUntilItemEnabled();
|
||||
|
||||
updateOKButton();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -141,7 +141,7 @@
|
||||
</row>
|
||||
|
||||
<!-- End Date -->
|
||||
<row align="center">
|
||||
<row align="center" collapsed="true">
|
||||
<hbox class="field-label-box-class" pack="end">
|
||||
<label value="&newevent.enddate.label;"/>
|
||||
</hbox>
|
||||
@ -178,6 +178,7 @@
|
||||
<hbox id="end-event-time-box" align="center">
|
||||
<textbox id="end-time-text" readonly="true" value="" onmousedown="prepareTimePicker('end-time-text')" popup="oe-time-picker-popup" position="after_start"/>
|
||||
<image id="end-time-button" onmousedown="prepareTimePicker('end-time-text')" popup="oe-time-picker-popup" position="after_start"/>
|
||||
<label id="end-time-warning" class="warning-text-class" value="&newevent.endtime.warning;" collapsed="true"/>
|
||||
</hbox>
|
||||
</row>
|
||||
|
||||
@ -285,10 +286,16 @@
|
||||
<radio group="repeat-until-group" id="repeat-forever-radio" disable-controller="repeat" label="&newevent.forever.label;" oncommand="commandUntil()"/>
|
||||
|
||||
<hbox id="repeat-end-box" align="center">
|
||||
<radio group="repeat-until-group" id="repeat-until-radio" disable-controller="repeat" selected="true" label="&newevent.until.label;" oncommand="commandUntil()"/>
|
||||
<spacer id="until-spacer"/>
|
||||
<textbox id="repeat-end-date-text" readonly="true" value="" onmousedown="prepareDatePicker('repeat-end-date-text')" popup="oe-date-picker-popup" position="before_start"/>
|
||||
<image id="repeat-end-date-button" onmousedown="prepareDatePicker('repeat-end-date-text')" popup="oe-date-picker-popup" position="before_start"/>
|
||||
<vbox>
|
||||
<hbox>
|
||||
<radio group="repeat-until-group" id="repeat-until-radio" disable-controller="repeat" selected="true" label="&newevent.until.label;" oncommand="commandUntil()"/>
|
||||
<spacer id="until-spacer"/>
|
||||
<textbox id="repeat-end-date-text" readonly="true" value="" onmousedown="prepareDatePicker('repeat-end-date-text')" popup="oe-date-picker-popup" position="before_start"/>
|
||||
<image id="repeat-end-date-button" onmousedown="prepareDatePicker('repeat-end-date-text')" popup="oe-date-picker-popup" position="before_start"/>
|
||||
</hbox>
|
||||
<label id="repeat-time-warning" class="warning-text-class" value="&newevent.recurend.warning;" collapsed="true"/>
|
||||
</vbox>
|
||||
|
||||
</hbox>
|
||||
|
||||
|
||||
|
@ -141,7 +141,7 @@ function loadCalendarEventDialog()
|
||||
if ( gEvent.recurForever )
|
||||
{
|
||||
var today = new Date();
|
||||
gEvent.recurEnd.setTime( startDate );
|
||||
gEvent.recurEnd.setTime( endDate );
|
||||
}
|
||||
|
||||
var recurEndDate = new Date( gEvent.recurEnd.getTime() );
|
||||
@ -295,12 +295,6 @@ function onOKCommand()
|
||||
if( gEvent.recur == true )
|
||||
{
|
||||
//check that the repeat end time is later than the end time
|
||||
if( recurEndDate.getTime() < gEvent.end.getTime() && gEvent.recurForever == false )
|
||||
{
|
||||
alert( neRecurErrorAlertMessage );
|
||||
return( false );
|
||||
}
|
||||
|
||||
if( gEvent.recurUnits == "weeks" )
|
||||
{
|
||||
/*
|
||||
@ -326,21 +320,67 @@ function onOKCommand()
|
||||
// :TODO: REALLY only do this if the alarm or start settings change.?
|
||||
//if the end time is later than the start time... alert the user using text from the dtd.
|
||||
|
||||
if ( gEvent.end.getTime() < gEvent.start.getTime() && !gEvent.allDay )
|
||||
// call caller's on OK function
|
||||
gOnOkFunction( gEvent );
|
||||
|
||||
// tell standard dialog stuff to close the dialog
|
||||
return true;
|
||||
}
|
||||
|
||||
function checkEndTime()
|
||||
{
|
||||
var endDate = getDateTimeFieldValue( "end-time-text" );
|
||||
|
||||
var startDate = getDateTimeFieldValue( "start-time-text" );
|
||||
|
||||
var AllDayEvent = getFieldValue( "all-day-event-checkbox", "checked" );
|
||||
|
||||
if( endDate.getTime() < startDate.getTime() && !AllDayEvent )
|
||||
{
|
||||
alert( neStartTimeErrorAlertMessage );
|
||||
document.getElementById( "end-time-warning" ).setAttribute( "collapsed", "false" );
|
||||
|
||||
return( false );
|
||||
}
|
||||
else
|
||||
{
|
||||
// call caller's on OK function
|
||||
gOnOkFunction( gEvent );
|
||||
document.getElementById( "end-time-warning" ).setAttribute( "collapsed", "true" );
|
||||
|
||||
return( true );
|
||||
}
|
||||
|
||||
// tell standard dialog stuff to close the dialog
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
function checkRecurTime()
|
||||
{
|
||||
var recurEndDate = getDateTimeFieldValue( "repeat-end-date-text" );
|
||||
|
||||
var endDate = getDateTimeFieldValue( "end-time-text" );
|
||||
|
||||
var recurForever = getFieldValue( "repeat-forever-radio", "selected" );
|
||||
|
||||
if( recurEndDate.getTime() < endDate.getTime() && recurForever == false )
|
||||
{
|
||||
document.getElementById( "repeat-time-warning" ).setAttribute( "collapsed", "false" );
|
||||
|
||||
return( false );
|
||||
}
|
||||
else
|
||||
{
|
||||
document.getElementById( "repeat-time-warning" ).setAttribute( "collapsed", "true" );
|
||||
|
||||
return( true );
|
||||
}
|
||||
}
|
||||
|
||||
function updateOKButton()
|
||||
{
|
||||
var CheckEndTime = checkEndTime();
|
||||
|
||||
var CheckRecurTime = checkRecurTime();
|
||||
|
||||
document.getElementById( "ok" ).setAttribute( "disabled", !( CheckEndTime && CheckRecurTime ) );
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when an item with a datepicker is clicked, BEFORE the picker is shown.
|
||||
@ -392,6 +432,8 @@ function onDatePick( datepopup )
|
||||
updateAdvancedWeekRepeat();
|
||||
|
||||
updateAdvancedRepeatDayOfMonth();
|
||||
|
||||
updateOKButton();
|
||||
}
|
||||
|
||||
|
||||
@ -438,7 +480,7 @@ function onTimePick( timepopup )
|
||||
55,
|
||||
0);
|
||||
}
|
||||
formattedEndTime = formatTime( newEndDate );
|
||||
|
||||
if( timepopup.timeField.id != "end-time-text" )
|
||||
{
|
||||
setTimeFieldValue( "end-time-text", newEndDate );
|
||||
@ -468,6 +510,8 @@ function onTimePick( timepopup )
|
||||
// remember the new date in a property, "editDate". we created on the time textbox
|
||||
|
||||
timepopup.timeField.editDate = timepopup.value;
|
||||
|
||||
updateOKButton();
|
||||
}
|
||||
|
||||
|
||||
@ -489,6 +533,8 @@ function commandRepeat()
|
||||
function commandUntil()
|
||||
{
|
||||
updateUntilItemEnabled();
|
||||
|
||||
updateOKButton();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -141,7 +141,7 @@
|
||||
</row>
|
||||
|
||||
<!-- End Date -->
|
||||
<row align="center">
|
||||
<row align="center" collapsed="true">
|
||||
<hbox class="field-label-box-class" pack="end">
|
||||
<label value="&newevent.enddate.label;"/>
|
||||
</hbox>
|
||||
@ -178,6 +178,7 @@
|
||||
<hbox id="end-event-time-box" align="center">
|
||||
<textbox id="end-time-text" readonly="true" value="" onmousedown="prepareTimePicker('end-time-text')" popup="oe-time-picker-popup" position="after_start"/>
|
||||
<image id="end-time-button" onmousedown="prepareTimePicker('end-time-text')" popup="oe-time-picker-popup" position="after_start"/>
|
||||
<label id="end-time-warning" class="warning-text-class" value="&newevent.endtime.warning;" collapsed="true"/>
|
||||
</hbox>
|
||||
</row>
|
||||
|
||||
@ -285,10 +286,16 @@
|
||||
<radio group="repeat-until-group" id="repeat-forever-radio" disable-controller="repeat" label="&newevent.forever.label;" oncommand="commandUntil()"/>
|
||||
|
||||
<hbox id="repeat-end-box" align="center">
|
||||
<radio group="repeat-until-group" id="repeat-until-radio" disable-controller="repeat" selected="true" label="&newevent.until.label;" oncommand="commandUntil()"/>
|
||||
<spacer id="until-spacer"/>
|
||||
<textbox id="repeat-end-date-text" readonly="true" value="" onmousedown="prepareDatePicker('repeat-end-date-text')" popup="oe-date-picker-popup" position="before_start"/>
|
||||
<image id="repeat-end-date-button" onmousedown="prepareDatePicker('repeat-end-date-text')" popup="oe-date-picker-popup" position="before_start"/>
|
||||
<vbox>
|
||||
<hbox>
|
||||
<radio group="repeat-until-group" id="repeat-until-radio" disable-controller="repeat" selected="true" label="&newevent.until.label;" oncommand="commandUntil()"/>
|
||||
<spacer id="until-spacer"/>
|
||||
<textbox id="repeat-end-date-text" readonly="true" value="" onmousedown="prepareDatePicker('repeat-end-date-text')" popup="oe-date-picker-popup" position="before_start"/>
|
||||
<image id="repeat-end-date-button" onmousedown="prepareDatePicker('repeat-end-date-text')" popup="oe-date-picker-popup" position="before_start"/>
|
||||
</hbox>
|
||||
<label id="repeat-time-warning" class="warning-text-class" value="&newevent.recurend.warning;" collapsed="true"/>
|
||||
</vbox>
|
||||
|
||||
</hbox>
|
||||
|
||||
|
||||
|
@ -53,7 +53,7 @@
|
||||
<script type="application/x-javascript">
|
||||
<![CDATA[
|
||||
var _elementIDs = [
|
||||
"alarmshow", "alarmplaysound", "dateformat", "weekstarts"
|
||||
"alarmshow", "alarmplaysound", "dateformat", "weekstarts", "defaultlength"
|
||||
];
|
||||
]]>
|
||||
</script>
|
||||
@ -91,5 +91,10 @@
|
||||
</menupopup>
|
||||
</menulist>
|
||||
</vbox>
|
||||
<hbox align="center">
|
||||
<description>Default Event Length: </description>
|
||||
<textbox id="defaultlength" preftype="int" prefstring="calendar.event.defaultlength" value="90" maxlength="3" size="3"/>
|
||||
<label value="Minutes"/>
|
||||
</hbox>
|
||||
</groupbox>
|
||||
</page>
|
||||
|
@ -69,6 +69,7 @@ function calendarPreferences( CalendarWindow )
|
||||
this.calendarPref.setBoolPref( "alarms.playsound", false );
|
||||
this.calendarPref.setIntPref( "date.format", 0 );
|
||||
this.calendarPref.setIntPref( "week.start", 0 );
|
||||
this.calendarPref.setIntPref( "event.defaultlength", 60 );
|
||||
this.loadPreferences();
|
||||
}
|
||||
|
||||
@ -84,6 +85,8 @@ calendarPreferences.prototype.loadPreferences = function()
|
||||
this.arrayOfPrefs.dateformat = this.calendarPref.getIntPref( "date.format" );
|
||||
|
||||
this.arrayOfPrefs.weekstart = this.calendarPref.getIntPref( "week.start" );
|
||||
|
||||
this.arrayOfPrefs.defaulteventlength = this.calendarPref.getIntPref( "event.defaultlength" );
|
||||
}
|
||||
|
||||
calendarPreferences.prototype.getPref = function( Preference )
|
||||
|
@ -75,6 +75,9 @@
|
||||
<!ENTITY newevent.repeat.label "Repeat every" >
|
||||
<!ENTITY newevent.until.label "Until" >
|
||||
<!ENTITY newevent.forever.label "Forever" >
|
||||
|
||||
<!ENTITY newevent.endtime.warning "Your start time is after your end time.">
|
||||
<!ENTITY newevent.recurend.warning "Your repeat time ends before your end time.">
|
||||
|
||||
<!ENTITY newevent.starttimeerror.alertmessage "Your event cannot end before it has started. Please fix either the start time or the end time." >
|
||||
<!ENTITY newevent.recurendtimeerror.alertmessage "Your event's repeat time cannot be before the event end time. Please fix this, or disable repeating." >
|
||||
|
Loading…
Reference in New Issue
Block a user