summaryrefslogtreecommitdiff
path: root/www/index.html
blob: 646d5fd3db70cb470cca2e91633b3c8579dee5f5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
	<!-- ***************** INFO/NEWS *************** -->
	<div id="infoTabs">
		<div class="infoTab" id="whats-new">
			<h5 class="infoHeader">Downloads</h5>
			<ul>
				<li>
					<a href="http://www.gargan.org/extensions/synckolab-NIGHTLY.xpi">SyncKolab NIGHTLY 1.5.4</a>
				</li>
				<li>
					<a href="http://www.gargan.org/extensions/synckolab-1.5.4.xpi">synckolab 1.5.4</a>
				</li>
			</ul>
		</div>

		<div class="infoTab" id="other-stuff">
			<h5 class="infoHeader">Important</h5>
			<ul>
				<li>To find the most recent updates visit <a href="http://www.gargan.org/en/Mozilla_Extensions/SyncKolab">gargan.org</a>!</li>
			</ul>

			<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
				<input type="hidden" name="cmd" value="_s-xclick"/>
				<input type="image" src="http://www.paypal.com/en_US/i/btn/x-click-butcc-donate.gif" border="0" name="submit" alt="Donate with payPal"/>
				<img alt="" border="0" src="https://www.paypal.com/de_DE/i/scr/pixel.gif" width="1" height="1"/>
				<input type="hidden" name="encrypted"
					value="-----BEGIN PKCS7-----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-----END PKCS7-----"
				/>
			</form>
		</div>

		<!-- alternative image/table base tab works better in NS4 -->
		<!--
