diff --git a/CHANGELOG.md b/CHANGELOG.md index b805a1c5..42a84eaa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,16 @@ # Change Log All notable changes to this project will be documented in this file. +## [4.0.0-beta5] - 2017-**-** +### Added + +### Changed +- Use Makefile instead of custom build shell +- Update install.rdf, README with new community +- Builds now will disable automatic update checker to avoid issue with new forks + +### Fixed + ## [4.0.0-beta4] - 2017-07-03 ### Added - Turkish localization #43, #44, #46 @@ -28,7 +38,21 @@ All notable changes to this project will be documented in this file. ## [4.0.0-beta2] - 2017-06-10 ### Fixed -- Opening and working with Attachment dialog #12 +- Event/Item editor dialog: + - Default toolbar now uses "Save and close" button as in vanilla Lightning #9 + - Attendees dialog is now managed by Lightning directly + - Opening and working with Attachment dialog #12 + +### Known bugs +- Event/Item editor dialog: + - Some times, the HTML editor for task content is frozen and nothing can be edited. + A workaround is to close the task and open it again. + + +## [4.0.0-beta1] - 2017-05-29 +First pre-release under new project and community. + +This release should primarily address issues with Thunderbird 52 and Lightning 5.4. ## [3.9.0] - unknown release date - Stable Release diff --git a/Makefile b/Makefile new file mode 100644 index 00000000..20f73cbb --- /dev/null +++ b/Makefile @@ -0,0 +1,13 @@ +version = $(shell cat VERSION) +excludefromxpi = \*.git \*.xpi \*.sh update\*.txt Makefile VERSION + +beautify: + find \( -name "*.xml" -o -name "*.rdf" \) -exec xmllint --format --output {} {} \; + find -name "*.js" -exec js-beautify --jslint-happy --indent-with-tabs --operator-position after-newline --brace-style end-expand --replace {} \; + +build: + sed -i 's/\(\s*\)[^<]*\?<\/em:version>/\1$(version)<\/em:version>/' install.rdf + cat defaults/preferences/update_disable.txt > defaults/preferences/update.js + zip -r exchangecalendar-v"$(version)".xpi -x $(excludefromxpi) -- . + +dev: beautify build diff --git a/README.md b/README.md index d133202c..ffb1df27 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,98 @@ -Exchange EWS Provider is an **add-on for -[Thunderbird](https://mozilla.org/thunderbird) and -[Lightning](https://mozilla.org/calendar)** that provides -**[Microsoft Exchange](http://microsoft.com/exchange) calendar -support**. +## Introduction + +Exchange Calendar is an add-on for [Thunderbird](https://mozilla.org/thunderbird) +and [Seamonkey](https://www.seamonkey-project.org/). + +It extends the [Lightning](https://mozilla.org/calendar) add-on to provide +[Microsoft Exchange](http://microsoft.com/exchange) support. + +Exchange Calendar extension can: + * Synchronize calendars, tasks, and contacts with a Microsoft Exchange server. + * Create, edit and update events and tasks. + * Display contacts from your address books and the global address list + (they are only readable, they are usable with address autocompletion) + * Manage the Exchange « out of office » feature + +This extension requires: + * Lightning extension corresponding to the Thunderbird release + * The Exchange server has to provide an Exchange Web Service + +This extension was developed by its original author (Michel Verbraak) for +Exchange 2007, 2010 and 2013. + +The ExchangeCalendar community is now maintaining this extension. Support is +best effort and cannot be guaranteed. Contributions are welcome. ## Contributing This add-on is open source and based on the work of many [contributors](https://github.com/ExchangeCalendar/exchangecalendar/graphs/contributors). -### Building +This project is a community driven effort to keep maintained and uptodate +the "Exchange EWS Provider" extension created by Michel Verbraak. + +Currently, the community is really small and have too few developers to +give any warranty on the future. Please help us to continue this project. + +### Provide feedback, report issue + +You are welcome to provide feedback on our Github project: +https://github.com/ExchangeCalendar/exchangecalendar + +Please note that the project is built only for latest stable Thunderbird release +and latest stable Lightning release. + +If you use any different release, please write it in your report. + +As this add-on extends Thunderbird and Lightning directly, it could be in +conflict with other add-ons. -To compile the add-on, run the `build.sh` script. +If you can give us a list of installed and enabled add-ons, it will help us. + +### Get project and build it + +To build the add-on, you have to: +```bash +# clone this project +git clone https://github.com/ExchangeCalendar/exchangecalendar.git +cd exchangecalendar +# build it +make build +``` +Then an `xpi` file is created in the project folder. +This file is directly installable from the add-on page of Thunderbird. + +If it doesn't work, please check you have these tools installed (example for +Debian): +```bash +sudo apt install git-core zip +``` + +### Patch the code + +To help us to maintain the code, we will be thankful to follow these main +guidelines: + +* Use indentation with 4 spaces +* Avoid too long lines, try to break long lines into smaller ones +* Avoid to write "spaghetti" code with too many if/else imbrications +* Try to keep code simple to help us maintain it on long term + +When your patches are ready, you are welcome to do pull requests on our +repository. + +Please help us to review your code by making multiple small pull +requests instead of big ones modifying big parts of the code. + +### Translate + +You are welcome to provide translation updates on our Transifex project: +https://www.transifex.com/ExchangeCalendar/exchangecalendar ## License This software is licensed under the [GNU General Public License, Version 3](http://www.gnu.org/licenses/gpl.html). + +Some of the icons and images used are from the Fugue Icons Collection made +by [Yusuke Kamiyamane](http://p.yusukekamiyamane.com/) diff --git a/VERSION b/VERSION new file mode 100644 index 00000000..922d4daa --- /dev/null +++ b/VERSION @@ -0,0 +1 @@ +4.0.0-beta5 diff --git a/build.sh b/build.sh deleted file mode 100755 index 74e7f71f..00000000 --- a/build.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/sh - -usage() { - printf "Usage: %s [ -u | -d ]\n" "$0" 1>&2 - printf " -u enable update\n" 1>&2 - printf " -d disable update\n" 1>&2 - exit 1 -} - -if [ $# = 0 ];then - usage -fi - -version=$(sed -n -e "s/.*\(.*\)<\/em:version>/\1/p" install.rdf) -while getopts ":ud" OPTION -do - case ${OPTION} in - u) echo "update" - cat defaults/preferences/update_enable.txt > defaults/preferences/update.js - zip -r exchangecalendar-v"$version".xpi ./* -x \*.git \*.xpi \*.sh update\*.txt - exit - ;; - d) echo "no update" - cat defaults/preferences/update_disable.txt > defaults/preferences/update.js - zip -r exchangecalendar-v"$version".xpi ./* -x \*.git \*.xpi \*.sh update\*.txt - exit - ;; - *) usage ;; - esac -done - -usage diff --git a/install.rdf b/install.rdf index babc7c69..3131c30d 100644 --- a/install.rdf +++ b/install.rdf @@ -1,40 +1,27 @@ - - - + - exchangecalendar@extensions.1st-setup.nl - 4.0.0-beta4 + exchangecalendar@ExchangeCalendar + 4.0.0-beta5 - + {3550f703-e582-4d05-9a08-453d09bdfdc6} - 12.0 + 52.* 52.* - - + {92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} - 2.6 - 2.46.* + 2.49.* + 2.49.* - - Exchange EWS Provider - Allows you to sync calendars, tasks, and contacts with your Microsoft Exchange 2007/2010/2013 EWS server from within Lightning. - -You can view, delete, create, and update calendar and task/todo items, and manage "out of office" settings. -You can read and use contacts and global address list contacts for address autocompletion. - -Dutch, French, English, German, Swedish, Japanese, Russian, Italian and Turkish localizations. - -Some of the icons and images used are from the Fugue Icons Collection made by Yusuke Kamiyamane (http://p.yusukekamiyamane.com/) - Ericsson (exchangecalendar@ericsson.com) - Michel Verbraak + Exchange Calendar + Michel Verbraak + ExchangeCalendar community Michel Verbraak (nl) Michel Verbraak (en-US) Dominique Fillon (fr-FR) @@ -44,115 +31,28 @@ Some of the icons and images used are from the Fugue Icons Collection made by Yu Alexey Sinitsyn (ru) Alessandro Menti (it-IT) Engin Özkan (tr) - http://www.1st-setup.nl/wordpress/?page_id=133 - chrome://exchangecalendar-common/skin/images/lightningexchangecalendar.png - 2 - true - - - - en-US - Exchange EWS Provider - Allows you to sync calendars, tasks, and contacts with your Microsoft Exchange 2007/2010/2013 EWS server from within Lightning. - -You can view, delete, create, and update calendar and task/todo items, and manage "out of office" settings. -You can read and use contacts and global address list contacts for address autocompletion. - -Dutch, French, English, German, Swedish, Japanese, Russian, Italian and Turkish localizations. - -Some of the icons and images used are from the Fugue Icons Collection made by Yusuke Kamiyamane (http://p.yusukekamiyamane.com/) - - - - - - de - Exchange EWS Provider - Ermöglicht es Ihnen Kalender, Aufgaben und Kontakte mit einem Microsoft Exchange 2007/2010/2013 EWS Server aus Lightning heraus zu synchronisieren. - -Sie können diese Kalender- und Aufgabeneinträge betrachten, löschen, erstellen und aktualisieren. Sie können die "Out of Office"-Einstellungen verwalten. -Sie können Kontakte und globale Adresslisten lesen und für die Autovervollständigung der Adressen nutzen. - -Übersetzungen in Niederländisch, Französisch, Deutsch, Schwedisch, Japanisch, Russisch, Italienisch und Türkisch. - -Einige der Icons und die Bilder werden aus der Fugue Icons Collection erstellt von Yusuke Kamiyamane (http://p.yusukekamiyamane.com/) genutzt. - - - - - - - nl - Exchange EWS Provider - Verzorgt de toegang tot een Microsoft Exchange 2007/2010/2013 EWS server binnen lightning. -Op dit moment kan men agenda en taken items bekijken, wijzigen, maken en verwijderen. En Out of Office instellen. -Tevens kan je je persoonlijke contacten en die in de Global Addres List lezen, bekijken en gebruiken in adres autocompletion. - -Je kunt ook de Exchange (EWS) instellingen aanpassen. - -In het Nederlands, Frans, Engels, Duits, Zweeds en Japans vertaald. - -Sommige van de iconen en plaatjes komen uit de Fugue Icons collectie gemaakt door Yusuke Kamiyamane (http://p.yusukekamiyamane.com/) - - - - - - ja-JP - Exchange EWS Provider - 予定表と仕事について、lightningで、マイクロソフト Exchange 2007/2010/2013 EWSサーバと同期できるようにします。 - -予定表・仕事ややることリストの、閲覧や削除、作成と更新が可能です。「外出中」の管理も可能です。 - -オランダ語やフランス語、英語、ドイツ語、そして日本語の地域化が提供されます。 - -使用されている一部のアイコンやイメージは、Yusuke Kamiyamane (http://p.yusukekamiyamane.com/)さんの、the Fugue Icons Collectionから取られました。 - - - - - - ru - Exchange EWS Provider - Позволяет вам синхронизировать календарь, задачи и контакты с вашим Microsoft Exchange 2007/2010/2013 EWS сервером из Lightning дополнения. - -Вы можете просматривать, удалять, создавать, обновлять элементы календаря и задач. И управлять настройками "Заместителя". -Вы можете читать и использовать контакты и глобальный список контактов для вставки адресов в письма автозавершением. - -Голландский, французский, английский, немецкий, шведский, японский и русский вариант национальных языковых переводов этого приложения присутствуют тут. - -Некоторые значки и изображения используются из коллекции Fugue Icons созданной Юсукэ Камияманэ (http://p.yusukekamiyamane.com/) - - - - - - it-IT - Provider Exchange EWS - Consente di sincronizzare i propri Calendario, Attività e Contatti con un server Microsoft Exchange 2007/2010/2013 EWS da Lightning. - -È possibile visualizzare, eliminare, creare e aggiornare elementi del Calendario e Attività/Da fare e gestire le opzioni Fuori sede. -È possibile leggere e utilizzare i propri contatti e i contatti della Global Address List per l'autocompletamento degli indirizzi. - -Localizzato in olandese, francese, inglese, tedesco, svedese, giapponese e italiano. - -Alcune delle icone e immagini utilizzate sono state tratte dalla Fugue Icons Collection di Yusuke Kamiyamane (http://p.yusukekamiyamane.com/) - - - - - - tr - Exchange EWS Sağlayıcısı - Lightning içinde, Takvim, Görevler ve Kişileri Microsoft Exchange 2007/2010/2013 EWS sunucunuzla eşitlemenizi sağlar. - -Takvim ve Görev-Yapılacaklarınızdaki maddeleri görebilir ve silebilir, yeni maddeler yaratabilir ya da maddeleri güncelleyebilirsiniz. "İşyeri Dışında" ayarlarınızı da denetleyebilirsiniz. -Kişilerinizdeki ve Genel Adres Listesindeki kişileri görebilir ve automatik adres tamamlamada kullanabilirsiniz. - -Almanca, Flemenkçe, Fransızca, İngilizce, İsveççe, İtalyanca, Japonca, Rusça, ve Türkçe yerelleştirmeleri vardır. - -Bazı ikon ve imgeler, Yusuke Kamiyamane tarafından yapılmış olan Fugue Icons Collection'dan alınıp kullanılmıştır. (http://p.yusukekamiyamane.com/) - - - + +Exchange Calendar extension can: + * Synchronize calendars, tasks, and contacts with a Microsoft Exchange server. + * Create, edit and update events and tasks. + * Display contacts from your address books and the global address list + (they are only readable, they are usable with address autocompletion) + * Manage the Exchange « out of office » feature + +This extension requires: + * Lightning extension corresponding to the Thunderbird release + * The Exchange server has to provide an Exchange Web Service + +This extension was developed by its original author (Michel Verbraak) for +Exchange 2007, 2010 and 2013. + +Now, ExchangeCalendar community try to keep this extension working, but can't +provide any guarantee on which versions are supported. + +You are welcome to provide feedback on our github project: +https://github.com/ExchangeCalendar/exchangecalendar + +Some of the icons and images used are from the Fugue Icons Collection made by Yusuke Kamiyamane (http://p.yusukekamiyamane.com/) + + diff --git a/translationupdater.sh b/translationupdater.sh deleted file mode 100755 index ff76fbe9..00000000 --- a/translationupdater.sh +++ /dev/null @@ -1,210 +0,0 @@ -#!/bin/bash - -declare -a LOCALEFILES -declare -a LOCALEFOLDERS - -declare -a ELOG - -ECOUNT=0 - -LOCALEROOT="" -LOCALEFILESCOUNT=0 -LOCALEFOLDERSCOUNT=0 - -LOCALEROOT="" -ENUSFOLDERPATH="" -function IsFolder(){ - DIR=$1 - [ -d $DIR ] && [ -n $DIR ] && echo "true" || echo "false" -} - -function IsFile(){ - FILE=$1 - [ -f $FILE ] && [ -n $FILE ] && echo "true" || echo "false" -} - -function LogLine(){ - [ -n "$1" ] &&echo -en "\n$1" -} - -function LogError(){ - echo -en "\nERROR:- $1." - echo -en "\n" - exit 1 -} - -function GetLocaleFolder(){ - if [ "$(IsFolder $LOCALEROOT)" = "false" ];then - LogError "Not a valid locale folder" - fi - LOCALEFOLDERS=( $( find $LOCALEROOT -maxdepth 1 -type d | sed "s|^$LOCALEROOT/||" ) ) -} - -function GetEnUsFiles(){ - if [ "$(IsFolder $ENUSFOLDERPATH)" = "false" ];then - LogError "Locale(en-US) Path is not valid" - fi - - LOCALEFILES=( $( find $ENUSFOLDERPATH -type f -name "*.dtd" | sed "s|^$ENUSFOLDERPATH/||" ) ) -} - -function CopyMissingFiles(){ - LogLine "\n**Copying missing files from en-Us" - - stage=0 - #loop each locale folder - for FLDR in "${LOCALEFOLDERS[@]}" - do - MissingCount=0 - TEMPFOLDER="" - TEMPFOLDER="$LOCALEROOT/$FLDR" - - [ $LOCALEROOT = "$FLDR" ] && continue - [ $TEMPFOLDER = $ENUSFOLDERPATH ] && continue - [ "$( IsFolder $TEMPFOLDER)" = "false" ] && continue - - LogLine "\n[$((++stage))]Checking for missing files in Locale Folder $FLDR" - - #loop each file in en-us folder with others - for FLS in "${LOCALEFILES[@]}" - do - TEMPFILE="" - TEMPFILE="$TEMPFOLDER/$FLS" - - ENFILE="" - ENFILE=$ENUSFOLDERPATH/$FLS - - if [ "$(IsFile $TEMPFILE)" = "true" ];then - : - else - ((MissingCount++)) - #lets copy the missing files - status="fail" - cp "$ENFILE" "$TEMPFILE" - if [ $? -eq 0 ];then - status="success" - fi - ELOG[$((ECOUNT++))]="cp: $ENFILE --> $TEMPFILE -- $status" - fi - - done - [ $MissingCount -gt 0 ] && LogLine "MissingCount: $MissingCount" - done -} - -function CopyMissingTranslation(){ - LogLine "\n**Copying missing tranlation from en-Us files" - stage=0 - #loop each locale folder - for FLDR in "${LOCALEFOLDERS[@]}" - do - TEMPFOLDER="" - TEMPFOLDER="$LOCALEROOT/$FLDR" - - [ $LOCALEROOT = "$FLDR" ] && continue - [ $TEMPFOLDER = $ENUSFOLDERPATH ] && continue - [ "$( IsFolder $TEMPFOLDER)" = "false" ] && continue - - LogLine "\n[$((++stage))]Checking for missing translation in Locale Folder $FLDR" - - #loop each file in en-us folder with others - for FLS in "${LOCALEFILES[@]}" - do - TEMPFILE="" - TEMPFILE="$TEMPFOLDER/$FLS" - - ENFILE="" - ENFILE=$ENUSFOLDERPATH/$FLS - - if [ "$(IsFile $TEMPFILE)" = "true" ];then - #process one file in en-Us at a time with current locale folder - declare -a ENLINE - MissingCount=0 - while read ENLINE - do - - #convert line to array - declare -a LINEARR=(`echo "$ENLINE"`) - - #we know that fild 1 is identifier in dtd file - IDENTIFIER=${LINEARR[1]} - - grep "$IDENTIFIER" "$TEMPFILE" >/dev/null - if [ $? -eq 0 ];then - : - else - ((MissingCount++)) - #lets copy the missing files - status="fail" - echo "$ENLINE" >> $TEMPFILE - if [ $? -eq 0 ];then - status="success" - fi - ELOG[$((ECOUNT++))]="+>> $IDENTIFIER --> $TEMPFILE -- $status" - fi - done<$ENFILE - [ $MissingCount -gt 0 ] && LogLine "$TEMPFILE\nMissingCount: $MissingCount" - else - : - fi - - done - done -} - -function ExtaLog(){ - LogLine "\n**More Logs:" - - for Line in "${ELOG[@]}" - do - LogLine "$Line" - done -} - -#Propmt for path -ROOT=$1 - -[ $# -lt 1 ] && LogError "Input Required. Exit" - -if [ "$(IsFolder $ROOT)" = "false" ];then - LogError "Folder \"$ROOT\" is invalid" -fi - -LogLine "ROOT Set to $ROOT" -LOCALEROOT="$ROOT/locale/exchangecalendar" -LogLine "Locale Path: $LOCALEROOT" -ENUSFOLDERPATH="$LOCALEROOT/en-US" -LogLine "en-US Locale Path: $ENUSFOLDERPATH" - -#GetLocaleFolder -GetLocaleFolder -LOCALEFOLDERSCOUNT=${#LOCALEFOLDERS[@]} -#echo -en "c" ${#LOCALEFOLDERS[@]} ${LOCALEFOLDERS[@]} - -if [ ${#LOCALEFOLDERSCOUNT[@]} -lt 1 ] ; then -LogError "Locale Folder not found" -fi - -GetEnUsFiles -LOCALEFILESCOUNT=${#LOCALEFILES[@]} -#echo -en "c" ${#LOCALEFILES[@]} ${LOCALEFILES[@]} - -if [ ${#LOCALEFILESCOUNT[@]} -lt 1 ] ; then -LogError "Locale files not found" -fi -#lets copy missing locale file in other folders from en-Us -CopyMissingFiles - -#lets copy missing locale translation to other files from en-Us -CopyMissingTranslation - -if [ ${#ELOG[@]} -gt 0 ] ; then -LogLine "" -read -n 1 -p 'Do you see extra logs [y/N?]' REPLY -[ "$REPLY" = "y" ] && ExtaLog - -LogLine "\n--->Log Wrtitten to /tmp/ExtraLog" -echo -en "${ELOG[@]} " > /tmp/ExtraLog -fi - -echo -ne "\n"