From 31de4bc5ebf9556817554ae9630ca06e92fd7218 Mon Sep 17 00:00:00 2001 From: Hugues Hiegel Date: Thu, 12 Sep 2013 11:35:26 +0200 Subject: Updates / Plugins --- index.php | 2 +- main.inc.php.dist | 893 ++++++++ plugins/archive/localization/nb_NB.inc | 21 + plugins/compose_addressbook/compose_addressbook.js | 224 ++ .../compose_addressbook/compose_addressbook.php | 180 ++ plugins/compose_addressbook/config.inc.php.dist | 21 + plugins/compose_addressbook/localization/de_DE.inc | 11 + plugins/compose_addressbook/localization/en_GB.inc | 10 + plugins/compose_addressbook/localization/en_US.inc | 10 + plugins/compose_addressbook/localization/es_ES.inc | 10 + plugins/compose_addressbook/localization/fr_FR.inc | 10 + plugins/compose_addressbook/localization/it_IT.inc | 10 + plugins/compose_addressbook/localization/nl_NL.inc | 10 + plugins/compose_addressbook/localization/pl_PL.inc | 10 + plugins/compose_addressbook/localization/sv_SE.inc | 10 + plugins/compose_addressbook/localization/zh_TW.inc | 10 + plugins/compose_addressbook/package.xml | 18 + .../skins/classic/compose_addressbook.css | 83 + .../skins/classic/compose_addressbook.png | Bin 0 -> 4142 bytes .../skins/classic/searchfield.gif | Bin 0 -> 397 bytes .../smoothness/images/ui-anim_basic_16x16.gif | Bin 0 -> 1553 bytes .../images/ui-bg_flat_0_aaaaaa_40x100.png | Bin 0 -> 180 bytes .../images/ui-bg_flat_75_ffffff_40x100.png | Bin 0 -> 178 bytes .../images/ui-bg_glass_55_fbf9ee_1x400.png | Bin 0 -> 120 bytes .../images/ui-bg_glass_65_ffffff_1x400.png | Bin 0 -> 105 bytes .../images/ui-bg_glass_75_dadada_1x400.png | Bin 0 -> 111 bytes .../images/ui-bg_glass_75_e6e6e6_1x400.png | Bin 0 -> 110 bytes .../images/ui-bg_glass_95_fef1ec_1x400.png | Bin 0 -> 119 bytes .../ui-bg_highlight-soft_75_cccccc_1x100.png | Bin 0 -> 101 bytes .../smoothness/images/ui-icons_222222_256x240.png | Bin 0 -> 4369 bytes .../smoothness/images/ui-icons_2e83ff_256x240.png | Bin 0 -> 4369 bytes .../smoothness/images/ui-icons_454545_256x240.png | Bin 0 -> 4369 bytes .../smoothness/images/ui-icons_888888_256x240.png | Bin 0 -> 4369 bytes .../smoothness/images/ui-icons_cd0a0a_256x240.png | Bin 0 -> 4369 bytes .../classic/smoothness/jquery-ui-1.8.2.custom.css | 345 +++ plugins/contextmenu/contextmenu.js | 595 +++++ plugins/contextmenu/contextmenu.php | 315 +++ plugins/contextmenu/jquery.contextMenu.js | 21 + plugins/contextmenu/jquery.mousewheel.js | 1 + plugins/contextmenu/localization/ca_ES.inc | 12 + plugins/contextmenu/localization/cs_CZ.inc | 12 + plugins/contextmenu/localization/da_DK.inc | 12 + plugins/contextmenu/localization/de_CH.inc | 12 + plugins/contextmenu/localization/de_DE.inc | 12 + plugins/contextmenu/localization/en_GB.inc | 12 + plugins/contextmenu/localization/en_US.inc | 12 + plugins/contextmenu/localization/es_ES.inc | 12 + plugins/contextmenu/localization/fr_FR.inc | 12 + plugins/contextmenu/localization/gl_ES.inc | 12 + plugins/contextmenu/localization/hu_HU.inc | 12 + plugins/contextmenu/localization/it_IT.inc | 12 + plugins/contextmenu/localization/nl_NL.inc | 12 + plugins/contextmenu/localization/pl_PL.inc | 12 + plugins/contextmenu/localization/pt_BR.inc | 12 + plugins/contextmenu/localization/ro_RO.inc | 12 + plugins/contextmenu/localization/ru_RU.inc | 12 + plugins/contextmenu/localization/sv_SE.inc | 12 + plugins/contextmenu/localization/tr_TR.inc | 12 + plugins/contextmenu/localization/uk_UA.inc | 12 + plugins/contextmenu/localization/zh_TW.inc | 12 + plugins/contextmenu/package.xml | 90 + plugins/contextmenu/skins/classic/contexticons.gif | Bin 0 -> 2238 bytes plugins/contextmenu/skins/classic/contexticons.png | Bin 0 -> 4261 bytes plugins/contextmenu/skins/classic/contextmenu.css | 357 +++ plugins/contextmenu/skins/classic/folders.gif | Bin 0 -> 2430 bytes plugins/contextmenu/skins/classic/folders.png | Bin 0 -> 4771 bytes plugins/contextmenu/skins/classic/ie6hacks.css | 54 + .../contextmenu/skins/classic/messageactions.gif | Bin 0 -> 1567 bytes .../contextmenu/skins/classic/messageactions.png | Bin 0 -> 2578 bytes plugins/contextmenu/skins/larry/contexticons.png | Bin 0 -> 5728 bytes plugins/contextmenu/skins/larry/contextmenu.css | 425 ++++ plugins/contextmenu/skins/larry/folders.png | Bin 0 -> 3901 bytes plugins/contextmenu/skins/larry/ie6hacks.css | 3 + plugins/contextmenu/skins/larry/messageactions.png | Bin 0 -> 1698 bytes plugins/copymessage/copymessage.js | 40 + plugins/copymessage/copymessage.php | 114 + plugins/copymessage/localization/ca_ES.inc | 9 + plugins/copymessage/localization/cs_CZ.inc | 9 + plugins/copymessage/localization/da_DK.inc | 9 + plugins/copymessage/localization/de_CH.inc | 9 + plugins/copymessage/localization/de_DE.inc | 9 + plugins/copymessage/localization/en_GB.inc | 9 + plugins/copymessage/localization/en_US.inc | 9 + plugins/copymessage/localization/es_ES.inc | 9 + plugins/copymessage/localization/fr_FR.inc | 9 + plugins/copymessage/localization/gl_ES.inc | 9 + plugins/copymessage/localization/hu_HU.inc | 9 + plugins/copymessage/localization/it_IT.inc | 9 + plugins/copymessage/localization/nl_NL.inc | 9 + plugins/copymessage/localization/pl_PL.inc | 9 + plugins/copymessage/localization/pt_BR.inc | 9 + plugins/copymessage/localization/ro_RO.inc | 9 + plugins/copymessage/localization/ru_RU.inc | 9 + plugins/copymessage/localization/sv_SE.inc | 9 + plugins/copymessage/localization/tr_TR.inc | 9 + plugins/copymessage/package.xml | 78 + plugins/dkimstatus/dkimstatus.php | 155 ++ plugins/dkimstatus/images/authorsign.png | Bin 0 -> 699 bytes plugins/dkimstatus/images/invalidsig.png | Bin 0 -> 618 bytes plugins/dkimstatus/images/nosiginfo.png | Bin 0 -> 707 bytes plugins/dkimstatus/images/thirdpty.png | Bin 0 -> 722 bytes plugins/dkimstatus/localization/cs_CZ.inc | 16 + plugins/dkimstatus/localization/de_DE.inc | 8 + plugins/dkimstatus/localization/en_US.inc | 9 + plugins/dkimstatus/localization/es_ES.inc | 9 + plugins/dkimstatus/localization/fr_FR.inc | 10 + plugins/dkimstatus/localization/it_IT.inc | 7 + plugins/dkimstatus/localization/ja_JP.inc | 9 + plugins/dkimstatus/localization/pl_PL.inc | 9 + plugins/dkimstatus/localization/ro_RO.inc | 9 + plugins/dovecot_impersonate/config.inc.php.dist | 10 + .../dovecot_impersonate/dovecot_impersonate.php | 52 + plugins/dovecot_impersonate/package.xml | 18 + plugins/enigma/home/aldric/pubring.gpg | 0 plugins/enigma/home/aldric/secring.gpg | 0 plugins/enigma/home/aldric/trustdb.gpg | Bin 0 -> 40 bytes plugins/enigma/home/hugues/pubring.gpg | Bin 0 -> 133165 bytes plugins/enigma/home/hugues/secring.gpg | Bin 0 -> 1350 bytes plugins/enigma/home/hugues/trustdb.gpg | Bin 0 -> 1200 bytes plugins/fail2ban/fail2ban.php | 33 + plugins/jqueryui/css | 1 + plugins/jqueryui/js/jquery-ui.min.js | 1 + plugins/keyboard_shortcuts/keyboard_shortcuts.css | 23 + plugins/keyboard_shortcuts/keyboard_shortcuts.js | 139 ++ plugins/keyboard_shortcuts/keyboard_shortcuts.php | 130 ++ plugins/keyboard_shortcuts/localization/cs_CZ.inc | 24 + plugins/keyboard_shortcuts/localization/de_DE.inc | 10 + plugins/keyboard_shortcuts/localization/en_US.inc | 11 + plugins/keyboard_shortcuts/localization/fr_FR.inc | 11 + plugins/keyboard_shortcuts/localization/nl_NL.inc | 11 + plugins/keyboard_shortcuts/localization/pl_PL.inc | 11 + plugins/keyboard_shortcuts/localization/ru_RU.inc | 11 + plugins/keyboard_shortcuts/localization/sv_SE.inc | 10 + plugins/keyboard_shortcuts/localization/zh_TW.inc | 11 + plugins/keyboard_shortcuts/package.xml | 18 + .../skins/classic/images/keyboard.png | Bin 0 -> 4157 bytes .../skins/larry/images/keyboard.png | Bin 0 -> 4157 bytes plugins/listcommands/listcommands.php | 106 + plugins/listcommands/localization/en_US.inc | 12 + plugins/listcommands/localization/es_ES.inc | 12 + plugins/listcommands/localization/fr_FR.inc | 13 + plugins/listcommands/localization/nl_NL.inc | 12 + plugins/listcommands/localization/pl_PL.inc | 12 + plugins/listcommands/localization/ru_RU.inc | 12 + plugins/listcommands/package.xml | 18 + plugins/markasjunk2/config.inc.php.dist | 152 ++ plugins/markasjunk2/drivers/cmd_learn.php | 74 + plugins/markasjunk2/drivers/dir_learn.php | 49 + plugins/markasjunk2/drivers/edit_headers.php | 53 + plugins/markasjunk2/drivers/email_learn.php | 191 ++ plugins/markasjunk2/drivers/sa_blacklist.php | 103 + plugins/markasjunk2/drivers/sa_detach.php | 47 + plugins/markasjunk2/localization/ca_ES.inc | 14 + plugins/markasjunk2/localization/cs_CZ.inc | 14 + plugins/markasjunk2/localization/de_CH.inc | 15 + plugins/markasjunk2/localization/de_DE.inc | 15 + plugins/markasjunk2/localization/en_GB.inc | 15 + plugins/markasjunk2/localization/en_US.inc | 15 + plugins/markasjunk2/localization/es_AR.inc | 14 + plugins/markasjunk2/localization/es_ES.inc | 14 + plugins/markasjunk2/localization/fa_IR.inc | 14 + plugins/markasjunk2/localization/fr_FR.inc | 14 + plugins/markasjunk2/localization/gl_ES.inc | 14 + plugins/markasjunk2/localization/hu_HU.inc | 14 + plugins/markasjunk2/localization/it_IT.inc | 15 + plugins/markasjunk2/localization/lv_LV.inc | 15 + plugins/markasjunk2/localization/nl_NL.inc | 14 + plugins/markasjunk2/localization/pl_PL.inc | 15 + plugins/markasjunk2/localization/pt_BR.inc | 14 + plugins/markasjunk2/localization/ro_RO.inc | 14 + plugins/markasjunk2/localization/ru_RU.inc | 15 + plugins/markasjunk2/localization/tr_TR.inc | 14 + plugins/markasjunk2/localization/zh_TW.inc | 14 + plugins/markasjunk2/markasjunk2.js | 199 ++ plugins/markasjunk2/markasjunk2.php | 211 ++ plugins/markasjunk2/package.xml | 92 + plugins/markasjunk2/skins/classic/ie6hacks.css | 19 + plugins/markasjunk2/skins/classic/mail_toolbar.gif | Bin 0 -> 3434 bytes plugins/markasjunk2/skins/classic/mail_toolbar.png | Bin 0 -> 7565 bytes plugins/markasjunk2/skins/classic/markasjunk2.css | 52 + .../markasjunk2/skins/classic/messageactions.gif | Bin 0 -> 1307 bytes .../markasjunk2/skins/classic/messageactions.png | Bin 0 -> 1798 bytes plugins/markasjunk2/skins/larry/ie6hacks.css | 3 + plugins/markasjunk2/skins/larry/mail_toolbar.png | Bin 0 -> 1924 bytes plugins/markasjunk2/skins/larry/markasjunk2.css | 51 + plugins/markasjunk2/skins/larry/messageactions.png | Bin 0 -> 1050 bytes .../message_highlight/colorpicker/images/color.png | Bin 0 -> 892 bytes .../colorpicker/images/colorpicker.png | Bin 0 -> 4739 bytes .../colorpicker/images/graybar.jpg | Bin 0 -> 5225 bytes .../message_highlight/colorpicker/images/grid.gif | Bin 0 -> 87 bytes .../colorpicker/images/meta100.png | Bin 0 -> 828 bytes .../colorpicker/images/transparentpixel.gif | Bin 0 -> 43 bytes .../message_highlight/colorpicker/mColorPicker.js | 564 +++++ plugins/message_highlight/localization/de_DE.inc | 15 + plugins/message_highlight/localization/en_US.inc | 16 + plugins/message_highlight/localization/fr_FR.inc | 16 + plugins/message_highlight/localization/nl_NL.inc | 15 + plugins/message_highlight/localization/ru_RU.inc | 14 + plugins/message_highlight/message_highlight.css | 74 + plugins/message_highlight/message_highlight.js | 58 + plugins/message_highlight/message_highlight.php | 176 ++ plugins/message_highlight/package.xml | 18 + plugins/quickrules/localization/cs_CZ.inc | 9 + plugins/quickrules/localization/de_CH.inc | 10 + plugins/quickrules/localization/de_DE.inc | 10 + plugins/quickrules/localization/en_GB.inc | 10 + plugins/quickrules/localization/en_US.inc | 10 + plugins/quickrules/localization/hu_HU.inc | 9 + plugins/quickrules/localization/it_IT.inc | 10 + plugins/quickrules/localization/pl_PL.inc | 9 + plugins/quickrules/localization/pt_BR.inc | 9 + plugins/quickrules/localization/pt_PT.inc | 9 + plugins/quickrules/package.xml | 79 + plugins/quickrules/quickrules.js | 169 ++ plugins/quickrules/quickrules.php | 137 ++ plugins/quickrules/skins/classic/ie6hacks.css | 14 + plugins/quickrules/skins/classic/mail_toolbar.gif | Bin 0 -> 1722 bytes plugins/quickrules/skins/classic/mail_toolbar.png | Bin 0 -> 3310 bytes .../quickrules/skins/classic/messageactions.gif | Bin 0 -> 571 bytes .../quickrules/skins/classic/messageactions.png | Bin 0 -> 842 bytes plugins/quickrules/skins/classic/quickrules.css | 26 + plugins/quickrules/skins/larry/ie6hacks.css | 3 + plugins/quickrules/skins/larry/mail_toolbar.png | Bin 0 -> 1350 bytes plugins/quickrules/skins/larry/messageactions.png | Bin 0 -> 672 bytes plugins/quickrules/skins/larry/quickrules.css | 21 + plugins/sauserprefs/config.inc.php.dist | 160 ++ .../include/rcube_sauserprefs_storage.php | 268 +++ plugins/sauserprefs/localization/cs_CZ.inc | 86 + plugins/sauserprefs/localization/de_CH.inc | 86 + plugins/sauserprefs/localization/de_DE.inc | 86 + plugins/sauserprefs/localization/en_GB.inc | 86 + plugins/sauserprefs/localization/en_US.inc | 86 + plugins/sauserprefs/localization/es_ES.inc | 85 + plugins/sauserprefs/localization/fr_FR.inc | 86 + plugins/sauserprefs/localization/gl_ES.inc | 85 + plugins/sauserprefs/localization/hu_HU.inc | 61 + plugins/sauserprefs/localization/it_IT.inc | 86 + plugins/sauserprefs/localization/pl_PL.inc | 86 + plugins/sauserprefs/localization/pt_BR.inc | 85 + plugins/sauserprefs/localization/ro_RO.inc | 85 + plugins/sauserprefs/localization/ru_RU.inc | 87 + plugins/sauserprefs/localization/sk_SK.inc | 86 + plugins/sauserprefs/localization/sv_SE.inc | 84 + plugins/sauserprefs/package.xml | 91 + plugins/sauserprefs/sauserprefs.js | 459 ++++ plugins/sauserprefs/sauserprefs.php | 909 ++++++++ plugins/sauserprefs/skins/classic/help.gif | Bin 0 -> 1024 bytes plugins/sauserprefs/skins/classic/icons.gif | Bin 0 -> 1345 bytes plugins/sauserprefs/skins/classic/icons.png | Bin 0 -> 2045 bytes plugins/sauserprefs/skins/classic/ie6hacks.css | 9 + plugins/sauserprefs/skins/classic/iehacks.css | 9 + plugins/sauserprefs/skins/classic/safari.css | 6 + plugins/sauserprefs/skins/classic/sauserprefs.css | 185 ++ plugins/sauserprefs/skins/classic/tabstyles.css | 3 + .../skins/classic/templates/sauserprefs.html | 47 + .../skins/classic/templates/settingsedit.html | 33 + plugins/sauserprefs/skins/larry/help.png | Bin 0 -> 475 bytes plugins/sauserprefs/skins/larry/icons.png | Bin 0 -> 962 bytes plugins/sauserprefs/skins/larry/iehacks.css | 9 + plugins/sauserprefs/skins/larry/listicons.png | Bin 0 -> 4891 bytes plugins/sauserprefs/skins/larry/safari.css | 6 + plugins/sauserprefs/skins/larry/sauserprefs.css | 253 +++ plugins/sauserprefs/skins/larry/tabstyles.css | 15 + .../skins/larry/templates/sauserprefs.html | 54 + .../skins/larry/templates/settingsedit.html | 30 + plugins/sieverules/config.inc.php.dist | 147 ++ plugins/sieverules/importFilters/avelsieve.php | 54 + plugins/sieverules/importFilters/ingo.php | 52 + plugins/sieverules/include/rcube_sieve.php | 249 +++ plugins/sieverules/include/rcube_sieve_script.php | 969 ++++++++ plugins/sieverules/jquery.maskedinput.js | 7 + plugins/sieverules/lib/Net/Sieve.php | 1 + plugins/sieverules/localization/ca_ES.inc | 168 ++ plugins/sieverules/localization/cs_CZ.inc | 195 ++ plugins/sieverules/localization/de_CH.inc | 192 ++ plugins/sieverules/localization/de_DE.inc | 192 ++ plugins/sieverules/localization/en_GB.inc | 205 ++ plugins/sieverules/localization/en_US.inc | 205 ++ plugins/sieverules/localization/es_AR.inc | 140 ++ plugins/sieverules/localization/es_ES.inc | 185 ++ plugins/sieverules/localization/et_EE.inc | 79 + plugins/sieverules/localization/fi_FI.inc | 186 ++ plugins/sieverules/localization/fr_FR.inc | 185 ++ plugins/sieverules/localization/hu_HU.inc | 171 ++ plugins/sieverules/localization/it_IT.inc | 202 ++ plugins/sieverules/localization/nl_NL.inc | 205 ++ plugins/sieverules/localization/pl_PL.inc | 205 ++ plugins/sieverules/localization/pt_BR.inc | 183 ++ plugins/sieverules/localization/pt_PT.inc | 183 ++ plugins/sieverules/localization/ro_RO.inc | 175 ++ plugins/sieverules/localization/ru_RU.inc | 182 ++ plugins/sieverules/localization/sk_SK.inc | 159 ++ plugins/sieverules/localization/sl_SI.inc | 185 ++ plugins/sieverules/localization/sv_SE.inc | 159 ++ plugins/sieverules/localization/zh_TW.inc | 192 ++ plugins/sieverules/package.xml | 116 + plugins/sieverules/sieverules.js | 1480 +++++++++++++ plugins/sieverules/sieverules.php | 2331 ++++++++++++++++++++ plugins/sieverules/skins/classic/cross.gif | Bin 0 -> 577 bytes plugins/sieverules/skins/classic/help.gif | Bin 0 -> 1024 bytes plugins/sieverules/skins/classic/icons.gif | Bin 0 -> 2017 bytes plugins/sieverules/skins/classic/icons.png | Bin 0 -> 2748 bytes plugins/sieverules/skins/classic/ie6hacks.css | 10 + plugins/sieverules/skins/classic/iehacks.css | 53 + plugins/sieverules/skins/classic/safari.css | 8 + plugins/sieverules/skins/classic/sieverules.css | 406 ++++ plugins/sieverules/skins/classic/tabstyles.css | 3 + .../skins/classic/templates/advancededitor.html | 55 + .../skins/classic/templates/editsieverule.html | 29 + .../skins/classic/templates/setupsieverules.html | 18 + .../skins/classic/templates/sieverules.html | 93 + plugins/sieverules/skins/classic/tick.gif | Bin 0 -> 545 bytes plugins/sieverules/skins/larry/cross.png | Bin 0 -> 342 bytes plugins/sieverules/skins/larry/help.png | Bin 0 -> 475 bytes plugins/sieverules/skins/larry/icons.png | Bin 0 -> 1773 bytes plugins/sieverules/skins/larry/iehacks.css | 53 + plugins/sieverules/skins/larry/listicons.png | Bin 0 -> 1345 bytes plugins/sieverules/skins/larry/safari.css | 8 + plugins/sieverules/skins/larry/sieverules.css | 435 ++++ plugins/sieverules/skins/larry/tabstyles.css | 15 + .../skins/larry/templates/advancededitor.html | 60 + .../skins/larry/templates/editsieverule.html | 30 + .../skins/larry/templates/setupsieverules.html | 27 + .../skins/larry/templates/sieverules.html | 78 + plugins/sieverules/skins/larry/tick.png | Bin 0 -> 284 bytes plugins/thunderbird_labels/localization/bg_BG.inc | 17 + plugins/thunderbird_labels/localization/ca_ES.inc | 17 + plugins/thunderbird_labels/localization/cs_CZ.inc | 18 + plugins/thunderbird_labels/localization/de_DE.inc | 18 + plugins/thunderbird_labels/localization/en_US.inc | 18 + plugins/thunderbird_labels/localization/fr_FR.inc | 17 + plugins/thunderbird_labels/localization/hu_HU.inc | 18 + plugins/thunderbird_labels/localization/lv_LV.inc | 17 + plugins/thunderbird_labels/localization/pl_PL.inc | 18 + plugins/thunderbird_labels/localization/ru_RU.inc | 18 + .../thunderbird_labels/skins/classic/tb_label.css | 183 ++ .../skins/classic/thunderbird_32.png | Bin 0 -> 3232 bytes .../thunderbird_labels/skins/default/tb_label.css | 183 ++ .../skins/default/thunderbird_32.png | Bin 0 -> 3232 bytes .../thunderbird_labels/skins/larry/tb_label.css | 170 ++ .../skins/larry/thunderbird_32.png | Bin 0 -> 2662 bytes plugins/thunderbird_labels/tb_label.js | 369 ++++ plugins/thunderbird_labels/thunderbird_labels.php | 210 ++ program/localization/en_US/labels.inc.orig | 537 +++++ program/steps/mail/func.inc.orig | 1964 +++++++++++++++++ program/steps/mail/show.inc.orig | 315 +++ 346 files changed, 27403 insertions(+), 1 deletion(-) create mode 100644 main.inc.php.dist create mode 100644 plugins/archive/localization/nb_NB.inc create mode 100644 plugins/compose_addressbook/compose_addressbook.js create mode 100644 plugins/compose_addressbook/compose_addressbook.php create mode 100644 plugins/compose_addressbook/config.inc.php.dist create mode 100644 plugins/compose_addressbook/localization/de_DE.inc create mode 100644 plugins/compose_addressbook/localization/en_GB.inc create mode 100644 plugins/compose_addressbook/localization/en_US.inc create mode 100644 plugins/compose_addressbook/localization/es_ES.inc create mode 100644 plugins/compose_addressbook/localization/fr_FR.inc create mode 100644 plugins/compose_addressbook/localization/it_IT.inc create mode 100644 plugins/compose_addressbook/localization/nl_NL.inc create mode 100644 plugins/compose_addressbook/localization/pl_PL.inc create mode 100644 plugins/compose_addressbook/localization/sv_SE.inc create mode 100644 plugins/compose_addressbook/localization/zh_TW.inc create mode 100644 plugins/compose_addressbook/package.xml create mode 100644 plugins/compose_addressbook/skins/classic/compose_addressbook.css create mode 100644 plugins/compose_addressbook/skins/classic/compose_addressbook.png create mode 100644 plugins/compose_addressbook/skins/classic/searchfield.gif create mode 100644 plugins/compose_addressbook/skins/classic/smoothness/images/ui-anim_basic_16x16.gif create mode 100644 plugins/compose_addressbook/skins/classic/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png create mode 100644 plugins/compose_addressbook/skins/classic/smoothness/images/ui-bg_flat_75_ffffff_40x100.png create mode 100644 plugins/compose_addressbook/skins/classic/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png create mode 100644 plugins/compose_addressbook/skins/classic/smoothness/images/ui-bg_glass_65_ffffff_1x400.png create mode 100644 plugins/compose_addressbook/skins/classic/smoothness/images/ui-bg_glass_75_dadada_1x400.png create mode 100644 plugins/compose_addressbook/skins/classic/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png create mode 100644 plugins/compose_addressbook/skins/classic/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png create mode 100644 plugins/compose_addressbook/skins/classic/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png create mode 100644 plugins/compose_addressbook/skins/classic/smoothness/images/ui-icons_222222_256x240.png create mode 100644 plugins/compose_addressbook/skins/classic/smoothness/images/ui-icons_2e83ff_256x240.png create mode 100644 plugins/compose_addressbook/skins/classic/smoothness/images/ui-icons_454545_256x240.png create mode 100644 plugins/compose_addressbook/skins/classic/smoothness/images/ui-icons_888888_256x240.png create mode 100644 plugins/compose_addressbook/skins/classic/smoothness/images/ui-icons_cd0a0a_256x240.png create mode 100644 plugins/compose_addressbook/skins/classic/smoothness/jquery-ui-1.8.2.custom.css create mode 100644 plugins/contextmenu/contextmenu.js create mode 100644 plugins/contextmenu/contextmenu.php create mode 100644 plugins/contextmenu/jquery.contextMenu.js create mode 120000 plugins/contextmenu/jquery.mousewheel.js create mode 100644 plugins/contextmenu/localization/ca_ES.inc create mode 100644 plugins/contextmenu/localization/cs_CZ.inc create mode 100644 plugins/contextmenu/localization/da_DK.inc create mode 100644 plugins/contextmenu/localization/de_CH.inc create mode 100644 plugins/contextmenu/localization/de_DE.inc create mode 100644 plugins/contextmenu/localization/en_GB.inc create mode 100644 plugins/contextmenu/localization/en_US.inc create mode 100644 plugins/contextmenu/localization/es_ES.inc create mode 100644 plugins/contextmenu/localization/fr_FR.inc create mode 100644 plugins/contextmenu/localization/gl_ES.inc create mode 100644 plugins/contextmenu/localization/hu_HU.inc create mode 100644 plugins/contextmenu/localization/it_IT.inc create mode 100644 plugins/contextmenu/localization/nl_NL.inc create mode 100644 plugins/contextmenu/localization/pl_PL.inc create mode 100644 plugins/contextmenu/localization/pt_BR.inc create mode 100644 plugins/contextmenu/localization/ro_RO.inc create mode 100644 plugins/contextmenu/localization/ru_RU.inc create mode 100644 plugins/contextmenu/localization/sv_SE.inc create mode 100644 plugins/contextmenu/localization/tr_TR.inc create mode 100644 plugins/contextmenu/localization/uk_UA.inc create mode 100644 plugins/contextmenu/localization/zh_TW.inc create mode 100644 plugins/contextmenu/package.xml create mode 100644 plugins/contextmenu/skins/classic/contexticons.gif create mode 100644 plugins/contextmenu/skins/classic/contexticons.png create mode 100644 plugins/contextmenu/skins/classic/contextmenu.css create mode 100644 plugins/contextmenu/skins/classic/folders.gif create mode 100644 plugins/contextmenu/skins/classic/folders.png create mode 100644 plugins/contextmenu/skins/classic/ie6hacks.css create mode 100644 plugins/contextmenu/skins/classic/messageactions.gif create mode 100644 plugins/contextmenu/skins/classic/messageactions.png create mode 100644 plugins/contextmenu/skins/larry/contexticons.png create mode 100644 plugins/contextmenu/skins/larry/contextmenu.css create mode 100644 plugins/contextmenu/skins/larry/folders.png create mode 100644 plugins/contextmenu/skins/larry/ie6hacks.css create mode 100644 plugins/contextmenu/skins/larry/messageactions.png create mode 100644 plugins/copymessage/copymessage.js create mode 100644 plugins/copymessage/copymessage.php create mode 100644 plugins/copymessage/localization/ca_ES.inc create mode 100644 plugins/copymessage/localization/cs_CZ.inc create mode 100644 plugins/copymessage/localization/da_DK.inc create mode 100644 plugins/copymessage/localization/de_CH.inc create mode 100644 plugins/copymessage/localization/de_DE.inc create mode 100644 plugins/copymessage/localization/en_GB.inc create mode 100644 plugins/copymessage/localization/en_US.inc create mode 100644 plugins/copymessage/localization/es_ES.inc create mode 100644 plugins/copymessage/localization/fr_FR.inc create mode 100644 plugins/copymessage/localization/gl_ES.inc create mode 100644 plugins/copymessage/localization/hu_HU.inc create mode 100644 plugins/copymessage/localization/it_IT.inc create mode 100644 plugins/copymessage/localization/nl_NL.inc create mode 100644 plugins/copymessage/localization/pl_PL.inc create mode 100644 plugins/copymessage/localization/pt_BR.inc create mode 100644 plugins/copymessage/localization/ro_RO.inc create mode 100644 plugins/copymessage/localization/ru_RU.inc create mode 100644 plugins/copymessage/localization/sv_SE.inc create mode 100644 plugins/copymessage/localization/tr_TR.inc create mode 100644 plugins/copymessage/package.xml create mode 100644 plugins/dkimstatus/dkimstatus.php create mode 100644 plugins/dkimstatus/images/authorsign.png create mode 100644 plugins/dkimstatus/images/invalidsig.png create mode 100644 plugins/dkimstatus/images/nosiginfo.png create mode 100644 plugins/dkimstatus/images/thirdpty.png create mode 100644 plugins/dkimstatus/localization/cs_CZ.inc create mode 100644 plugins/dkimstatus/localization/de_DE.inc create mode 100644 plugins/dkimstatus/localization/en_US.inc create mode 100644 plugins/dkimstatus/localization/es_ES.inc create mode 100644 plugins/dkimstatus/localization/fr_FR.inc create mode 100644 plugins/dkimstatus/localization/it_IT.inc create mode 100644 plugins/dkimstatus/localization/ja_JP.inc create mode 100644 plugins/dkimstatus/localization/pl_PL.inc create mode 100644 plugins/dkimstatus/localization/ro_RO.inc create mode 100644 plugins/dovecot_impersonate/config.inc.php.dist create mode 100644 plugins/dovecot_impersonate/dovecot_impersonate.php create mode 100644 plugins/dovecot_impersonate/package.xml create mode 100644 plugins/enigma/home/aldric/pubring.gpg create mode 100644 plugins/enigma/home/aldric/secring.gpg create mode 100644 plugins/enigma/home/aldric/trustdb.gpg create mode 100644 plugins/enigma/home/hugues/pubring.gpg create mode 100644 plugins/enigma/home/hugues/secring.gpg create mode 100644 plugins/enigma/home/hugues/trustdb.gpg create mode 100644 plugins/fail2ban/fail2ban.php create mode 120000 plugins/jqueryui/css create mode 120000 plugins/jqueryui/js/jquery-ui.min.js create mode 100644 plugins/keyboard_shortcuts/keyboard_shortcuts.css create mode 100644 plugins/keyboard_shortcuts/keyboard_shortcuts.js create mode 100644 plugins/keyboard_shortcuts/keyboard_shortcuts.php create mode 100644 plugins/keyboard_shortcuts/localization/cs_CZ.inc create mode 100644 plugins/keyboard_shortcuts/localization/de_DE.inc create mode 100644 plugins/keyboard_shortcuts/localization/en_US.inc create mode 100644 plugins/keyboard_shortcuts/localization/fr_FR.inc create mode 100644 plugins/keyboard_shortcuts/localization/nl_NL.inc create mode 100644 plugins/keyboard_shortcuts/localization/pl_PL.inc create mode 100644 plugins/keyboard_shortcuts/localization/ru_RU.inc create mode 100644 plugins/keyboard_shortcuts/localization/sv_SE.inc create mode 100644 plugins/keyboard_shortcuts/localization/zh_TW.inc create mode 100644 plugins/keyboard_shortcuts/package.xml create mode 100644 plugins/keyboard_shortcuts/skins/classic/images/keyboard.png create mode 100644 plugins/keyboard_shortcuts/skins/larry/images/keyboard.png create mode 100644 plugins/listcommands/listcommands.php create mode 100644 plugins/listcommands/localization/en_US.inc create mode 100644 plugins/listcommands/localization/es_ES.inc create mode 100644 plugins/listcommands/localization/fr_FR.inc create mode 100644 plugins/listcommands/localization/nl_NL.inc create mode 100644 plugins/listcommands/localization/pl_PL.inc create mode 100644 plugins/listcommands/localization/ru_RU.inc create mode 100644 plugins/listcommands/package.xml create mode 100644 plugins/markasjunk2/config.inc.php.dist create mode 100644 plugins/markasjunk2/drivers/cmd_learn.php create mode 100644 plugins/markasjunk2/drivers/dir_learn.php create mode 100644 plugins/markasjunk2/drivers/edit_headers.php create mode 100644 plugins/markasjunk2/drivers/email_learn.php create mode 100644 plugins/markasjunk2/drivers/sa_blacklist.php create mode 100644 plugins/markasjunk2/drivers/sa_detach.php create mode 100644 plugins/markasjunk2/localization/ca_ES.inc create mode 100644 plugins/markasjunk2/localization/cs_CZ.inc create mode 100644 plugins/markasjunk2/localization/de_CH.inc create mode 100644 plugins/markasjunk2/localization/de_DE.inc create mode 100644 plugins/markasjunk2/localization/en_GB.inc create mode 100644 plugins/markasjunk2/localization/en_US.inc create mode 100644 plugins/markasjunk2/localization/es_AR.inc create mode 100644 plugins/markasjunk2/localization/es_ES.inc create mode 100644 plugins/markasjunk2/localization/fa_IR.inc create mode 100644 plugins/markasjunk2/localization/fr_FR.inc create mode 100644 plugins/markasjunk2/localization/gl_ES.inc create mode 100644 plugins/markasjunk2/localization/hu_HU.inc create mode 100644 plugins/markasjunk2/localization/it_IT.inc create mode 100644 plugins/markasjunk2/localization/lv_LV.inc create mode 100644 plugins/markasjunk2/localization/nl_NL.inc create mode 100644 plugins/markasjunk2/localization/pl_PL.inc create mode 100644 plugins/markasjunk2/localization/pt_BR.inc create mode 100644 plugins/markasjunk2/localization/ro_RO.inc create mode 100644 plugins/markasjunk2/localization/ru_RU.inc create mode 100644 plugins/markasjunk2/localization/tr_TR.inc create mode 100644 plugins/markasjunk2/localization/zh_TW.inc create mode 100644 plugins/markasjunk2/markasjunk2.js create mode 100644 plugins/markasjunk2/markasjunk2.php create mode 100644 plugins/markasjunk2/package.xml create mode 100644 plugins/markasjunk2/skins/classic/ie6hacks.css create mode 100644 plugins/markasjunk2/skins/classic/mail_toolbar.gif create mode 100644 plugins/markasjunk2/skins/classic/mail_toolbar.png create mode 100644 plugins/markasjunk2/skins/classic/markasjunk2.css create mode 100644 plugins/markasjunk2/skins/classic/messageactions.gif create mode 100644 plugins/markasjunk2/skins/classic/messageactions.png create mode 100644 plugins/markasjunk2/skins/larry/ie6hacks.css create mode 100644 plugins/markasjunk2/skins/larry/mail_toolbar.png create mode 100644 plugins/markasjunk2/skins/larry/markasjunk2.css create mode 100644 plugins/markasjunk2/skins/larry/messageactions.png create mode 100644 plugins/message_highlight/colorpicker/images/color.png create mode 100644 plugins/message_highlight/colorpicker/images/colorpicker.png create mode 100644 plugins/message_highlight/colorpicker/images/graybar.jpg create mode 100644 plugins/message_highlight/colorpicker/images/grid.gif create mode 100644 plugins/message_highlight/colorpicker/images/meta100.png create mode 100644 plugins/message_highlight/colorpicker/images/transparentpixel.gif create mode 100644 plugins/message_highlight/colorpicker/mColorPicker.js create mode 100644 plugins/message_highlight/localization/de_DE.inc create mode 100644 plugins/message_highlight/localization/en_US.inc create mode 100644 plugins/message_highlight/localization/fr_FR.inc create mode 100644 plugins/message_highlight/localization/nl_NL.inc create mode 100644 plugins/message_highlight/localization/ru_RU.inc create mode 100644 plugins/message_highlight/message_highlight.css create mode 100644 plugins/message_highlight/message_highlight.js create mode 100644 plugins/message_highlight/message_highlight.php create mode 100644 plugins/message_highlight/package.xml create mode 100644 plugins/quickrules/localization/cs_CZ.inc create mode 100644 plugins/quickrules/localization/de_CH.inc create mode 100644 plugins/quickrules/localization/de_DE.inc create mode 100644 plugins/quickrules/localization/en_GB.inc create mode 100644 plugins/quickrules/localization/en_US.inc create mode 100644 plugins/quickrules/localization/hu_HU.inc create mode 100644 plugins/quickrules/localization/it_IT.inc create mode 100644 plugins/quickrules/localization/pl_PL.inc create mode 100644 plugins/quickrules/localization/pt_BR.inc create mode 100644 plugins/quickrules/localization/pt_PT.inc create mode 100644 plugins/quickrules/package.xml create mode 100644 plugins/quickrules/quickrules.js create mode 100644 plugins/quickrules/quickrules.php create mode 100644 plugins/quickrules/skins/classic/ie6hacks.css create mode 100644 plugins/quickrules/skins/classic/mail_toolbar.gif create mode 100644 plugins/quickrules/skins/classic/mail_toolbar.png create mode 100644 plugins/quickrules/skins/classic/messageactions.gif create mode 100644 plugins/quickrules/skins/classic/messageactions.png create mode 100644 plugins/quickrules/skins/classic/quickrules.css create mode 100644 plugins/quickrules/skins/larry/ie6hacks.css create mode 100644 plugins/quickrules/skins/larry/mail_toolbar.png create mode 100644 plugins/quickrules/skins/larry/messageactions.png create mode 100644 plugins/quickrules/skins/larry/quickrules.css create mode 100644 plugins/sauserprefs/config.inc.php.dist create mode 100644 plugins/sauserprefs/include/rcube_sauserprefs_storage.php create mode 100644 plugins/sauserprefs/localization/cs_CZ.inc create mode 100644 plugins/sauserprefs/localization/de_CH.inc create mode 100644 plugins/sauserprefs/localization/de_DE.inc create mode 100644 plugins/sauserprefs/localization/en_GB.inc create mode 100644 plugins/sauserprefs/localization/en_US.inc create mode 100644 plugins/sauserprefs/localization/es_ES.inc create mode 100644 plugins/sauserprefs/localization/fr_FR.inc create mode 100644 plugins/sauserprefs/localization/gl_ES.inc create mode 100644 plugins/sauserprefs/localization/hu_HU.inc create mode 100644 plugins/sauserprefs/localization/it_IT.inc create mode 100644 plugins/sauserprefs/localization/pl_PL.inc create mode 100644 plugins/sauserprefs/localization/pt_BR.inc create mode 100644 plugins/sauserprefs/localization/ro_RO.inc create mode 100644 plugins/sauserprefs/localization/ru_RU.inc create mode 100644 plugins/sauserprefs/localization/sk_SK.inc create mode 100644 plugins/sauserprefs/localization/sv_SE.inc create mode 100644 plugins/sauserprefs/package.xml create mode 100644 plugins/sauserprefs/sauserprefs.js create mode 100644 plugins/sauserprefs/sauserprefs.php create mode 100644 plugins/sauserprefs/skins/classic/help.gif create mode 100644 plugins/sauserprefs/skins/classic/icons.gif create mode 100644 plugins/sauserprefs/skins/classic/icons.png create mode 100644 plugins/sauserprefs/skins/classic/ie6hacks.css create mode 100644 plugins/sauserprefs/skins/classic/iehacks.css create mode 100644 plugins/sauserprefs/skins/classic/safari.css create mode 100644 plugins/sauserprefs/skins/classic/sauserprefs.css create mode 100644 plugins/sauserprefs/skins/classic/tabstyles.css create mode 100644 plugins/sauserprefs/skins/classic/templates/sauserprefs.html create mode 100644 plugins/sauserprefs/skins/classic/templates/settingsedit.html create mode 100644 plugins/sauserprefs/skins/larry/help.png create mode 100644 plugins/sauserprefs/skins/larry/icons.png create mode 100644 plugins/sauserprefs/skins/larry/iehacks.css create mode 100644 plugins/sauserprefs/skins/larry/listicons.png create mode 100644 plugins/sauserprefs/skins/larry/safari.css create mode 100644 plugins/sauserprefs/skins/larry/sauserprefs.css create mode 100644 plugins/sauserprefs/skins/larry/tabstyles.css create mode 100644 plugins/sauserprefs/skins/larry/templates/sauserprefs.html create mode 100644 plugins/sauserprefs/skins/larry/templates/settingsedit.html create mode 100644 plugins/sieverules/config.inc.php.dist create mode 100644 plugins/sieverules/importFilters/avelsieve.php create mode 100644 plugins/sieverules/importFilters/ingo.php create mode 100644 plugins/sieverules/include/rcube_sieve.php create mode 100644 plugins/sieverules/include/rcube_sieve_script.php create mode 100644 plugins/sieverules/jquery.maskedinput.js create mode 120000 plugins/sieverules/lib/Net/Sieve.php create mode 100644 plugins/sieverules/localization/ca_ES.inc create mode 100644 plugins/sieverules/localization/cs_CZ.inc create mode 100644 plugins/sieverules/localization/de_CH.inc create mode 100644 plugins/sieverules/localization/de_DE.inc create mode 100644 plugins/sieverules/localization/en_GB.inc create mode 100644 plugins/sieverules/localization/en_US.inc create mode 100644 plugins/sieverules/localization/es_AR.inc create mode 100644 plugins/sieverules/localization/es_ES.inc create mode 100644 plugins/sieverules/localization/et_EE.inc create mode 100644 plugins/sieverules/localization/fi_FI.inc create mode 100644 plugins/sieverules/localization/fr_FR.inc create mode 100644 plugins/sieverules/localization/hu_HU.inc create mode 100644 plugins/sieverules/localization/it_IT.inc create mode 100644 plugins/sieverules/localization/nl_NL.inc create mode 100644 plugins/sieverules/localization/pl_PL.inc create mode 100644 plugins/sieverules/localization/pt_BR.inc create mode 100644 plugins/sieverules/localization/pt_PT.inc create mode 100644 plugins/sieverules/localization/ro_RO.inc create mode 100644 plugins/sieverules/localization/ru_RU.inc create mode 100644 plugins/sieverules/localization/sk_SK.inc create mode 100644 plugins/sieverules/localization/sl_SI.inc create mode 100644 plugins/sieverules/localization/sv_SE.inc create mode 100644 plugins/sieverules/localization/zh_TW.inc create mode 100644 plugins/sieverules/package.xml create mode 100644 plugins/sieverules/sieverules.js create mode 100644 plugins/sieverules/sieverules.php create mode 100644 plugins/sieverules/skins/classic/cross.gif create mode 100644 plugins/sieverules/skins/classic/help.gif create mode 100644 plugins/sieverules/skins/classic/icons.gif create mode 100644 plugins/sieverules/skins/classic/icons.png create mode 100644 plugins/sieverules/skins/classic/ie6hacks.css create mode 100644 plugins/sieverules/skins/classic/iehacks.css create mode 100644 plugins/sieverules/skins/classic/safari.css create mode 100644 plugins/sieverules/skins/classic/sieverules.css create mode 100644 plugins/sieverules/skins/classic/tabstyles.css create mode 100644 plugins/sieverules/skins/classic/templates/advancededitor.html create mode 100644 plugins/sieverules/skins/classic/templates/editsieverule.html create mode 100644 plugins/sieverules/skins/classic/templates/setupsieverules.html create mode 100644 plugins/sieverules/skins/classic/templates/sieverules.html create mode 100644 plugins/sieverules/skins/classic/tick.gif create mode 100644 plugins/sieverules/skins/larry/cross.png create mode 100644 plugins/sieverules/skins/larry/help.png create mode 100644 plugins/sieverules/skins/larry/icons.png create mode 100644 plugins/sieverules/skins/larry/iehacks.css create mode 100644 plugins/sieverules/skins/larry/listicons.png create mode 100644 plugins/sieverules/skins/larry/safari.css create mode 100644 plugins/sieverules/skins/larry/sieverules.css create mode 100644 plugins/sieverules/skins/larry/tabstyles.css create mode 100644 plugins/sieverules/skins/larry/templates/advancededitor.html create mode 100644 plugins/sieverules/skins/larry/templates/editsieverule.html create mode 100644 plugins/sieverules/skins/larry/templates/setupsieverules.html create mode 100644 plugins/sieverules/skins/larry/templates/sieverules.html create mode 100644 plugins/sieverules/skins/larry/tick.png create mode 100644 plugins/thunderbird_labels/localization/bg_BG.inc create mode 100644 plugins/thunderbird_labels/localization/ca_ES.inc create mode 100644 plugins/thunderbird_labels/localization/cs_CZ.inc create mode 100644 plugins/thunderbird_labels/localization/de_DE.inc create mode 100644 plugins/thunderbird_labels/localization/en_US.inc create mode 100644 plugins/thunderbird_labels/localization/fr_FR.inc create mode 100644 plugins/thunderbird_labels/localization/hu_HU.inc create mode 100644 plugins/thunderbird_labels/localization/lv_LV.inc create mode 100644 plugins/thunderbird_labels/localization/pl_PL.inc create mode 100644 plugins/thunderbird_labels/localization/ru_RU.inc create mode 100644 plugins/thunderbird_labels/skins/classic/tb_label.css create mode 100644 plugins/thunderbird_labels/skins/classic/thunderbird_32.png create mode 100644 plugins/thunderbird_labels/skins/default/tb_label.css create mode 100644 plugins/thunderbird_labels/skins/default/thunderbird_32.png create mode 100644 plugins/thunderbird_labels/skins/larry/tb_label.css create mode 100644 plugins/thunderbird_labels/skins/larry/thunderbird_32.png create mode 100644 plugins/thunderbird_labels/tb_label.js create mode 100644 plugins/thunderbird_labels/thunderbird_labels.php create mode 100644 program/localization/en_US/labels.inc.orig create mode 100644 program/steps/mail/func.inc.orig create mode 100644 program/steps/mail/show.inc.orig diff --git a/index.php b/index.php index 1719abc48..727c66163 100644 --- a/index.php +++ b/index.php @@ -2,7 +2,7 @@ /* +-------------------------------------------------------------------------+ | Roundcube Webmail IMAP Client | - | Version 1.0-git | + | Version 0.9.2 | | | | Copyright (C) 2005-2013, The Roundcube Dev Team | | | diff --git a/main.inc.php.dist b/main.inc.php.dist new file mode 100644 index 000000000..11297155f --- /dev/null +++ b/main.inc.php.dist @@ -0,0 +1,893 @@ +/sendmail or to syslog +$rcmail_config['smtp_log'] = true; + +// Log successful logins to /userlogins or to syslog +$rcmail_config['log_logins'] = false; + +// Log session authentication errors to /session or to syslog +$rcmail_config['log_session'] = false; + +// Log SQL queries to /sql or to syslog +$rcmail_config['sql_debug'] = false; + +// Log IMAP conversation to /imap or to syslog +$rcmail_config['imap_debug'] = false; + +// Log LDAP conversation to /ldap or to syslog +$rcmail_config['ldap_debug'] = false; + +// Log SMTP conversation to /smtp or to syslog +$rcmail_config['smtp_debug'] = false; + +// ---------------------------------- +// IMAP +// ---------------------------------- + +// The mail host chosen to perform the log-in. +// Leave blank to show a textbox at login, give a list of hosts +// to display a pulldown menu or set one host as string. +// To use SSL/TLS connection, enter hostname with prefix ssl:// or tls:// +// Supported replacement variables: +// %n - hostname ($_SERVER['SERVER_NAME']) +// %t - hostname without the first part +// %d - domain (http hostname $_SERVER['HTTP_HOST'] without the first part) +// %s - domain name after the '@' from e-mail address provided at login screen +// For example %n = mail.domain.tld, %t = domain.tld +// WARNING: After hostname change update of mail_host column in users table is +// required to match old user data records with the new host. +$rcmail_config['default_host'] = ''; + +// TCP port used for IMAP connections +$rcmail_config['default_port'] = 143; + +// IMAP AUTH type (DIGEST-MD5, CRAM-MD5, LOGIN, PLAIN or null to use +// best server supported one) +$rcmail_config['imap_auth_type'] = null; + +// If you know your imap's folder delimiter, you can specify it here. +// Otherwise it will be determined automatically +$rcmail_config['imap_delimiter'] = null; + +// If IMAP server doesn't support NAMESPACE extension, but you're +// using shared folders or personal root folder is non-empty, you'll need to +// set these options. All can be strings or arrays of strings. +// Folders need to be ended with directory separator, e.g. "INBOX." +// (special directory "~" is an exception to this rule) +// These can be used also to overwrite server's namespaces +$rcmail_config['imap_ns_personal'] = null; +$rcmail_config['imap_ns_other'] = null; +$rcmail_config['imap_ns_shared'] = null; + +// By default IMAP capabilities are readed after connection to IMAP server +// In some cases, e.g. when using IMAP proxy, there's a need to refresh the list +// after login. Set to True if you've got this case. +$rcmail_config['imap_force_caps'] = false; + +// By default list of subscribed folders is determined using LIST-EXTENDED +// extension if available. Some servers (dovecot 1.x) returns wrong results +// for shared namespaces in this case. http://trac.roundcube.net/ticket/1486225 +// Enable this option to force LSUB command usage instead. +$rcmail_config['imap_force_lsub'] = false; + +// Some server configurations (e.g. Courier) doesn't list folders in all namespaces +// Enable this option to force listing of folders in all namespaces +$rcmail_config['imap_force_ns'] = false; + +// IMAP connection timeout, in seconds. Default: 0 (no limit) +$rcmail_config['imap_timeout'] = 0; + +// Optional IMAP authentication identifier to be used as authorization proxy +$rcmail_config['imap_auth_cid'] = null; + +// Optional IMAP authentication password to be used for imap_auth_cid +$rcmail_config['imap_auth_pw'] = null; + +// Type of IMAP indexes cache. Supported values: 'db', 'apc' and 'memcache'. +$rcmail_config['imap_cache'] = null; + +// Enables messages cache. Only 'db' cache is supported. +$rcmail_config['messages_cache'] = false; + + +// ---------------------------------- +// SMTP +// ---------------------------------- + +// SMTP server host (for sending mails). +// To use SSL/TLS connection, enter hostname with prefix ssl:// or tls:// +// If left blank, the PHP mail() function is used +// Supported replacement variables: +// %h - user's IMAP hostname +// %n - hostname ($_SERVER['SERVER_NAME']) +// %t - hostname without the first part +// %d - domain (http hostname $_SERVER['HTTP_HOST'] without the first part) +// %z - IMAP domain (IMAP hostname without the first part) +// For example %n = mail.domain.tld, %t = domain.tld +$rcmail_config['smtp_server'] = ''; + +// SMTP port (default is 25; use 587 for STARTTLS or 465 for the +// deprecated SSL over SMTP (aka SMTPS)) +$rcmail_config['smtp_port'] = 25; + +// SMTP username (if required) if you use %u as the username Roundcube +// will use the current username for login +$rcmail_config['smtp_user'] = ''; + +// SMTP password (if required) if you use %p as the password Roundcube +// will use the current user's password for login +$rcmail_config['smtp_pass'] = ''; + +// SMTP AUTH type (DIGEST-MD5, CRAM-MD5, LOGIN, PLAIN or empty to use +// best server supported one) +$rcmail_config['smtp_auth_type'] = ''; + +// Optional SMTP authentication identifier to be used as authorization proxy +$rcmail_config['smtp_auth_cid'] = null; + +// Optional SMTP authentication password to be used for smtp_auth_cid +$rcmail_config['smtp_auth_pw'] = null; + +// SMTP HELO host +// Hostname to give to the remote server for SMTP 'HELO' or 'EHLO' messages +// Leave this blank and you will get the server variable 'server_name' or +// localhost if that isn't defined. +$rcmail_config['smtp_helo_host'] = ''; + +// SMTP connection timeout, in seconds. Default: 0 (no limit) +$rcmail_config['smtp_timeout'] = 0; + +// ---------------------------------- +// SYSTEM +// ---------------------------------- + +// THIS OPTION WILL ALLOW THE INSTALLER TO RUN AND CAN EXPOSE SENSITIVE CONFIG DATA. +// ONLY ENABLE IT IF YOU'RE REALLY SURE WHAT YOU'RE DOING! +$rcmail_config['enable_installer'] = false; + +// don't allow these settings to be overriden by the user +$rcmail_config['dont_override'] = array(); + +// provide an URL where a user can get support for this Roundcube installation +// PLEASE DO NOT LINK TO THE ROUNDCUBE.NET WEBSITE HERE! +$rcmail_config['support_url'] = ''; + +// replace Roundcube logo with this image +// specify an URL relative to the document root of this Roundcube installation +$rcmail_config['skin_logo'] = null; + +// automatically create a new Roundcube user when log-in the first time. +// a new user will be created once the IMAP login succeeds. +// set to false if only registered users can use this service +$rcmail_config['auto_create_user'] = true; + +// Enables possibility to log in using email address from user identities +$rcmail_config['user_aliases'] = false; + +// use this folder to store log files (must be writeable for apache user) +// This is used by the 'file' log driver. +$rcmail_config['log_dir'] = 'logs/'; + +// use this folder to store temp files (must be writeable for apache user) +$rcmail_config['temp_dir'] = 'temp/'; + +// lifetime of message cache +// possible units: s, m, h, d, w +$rcmail_config['message_cache_lifetime'] = '10d'; + +// enforce connections over https +// with this option enabled, all non-secure connections will be redirected. +// set the port for the ssl connection as value of this option if it differs from the default 443 +$rcmail_config['force_https'] = false; + +// tell PHP that it should work as under secure connection +// even if it doesn't recognize it as secure ($_SERVER['HTTPS'] is not set) +// e.g. when you're running Roundcube behind a https proxy +// this option is mutually exclusive to 'force_https' and only either one of them should be set to true. +$rcmail_config['use_https'] = false; + +// Allow browser-autocompletion on login form. +// 0 - disabled, 1 - username and host only, 2 - username, host, password +$rcmail_config['login_autocomplete'] = 0; + +// Forces conversion of logins to lower case. +// 0 - disabled, 1 - only domain part, 2 - domain and local part. +// If users authentication is case-insensitive this must be enabled. +// Note: After enabling it all user records need to be updated, e.g. with query: +// UPDATE users SET username = LOWER(username); +$rcmail_config['login_lc'] = 2; + +// Includes should be interpreted as PHP files +$rcmail_config['skin_include_php'] = false; + +// display software version on login screen +$rcmail_config['display_version'] = false; + +// Session lifetime in minutes +$rcmail_config['session_lifetime'] = 10; + +// Session domain: .example.org +$rcmail_config['session_domain'] = ''; + +// Session name. Default: 'roundcube_sessid' +$rcmail_config['session_name'] = null; + +// Session path. Defaults to PHP session.cookie_path setting. +$rcmail_config['session_path'] = null; + +// Backend to use for session storage. Can either be 'db' (default) or 'memcache' +// If set to memcache, a list of servers need to be specified in 'memcache_hosts' +// Make sure the Memcache extension (http://pecl.php.net/package/memcache) version >= 2.0.0 is installed +$rcmail_config['session_storage'] = 'db'; + +// Use these hosts for accessing memcached +// Define any number of hosts in the form of hostname:port or unix:///path/to/socket.file +$rcmail_config['memcache_hosts'] = null; // e.g. array( 'localhost:11211', '192.168.1.12:11211', 'unix:///var/tmp/memcached.sock' ); + +// check client IP in session athorization +$rcmail_config['ip_check'] = false; + +// check referer of incoming requests +$rcmail_config['referer_check'] = false; + +// X-Frame-Options HTTP header value sent to prevent from Clickjacking. +// Possible values: sameorigin|deny. Set to false in order to disable sending them +$rcmail_config['x_frame_options'] = 'sameorigin'; + +// this key is used to encrypt the users imap password which is stored +// in the session record (and the client cookie if remember password is enabled). +// please provide a string of exactly 24 chars. +$rcmail_config['des_key'] = 'rcmail-!24ByteDESkey*Str'; + +// Automatically add this domain to user names for login +// Only for IMAP servers that require full e-mail addresses for login +// Specify an array with 'host' => 'domain' values to support multiple hosts +// Supported replacement variables: +// %h - user's IMAP hostname +// %n - hostname ($_SERVER['SERVER_NAME']) +// %t - hostname without the first part +// %d - domain (http hostname $_SERVER['HTTP_HOST'] without the first part) +// %z - IMAP domain (IMAP hostname without the first part) +// For example %n = mail.domain.tld, %t = domain.tld +$rcmail_config['username_domain'] = ''; + +// This domain will be used to form e-mail addresses of new users +// Specify an array with 'host' => 'domain' values to support multiple hosts +// Supported replacement variables: +// %h - user's IMAP hostname +// %n - http hostname ($_SERVER['SERVER_NAME']) +// %d - domain (http hostname without the first part) +// %z - IMAP domain (IMAP hostname without the first part) +// For example %n = mail.domain.tld, %t = domain.tld +$rcmail_config['mail_domain'] = ''; + +// Password charset. +// Use it if your authentication backend doesn't support UTF-8. +// Defaults to ISO-8859-1 for backward compatibility +$rcmail_config['password_charset'] = 'ISO-8859-1'; + +// How many seconds must pass between emails sent by a user +$rcmail_config['sendmail_delay'] = 0; + +// Maximum number of recipients per message. Default: 0 (no limit) +$rcmail_config['max_recipients'] = 0; + +// Maximum allowednumber of members of an address group. Default: 0 (no limit) +// If 'max_recipients' is set this value should be less or equal +$rcmail_config['max_group_members'] = 0; + +// add this user-agent to message headers when sending +$rcmail_config['useragent'] = 'Roundcube Webmail/'.RCMAIL_VERSION; + +// use this name to compose page titles +$rcmail_config['product_name'] = 'Roundcube Webmail'; + +// try to load host-specific configuration +// see http://trac.roundcube.net/wiki/Howto_Config for more details +$rcmail_config['include_host_config'] = false; + +// path to a text file which will be added to each sent message +// paths are relative to the Roundcube root folder +$rcmail_config['generic_message_footer'] = ''; + +// path to a text file which will be added to each sent HTML message +// paths are relative to the Roundcube root folder +$rcmail_config['generic_message_footer_html'] = ''; + +// add a received header to outgoing mails containing the creators IP and hostname +$rcmail_config['http_received_header'] = false; + +// Whether or not to encrypt the IP address and the host name +// these could, in some circles, be considered as sensitive information; +// however, for the administrator, these could be invaluable help +// when tracking down issues. +$rcmail_config['http_received_header_encrypt'] = false; + +// This string is used as a delimiter for message headers when sending +// a message via mail() function. Leave empty for auto-detection +$rcmail_config['mail_header_delimiter'] = NULL; + +// number of chars allowed for line when wrapping text. +// text wrapping is done when composing/sending messages +$rcmail_config['line_length'] = 72; + +// send plaintext messages as format=flowed +$rcmail_config['send_format_flowed'] = true; + +// According to RFC2298, return receipt envelope sender address must be empty. +// If this option is true, Roundcube will use user's identity as envelope sender for MDN responses. +$rcmail_config['mdn_use_from'] = false; + +// Set identities access level: +// 0 - many identities with possibility to edit all params +// 1 - many identities with possibility to edit all params but not email address +// 2 - one identity with possibility to edit all params +// 3 - one identity with possibility to edit all params but not email address +// 4 - one identity with possibility to edit only signature +$rcmail_config['identities_level'] = 0; + +// Mimetypes supported by the browser. +// attachments of these types will open in a preview window +// either a comma-separated list or an array: 'text/plain,text/html,text/xml,image/jpeg,image/gif,image/png,application/pdf' +$rcmail_config['client_mimetypes'] = null; # null == default + +// Path to a local mime magic database file for PHPs finfo extension. +// Set to null if the default path should be used. +$rcmail_config['mime_magic'] = null; + +// Absolute path to a local mime.types mapping table file. +// This is used to derive mime-types from the filename extension or vice versa. +// Such a file is usually part of the apache webserver. If you don't find a file named mime.types on your system, +// download it from http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types +$rcmail_config['mime_types'] = null; + +// path to imagemagick identify binary +$rcmail_config['im_identify_path'] = null; + +// path to imagemagick convert binary +$rcmail_config['im_convert_path'] = null; + +// Size of thumbnails from image attachments displayed below the message content. +// Note: whether images are displayed at all depends on the 'inline_images' option. +// Set to 0 to display images in full size. +$rcmail_config['image_thumbnail_size'] = 240; + +// maximum size of uploaded contact photos in pixel +$rcmail_config['contact_photo_size'] = 160; + +// Enable DNS checking for e-mail address validation +$rcmail_config['email_dns_check'] = false; + +// Disables saving sent messages in Sent folder (like gmail) (Default: false) +// Note: useful when SMTP server stores sent mail in user mailbox +$rcmail_config['no_save_sent_messages'] = false; + +// ---------------------------------- +// PLUGINS +// ---------------------------------- + +// List of active plugins (in plugins/ directory) +$rcmail_config['plugins'] = array(); + +// ---------------------------------- +// USER INTERFACE +// ---------------------------------- + +// default messages sort column. Use empty value for default server's sorting, +// or 'arrival', 'date', 'subject', 'from', 'to', 'fromto', 'size', 'cc' +$rcmail_config['message_sort_col'] = ''; + +// default messages sort order +$rcmail_config['message_sort_order'] = 'DESC'; + +// These cols are shown in the message list. Available cols are: +// subject, from, to, fromto, cc, replyto, date, size, status, flag, attachment, 'priority' +$rcmail_config['list_cols'] = array('subject', 'status', 'fromto', 'date', 'size', 'flag', 'attachment'); + +// the default locale setting (leave empty for auto-detection) +// RFC1766 formatted language name like en_US, de_DE, de_CH, fr_FR, pt_BR +$rcmail_config['language'] = null; + +// use this format for date display (date or strftime format) +$rcmail_config['date_format'] = 'Y-m-d'; + +// give this choice of date formats to the user to select from +$rcmail_config['date_formats'] = array('Y-m-d', 'd-m-Y', 'Y/m/d', 'm/d/Y', 'd/m/Y', 'd.m.Y', 'j.n.Y'); + +// use this format for time display (date or strftime format) +$rcmail_config['time_format'] = 'H:i'; + +// give this choice of time formats to the user to select from +$rcmail_config['time_formats'] = array('G:i', 'H:i', 'g:i a', 'h:i A'); + +// use this format for short date display (derived from date_format and time_format) +$rcmail_config['date_short'] = 'D H:i'; + +// use this format for detailed date/time formatting (derived from date_format and time_format) +$rcmail_config['date_long'] = 'Y-m-d H:i'; + +// store draft message is this mailbox +// leave blank if draft messages should not be stored +// NOTE: Use folder names with namespace prefix (INBOX. on Courier-IMAP) +$rcmail_config['drafts_mbox'] = 'Drafts'; + +// store spam messages in this mailbox +// NOTE: Use folder names with namespace prefix (INBOX. on Courier-IMAP) +$rcmail_config['junk_mbox'] = 'Junk'; + +// store sent message is this mailbox +// leave blank if sent messages should not be stored +// NOTE: Use folder names with namespace prefix (INBOX. on Courier-IMAP) +$rcmail_config['sent_mbox'] = 'Sent'; + +// move messages to this folder when deleting them +// leave blank if they should be deleted directly +// NOTE: Use folder names with namespace prefix (INBOX. on Courier-IMAP) +$rcmail_config['trash_mbox'] = 'Trash'; + +// display these folders separately in the mailbox list. +// these folders will also be displayed with localized names +// NOTE: Use folder names with namespace prefix (INBOX. on Courier-IMAP) +$rcmail_config['default_folders'] = array('INBOX', 'Drafts', 'Sent', 'Junk', 'Trash'); + +// automatically create the above listed default folders on first login +$rcmail_config['create_default_folders'] = false; + +// protect the default folders from renames, deletes, and subscription changes +$rcmail_config['protect_default_folders'] = true; + +// if in your system 0 quota means no limit set this option to true +$rcmail_config['quota_zero_as_unlimited'] = false; + +// Make use of the built-in spell checker. It is based on GoogieSpell. +// Since Google only accepts connections over https your PHP installatation +// requires to be compiled with Open SSL support +$rcmail_config['enable_spellcheck'] = true; + +// Enables spellchecker exceptions dictionary. +// Setting it to 'shared' will make the dictionary shared by all users. +$rcmail_config['spellcheck_dictionary'] = false; + +// Set the spell checking engine. 'googie' is the default. 'pspell' is also available, +// but requires the Pspell extensions. When using Nox Spell Server, also set 'googie' here. +$rcmail_config['spellcheck_engine'] = 'pspell'; + +// For a locally installed Nox Spell Server, please specify the URI to call it. +// Get Nox Spell Server from http://orangoo.com/labs/?page_id=72 +// Leave empty to use the Google spell checking service, what means +// that the message content will be sent to Google in order to check spelling +$rcmail_config['spellcheck_uri'] = ''; + +// These languages can be selected for spell checking. +// Configure as a PHP style hash array: array('en'=>'English', 'de'=>'Deutsch'); +// Leave empty for default set of available language. +$rcmail_config['spellcheck_languages'] = NULL; + +// Makes that words with all letters capitalized will be ignored (e.g. GOOGLE) +$rcmail_config['spellcheck_ignore_caps'] = false; + +// Makes that words with numbers will be ignored (e.g. g00gle) +$rcmail_config['spellcheck_ignore_nums'] = false; + +// Makes that words with symbols will be ignored (e.g. g@@gle) +$rcmail_config['spellcheck_ignore_syms'] = false; + +// Use this char/string to separate recipients when composing a new message +$rcmail_config['recipients_separator'] = ','; + +// don't let users set pagesize to more than this value if set +$rcmail_config['max_pagesize'] = 200; + +// Minimal value of user's 'refresh_interval' setting (in seconds) +$rcmail_config['min_refresh_interval'] = 60; + +// Enables files upload indicator. Requires APC installed and enabled apc.rfc1867 option. +// By default refresh time is set to 1 second. You can set this value to true +// or any integer value indicating number of seconds. +$rcmail_config['upload_progress'] = false; + +// Specifies for how many seconds the Undo button will be available +// after object delete action. Currently used with supporting address book sources. +// Setting it to 0, disables the feature. +$rcmail_config['undo_timeout'] = 0; + +// ---------------------------------- +// ADDRESSBOOK SETTINGS +// ---------------------------------- + +// This indicates which type of address book to use. Possible choises: +// 'sql' (default), 'ldap' and ''. +// If set to 'ldap' then it will look at using the first writable LDAP +// address book as the primary address book and it will not display the +// SQL address book in the 'Address Book' view. +// If set to '' then no address book will be displayed or only the +// addressbook which is created by a plugin (like CardDAV). +$rcmail_config['address_book_type'] = 'sql'; + +// In order to enable public ldap search, configure an array like the Verisign +// example further below. if you would like to test, simply uncomment the example. +// Array key must contain only safe characters, ie. a-zA-Z0-9_ +$rcmail_config['ldap_public'] = array(); + +// If you are going to use LDAP for individual address books, you will need to +// set 'user_specific' to true and use the variables to generate the appropriate DNs to access it. +// +// The recommended directory structure for LDAP is to store all the address book entries +// under the users main entry, e.g.: +// +// o=root +// ou=people +// uid=user@domain +// mail=contact@contactdomain +// +// So the base_dn would be uid=%fu,ou=people,o=root +// The bind_dn would be the same as based_dn or some super user login. +/* + * example config for Verisign directory + * +$rcmail_config['ldap_public']['Verisign'] = array( + 'name' => 'Verisign.com', + // Replacement variables supported in host names: + // %h - user's IMAP hostname + // %n - hostname ($_SERVER['SERVER_NAME']) + // %t - hostname without the first part + // %d - domain (http hostname $_SERVER['HTTP_HOST'] without the first part) + // %z - IMAP domain (IMAP hostname without the first part) + // For example %n = mail.domain.tld, %t = domain.tld + 'hosts' => array('directory.verisign.com'), + 'port' => 389, + 'use_tls' => false, + 'ldap_version' => 3, // using LDAPv3 + 'network_timeout' => 10, // The timeout (in seconds) for connect + bind arrempts. This is only supported in PHP >= 5.3.0 with OpenLDAP 2.x + 'user_specific' => false, // If true the base_dn, bind_dn and bind_pass default to the user's IMAP login. + // %fu - The full username provided, assumes the username is an email + // address, uses the username_domain value if not an email address. + // %u - The username prior to the '@'. + // %d - The domain name after the '@'. + // %dc - The domain name hierarchal string e.g. "dc=test,dc=domain,dc=com" + // %dn - DN found by ldap search when search_filter/search_base_dn are used + 'base_dn' => '', + 'bind_dn' => '', + 'bind_pass' => '', + // It's possible to bind for an individual address book + // The login name is used to search for the DN to bind with + 'search_base_dn' => '', + 'search_filter' => '', // e.g. '(&(objectClass=posixAccount)(uid=%u))' + // DN and password to bind as before searching for bind DN, if anonymous search is not allowed + 'search_bind_dn' => '', + 'search_bind_pw' => '', + // Default for %dn variable if search doesn't return DN value + 'search_dn_default' => '', + // Optional authentication identifier to be used as SASL authorization proxy + // bind_dn need to be empty + 'auth_cid' => '', + // SASL authentication method (for proxy auth), e.g. DIGEST-MD5 + 'auth_method' => '', + // Indicates if the addressbook shall be hidden from the list. + // With this option enabled you can still search/view contacts. + 'hidden' => false, + // Indicates if the addressbook shall not list contacts but only allows searching. + 'searchonly' => false, + // Indicates if we can write to the LDAP directory or not. + // If writable is true then these fields need to be populated: + // LDAP_Object_Classes, required_fields, LDAP_rdn + 'writable' => false, + // To create a new contact these are the object classes to specify + // (or any other classes you wish to use). + 'LDAP_Object_Classes' => array('top', 'inetOrgPerson'), + // The RDN field that is used for new entries, this field needs + // to be one of the search_fields, the base of base_dn is appended + // to the RDN to insert into the LDAP directory. + 'LDAP_rdn' => 'cn', + // The required fields needed to build a new contact as required by + // the object classes (can include additional fields not required by the object classes). + 'required_fields' => array('cn', 'sn', 'mail'), + 'search_fields' => array('mail', 'cn'), // fields to search in + // mapping of contact fields to directory attributes + // for every attribute one can specify the number of values (limit) allowed. + // default is 1, a wildcard * means unlimited + 'fieldmap' => array( + // Roundcube => LDAP:limit + 'name' => 'cn', + 'surname' => 'sn', + 'firstname' => 'givenName', + 'jobtitle' => 'title', + 'email' => 'mail:*', + 'phone:home' => 'homePhone', + 'phone:work' => 'telephoneNumber', + 'phone:mobile' => 'mobile', + 'phone:pager' => 'pager', + 'street' => 'street', + 'zipcode' => 'postalCode', + 'region' => 'st', + 'locality' => 'l', + // if you country is a complex object, you need to configure 'sub_fields' below + 'country' => 'c', + 'organization' => 'o', + 'department' => 'ou', + 'jobtitle' => 'title', + 'notes' => 'description', + // these currently don't work: + // 'phone:workfax' => 'facsimileTelephoneNumber', + // 'photo' => 'jpegPhoto', + // 'manager' => 'manager', + // 'assistant' => 'secretary', + ), + // Map of contact sub-objects (attribute name => objectClass(es)), e.g. 'c' => 'country' + 'sub_fields' => array(), + // Generate values for the following LDAP attributes automatically when creating a new record + 'autovalues' => array( + // 'uid' => 'md5(microtime())', // You may specify PHP code snippets which are then eval'ed + // 'mail' => '{givenname}.{sn}@mydomain.com', // or composite strings with placeholders for existing attributes + ), + 'sort' => 'cn', // The field to sort the listing by. + 'scope' => 'sub', // search mode: sub|base|list + 'filter' => '(objectClass=inetOrgPerson)', // used for basic listing (if not empty) and will be &'d with search queries. example: status=act + 'fuzzy_search' => true, // server allows wildcard search + 'vlv' => false, // Enable Virtual List View to more efficiently fetch paginated data (if server supports it) + 'numsub_filter' => '(objectClass=organizationalUnit)', // with VLV, we also use numSubOrdinates to query the total number of records. Set this filter to get all numSubOrdinates attributes for counting + 'sizelimit' => '0', // Enables you to limit the count of entries fetched. Setting this to 0 means no limit. + 'timelimit' => '0', // Sets the number of seconds how long is spend on the search. Setting this to 0 means no limit. + 'referrals' => true|false, // Sets the LDAP_OPT_REFERRALS option. Mostly used in multi-domain Active Directory setups + + // definition for contact groups (uncomment if no groups are supported) + // for the groups base_dn, the user replacements %fu, %u, $d and %dc work as for base_dn (see above) + // if the groups base_dn is empty, the contact base_dn is used for the groups as well + // -> in this case, assure that groups and contacts are separated due to the concernig filters! + 'groups' => array( + 'base_dn' => '', + 'scope' => 'sub', // search mode: sub|base|list + 'filter' => '(objectClass=groupOfNames)', + 'object_classes' => array("top", "groupOfNames"), + 'member_attr' => 'member', // name of the member attribute, e.g. uniqueMember + 'name_attr' => 'cn', // attribute to be used as group name + ), +); +*/ + +// An ordered array of the ids of the addressbooks that should be searched +// when populating address autocomplete fields server-side. ex: array('sql','Verisign'); +$rcmail_config['autocomplete_addressbooks'] = array('sql'); + +// The minimum number of characters required to be typed in an autocomplete field +// before address books will be searched. Most useful for LDAP directories that +// may need to do lengthy results building given overly-broad searches +$rcmail_config['autocomplete_min_length'] = 1; + +// Number of parallel autocomplete requests. +// If there's more than one address book, n parallel (async) requests will be created, +// where each request will search in one address book. By default (0), all address +// books are searched in one request. +$rcmail_config['autocomplete_threads'] = 0; + +// Max. numer of entries in autocomplete popup. Default: 15. +$rcmail_config['autocomplete_max'] = 15; + +// show address fields in this order +// available placeholders: {street}, {locality}, {zipcode}, {country}, {region} +$rcmail_config['address_template'] = '{street}
{locality} {zipcode}
{country} {region}'; + +// Matching mode for addressbook search (including autocompletion) +// 0 - partial (*abc*), default +// 1 - strict (abc) +// 2 - prefix (abc*) +// Note: For LDAP sources fuzzy_search must be enabled to use 'partial' or 'prefix' mode +$rcmail_config['addressbook_search_mode'] = 0; + +// ---------------------------------- +// USER PREFERENCES +// ---------------------------------- + +// Use this charset as fallback for message decoding +$rcmail_config['default_charset'] = 'UTF-8'; + +// skin name: folder from skins/ +$rcmail_config['skin'] = 'larry'; + +// show up to X items in messages list view +$rcmail_config['mail_pagesize'] = 50; + +// show up to X items in contacts list view +$rcmail_config['addressbook_pagesize'] = 50; + +// sort contacts by this col (preferably either one of name, firstname, surname) +$rcmail_config['addressbook_sort_col'] = 'surname'; + +// the way how contact names are displayed in the list +// 0: display name +// 1: (prefix) firstname middlename surname (suffix) +// 2: (prefix) surname firstname middlename (suffix) +// 3: (prefix) surname, firstname middlename (suffix) +$rcmail_config['addressbook_name_listing'] = 0; + +// use this timezone to display date/time +// valid timezone identifers are listed here: php.net/manual/en/timezones.php +// 'auto' will use the browser's timezone settings +$rcmail_config['timezone'] = 'auto'; + +// prefer displaying HTML messages +$rcmail_config['prefer_html'] = true; + +// display remote inline images +// 0 - Never, always ask +// 1 - Ask if sender is not in address book +// 2 - Always show inline images +$rcmail_config['show_images'] = 0; + +// open messages in new window +$rcmail_config['message_extwin'] = false; + +// open message compose form in new window +$rcmail_config['compose_extwin'] = false; + +// compose html formatted messages by default +// 0 - never, 1 - always, 2 - on reply to HTML message, 3 - on forward or reply to HTML message +$rcmail_config['htmleditor'] = 0; + +// show pretty dates as standard +$rcmail_config['prettydate'] = true; + +// save compose message every 300 seconds (5min) +$rcmail_config['draft_autosave'] = 300; + +// default setting if preview pane is enabled +$rcmail_config['preview_pane'] = false; + +// Mark as read when viewed in preview pane (delay in seconds) +// Set to -1 if messages in preview pane should not be marked as read +$rcmail_config['preview_pane_mark_read'] = 0; + +// Clear Trash on logout +$rcmail_config['logout_purge'] = false; + +// Compact INBOX on logout +$rcmail_config['logout_expunge'] = false; + +// Display attached images below the message body +$rcmail_config['inline_images'] = true; + +// Encoding of long/non-ascii attachment names: +// 0 - Full RFC 2231 compatible +// 1 - RFC 2047 for 'name' and RFC 2231 for 'filename' parameter (Thunderbird's default) +// 2 - Full 2047 compatible +$rcmail_config['mime_param_folding'] = 1; + +// Set true if deleted messages should not be displayed +// This will make the application run slower +$rcmail_config['skip_deleted'] = false; + +// Set true to Mark deleted messages as read as well as deleted +// False means that a message's read status is not affected by marking it as deleted +$rcmail_config['read_when_deleted'] = true; + +// Set to true to never delete messages immediately +// Use 'Purge' to remove messages marked as deleted +$rcmail_config['flag_for_deletion'] = false; + +// Default interval for auto-refresh requests (in seconds) +// These are requests for system state updates e.g. checking for new messages, etc. +// Setting it to 0 disables the feature. +$rcmail_config['refresh_interval'] = 60; + +// If true all folders will be checked for recent messages +$rcmail_config['check_all_folders'] = false; + +// If true, after message delete/move, the next message will be displayed +$rcmail_config['display_next'] = true; + +// 0 - Do not expand threads +// 1 - Expand all threads automatically +// 2 - Expand only threads with unread messages +$rcmail_config['autoexpand_threads'] = 0; + +// When replying: +// -1 - don't cite the original message +// 0 - place cursor below the original message +// 1 - place cursor above original message (top posting) +$rcmail_config['reply_mode'] = 0; + +// When replying strip original signature from message +$rcmail_config['strip_existing_sig'] = true; + +// Show signature: +// 0 - Never +// 1 - Always +// 2 - New messages only +// 3 - Forwards and Replies only +$rcmail_config['show_sig'] = 1; + +// Use MIME encoding (quoted-printable) for 8bit characters in message body +$rcmail_config['force_7bit'] = false; + +// Defaults of the search field configuration. +// The array can contain a per-folder list of header fields which should be considered when searching +// The entry with key '*' stands for all folders which do not have a specific list set. +// Please note that folder names should to be in sync with $rcmail_config['default_folders'] +$rcmail_config['search_mods'] = null; // Example: array('*' => array('subject'=>1, 'from'=>1), 'Sent' => array('subject'=>1, 'to'=>1)); + +// Defaults of the addressbook search field configuration. +$rcmail_config['addressbook_search_mods'] = null; // Example: array('name'=>1, 'firstname'=>1, 'surname'=>1, 'email'=>1, '*'=>1); + +// 'Delete always' +// This setting reflects if mail should be always deleted +// when moving to Trash fails. This is necessary in some setups +// when user is over quota and Trash is included in the quota. +$rcmail_config['delete_always'] = false; + +// Directly delete messages in Junk instead of moving to Trash +$rcmail_config['delete_junk'] = false; + +// Behavior if a received message requests a message delivery notification (read receipt) +// 0 = ask the user, 1 = send automatically, 2 = ignore (never send or ask) +// 3 = send automatically if sender is in addressbook, otherwise ask the user +// 4 = send automatically if sender is in addressbook, otherwise ignore +$rcmail_config['mdn_requests'] = 0; + +// Return receipt checkbox default state +$rcmail_config['mdn_default'] = 0; + +// Delivery Status Notification checkbox default state +$rcmail_config['dsn_default'] = 0; + +// Place replies in the folder of the message being replied to +$rcmail_config['reply_same_folder'] = false; + +// Sets default mode of Forward feature to "forward as attachment" +$rcmail_config['forward_attachment'] = false; + +// Defines address book (internal index) to which new contacts will be added +// By default it is the first writeable addressbook. +// Note: Use '0' for built-in address book. +$rcmail_config['default_addressbook'] = null; + +// Enables spell checking before sending a message. +$rcmail_config['spellcheck_before_send'] = false; + +// Skip alternative email addresses in autocompletion (show one address per contact) +$rcmail_config['autocomplete_single'] = false; + +// Default font for composed HTML message. +// Supported values: Andale Mono, Arial, Arial Black, Book Antiqua, Courier New, +// Georgia, Helvetica, Impact, Tahoma, Terminal, Times New Roman, Trebuchet MS, Verdana +$rcmail_config['default_font'] = 'Verdana'; + +// end of config file diff --git a/plugins/archive/localization/nb_NB.inc b/plugins/archive/localization/nb_NB.inc new file mode 100644 index 000000000..46e49aba0 --- /dev/null +++ b/plugins/archive/localization/nb_NB.inc @@ -0,0 +1,21 @@ + | + +-----------------------------------------------------------------------+ +*/ + +$labels = array(); +$labels['buttontext'] = 'Arkiv'; +$labels['archivefolder'] = 'Arkiv'; +$labels['buttontitle'] = 'Arkiver meldingen'; +$labels['archived'] = 'Arkivert'; + diff --git a/plugins/compose_addressbook/compose_addressbook.js b/plugins/compose_addressbook/compose_addressbook.js new file mode 100644 index 000000000..de5d95276 --- /dev/null +++ b/plugins/compose_addressbook/compose_addressbook.js @@ -0,0 +1,224 @@ +var compose_addressbook_fetched = false; + +if(window.rcmail) { + rcmail.addEventListener('init', function(evt) { + + // mode of operation. configure this in config.php + var mode = rcmail.env.compose_addressbook_mode; + + // to be able to have translated buttons, we need to predefine the buttons array + var cab_to = rcmail.gettext('to'); + var cab_cc = rcmail.gettext('cc'); + var cab_bcc = rcmail.gettext('bcc'); + + var buttons = {}; + buttons[cab_bcc] = function() { + compose_addressbook_add_recipients('_bcc'); + $('.ui-dialog-buttonpane button').removeClass('ui-state-focus'); + } + buttons[cab_cc] = function() { + compose_addressbook_add_recipients('_cc'); + $('.ui-dialog-buttonpane button').removeClass('ui-state-focus'); + } + buttons[cab_to] = function() { + compose_addressbook_add_recipients('_to'); + $('.ui-dialog-buttonpane button').removeClass('ui-state-focus'); + } + + // bind the dialog functionality to the dialog div + $("#compose_addressbook_dialog").dialog({ + autoOpen: false, + modal: false, + resizable: false, + width: 285, + height: 500, + minHeight: 400, + buttons: buttons, + position: [$(window).width()-400,50] + }); + + // register the command associated with the toolbar button + rcmail.register_command('plugin.compose_addressbook', compose_addressbook_start , true); + + // add the command to the list of compose commands + rcmail.env.compose_commands.push('plugin.compose_addressbook'); + + // register the callback function + rcmail.addEventListener('plugin.compose_addressbook_receive', compose_addressbook_receive); + + // register the callback function for the group expander + rcmail.addEventListener('plugin.compose_addressbook_receive_expand', compose_addressbook_receive_expand); + + // create an rc list object + if(rcmail.gui_objects.compose_addressbook_list) { + rcmail.compose_addressbook_list = new rcube_list_widget(rcmail.gui_objects.compose_addressbook_list, {multiselect:true, draggable:false, keyboard:false}); + + // add a listener for double click + rcmail.compose_addressbook_list.addEventListener('dblclick', function(o){ compose_address_dblclick(o); }); + + // initialize the list + rcmail.compose_addressbook_list.init(); + } + + // each mode of operation has a different key handler + if(mode == 'full') { + // bind keyevent handler to the search box + $('#compose_addressbook_filter').bind('keyup', function(evt) { + var search = $('#compose_addressbook_filter').val(); + var regexp = new RegExp(search, 'i'); + $('#compose_addressbook_table').find('td').each(function() { + var content = $(this).attr('title'); + if(regexp.test(content)) { + $(this).parent().show(); + } else { + $(this).parent().hide(); + } + }); + }); + } else { + $('#compose_addressbook_filter').bind((bw.safari || bw.ie ? 'keydown' : 'keypress'), function(evt) { + var key = rcube_event.get_keycode(evt); + if(key == 13) { + var search = $('#compose_addressbook_filter').val(); + $('#compose_addressbook_filter').val(''); + compose_addressbook_search(search); + return false; + } + }); + } + + // bind click event to clear function + $("#compose_addressbook_searchreset").bind('click', function(e) { + $('#compose_addressbook_filter').val(''); + $('#compose_addressbook_filter').focus(); + $('#compose_addressbook_table').find('tr').each(function() { + $(this).show(); + }); + }); + }); +} + +function compose_addressbook_start() +{ + compose_addressbook_fetch(); + $('#compose_addressbook_dialog').dialog('open'); +} + +function compose_addressbook_fetch() +{ + if(!compose_addressbook_fetched) { + lock = rcmail.set_busy(true, 'loading'); + rcmail.http_post('plugin.get_addressbook', '', lock); + compose_addressbook_fetched = true; + } +} + +function compose_addressbook_search(search) +{ + rcmail.compose_addressbook_list.clear(); + lock = rcmail.set_busy(true, 'loading'); + rcmail.http_post('plugin.get_addressbook', '_search='+urlencode(search), lock); +} + +function compose_addressbook_receive(data) +{ + var addresses = data.addresses; + var name; + var email; + + // save the addresses for later use + rcmail.compose_addressbook_addresses = addresses; + + for(var j=0; j 0) { + lock = rcmail.set_busy(true, 'loading'); + rcmail.http_request('plugin.expand_groups', '_groupids='+urlencode(group_ids.join(','))+'&_groupsources='+urlencode(group_sources.join(','))+'&_target='+target, lock); + } +} + +function compose_addressbook_receive_expand(data) { + var form = '[name="'+data.target+'"]'; + + for(var j in data.members) { + $(form).attr('value', $(form).val() + data.members[j]+", "); + } +} diff --git a/plugins/compose_addressbook/compose_addressbook.php b/plugins/compose_addressbook/compose_addressbook.php new file mode 100644 index 000000000..b97be7b75 --- /dev/null +++ b/plugins/compose_addressbook/compose_addressbook.php @@ -0,0 +1,180 @@ +config->get('skin'); + if($skin != 'classic') return; + + $this->require_plugin('jqueryui'); + + $this->register_action('plugin.get_addressbook', array($this, 'get_address')); + $this->register_action('plugin.expand_groups', array($this, 'expand_groups')); + + if($rcmail->action == 'compose') { + $this->compose_addressbook_init(); + } + } + + public function compose_addressbook_init() + { + $this->add_texts('localization', true); + + $rcmail = rcmail::get_instance(); + + $skin_path = $this->local_skin_path(); + + // add javascript and stylesheets + $this->include_script('compose_addressbook.js?v=2'); + $this->include_stylesheet("$skin_path/compose_addressbook.css"); + + // html for dialog window + $table = new html_table(array('id' => 'compose_addressbook_table', 'class' => 'records-table', 'cols' => 1, 'cellspacing' => 0)); + + // create div for dialog window + $rcmail->output->add_footer(html::div(array('id' => "compose_addressbook_dialog", 'title' => Q($this->gettext('compose_addressbook_title'))), + html::div(array('id' => "compose_addressbook_quicksearchbar"), + html::img(array('id'=>'compose_addressbook_searchmod','src'=>'/images/icons/glass.png')) . + html::tag('input', array('type' => "text", 'class' => 'compose_addressbook_filter','id'=>'compose_addressbook_filter')). + html::a(array('id' => 'compose_addressbook_searchreset', 'href'=>'#'), + html::img(array('src'=>'/images/icons/reset.gif'))) + ) . + html::div(array('id' => "compose_addressbook_container"), + $table->show() + ) + )); + + // add the addressbook button + $this->add_button(array( + 'command' => 'plugin.compose_addressbook', + 'imagepas' => $skin_path.'/compose_addressbook.png', + 'imageact' => $skin_path.'/compose_addressbook.png', + 'title' => 'compose_addressbook.compose_addressbook_buttontitle', + 'id' => 'rcmbtn_compose_addressbook'), 'toolbar'); + + $this->load_config(); + $rcmail->output->set_env('compose_addressbook_mode', $rcmail->config->get('compose_addressbook_mode', 'full')); + $rcmail->output->add_gui_object('compose_addressbook_list', 'compose_addressbook_table'); + + // add some labels + $rcmail->output->add_label('cc', 'bcc', 'to'); + + // add list functions + $rcmail->output->include_script('list.js'); + + } + + // get the addressbook entries and return them to the UI. + function get_address() { + $contacts = array(); + $this->load_config(); + $rcmail = rcmail::get_instance(); + + $mode = $rcmail->config->get('compose_addressbook_mode', 'full'); + $search_mode = $rcmail->config->get('addressbook_search_mode'); + + // get the addressbooks, or default to all address sources + $book_types = (array) $rcmail->config->get('compose_addressbooks', $rcmail->config->get('autocomplete_addressbooks', array_keys($rcmail->get_address_sources()))); + + foreach ($book_types as $id) { + $abook = $rcmail->get_address_book($id); + $abook->set_pagesize(50000); + + if($mode == 'full') { + $result = $abook->list_records(); + while ($sql_arr = $result->iterate()) { + foreach ((array)$abook->get_col_values('email', $sql_arr, true) as $email) { + $contact = format_email_recipient($email, $sql_arr['name']); + $contacts[] = array('name' => $sql_arr['name'] , 'email' => format_email_recipient($email, $sql_arr['name'])); + } + } + $search = null; + if($abook->groups) { + foreach($abook->list_groups($search) as $group) { + $abook->reset(); + $abook->set_group($group['ID']); + $result = $abook->count(); + if ($result->count) { + $contacts[] = array('name' => $group['name'] . ' (' . intval($result->count) . ')', 'id' => $group['ID'], 'source' => $id); + } + } + } + } else { + $search=trim(get_input_value('_search', RCUBE_INPUT_POST)); + + if(!empty($search)) { + $result = $abook->search(array('name','email'),$search, $search_mode, true, true, 'email'); + while ($sql_arr = $result->iterate()) { + foreach ((array)$abook->get_col_values('email', $sql_arr, true) as $email) { + $contact = format_email_recipient($email, $sql_arr['name']); + $contacts[] = array('name' => $sql_arr['name'] , 'email' => format_email_recipient($email, $sql_arr['name'])); + } + } + if($abook->groups) { + foreach($abook->list_groups($search) as $group) { + $abook->reset(); + $abook->set_group($group['ID']); + $result = $abook->count(); + if ($result->count) { + $contacts[] = array('name' => $group['name'] . ' (' . intval($result->count) . ')', 'id' => $group['ID'], 'source' => $id); + } + } + } + } + } + } + + sort($contacts); + + // send the addressbook back to javascript + $rcmail->output->command('plugin.compose_addressbook_receive', array('addresses' => $contacts)); + } + + // expand all the groups that we added + function expand_groups() { + $rcmail = rcmail::get_instance(); + + $group_ids_input=trim(get_input_value('_groupids', RCUBE_INPUT_GET)); + $group_sources_input=trim(get_input_value('_groupsources', RCUBE_INPUT_GET)); + $target = trim(get_input_value('_target', RCUBE_INPUT_GET)); + + if($group_ids_input == '' || $group_sources_input == '') exit; + + $group_ids = explode(',', $group_ids_input); + $group_sources = explode(',', $group_sources_input); + + // create a list of ids per address source + for($i=0; $i $groups) { + $abook = $rcmail->get_address_book($source); + foreach($groups as $group) { + $abook->set_group($group); + $abook->set_pagesize(1000); + $result = $abook->list_records(array('email','name')); + while ($result && ($sql_arr = $result->iterate())) { + $email = (array)$sql_arr['email']; + $members[] = format_email_recipient($email[0], $sql_arr['name']); + } + } + } + $rcmail->output->command('plugin.compose_addressbook_receive_expand', array('members' => array_unique($members), 'target' => $target)); + } +} +?> diff --git a/plugins/compose_addressbook/config.inc.php.dist b/plugins/compose_addressbook/config.inc.php.dist new file mode 100644 index 000000000..b2ba8f9c8 --- /dev/null +++ b/plugins/compose_addressbook/config.inc.php.dist @@ -0,0 +1,21 @@ + diff --git a/plugins/compose_addressbook/localization/de_DE.inc b/plugins/compose_addressbook/localization/de_DE.inc new file mode 100644 index 000000000..929a6493d --- /dev/null +++ b/plugins/compose_addressbook/localization/de_DE.inc @@ -0,0 +1,11 @@ + \ No newline at end of file diff --git a/plugins/compose_addressbook/localization/en_GB.inc b/plugins/compose_addressbook/localization/en_GB.inc new file mode 100644 index 000000000..a8078f469 --- /dev/null +++ b/plugins/compose_addressbook/localization/en_GB.inc @@ -0,0 +1,10 @@ + diff --git a/plugins/compose_addressbook/localization/en_US.inc b/plugins/compose_addressbook/localization/en_US.inc new file mode 100644 index 000000000..a8078f469 --- /dev/null +++ b/plugins/compose_addressbook/localization/en_US.inc @@ -0,0 +1,10 @@ + diff --git a/plugins/compose_addressbook/localization/es_ES.inc b/plugins/compose_addressbook/localization/es_ES.inc new file mode 100644 index 000000000..2a000f2fa --- /dev/null +++ b/plugins/compose_addressbook/localization/es_ES.inc @@ -0,0 +1,10 @@ + diff --git a/plugins/compose_addressbook/localization/fr_FR.inc b/plugins/compose_addressbook/localization/fr_FR.inc new file mode 100644 index 000000000..1f52ffeae --- /dev/null +++ b/plugins/compose_addressbook/localization/fr_FR.inc @@ -0,0 +1,10 @@ + diff --git a/plugins/compose_addressbook/localization/it_IT.inc b/plugins/compose_addressbook/localization/it_IT.inc new file mode 100644 index 000000000..d1b0c46af --- /dev/null +++ b/plugins/compose_addressbook/localization/it_IT.inc @@ -0,0 +1,10 @@ + diff --git a/plugins/compose_addressbook/localization/nl_NL.inc b/plugins/compose_addressbook/localization/nl_NL.inc new file mode 100644 index 000000000..f5de52ac9 --- /dev/null +++ b/plugins/compose_addressbook/localization/nl_NL.inc @@ -0,0 +1,10 @@ + diff --git a/plugins/compose_addressbook/localization/pl_PL.inc b/plugins/compose_addressbook/localization/pl_PL.inc new file mode 100644 index 000000000..eb95e4225 --- /dev/null +++ b/plugins/compose_addressbook/localization/pl_PL.inc @@ -0,0 +1,10 @@ + diff --git a/plugins/compose_addressbook/localization/sv_SE.inc b/plugins/compose_addressbook/localization/sv_SE.inc new file mode 100644 index 000000000..6e6d49f36 --- /dev/null +++ b/plugins/compose_addressbook/localization/sv_SE.inc @@ -0,0 +1,10 @@ + diff --git a/plugins/compose_addressbook/localization/zh_TW.inc b/plugins/compose_addressbook/localization/zh_TW.inc new file mode 100644 index 000000000..1be7b614d --- /dev/null +++ b/plugins/compose_addressbook/localization/zh_TW.inc @@ -0,0 +1,10 @@ + \ No newline at end of file diff --git a/plugins/compose_addressbook/package.xml b/plugins/compose_addressbook/package.xml new file mode 100644 index 000000000..cc22b4c9b --- /dev/null +++ b/plugins/compose_addressbook/package.xml @@ -0,0 +1,18 @@ + + + compose_addressbook + + Cor Bosman + cor + cor@roundcu.be + yes + + https://github.com/corbosman/compose_addressbook + + 8.0 + + GNU GPLv2 + diff --git a/plugins/compose_addressbook/skins/classic/compose_addressbook.css b/plugins/compose_addressbook/skins/classic/compose_addressbook.css new file mode 100644 index 000000000..f8ec665d1 --- /dev/null +++ b/plugins/compose_addressbook/skins/classic/compose_addressbook.css @@ -0,0 +1,83 @@ +#compose_addressbook_dialog { + display: none; + background-color: #FAFAFA; + color: #333; + padding: 5px 0 0 0; + overflow: hidden; +} + +#compose_addressbook_dialog .ui-dialog { + padding: 0; +} + +#compose_addressbook_container { + height: 376px; + overflow: auto; + overflow-x: hidden; + border-top: 1px solid #AAAAAA; + position: relative; + top: 30px; +} + +#compose_addressbook_dialog table { + width: 100%; + overflow: hidden; +} + +#compose_addressbook_quicksearchbar +{ + position: absolute; + left: 60px; + width: 182px; + height: 20px; + text-align: right; + background: url('searchfield.gif') top left no-repeat; +} + +#compose_addressbook_searchreset +{ + position: absolute; + top: 3px; + right: 4px; + text-decoration: none; +} + +#compose_addressbook_searchmod +{ + position: absolute; + top: 3px; + right: 160px; +} + +#compose_addressbook_quicksearchbar img +{ + vertical-align: middle; +} + +#compose_addressbook_filter +{ + margin-right: 4px; + margin-bottom: 5px; + position: absolute; + top: 2px; + left: 24px; + width: 140px; + height: 15px; + font-size: 11px; + padding: 0px; + border: none; +} + +#compose_addressbook_dialog input { + outline: none; + border: none !important; +} + +#compose_addressbook_filter[type=text]:focus { + outline: 0 none; +} + +.ui-dialog-buttonpane button { + font-size: 10px !important; + width: 85px !important; +} \ No newline at end of file diff --git a/plugins/compose_addressbook/skins/classic/compose_addressbook.png b/plugins/compose_addressbook/skins/classic/compose_addressbook.png new file mode 100644 index 000000000..e58e4dddc Binary files /dev/null and b/plugins/compose_addressbook/skins/classic/compose_addressbook.png differ diff --git a/plugins/compose_addressbook/skins/classic/searchfield.gif b/plugins/compose_addressbook/skins/classic/searchfield.gif new file mode 100644 index 000000000..756a17e47 Binary files /dev/null and b/plugins/compose_addressbook/skins/classic/searchfield.gif differ diff --git a/plugins/compose_addressbook/skins/classic/smoothness/images/ui-anim_basic_16x16.gif b/plugins/compose_addressbook/skins/classic/smoothness/images/ui-anim_basic_16x16.gif new file mode 100644 index 000000000..085ccaeca Binary files /dev/null and b/plugins/compose_addressbook/skins/classic/smoothness/images/ui-anim_basic_16x16.gif differ diff --git a/plugins/compose_addressbook/skins/classic/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png b/plugins/compose_addressbook/skins/classic/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png new file mode 100644 index 000000000..5b5dab2ab Binary files /dev/null and b/plugins/compose_addressbook/skins/classic/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png differ diff --git a/plugins/compose_addressbook/skins/classic/smoothness/images/ui-bg_flat_75_ffffff_40x100.png b/plugins/compose_addressbook/skins/classic/smoothness/images/ui-bg_flat_75_ffffff_40x100.png new file mode 100644 index 000000000..ac8b229af Binary files /dev/null and b/plugins/compose_addressbook/skins/classic/smoothness/images/ui-bg_flat_75_ffffff_40x100.png differ diff --git a/plugins/compose_addressbook/skins/classic/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png b/plugins/compose_addressbook/skins/classic/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png new file mode 100644 index 000000000..ad3d6346e Binary files /dev/null and b/plugins/compose_addressbook/skins/classic/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png differ diff --git a/plugins/compose_addressbook/skins/classic/smoothness/images/ui-bg_glass_65_ffffff_1x400.png b/plugins/compose_addressbook/skins/classic/smoothness/images/ui-bg_glass_65_ffffff_1x400.png new file mode 100644 index 000000000..42ccba269 Binary files /dev/null and b/plugins/compose_addressbook/skins/classic/smoothness/images/ui-bg_glass_65_ffffff_1x400.png differ diff --git a/plugins/compose_addressbook/skins/classic/smoothness/images/ui-bg_glass_75_dadada_1x400.png b/plugins/compose_addressbook/skins/classic/smoothness/images/ui-bg_glass_75_dadada_1x400.png new file mode 100644 index 000000000..5a46b47cb Binary files /dev/null and b/plugins/compose_addressbook/skins/classic/smoothness/images/ui-bg_glass_75_dadada_1x400.png differ diff --git a/plugins/compose_addressbook/skins/classic/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png b/plugins/compose_addressbook/skins/classic/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png new file mode 100644 index 000000000..86c2baa65 Binary files /dev/null and b/plugins/compose_addressbook/skins/classic/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png differ diff --git a/plugins/compose_addressbook/skins/classic/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png b/plugins/compose_addressbook/skins/classic/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png new file mode 100644 index 000000000..4443fdc1a Binary files /dev/null and b/plugins/compose_addressbook/skins/classic/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png differ diff --git a/plugins/compose_addressbook/skins/classic/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png b/plugins/compose_addressbook/skins/classic/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png new file mode 100644 index 000000000..7c9fa6c6e Binary files /dev/null and b/plugins/compose_addressbook/skins/classic/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png differ diff --git a/plugins/compose_addressbook/skins/classic/smoothness/images/ui-icons_222222_256x240.png b/plugins/compose_addressbook/skins/classic/smoothness/images/ui-icons_222222_256x240.png new file mode 100644 index 000000000..b273ff111 Binary files /dev/null and b/plugins/compose_addressbook/skins/classic/smoothness/images/ui-icons_222222_256x240.png differ diff --git a/plugins/compose_addressbook/skins/classic/smoothness/images/ui-icons_2e83ff_256x240.png b/plugins/compose_addressbook/skins/classic/smoothness/images/ui-icons_2e83ff_256x240.png new file mode 100644 index 000000000..09d1cdc85 Binary files /dev/null and b/plugins/compose_addressbook/skins/classic/smoothness/images/ui-icons_2e83ff_256x240.png differ diff --git a/plugins/compose_addressbook/skins/classic/smoothness/images/ui-icons_454545_256x240.png b/plugins/compose_addressbook/skins/classic/smoothness/images/ui-icons_454545_256x240.png new file mode 100644 index 000000000..59bd45b90 Binary files /dev/null and b/plugins/compose_addressbook/skins/classic/smoothness/images/ui-icons_454545_256x240.png differ diff --git a/plugins/compose_addressbook/skins/classic/smoothness/images/ui-icons_888888_256x240.png b/plugins/compose_addressbook/skins/classic/smoothness/images/ui-icons_888888_256x240.png new file mode 100644 index 000000000..6d02426c1 Binary files /dev/null and b/plugins/compose_addressbook/skins/classic/smoothness/images/ui-icons_888888_256x240.png differ diff --git a/plugins/compose_addressbook/skins/classic/smoothness/images/ui-icons_cd0a0a_256x240.png b/plugins/compose_addressbook/skins/classic/smoothness/images/ui-icons_cd0a0a_256x240.png new file mode 100644 index 000000000..2ab019b73 Binary files /dev/null and b/plugins/compose_addressbook/skins/classic/smoothness/images/ui-icons_cd0a0a_256x240.png differ diff --git a/plugins/compose_addressbook/skins/classic/smoothness/jquery-ui-1.8.2.custom.css b/plugins/compose_addressbook/skins/classic/smoothness/jquery-ui-1.8.2.custom.css new file mode 100644 index 000000000..401eb1d15 --- /dev/null +++ b/plugins/compose_addressbook/skins/classic/smoothness/jquery-ui-1.8.2.custom.css @@ -0,0 +1,345 @@ +/* +* jQuery UI CSS Framework +* Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) +* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses. +*/ + +/* Layout helpers +----------------------------------*/ +.ui-helper-hidden { display: none; } +.ui-helper-hidden-accessible { position: absolute; left: -99999999px; } +.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; } +.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } +.ui-helper-clearfix { display: inline-block; } +/* required comment for clearfix to work in Opera \*/ +* html .ui-helper-clearfix { height:1%; } +.ui-helper-clearfix { display:block; } +/* end clearfix */ +.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); } + + +/* Interaction Cues +----------------------------------*/ +.ui-state-disabled { cursor: default !important; } + + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } + + +/* Misc visuals +----------------------------------*/ + +/* Overlays */ +.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } + + +/* +* jQuery UI CSS Framework +* Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) +* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses. +* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana,Arial,sans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=03_highlight_soft.png&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=01_flat.png&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=02_glass.png&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=02_glass.png&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=02_glass.png&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px +*/ + + +/* Component containers +----------------------------------*/ +.ui-widget { font-family: Verdana,Arial,sans-serif; font-size: 1.1em; } +.ui-widget .ui-widget { font-size: 1em; } +.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif; font-size: 1em; } +.ui-widget-content { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x; color: #222222; } +.ui-widget-content a { color: #222222; } +.ui-widget-header { border: 1px solid #aaaaaa; background: #cccccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x; color: #222222; font-weight: bold; } +.ui-widget-header a { color: #222222; } + +/* Interaction states +----------------------------------*/ +.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #d3d3d3; background: #e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #555555; } +.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555; text-decoration: none; } +.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #999999; background: #dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; } +.ui-state-hover a, .ui-state-hover a:hover { color: #212121; text-decoration: none; } +.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; } +.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121; text-decoration: none; } +.ui-widget :active { outline: none; } + +/* Interaction Cues +----------------------------------*/ +.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fcefa1; background: #fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x; color: #363636; } +.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; } +.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x; color: #cd0a0a; } +.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a; } +.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a; } +.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; } +.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; } +.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; } + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); } +.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); } +.ui-widget-header .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); } +.ui-state-default .ui-icon { background-image: url(images/ui-icons_888888_256x240.png); } +.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); } +.ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); } +.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png); } +.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png); } + +/* positioning */ +.ui-icon-carat-1-n { background-position: 0 0; } +.ui-icon-carat-1-ne { background-position: -16px 0; } +.ui-icon-carat-1-e { background-position: -32px 0; } +.ui-icon-carat-1-se { background-position: -48px 0; } +.ui-icon-carat-1-s { background-position: -64px 0; } +.ui-icon-carat-1-sw { background-position: -80px 0; } +.ui-icon-carat-1-w { background-position: -96px 0; } +.ui-icon-carat-1-nw { background-position: -112px 0; } +.ui-icon-carat-2-n-s { background-position: -128px 0; } +.ui-icon-carat-2-e-w { background-position: -144px 0; } +.ui-icon-triangle-1-n { background-position: 0 -16px; } +.ui-icon-triangle-1-ne { background-position: -16px -16px; } +.ui-icon-triangle-1-e { background-position: -32px -16px; } +.ui-icon-triangle-1-se { background-position: -48px -16px; } +.ui-icon-triangle-1-s { background-position: -64px -16px; } +.ui-icon-triangle-1-sw { background-position: -80px -16px; } +.ui-icon-triangle-1-w { background-position: -96px -16px; } +.ui-icon-triangle-1-nw { background-position: -112px -16px; } +.ui-icon-triangle-2-n-s { background-position: -128px -16px; } +.ui-icon-triangle-2-e-w { background-position: -144px -16px; } +.ui-icon-arrow-1-n { background-position: 0 -32px; } +.ui-icon-arrow-1-ne { background-position: -16px -32px; } +.ui-icon-arrow-1-e { background-position: -32px -32px; } +.ui-icon-arrow-1-se { background-position: -48px -32px; } +.ui-icon-arrow-1-s { background-position: -64px -32px; } +.ui-icon-arrow-1-sw { background-position: -80px -32px; } +.ui-icon-arrow-1-w { background-position: -96px -32px; } +.ui-icon-arrow-1-nw { background-position: -112px -32px; } +.ui-icon-arrow-2-n-s { background-position: -128px -32px; } +.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } +.ui-icon-arrow-2-e-w { background-position: -160px -32px; } +.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } +.ui-icon-arrowstop-1-n { background-position: -192px -32px; } +.ui-icon-arrowstop-1-e { background-position: -208px -32px; } +.ui-icon-arrowstop-1-s { background-position: -224px -32px; } +.ui-icon-arrowstop-1-w { background-position: -240px -32px; } +.ui-icon-arrowthick-1-n { background-position: 0 -48px; } +.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } +.ui-icon-arrowthick-1-e { background-position: -32px -48px; } +.ui-icon-arrowthick-1-se { background-position: -48px -48px; } +.ui-icon-arrowthick-1-s { background-position: -64px -48px; } +.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } +.ui-icon-arrowthick-1-w { background-position: -96px -48px; } +.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } +.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } +.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } +.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } +.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } +.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } +.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } +.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } +.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } +.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } +.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } +.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } +.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } +.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } +.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } +.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } +.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } +.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } +.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } +.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } +.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } +.ui-icon-arrow-4 { background-position: 0 -80px; } +.ui-icon-arrow-4-diag { background-position: -16px -80px; } +.ui-icon-extlink { background-position: -32px -80px; } +.ui-icon-newwin { background-position: -48px -80px; } +.ui-icon-refresh { background-position: -64px -80px; } +.ui-icon-shuffle { background-position: -80px -80px; } +.ui-icon-transfer-e-w { background-position: -96px -80px; } +.ui-icon-transferthick-e-w { background-position: -112px -80px; } +.ui-icon-folder-collapsed { background-position: 0 -96px; } +.ui-icon-folder-open { background-position: -16px -96px; } +.ui-icon-document { background-position: -32px -96px; } +.ui-icon-document-b { background-position: -48px -96px; } +.ui-icon-note { background-position: -64px -96px; } +.ui-icon-mail-closed { background-position: -80px -96px; } +.ui-icon-mail-open { background-position: -96px -96px; } +.ui-icon-suitcase { background-position: -112px -96px; } +.ui-icon-comment { background-position: -128px -96px; } +.ui-icon-person { background-position: -144px -96px; } +.ui-icon-print { background-position: -160px -96px; } +.ui-icon-trash { background-position: -176px -96px; } +.ui-icon-locked { background-position: -192px -96px; } +.ui-icon-unlocked { background-position: -208px -96px; } +.ui-icon-bookmark { background-position: -224px -96px; } +.ui-icon-tag { background-position: -240px -96px; } +.ui-icon-home { background-position: 0 -112px; } +.ui-icon-flag { background-position: -16px -112px; } +.ui-icon-calendar { background-position: -32px -112px; } +.ui-icon-cart { background-position: -48px -112px; } +.ui-icon-pencil { background-position: -64px -112px; } +.ui-icon-clock { background-position: -80px -112px; } +.ui-icon-disk { background-position: -96px -112px; } +.ui-icon-calculator { background-position: -112px -112px; } +.ui-icon-zoomin { background-position: -128px -112px; } +.ui-icon-zoomout { background-position: -144px -112px; } +.ui-icon-search { background-position: -160px -112px; } +.ui-icon-wrench { background-position: -176px -112px; } +.ui-icon-gear { background-position: -192px -112px; } +.ui-icon-heart { background-position: -208px -112px; } +.ui-icon-star { background-position: -224px -112px; } +.ui-icon-link { background-position: -240px -112px; } +.ui-icon-cancel { background-position: 0 -128px; } +.ui-icon-plus { background-position: -16px -128px; } +.ui-icon-plusthick { background-position: -32px -128px; } +.ui-icon-minus { background-position: -48px -128px; } +.ui-icon-minusthick { background-position: -64px -128px; } +.ui-icon-close { background-position: -80px -128px; } +.ui-icon-closethick { background-position: -96px -128px; } +.ui-icon-key { background-position: -112px -128px; } +.ui-icon-lightbulb { background-position: -128px -128px; } +.ui-icon-scissors { background-position: -144px -128px; } +.ui-icon-clipboard { background-position: -160px -128px; } +.ui-icon-copy { background-position: -176px -128px; } +.ui-icon-contact { background-position: -192px -128px; } +.ui-icon-image { background-position: -208px -128px; } +.ui-icon-video { background-position: -224px -128px; } +.ui-icon-script { background-position: -240px -128px; } +.ui-icon-alert { background-position: 0 -144px; } +.ui-icon-info { background-position: -16px -144px; } +.ui-icon-notice { background-position: -32px -144px; } +.ui-icon-help { background-position: -48px -144px; } +.ui-icon-check { background-position: -64px -144px; } +.ui-icon-bullet { background-position: -80px -144px; } +.ui-icon-radio-off { background-position: -96px -144px; } +.ui-icon-radio-on { background-position: -112px -144px; } +.ui-icon-pin-w { background-position: -128px -144px; } +.ui-icon-pin-s { background-position: -144px -144px; } +.ui-icon-play { background-position: 0 -160px; } +.ui-icon-pause { background-position: -16px -160px; } +.ui-icon-seek-next { background-position: -32px -160px; } +.ui-icon-seek-prev { background-position: -48px -160px; } +.ui-icon-seek-end { background-position: -64px -160px; } +.ui-icon-seek-start { background-position: -80px -160px; } +/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ +.ui-icon-seek-first { background-position: -80px -160px; } +.ui-icon-stop { background-position: -96px -160px; } +.ui-icon-eject { background-position: -112px -160px; } +.ui-icon-volume-off { background-position: -128px -160px; } +.ui-icon-volume-on { background-position: -144px -160px; } +.ui-icon-power { background-position: 0 -176px; } +.ui-icon-signal-diag { background-position: -16px -176px; } +.ui-icon-signal { background-position: -32px -176px; } +.ui-icon-battery-0 { background-position: -48px -176px; } +.ui-icon-battery-1 { background-position: -64px -176px; } +.ui-icon-battery-2 { background-position: -80px -176px; } +.ui-icon-battery-3 { background-position: -96px -176px; } +.ui-icon-circle-plus { background-position: 0 -192px; } +.ui-icon-circle-minus { background-position: -16px -192px; } +.ui-icon-circle-close { background-position: -32px -192px; } +.ui-icon-circle-triangle-e { background-position: -48px -192px; } +.ui-icon-circle-triangle-s { background-position: -64px -192px; } +.ui-icon-circle-triangle-w { background-position: -80px -192px; } +.ui-icon-circle-triangle-n { background-position: -96px -192px; } +.ui-icon-circle-arrow-e { background-position: -112px -192px; } +.ui-icon-circle-arrow-s { background-position: -128px -192px; } +.ui-icon-circle-arrow-w { background-position: -144px -192px; } +.ui-icon-circle-arrow-n { background-position: -160px -192px; } +.ui-icon-circle-zoomin { background-position: -176px -192px; } +.ui-icon-circle-zoomout { background-position: -192px -192px; } +.ui-icon-circle-check { background-position: -208px -192px; } +.ui-icon-circlesmall-plus { background-position: 0 -208px; } +.ui-icon-circlesmall-minus { background-position: -16px -208px; } +.ui-icon-circlesmall-close { background-position: -32px -208px; } +.ui-icon-squaresmall-plus { background-position: -48px -208px; } +.ui-icon-squaresmall-minus { background-position: -64px -208px; } +.ui-icon-squaresmall-close { background-position: -80px -208px; } +.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } +.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } +.ui-icon-grip-solid-vertical { background-position: -32px -224px; } +.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } +.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } +.ui-icon-grip-diagonal-se { background-position: -80px -224px; } + + +/* Misc visuals +----------------------------------*/ + +/* Corner radius */ +.ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; } +.ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; } +.ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; } +.ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; } +.ui-corner-top { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; } +.ui-corner-bottom { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; } +.ui-corner-right { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; } +.ui-corner-left { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; } +.ui-corner-all { -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; } + +/* Overlays */ +.ui-widget-overlay { background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); } +.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/* Resizable +----------------------------------*/ +.ui-resizable { position: relative;} +.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;} +.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; } +.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; } +.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; } +.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; } +.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; } +.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; } +.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; } +.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; } +.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/* Button +----------------------------------*/ + +.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */ +.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */ +button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */ +.ui-button-icons-only { width: 3.4em; } +button.ui-button-icons-only { width: 3.7em; } + +/*button text element */ +.ui-button .ui-button-text { display: block; line-height: 1.4; } +.ui-button-text-only .ui-button-text { padding: .4em 1em; } +.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; } +.ui-button-text-icon .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; } +.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; } +/* no icon support for input elements, provide padding by default */ +input.ui-button { padding: .4em 1em; } + +/*button icon element(s) */ +.ui-button-icon-only .ui-icon, .ui-button-text-icon .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; } +.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; } +.ui-button-text-icon .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; } +.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } + +/*button sets*/ +.ui-buttonset { margin-right: 7px; } +.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; } + +/* workarounds */ +button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */ + + + + + +/* Dialog +----------------------------------*/ +.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; } +.ui-dialog .ui-dialog-titlebar { padding: .5em 1em .3em; position: relative; } +.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .2em 0; } +.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; } +.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; } +.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; } +.ui-dialog .ui-dialog-content { border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; } +.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; } +.ui-dialog .ui-dialog-buttonpane button { float: right; margin: .5em .4em .5em 0; cursor: pointer; padding: .2em .6em .3em .6em; line-height: 1.4em; width:auto; overflow:visible; } +.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; } +.ui-draggable .ui-dialog-titlebar { cursor: move; } diff --git a/plugins/contextmenu/contextmenu.js b/plugins/contextmenu/contextmenu.js new file mode 100644 index 000000000..6d83f1fbe --- /dev/null +++ b/plugins/contextmenu/contextmenu.js @@ -0,0 +1,595 @@ +/** + * ContextMenu plugin script + */ + +rcube_webmail.prototype.contextmenu_command_handlers = new Object(); +rcube_webmail.prototype.contextmenu_disable_multi = new Array('#reply','#reply-all','#reply-list','#forward-inline','#print','#edit','#viewsource','#download','#open','#edit'); + +function rcm_contextmenu_update() { + //if (!rcmail.env.flag_for_deletion && rcmail.env.trash_mailbox && rcmail.env.mailbox != rcmail.env.trash_mailbox) + // $("#rcm_delete").html('' + rcmail.gettext('movemessagetotrash') + ''); + //else + // $("#rcm_delete").html('' + rcmail.gettext('deletemessage') + ''); +} + +function rcm_contextmenu_init(row) { + $("#" + row).contextMenu({ + menu: 'rcmContextMenu', + submenu_delay: 400 + }, + function(command, el, pos) { + var matches = String($(el).attr('id')).match(/rcmrow([a-z0-9\-_=]+)/i); + if ($(el) && matches) { + var prev_uid = rcmail.env.uid; + if (rcmail.message_list.selection.length <= 1 || !rcmail.message_list.in_selection(matches[1])) + rcmail.env.uid = matches[1]; + + // fix command string in IE + if (command.indexOf("#") > 0) + command = command.substr(command.indexOf("#") + 1); + + // enable the required command + cmd = (command == 'read' || command == 'unread' || command == 'flagged' || command == 'unflagged') ? 'mark' : command; + var prev_command = rcmail.commands[cmd]; + rcmail.enable_command(cmd, true); + + // process external commands + if (typeof rcmail.contextmenu_command_handlers[command] == 'function') { + rcmail.contextmenu_command_handlers[command](command, el, pos); + } + else if (typeof rcmail.contextmenu_command_handlers[command] == 'string') { + window[rcmail.contextmenu_command_handlers[command]](command, el, pos); + } + else { + switch (command) { + case 'read': + case 'unread': + case 'flagged': + case 'unflagged': + rcmail.command('mark', command, $(el)); + break; + case 'reply': + case 'reply-all': + case 'reply-list': + case 'forward-inline': + case 'forward-attachment': + case 'print': + case 'download': + case 'viewsource': + rcmail.command(command, '', $(el)); + break; + case 'edit': + rcmail.command(command, 'new', $(el)); + break; + case 'open': + rcmail.command(command, '', rcube_find_object('rcm_open')); + rcmail.sourcewin = window.open(rcube_find_object('rcm_open').href); + if (rcmail.sourcewin) + window.setTimeout(function() { rcmail.sourcewin.focus(); }, 20); + + rcube_find_object('rcm_open').href = '#open'; + break; + case 'delete': + case 'moveto': + if (command == 'moveto' && rcmail.env.rcm_destfolder == rcmail.env.mailbox) + return; + + var prev_sel = null; + + // also select childs of (collapsed) threads + if (rcmail.env.uid) { + if (!rcmail.message_list.in_selection(rcmail.env.uid)) { + prev_sel = rcmail.message_list.get_selection(); + rcmail.message_list.select_row(rcmail.env.uid); + } + + if (rcmail.message_list.rows[rcmail.env.uid].has_children && !rcmail.message_list.rows[rcmail.env.uid].expanded) + rcmail.message_list.select_childs(rcmail.env.uid); + + rcmail.env.uid = null; + } + + rcmail.command(command, rcmail.env.rcm_destfolder, $(el)); + + if (prev_sel) { + rcmail.message_list.clear_selection(); + + for (var i in prev_sel) + rcmail.message_list.select_row(prev_sel[i], CONTROL_KEY); + } + + delete rcmail.env.rcm_destfolder; + break; + } + } + + rcmail.enable_command(cmd, prev_command); + rcmail.env.uid = prev_uid; + } + }); +} + +function rcm_set_dest_folder(folder) { + rcmail.env.rcm_destfolder = folder; +} + +function rcm_contextmenu_register_command(command, callback, label, pos, sep, multi, newSub, menu, liclass) { + if (!menu) + menu = $('#rcmContextMenu'); + + if (!liclass) + liclass = command; + + if (typeof label != 'string') { + var menuItem = label.children('li'); + } + else { + var menuItem = $('
  • ').addClass(liclass); + $('').attr('href', '#' + command).addClass('active').html('' + rcmail.gettext(label) + '').appendTo(menuItem); + } + + rcmail.contextmenu_command_handlers[command] = callback; + + if (pos && menu.children('li.' + pos) && newSub) { + subMenu = menu.children('li.' + pos); + subMenu.addClass('submenu'); + + var mainLink = null; + if (subMenu.children('a') && !subMenu.hasClass('sublink')) { + subMenu.addClass('sublink'); + + var mainLink = $('
  • ').addClass(pos); + subMenu.children('a').clone().appendTo(mainLink) + subMenu.children('a').addClass('mainlink'); + } + + var newMenu = $('