<div class="infoTab" id="whats-new-image">
<h5 class="infoHeader"><img src="http://www.mozdev.org/sharedimages/whatsnew_top.gif" width="154" alt="What's New"></h5>
<div class="infoItems">
<div>News item goes here</div>
<div>More news item goes here</div>
<div><a href="http://mozdev.org/">mozdev.org</a></div>
</div>
</div>
-->
	</div>
	<!-- ***************** INFO/NEWS *************** -->
	<!-- MAIN CONTENT -->
	<h1>Sync Kolab</h1>
	<p> SyncKolab was written to add kolab functionality to thunderbird. It reads a selected Imap folder and synchronizes it with the local address book (and calendar in the future). It is currently under heavy development, so use with care!<br/> It has been tested under Thunderbird for Windows, Linux and MacOSX. <br/> For up-to-date information and most recent version, check out my regular homepage at <a href="http://www.gargan.org">www.gargan.org</a>
	<br/> Version 1.5 pushed the synckolab to full Thunderbird 3 and Lightning 1 support and finally includes all fields including mailing lists and photos.
	<br/> Version 1.0 had 61 prereleases and 83
		nightly releases with over 100 bugs fixed and is known to work nicely with Thunderbird 2 and Lightning 0.8.<br/> Even with this extensive testing, there might still occur problems in combination with other extensions, operating systems, thunderbird versions and/or special characters in your contacts/tasks/calendar entries .<br/> Because of this, you should make a backup of all your relevant data (server side or your profile directory) before doing your first sync. If seomthing happens
		because of a bug you can then easily restore your data afterward.<br/>
	</p>
	<h2>What is Kolab?</h2>
	<p> It loads all your contacts (from a selected address book), and synchronizes them with a selected imap folder. Where every contact is stored as an vcard. In the next version I also want to include calendar Entries (vCal)... For more information http://kolab.org/<br/> The idea behind is, that you can now have your contacts+calendar entries stored on the imap server. so you can actually have the same addresses on more than one computer. The kolab project has a groupware server that uses imap
		to exchange calendar entries and vcards. </p>
	<h2>Server Requirements</h2>
	<ul>
		<li>IMAP server with read/write access</li>
		<li>seperate IMAP directories for adress book/calendar</li>
	</ul>
	<h3>No <a href="http://www.kolab.org">KOLAB</a> server?</h3>
	<p>No. A Kolab server is not required.</p>
	<b>So why call it syncKOLAB?</b>
	<p> Basically because the idea of using imap as central storage comes from the kolab guys. </p>
	<b>What does the kolab server do then?</b>
	<p> 1.) Its a full collaboration server with loads of additional feature you know from ie. exchange (like free/busy management, shared folders, invites....)<br/> 2.) the whole group, right etc. mangement<br/> loads of other small thngs you would expect a kollaboration server to do :) </p>
	<b>So do I need the kolab server?</b>
	<p>If you want full collaboration in your company/group - YES... if you didnt need it until now and only want to sync your data over multiple maches - or just have a simple shared calendar/adress book with a few buddies - no. you can happily live with just your imap server :) </p>
	<h2>SyncKolab Nightly</h2>
	<p> You can get a nightly build at <a href="http://www.gargan.org/extensions/synckolab-NIGHTLY.xpi">synckolab NIGHTLY</a> (rightclick). </p> Beware that this may easily break all you contacts/calender entries, altough we try to create stable nighlies.<br/> So create a backup of your thunderbird profile folder before trying it out! 
	<pre>
	-- no nightly since 1.5.3 yet
	</pre>
	<h2>Status of the Kolab Extension</h2>
	<ul>
		<li>mailing list support</li>
		<li>Allow Sync with file system</li>
		<li>Add support to new thunderbird adress book features (ie. mac adress book support)</li>
		<li>Better support of lightning features (free/busy)</li>
		<li>support for notes (either through <a href="https://addons.mozilla.org/en-US/thunderbird/addon/759">Message Notes</a> or <a href="https://addons.mozilla.org/en-US/thunderbird/addon/979">Notary</a>)</li>
	</ul>
	<h2>Want to help out?</h2>
	<p> Best thing you can do is get the most recent release, subscribe to the mailing list and ask what needs to be done (also take a look at the known bugs section). There is especially a lot of plain testing required. Since the extension is pretty new there are people needed who can test the extension on different Operating Systems, with some combinations of contacts (if all fields are transferred correctly) and so on... </p>
	<p> You may aquire the current source code from the mozdev cvs, or get it directly from the xpi (simply unzip the latest xpi found on <a href="http://www.gargan.org">gargan.org</a> you will find all source files in there (js). </p>
	<h2>How does synckolab work?</h2> For those interested here is a short explenation (pretty technical) on how Sync Kolab actually works. <ol>
		<li>get a list of all messages in the imap folder (only headers, which are cached locally. Thunderbird also makes sure that new messages are included)</li>
		<li>check each message header with a local database of the previous sync for a change. Message size, date and subject are used there (subject is the key value)</li>
		<li>if something changed or the message is new, download the message and strip everything except the message body (xml/ical/vcard). Save this part in the local sync database (=the file system)</li>
		<li>parse the message body into a adress book card/calendar event/task (lets call it CUR)</li>
		<li>get the id from CUR and check the local address book/calendar if there is an entry with the same id (lets call it ENTRY)</li>
		<li>if we did not find an ENTRY, save CUR in the adress book/calendar and continue</li>
		<li>if we found an ENTRY, make a comparison between CUR, ENTRY and LOCALDB (the entry stored in the local sync database (file system) from a previous sync) <ul>
				<li>if CUR=LOCALDB but ENTRY!=LOCALDB -> we know we changed something locally (ie. changed the name) so update ENTRY on the server (update=delete and readd), also update the LOCALDB on the filesystem</li>
				<li>if CUR!=LOCALDB but ENTRY=LOCALDB -> we know the server entry changed, so we have to update ENTRY and LOCALDB</li>
				<li>id CUR!=LOCALDB!=ENTRY -> we know we have a local change AND soemone changed the server entry -> ask what we should do</li>
				<li>if CUR=LOCALDB but ENTRY is missing -> we know it has been deleted locally, so delete the entry on the server</li>
			</ul>
		</li>
		<li>remember all entries already processed (so we dont check it twice)</li>
		<li>now go through all local entries (ENTRY) (except the one we already processed) and check: <ul>
				<li>if ENTRY is in LOCALDB: delete it (means it has been deleted from the server since the last sync)</li>
				<li>if ENTRY is not in the LOCALDB: add it to the imap server</li>
			</ul>
		</li>
		<li>finish up (liek make all new messages unread, and run compact to make sure its all on the server)</li>
	</ol> A few Remarks: <ul>
		<li>if you uncheck "write to IMAP", nothing will be written on the imap server. So whatever you change locally (delete/modify entries) will result in messages "update on server" or "delete on server", but that wont happen. Next sync you will get "delete locally" "update locally" messages (since nothing changed on the server, but locally you had changed). This is because the sync DB needs two syncs to be in sync again</li>
		<li>the "ignore entries older than XXX" applies for the timestamp on the messages AND for the calendar entries (enddate is used there). -1 will just sync all entires</li>
		<li>the sync interval set to 0 will still produce debug messages (like "starting sync...") which is only an indicator that the check for an interval is working (should happen once a minute) - nothing is syncd if this is the only message</li>
		<li>If you delete the snyc db from the filesystem (synckolab folder). Synckolab will try to resolve all differences automatically or ask you (will probably result in lots of "locally updated" messages)</li>
		<li>If you have problem (especially entries which are not synced at all or wrong) make sure to check in the javascript Error-Console (Fehlerkonsole) for messages. Until 1.0 debug is FULLY enabled to help track problems. There is also a pause button available that helps you track problems.</li>
	</ul>
	<h2>In the wild...</h2>
	<p>I started a few threads around the globe on different sites during development. If you are interested in some insight you can check them out. </p>
	<p>My homepage can be found in <a href="http://www.gargan.org">www.gargan.org</a> including a mirror of this + some other usefull things</p>
	<p>This one is for those who have ideas on how I overcome some of my biggest problems: <a href="http://forums.mozillazine.org/viewtopic.php?t=223578" target="_blank">open a tb message in read/write mode</a><br/> Antoher problem I ran into (which could have been avoided if the rewrite stuff had worked): <a href="http://xulplanet.com/forum/viewtopic.php?t=282" target="_blank">Copying mail folder content from temp folder to imap</a> I took some of the code from the TB Attachment Tools and TB
		Header tools for the writing of messages. You can get those pretty usefull extensions from <a href="http://www.supportware.net/mozilla/" target="_blank">Frank DiLecce (Ausdilecce)</a>. </p>