зеркало из https://github.com/mozilla/gecko-dev.git
Fixing the ability to import events, when using the wizard.
This commit is contained in:
Родитель
c1aa011ff3
Коммит
fd469b21f0
|
@ -160,8 +160,8 @@ function calendarInit()
|
|||
}
|
||||
|
||||
//a bit of a hack since the menulist doesn't remember the selected value
|
||||
|
||||
document.getElementById( 'event-filter-menulist' ).setAttribute( "label", document.getElementById( 'event-filter-menulist' ).selectedItem.getAttribute( 'label' ) );
|
||||
var value = document.getElementById( 'event-filter-menulist' ).value;
|
||||
document.getElementById( 'event-filter-menulist' ).selectedItem = document.getElementById( 'event-filter-'+value );
|
||||
}
|
||||
|
||||
// Set the date and time on the clock and set up a timeout to refresh the clock when the
|
||||
|
|
|
@ -174,7 +174,7 @@ function createUniqueID()
|
|||
* Takes an array of events and adds the evens one by one to the calendar
|
||||
*/
|
||||
|
||||
function addEventsToCalendar( calendarEventArray, silent )
|
||||
function addEventsToCalendar( calendarEventArray, silent, ServerName )
|
||||
{
|
||||
gICalLib.batchMode = true;
|
||||
|
||||
|
@ -194,8 +194,10 @@ function addEventsToCalendar( calendarEventArray, silent )
|
|||
// open the event dialog with the event to add
|
||||
if( silent )
|
||||
{
|
||||
var DefaultServer = gCalendarWindow.calendarManager.getDefaultServer();
|
||||
gICalLib.addEvent( calendarEvent, DefaultServer );
|
||||
if( ServerName == null || ServerName == "" || ServerName == false )
|
||||
var ServerName = gCalendarWindow.calendarManager.getDefaultServer();
|
||||
|
||||
gICalLib.addEvent( calendarEvent, ServerName );
|
||||
}
|
||||
else
|
||||
editNewEvent( calendarEvent );
|
||||
|
|
|
@ -44,6 +44,37 @@ function checkInitialPage()
|
|||
}
|
||||
|
||||
|
||||
function onPageShow( PageId )
|
||||
{
|
||||
switch( PageId )
|
||||
{
|
||||
case "import":
|
||||
if( document.getElementById( "import-path-textbox" ).value.length == 0 )
|
||||
{
|
||||
document.getElementById( "calendar-wizard" ).canAdvance = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
document.getElementById( "calendar-wizard" ).canAdvance = true;
|
||||
}
|
||||
break;
|
||||
|
||||
case "import-2":
|
||||
buildCalendarsListbox( 'import-calendar-radiogroup' );
|
||||
|
||||
if( document.getElementById( "import-calendar-radiogroup" ).selectedItem == null )
|
||||
{
|
||||
document.getElementById( "calendar-wizard" ).canAdvance = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
document.getElementById( "calendar-wizard" ).canAdvance = true;
|
||||
}
|
||||
document.getElementById( "import-calendar-radiogroup" ).childNodes[0].setAttribute( "selected", "true" );
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
function buildCalendarsListbox( ListBoxId )
|
||||
{
|
||||
document.getElementById( ListBoxId ).database.AddDataSource( opener.gCalendarWindow.calendarManager.rdf.getDatasource() );
|
||||
|
@ -53,10 +84,12 @@ function buildCalendarsListbox( ListBoxId )
|
|||
|
||||
function doWizardFinish( )
|
||||
{
|
||||
window.setCursor( "wait" );
|
||||
|
||||
switch( gWizardType )
|
||||
{
|
||||
case "import":
|
||||
return doWizardImport();
|
||||
return true;
|
||||
break;
|
||||
|
||||
case "export":
|
||||
|
@ -76,34 +109,68 @@ function doWizardFinish( )
|
|||
|
||||
function doWizardImport()
|
||||
{
|
||||
window.setCursor( "wait" );
|
||||
|
||||
var calendarEventArray;
|
||||
|
||||
var fileName = document.getElementById( "import-path-textbox" ).value;
|
||||
|
||||
var aDataStream = readDataFromFile( fileName, "UTF-8" );
|
||||
|
||||
if( fileName.indexOf( ".ics" ) == -1 )
|
||||
{
|
||||
calendarEventArray = parseIcalData( aDataStream );
|
||||
}
|
||||
else if( fileName.indexOf( ".xcs" ) == -1 )
|
||||
{
|
||||
if( fileName.indexOf( ".ics" ) != -1 )
|
||||
calendarEventArray = parseIcalData( aDataStream );
|
||||
else if( fileName.indexOf( ".xcs" ) != -1 )
|
||||
calendarEventArray = parseXCSData( aDataStream );
|
||||
}
|
||||
|
||||
|
||||
if( document.getElementById( "import-2-radiogroup" ).selectedItem.value == "silent" )
|
||||
{
|
||||
addEventsToCalendar( calendarEventArray, true );
|
||||
var ServerName = document.getElementById( "import-calendar-radiogroup" ).selectedItem.value;
|
||||
|
||||
doAddEventsToCalendar( calendarEventArray, true, ServerName );
|
||||
}
|
||||
else
|
||||
{
|
||||
addEventsToCalendar( calendarEventArray, true );
|
||||
doAddEventsToCalendar( calendarEventArray, true, null );
|
||||
}
|
||||
|
||||
|
||||
return( false ); //true will close the window
|
||||
}
|
||||
|
||||
function doAddEventsToCalendar( calendarEventArray, silent, ServerName )
|
||||
{
|
||||
gICalLib.batchMode = true;
|
||||
|
||||
for(var i = 0; i < calendarEventArray.length; i++)
|
||||
{
|
||||
calendarEvent = calendarEventArray[i];
|
||||
|
||||
// Check if event with same ID already in Calendar. If so, import event with new ID.
|
||||
if( gICalLib.fetchEvent( calendarEvent.id ) != null ) {
|
||||
calendarEvent.id = createUniqueID( );
|
||||
}
|
||||
|
||||
// the start time is in zulu time, need to convert to current time
|
||||
if(calendarEvent.allDay != true)
|
||||
convertZuluToLocal( calendarEvent );
|
||||
|
||||
// open the event dialog with the event to add
|
||||
if( silent )
|
||||
{
|
||||
if( ServerName == null || ServerName == "" || ServerName == false )
|
||||
var ServerName = gCalendarWindow.calendarManager.getDefaultServer();
|
||||
|
||||
gICalLib.addEvent( calendarEvent, ServerName );
|
||||
|
||||
document.getElementById( "import-progress-meter" ).setAttribute( "value", ( (i/calendarEventArray.length)*100 )+"%" );
|
||||
}
|
||||
else
|
||||
editNewEvent( calendarEvent );
|
||||
}
|
||||
|
||||
gICalLib.batchMode = false;
|
||||
window.setCursor( "default" );
|
||||
|
||||
document.getElementById( "importing-box" ).setAttribute( "collapsed", "true" );
|
||||
document.getElementById( "done-importing-box" ).removeAttribute( "collapsed" );
|
||||
}
|
||||
|
||||
function doWizardExport()
|
||||
{
|
||||
|
@ -199,5 +266,7 @@ function launchFilePicker( Mode, ElementToGiveValueTo )
|
|||
filePath += extension;
|
||||
*/
|
||||
document.getElementById( ElementToGiveValueTo ).value = fp.file.path;
|
||||
|
||||
document.getElementById( "calendar-wizard" ).canAdvance = true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -61,8 +61,10 @@
|
|||
title="Mozilla Calendar Wizard"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
onwizardfinish="return doWizardFinish();"
|
||||
persist="screenX screenY"
|
||||
>
|
||||
|
||||
<script type="application/x-javascript" src="chrome://calendar/content/calendar.js"/>
|
||||
<script type="application/x-javascript" src="chrome://calendar/content/calendarWizard.js"/>
|
||||
<script type="application/x-javascript" src="chrome://calendar/content/calendarImportExport.js"/>
|
||||
|
||||
|
@ -75,7 +77,7 @@
|
|||
</radiogroup>
|
||||
</wizardpage>
|
||||
|
||||
<wizardpage pageid="import" label="Import Events" description="Choose the events you want to import." onpagehide="" onpageshow="" next="import-2">
|
||||
<wizardpage pageid="import" label="Import Events" description="Choose the events you want to import." onpagehide="" onpageshow="onPageShow( 'import' );" next="import-2">
|
||||
<textbox id="import-path-textbox"/>
|
||||
<button oncommand="launchFilePicker( 'open', 'import-path-textbox' )" label="Find a File"/>
|
||||
<description>
|
||||
|
@ -85,17 +87,17 @@
|
|||
|
||||
</wizardpage>
|
||||
|
||||
<wizardpage pageid="import-2" label="Select Calendar" description="Choose the file to import into." onpagehide="" onpageshow="buildCalendarsListbox( 'import-calendar-radiogroup' )" next="import-3">
|
||||
<wizardpage pageid="import-2" label="Select Calendar" description="Choose the file to import into." onpagehide="" onpageshow="onPageShow( 'import-2' );" next="import-3">
|
||||
<radiogroup id="import-calendar-radiogroup" datasources="rdf:null" ref="urn:calendarcontainer">
|
||||
<template>
|
||||
<rule>
|
||||
<radio uri="rdf:*" label="rdf:http://home.netscape.com/NC-rdf#name"/>
|
||||
<radio oncommand="document.getElementById( 'calendar-wizard' ).canAdvance = true;" uri="rdf:*" label="rdf:http://home.netscape.com/NC-rdf#name" value="rdf:http://home.netscape.com/NC-rdf#path"/>
|
||||
</rule>
|
||||
</template>
|
||||
</radiogroup>
|
||||
</wizardpage>
|
||||
|
||||
<wizardpage pageid="import-3" onpagehide="" onpageshow="">
|
||||
<wizardpage pageid="import-3" onpagehide="" onpageshow="" next="import-4">
|
||||
<description>Should I open each event before importing it?</description>
|
||||
<radiogroup id="import-2-radiogroup">
|
||||
<radio id="import-2-no" value="silent" label="No, just import the events." selected="true"/>
|
||||
|
@ -103,6 +105,16 @@
|
|||
</radiogroup>
|
||||
</wizardpage>
|
||||
|
||||
<wizardpage pageid="import-4" onpagehide="" onpageshow="setTimeout( 'doWizardImport()', 1000 );">
|
||||
<box id="importing-box">
|
||||
<description>Importing...</description>
|
||||
<progressmeter id="import-progress-meter" mode="determined" flex="1"/>
|
||||
</box>
|
||||
<box id="done-importing-box" collapsed="true">
|
||||
<description>All your events have been imported. Click finish to close the wizard.</description>
|
||||
</box>
|
||||
</wizardpage>
|
||||
|
||||
<wizardpage pageid="export" label="Export Events" onpagehide="" onpageshow="buildCalendarsListbox( 'export-calendars-listbox' )" next="export-2">
|
||||
<radiogroup>
|
||||
<radio id="export-calendars" label="Export Entire Calendar" selected="true"/>
|
||||
|
|
|
@ -102,6 +102,11 @@ calendar {
|
|||
color: #ffffff;
|
||||
}
|
||||
|
||||
.cal-day[busy="true"]
|
||||
{
|
||||
font-weight : bold;
|
||||
}
|
||||
|
||||
.cal-day:hover {
|
||||
color: #ff0000;
|
||||
border: 1px solid #d2d2d2;
|
||||
|
|
|
@ -174,7 +174,7 @@ function createUniqueID()
|
|||
* Takes an array of events and adds the evens one by one to the calendar
|
||||
*/
|
||||
|
||||
function addEventsToCalendar( calendarEventArray, silent )
|
||||
function addEventsToCalendar( calendarEventArray, silent, ServerName )
|
||||
{
|
||||
gICalLib.batchMode = true;
|
||||
|
||||
|
@ -194,8 +194,10 @@ function addEventsToCalendar( calendarEventArray, silent )
|
|||
// open the event dialog with the event to add
|
||||
if( silent )
|
||||
{
|
||||
var DefaultServer = gCalendarWindow.calendarManager.getDefaultServer();
|
||||
gICalLib.addEvent( calendarEvent, DefaultServer );
|
||||
if( ServerName == null || ServerName == "" || ServerName == false )
|
||||
var ServerName = gCalendarWindow.calendarManager.getDefaultServer();
|
||||
|
||||
gICalLib.addEvent( calendarEvent, ServerName );
|
||||
}
|
||||
else
|
||||
editNewEvent( calendarEvent );
|
||||
|
|
|
@ -475,6 +475,7 @@ var treeView =
|
|||
getImageSrc : function(){return false;},
|
||||
cycleHeader : function( ColId, element )
|
||||
{
|
||||
//dump( "\nin cycle header" );
|
||||
var sortActive;
|
||||
var treeCols;
|
||||
|
||||
|
@ -507,7 +508,9 @@ var treeView =
|
|||
}
|
||||
element.setAttribute("sortActive", sortActive);
|
||||
element.setAttribute("sortDirection", this.sortDirection);
|
||||
//dump( "\nabout to sort events "+gEventArray.length );
|
||||
gEventArray.sort( sortEvents );
|
||||
//dump( "\nSORTED!");
|
||||
document.getElementById( UnifinderTreeName ).view = this;
|
||||
},
|
||||
setTree : function( tree ){this.tree = tree;},
|
||||
|
@ -527,11 +530,7 @@ var treeView =
|
|||
switch( column )
|
||||
{
|
||||
case "unifinder-search-results-tree-col-title":
|
||||
if( calendarEvent.title == "" )
|
||||
var titleText = "Untitled";
|
||||
else
|
||||
var titleText = calendarEvent.title;
|
||||
return( titleText );
|
||||
return( calendarEvent.title );
|
||||
|
||||
case "unifinder-search-results-tree-col-startdate":
|
||||
var eventStartDate = getNextOrPreviousRecurrence( calendarEvent );
|
||||
|
@ -588,11 +587,14 @@ function sortEvents( EventA, EventB )
|
|||
{
|
||||
modifier = -1;
|
||||
}
|
||||
|
||||
//dump( "\nswitch on treeview.SelectedColumn which is "+treeView.selectedColumn );
|
||||
switch(treeView.selectedColumn)
|
||||
{
|
||||
case "unifinder-search-results-tree-col-title":
|
||||
{
|
||||
//dump( "\nreturning "+EventA.title +" > "+EventB.title );
|
||||
return( ((EventA.title > EventB.title) ? 1 : -1) * modifier );
|
||||
}
|
||||
|
||||
case "unifinder-search-results-tree-col-startdate":
|
||||
return( ((EventA.start.getTime() > EventB.start.getTime()) ? 1 : -1) * modifier );
|
||||
|
|
|
@ -394,7 +394,7 @@ var toDoTreeView =
|
|||
}
|
||||
element.setAttribute("sortActive", sortActive);
|
||||
element.setAttribute("sortDirection", this.sortDirection);
|
||||
gTaskArray.sort( sortEvents );
|
||||
gTaskArray.sort( sortTasks );
|
||||
document.getElementById( ToDoUnifinderTreeName ).view = this;
|
||||
},
|
||||
setTree : function( tree ){this.tree = tree;},
|
||||
|
@ -406,7 +406,7 @@ var toDoTreeView =
|
|||
{
|
||||
this.selectedColumn = column;
|
||||
this.sortDirection = columnElement.getAttribute("sortDirection");
|
||||
gTaskArray.sort(sortEvents);
|
||||
gTaskArray.sort(sortTasks);
|
||||
}
|
||||
|
||||
calendarToDo = gTaskArray[row];
|
||||
|
@ -441,7 +441,7 @@ var toDoTreeView =
|
|||
}
|
||||
}
|
||||
|
||||
function sortEvents( TaskA, TaskB )
|
||||
function sortTasks( TaskA, TaskB )
|
||||
{
|
||||
var modifier = 1;
|
||||
if (toDoTreeView.sortDirection == "descending")
|
||||
|
|
|
@ -44,6 +44,37 @@ function checkInitialPage()
|
|||
}
|
||||
|
||||
|
||||
function onPageShow( PageId )
|
||||
{
|
||||
switch( PageId )
|
||||
{
|
||||
case "import":
|
||||
if( document.getElementById( "import-path-textbox" ).value.length == 0 )
|
||||
{
|
||||
document.getElementById( "calendar-wizard" ).canAdvance = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
document.getElementById( "calendar-wizard" ).canAdvance = true;
|
||||
}
|
||||
break;
|
||||
|
||||
case "import-2":
|
||||
buildCalendarsListbox( 'import-calendar-radiogroup' );
|
||||
|
||||
if( document.getElementById( "import-calendar-radiogroup" ).selectedItem == null )
|
||||
{
|
||||
document.getElementById( "calendar-wizard" ).canAdvance = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
document.getElementById( "calendar-wizard" ).canAdvance = true;
|
||||
}
|
||||
document.getElementById( "import-calendar-radiogroup" ).childNodes[0].setAttribute( "selected", "true" );
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
function buildCalendarsListbox( ListBoxId )
|
||||
{
|
||||
document.getElementById( ListBoxId ).database.AddDataSource( opener.gCalendarWindow.calendarManager.rdf.getDatasource() );
|
||||
|
@ -53,10 +84,12 @@ function buildCalendarsListbox( ListBoxId )
|
|||
|
||||
function doWizardFinish( )
|
||||
{
|
||||
window.setCursor( "wait" );
|
||||
|
||||
switch( gWizardType )
|
||||
{
|
||||
case "import":
|
||||
return doWizardImport();
|
||||
return true;
|
||||
break;
|
||||
|
||||
case "export":
|
||||
|
@ -76,34 +109,68 @@ function doWizardFinish( )
|
|||
|
||||
function doWizardImport()
|
||||
{
|
||||
window.setCursor( "wait" );
|
||||
|
||||
var calendarEventArray;
|
||||
|
||||
var fileName = document.getElementById( "import-path-textbox" ).value;
|
||||
|
||||
var aDataStream = readDataFromFile( fileName, "UTF-8" );
|
||||
|
||||
if( fileName.indexOf( ".ics" ) == -1 )
|
||||
{
|
||||
calendarEventArray = parseIcalData( aDataStream );
|
||||
}
|
||||
else if( fileName.indexOf( ".xcs" ) == -1 )
|
||||
{
|
||||
if( fileName.indexOf( ".ics" ) != -1 )
|
||||
calendarEventArray = parseIcalData( aDataStream );
|
||||
else if( fileName.indexOf( ".xcs" ) != -1 )
|
||||
calendarEventArray = parseXCSData( aDataStream );
|
||||
}
|
||||
|
||||
|
||||
if( document.getElementById( "import-2-radiogroup" ).selectedItem.value == "silent" )
|
||||
{
|
||||
addEventsToCalendar( calendarEventArray, true );
|
||||
var ServerName = document.getElementById( "import-calendar-radiogroup" ).selectedItem.value;
|
||||
|
||||
doAddEventsToCalendar( calendarEventArray, true, ServerName );
|
||||
}
|
||||
else
|
||||
{
|
||||
addEventsToCalendar( calendarEventArray, true );
|
||||
doAddEventsToCalendar( calendarEventArray, true, null );
|
||||
}
|
||||
|
||||
|
||||
return( false ); //true will close the window
|
||||
}
|
||||
|
||||
function doAddEventsToCalendar( calendarEventArray, silent, ServerName )
|
||||
{
|
||||
gICalLib.batchMode = true;
|
||||
|
||||
for(var i = 0; i < calendarEventArray.length; i++)
|
||||
{
|
||||
calendarEvent = calendarEventArray[i];
|
||||
|
||||
// Check if event with same ID already in Calendar. If so, import event with new ID.
|
||||
if( gICalLib.fetchEvent( calendarEvent.id ) != null ) {
|
||||
calendarEvent.id = createUniqueID( );
|
||||
}
|
||||
|
||||
// the start time is in zulu time, need to convert to current time
|
||||
if(calendarEvent.allDay != true)
|
||||
convertZuluToLocal( calendarEvent );
|
||||
|
||||
// open the event dialog with the event to add
|
||||
if( silent )
|
||||
{
|
||||
if( ServerName == null || ServerName == "" || ServerName == false )
|
||||
var ServerName = gCalendarWindow.calendarManager.getDefaultServer();
|
||||
|
||||
gICalLib.addEvent( calendarEvent, ServerName );
|
||||
|
||||
document.getElementById( "import-progress-meter" ).setAttribute( "value", ( (i/calendarEventArray.length)*100 )+"%" );
|
||||
}
|
||||
else
|
||||
editNewEvent( calendarEvent );
|
||||
}
|
||||
|
||||
gICalLib.batchMode = false;
|
||||
window.setCursor( "default" );
|
||||
|
||||
document.getElementById( "importing-box" ).setAttribute( "collapsed", "true" );
|
||||
document.getElementById( "done-importing-box" ).removeAttribute( "collapsed" );
|
||||
}
|
||||
|
||||
function doWizardExport()
|
||||
{
|
||||
|
@ -199,5 +266,7 @@ function launchFilePicker( Mode, ElementToGiveValueTo )
|
|||
filePath += extension;
|
||||
*/
|
||||
document.getElementById( ElementToGiveValueTo ).value = fp.file.path;
|
||||
|
||||
document.getElementById( "calendar-wizard" ).canAdvance = true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -61,8 +61,10 @@
|
|||
title="Mozilla Calendar Wizard"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
onwizardfinish="return doWizardFinish();"
|
||||
persist="screenX screenY"
|
||||
>
|
||||
|
||||
<script type="application/x-javascript" src="chrome://calendar/content/calendar.js"/>
|
||||
<script type="application/x-javascript" src="chrome://calendar/content/calendarWizard.js"/>
|
||||
<script type="application/x-javascript" src="chrome://calendar/content/calendarImportExport.js"/>
|
||||
|
||||
|
@ -75,7 +77,7 @@
|
|||
</radiogroup>
|
||||
</wizardpage>
|
||||
|
||||
<wizardpage pageid="import" label="Import Events" description="Choose the events you want to import." onpagehide="" onpageshow="" next="import-2">
|
||||
<wizardpage pageid="import" label="Import Events" description="Choose the events you want to import." onpagehide="" onpageshow="onPageShow( 'import' );" next="import-2">
|
||||
<textbox id="import-path-textbox"/>
|
||||
<button oncommand="launchFilePicker( 'open', 'import-path-textbox' )" label="Find a File"/>
|
||||
<description>
|
||||
|
@ -85,17 +87,17 @@
|
|||
|
||||
</wizardpage>
|
||||
|
||||
<wizardpage pageid="import-2" label="Select Calendar" description="Choose the file to import into." onpagehide="" onpageshow="buildCalendarsListbox( 'import-calendar-radiogroup' )" next="import-3">
|
||||
<wizardpage pageid="import-2" label="Select Calendar" description="Choose the file to import into." onpagehide="" onpageshow="onPageShow( 'import-2' );" next="import-3">
|
||||
<radiogroup id="import-calendar-radiogroup" datasources="rdf:null" ref="urn:calendarcontainer">
|
||||
<template>
|
||||
<rule>
|
||||
<radio uri="rdf:*" label="rdf:http://home.netscape.com/NC-rdf#name"/>
|
||||
<radio oncommand="document.getElementById( 'calendar-wizard' ).canAdvance = true;" uri="rdf:*" label="rdf:http://home.netscape.com/NC-rdf#name" value="rdf:http://home.netscape.com/NC-rdf#path"/>
|
||||
</rule>
|
||||
</template>
|
||||
</radiogroup>
|
||||
</wizardpage>
|
||||
|
||||
<wizardpage pageid="import-3" onpagehide="" onpageshow="">
|
||||
<wizardpage pageid="import-3" onpagehide="" onpageshow="" next="import-4">
|
||||
<description>Should I open each event before importing it?</description>
|
||||
<radiogroup id="import-2-radiogroup">
|
||||
<radio id="import-2-no" value="silent" label="No, just import the events." selected="true"/>
|
||||
|
@ -103,6 +105,16 @@
|
|||
</radiogroup>
|
||||
</wizardpage>
|
||||
|
||||
<wizardpage pageid="import-4" onpagehide="" onpageshow="setTimeout( 'doWizardImport()', 1000 );">
|
||||
<box id="importing-box">
|
||||
<description>Importing...</description>
|
||||
<progressmeter id="import-progress-meter" mode="determined" flex="1"/>
|
||||
</box>
|
||||
<box id="done-importing-box" collapsed="true">
|
||||
<description>All your events have been imported. Click finish to close the wizard.</description>
|
||||
</box>
|
||||
</wizardpage>
|
||||
|
||||
<wizardpage pageid="export" label="Export Events" onpagehide="" onpageshow="buildCalendarsListbox( 'export-calendars-listbox' )" next="export-2">
|
||||
<radiogroup>
|
||||
<radio id="export-calendars" label="Export Entire Calendar" selected="true"/>
|
||||
|
|
Загрузка…
Ссылка в новой задаче