Closed Bug 253420 Opened 20 years ago Closed 20 years ago

no import of tasks from ical files

Categories

(Calendar :: General, defect)

x86
Windows XP
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: chris_siller, Assigned: mostafah)

References

Details

Attachments

(5 files)

User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) Opera 7.52 [en] Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7) Importing calendar events from ical files works, but I can't import any tasks. If I try to import a file that contains only tasks, I get the message that no events were found. Reproducible: Always Steps to Reproduce: 1. Tools - Import from file. Pick a ical file with tasks Actual Results: no tasks imported Expected Results: imported the tasks contained in the ical file
Bug confirmed. Running: >>Browser: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7) Gecko/20040803 Firefox/0.9.3 >>Calender: 2004080916-cal. tried importing from "CalendarDataFile.ics" >>Browser: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.5) Gecko/20031007 Firebird/0.7 >>Calender: 2004010914-cal. Events imported just fine.
Just discovered: If I add any new tasks, exit and restart the calender, the tasks that should have been imported, suddenly appear, next to the tasks just entered. Can provide screenshots if necessary.
Comment number 1 seems to say that the bug is confirmed, then at the end states that "Events imported just fine". To be clear, I have duplicated the problem of importing TASKS, not EVENTS. The import does not work. This bug should be CONFIRMED, but I do not have the permissions to do it. I also, noticed that if I try to look at the ics file through notepad, it changes the format of the text into somethign that Callendar does not like. Specifically it loses CR/LF formatting. My build is: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8a4) Gecko/20040907 Mozilla Sunbird/0.2a ...On XP -zeddock
confirmed
my confirm permission doesn't seem to be working :(
This seems to be a duplicate of Bug 158510, reportedly fixed (although it doesn't seem fixed at all). I had some problems trying to manually edit my .ICS file to paste tasks from an older one, but found a work-around. The problem was that both Notepad and UltraEdit were inserting three bytes (EE BB BF) at the beginning of the file, as soon as it got saved. I'm sure there must be a perfectly good reason for this, but already spent enough time with this matter. Anyway, using UltraEdit, one workaround is to open the file, switch to ASCII editing (File > Conversions > UNICODE/ASCII/UTF-8 to UTF-8), toggle to Hex mode (Ctrl + H), and cut the three bytes at the beginning of the file. Then, toggle back to ASCII mode (Ctrl + H), do any necessary modifications and save the file. VTODO elements (tasks) can be pasted for example immediately below line 5. The line endings don't seem to be a problem: I tried toggling between LF and CR/LF, and the Calendar handles both without problems (at least on Windows XP). T.
Confirming: the import code only treats events.
Status: UNCONFIRMED → NEW
Ever confirmed: true
calendar.js: organize to allow importExport.js to create and edit todos. newToDoCommand call newToDo (like newEventCommand calls newEvent) newEvent call getSelectedCalendarPathOrNull call editNewEvent newToDo (new) call getSelectedCalendarPathOrNull [fix bug 222256] call editNewToDo getSelectedCalendarPathOrNull (new) shared by newEvent, newTodo editNewEvent call openEventDialog with mode "new", addEventDialogResponse editNewToDo (new) call openToDoDialog with mode "new", addToDoDialogResponse editEvent call openEventDialog with mode "edit", modifyEventDialogResponse editToDo call openToDoDialog with mode "edit", modifyToDoDialogResponse openEventDialog setup args set wait cursor call openDialog openToDoDialog setup args set wait cursor call openDialog importExport.js: add parse todos during import loadEventsFromFile: add todos move constants that don't depend on parsing file above file loop. move xcs case above ics case, so can transform to ics then continue as ics. do parallel actions on todos as on events: parse, detect duplicates, ask user what to do, alert if empty addToDosToCalendar (new) like addEventsToCalendar but calls editNewToDo, addToDoDialogRespose. convertZuluToLocalToDo (new) like convertZuluToLocalEvent convertLocalToZuluToDo (new) like convertLocalToZuluEvent initCalendarToDo (new) like initCalendarEvent, provides default values if parse fails eventExists renamed from entryExists to distinguish events and todos. toDoExists (new) check whether a todo already exists with same start date and title parseOutlookCSVEvents renamed from parseOutlookCSVData, since it only does events, not todos. cleaned up regexps parseIcalEvents renamed from parseIcalData, since only does events, not todos. continues search in same string instead of making substring of rest. parseIcalToDos (new) as in parseIcalEvents, but parses todos instead of events. calls initCalendarToDo if cannot parse a toDo.
No events to import --> No events or tasks to import About to import --> About to import new events About to import new tasks About to import dups --> About to import dup events About to import dup tasks moved "into calendar" before "from file" because calendar is more likely to be wrong if user forgot which calendar was selected (and it would be clicked before file if at all, so order matches user's actions).
How tested: Tested on Moz1.7.3, TB0.8. Tested for localized prompts on en-US, fr-FR, it-IT, de-AT, es-ES. (doesn't crash, still needs localization) Test Setup: 1. create and remove calendar: TestImportSource.ics new calendar: browse for new file TestImportSource.ics select calendar: TestImportSource add new event: Event1 add new task: Task1 enable start date. delete calendar: right-click TestImportSource, Delete calendar (but do not delete its file) 2. create calendar: TestImportDest.ics new calendar: browse for new file TestImportDest.ics select calendar: TestImportDest uncheck all other calendars. Test prompt for each (non-dups) 1. menu: import file: 2. select file: TestImportSource Confirmation dialog should appear: "Import Events" "About to import 1 event(s) from TestImportSource.ics into TestImportDest" 3. click "prompt for each" Event dialog should appear with Event1 data. 4. click "OK". Confirmation dialog should appear: "Import Tasks" "About to import 1 tasks(s) from TestImportSource.ics into TestImportDest" 5. click "prompt for each" Task dialog should appear with Task1 data. 6. click "OK" Result Event1 should appear in calendar TestImportDest Task1 should appear in calendar TestImportDest Test prompt for each (duplicates) 1. menu: import file: 2. select file: TestImportSource (again) Confirmation dialog should appear: "Import Duplicate Events" "About to import 1 event(s) that are duplicates of events in your calendar." 3. click "prompt for each" Event dialog should appear with Event1 data. 4. click "OK". Confirmation dialog should appear: "Import Duplicate Tasks" "About to import 1 tasks(s) that are duplicates of tasks in your calendar." 5. click "prompt for each" Task dialog should appear with source Task1 data. 6. click "OK" Result Event1 should appear twice in calendar TestImportDest Task1 should appear twice in calendar TestImportDest Delete Event1, Task1 Repeat above tests with "import all" instead of "prompt for each". Test New Task toolbar button (since newTaskCommand was changed). Should now default to selected calendar.
Attachment #164127 - Flags: first-review?(mostafah)
Attachment #164128 - Flags: first-review?(mostafah)
it-IT part of calendar.properties patch depends on patch in bug 266919
Depends on: 266919
Blocks: 222256
Comment on attachment 164127 [details] [diff] [review] calendar.js, importExport.js patch: organize create/edit todos, add parse todos to import In the newToDo function, it seems that startDate and dueDate are not being actually set if they are not null.
newToDo is not called with dates yet. Would/Will be used to implement creating a task by (right) clicking on a date or hour in a view (like newEvent(startDate) is called).
Comment on attachment 164127 [details] [diff] [review] calendar.js, importExport.js patch: organize create/edit todos, add parse todos to import Checked in. Since nothing uses newToDo with a preset start/due date we can live with it for now. Please feel free to complete it in a separate patch.
Attachment #164127 - Flags: first-review?(mostafah) → first-review+
Attachment #164128 - Flags: first-review?(mostafah) → first-review+
Comment on attachment 164128 [details] [diff] [review] locale/*/calendar.properties: add tasks to import prompts Checked in.
Fixed in CVS. Great work gekacheka. This was a missing feature many complained about.
Status: NEW → RESOLVED
Closed: 20 years ago
Resolution: --- → FIXED
Comment on attachment 164299 [details] [diff] [review] calendar.js newToDo: Set dates if not null (apply after attachment 164127 [details] [diff] [review]) Checked in. Thanks
Attachment #164299 - Flags: first-review+
No longer depends on: 266919
Importing a csv file may fail silently, producing the following JS error: Error: parsedToDoArray has no properties Source File: chrome://calendar/content/importExport.js Line: 251 Problem is parsedToDoArray is null when parsing events from csv. This patch fixes the problem, so if no events are found the alert appears.
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Attachment #164979 - Flags: first-review?(mostafah)
Comment on attachment 164979 [details] [diff] [review] fix regression "parsedToDoArray has no properties" Checked in.
Attachment #164979 - Flags: first-review?(mostafah) → first-review+
Fixed.
Status: REOPENED → RESOLVED
Closed: 20 years ago20 years ago
Resolution: --- → FIXED
patch -l -p 2 -i filename.patch Patch fixes some missed callers of parseIcalData which are fixed to call parseIcalEvents. Also fixes(unused) wizard code to call parseIcalData(transformXCSData( )) instead of parseXCSData. (reported in bug 268509)
Comment on attachment 165376 [details] [diff] [review] fix regression "parseIcalData not defined" --> parseIcalEvents Restores ability to paste events on TB 0.9. (Paste wasn't working for me before on Moz1.7.3, and this doesn't fix it.)
Attachment #165376 - Flags: first-review?(mostafah)
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Blocks: 268509
Comment on attachment 165376 [details] [diff] [review] fix regression "parseIcalData not defined" --> parseIcalEvents Checked in. Thanks
Attachment #165376 - Flags: first-review?(mostafah) → first-review+
Status: REOPENED → RESOLVED
Closed: 20 years ago20 years ago
Resolution: --- → FIXED
The bugspam monkeys have been set free and are feeding on Calendar :: General. Be afraid for your sanity!
QA Contact: gurganbl → general
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: