From c62459b40e5d9092f9fad4f7e5b1f593101f7e49 Mon Sep 17 00:00:00 2001 From: RainLoop Team Date: Sat, 26 Oct 2013 18:50:47 +0400 Subject: [PATCH] v1.3.5.459 --- data/VERSION | 2 +- rainloop/v/1.3.4.455/REVISION | 1 - rainloop/v/1.3.4.455/VERSION | 1 - rainloop/v/1.3.4.455/static/js/admin.min.js | 151 ----------------- rainloop/v/{1.3.4.455 => 1.3.5.459}/LICENSE | 0 rainloop/v/1.3.5.459/REVISION | 1 + rainloop/v/1.3.5.459/VERSION | 1 + .../v/{1.3.4.455 => 1.3.5.459}/app/.htaccess | 0 .../app/domains/disabled | 0 .../app/domains/gmail.com.ini | 0 .../app/domains/outlook.com.ini | 0 .../app/domains/yahoo.com.ini | 0 .../v/{1.3.4.455 => 1.3.5.459}/app/handle.php | 0 .../app/i18n/langs.ini | 0 .../app/i18n/moment/ar-ma.js | 0 .../app/i18n/moment/ar.js | 0 .../app/i18n/moment/bg.js | 0 .../app/i18n/moment/br.js | 0 .../app/i18n/moment/bs.js | 0 .../app/i18n/moment/ca.js | 0 .../app/i18n/moment/cs.js | 0 .../app/i18n/moment/cv.js | 0 .../app/i18n/moment/da.js | 0 .../app/i18n/moment/de.js | 0 .../app/i18n/moment/el.js | 0 .../app/i18n/moment/en-au.js | 0 .../app/i18n/moment/en-ca.js | 0 .../app/i18n/moment/en-gb.js | 0 .../app/i18n/moment/eo.js | 0 .../app/i18n/moment/es.js | 0 .../app/i18n/moment/et.js | 0 .../app/i18n/moment/eu.js | 0 .../app/i18n/moment/fa.js | 0 .../app/i18n/moment/fi.js | 0 .../app/i18n/moment/fr-ca.js | 0 .../app/i18n/moment/fr.js | 0 .../app/i18n/moment/gl.js | 0 .../app/i18n/moment/he.js | 0 .../app/i18n/moment/hi.js | 0 .../app/i18n/moment/hr.js | 0 .../app/i18n/moment/hu.js | 0 .../app/i18n/moment/id.js | 0 .../app/i18n/moment/is.js | 0 .../app/i18n/moment/it.js | 0 .../app/i18n/moment/ja.js | 0 .../app/i18n/moment/ka.js | 0 .../app/i18n/moment/ko.js | 0 .../app/i18n/moment/lt.js | 0 .../app/i18n/moment/lv.js | 0 .../app/i18n/moment/ml.js | 0 .../app/i18n/moment/mr.js | 0 .../app/i18n/moment/ms-my.js | 0 .../app/i18n/moment/nb.js | 0 .../app/i18n/moment/ne.js | 0 .../app/i18n/moment/nl.js | 0 .../app/i18n/moment/nn.js | 0 .../app/i18n/moment/pl.js | 0 .../app/i18n/moment/pt-br.js | 0 .../app/i18n/moment/pt.js | 0 .../app/i18n/moment/ro.js | 0 .../app/i18n/moment/ru.js | 0 .../app/i18n/moment/sk.js | 0 .../app/i18n/moment/sl.js | 0 .../app/i18n/moment/sq.js | 0 .../app/i18n/moment/sv.js | 0 .../app/i18n/moment/th.js | 0 .../app/i18n/moment/tr.js | 0 .../app/i18n/moment/tzm-la.js | 0 .../app/i18n/moment/tzm.js | 0 .../app/i18n/moment/uk.js | 0 .../app/i18n/moment/uz.js | 0 .../app/i18n/moment/vn.js | 0 .../app/i18n/moment/zh-cn.js | 0 .../app/i18n/moment/zh-tw.js | 0 .../app/libraries/MailSo/Base/Collection.php | 0 .../app/libraries/MailSo/Base/Crypt.php | 0 .../libraries/MailSo/Base/DateTimeHelper.php | 0 .../MailSo/Base/Enumerations/Charset.php | 0 .../MailSo/Base/Enumerations/Encoding.php | 0 .../MailSo/Base/Exceptions/Exception.php | 0 .../Exceptions/InvalidArgumentException.php | 0 .../app/libraries/MailSo/Base/HtmlUtils.php | 0 .../app/libraries/MailSo/Base/Http.php | 0 .../app/libraries/MailSo/Base/LinkFinder.php | 0 .../app/libraries/MailSo/Base/Loader.php | 0 .../MailSo/Base/ResourceRegistry.php | 0 .../MailSo/Base/StreamWrappers/Binary.php | 0 .../MailSo/Base/StreamWrappers/Literal.php | 0 .../MailSo/Base/StreamWrappers/SubStreams.php | 0 .../MailSo/Base/StreamWrappers/Test.php | 0 .../app/libraries/MailSo/Base/Utils.php | 0 .../app/libraries/MailSo/Base/Validator.php | 0 .../libraries/MailSo/Cache/CacheClient.php | 0 .../MailSo/Cache/DriverInterface.php | 0 .../libraries/MailSo/Cache/Drivers/APC.php | 0 .../libraries/MailSo/Cache/Drivers/File.php | 0 .../MailSo/Cache/Drivers/Memcache.php | 0 .../libraries/MailSo/Imap/BodyStructure.php | 0 .../MailSo/Imap/Enumerations/FetchType.php | 0 .../Enumerations/FolderResponseStatus.php | 0 .../MailSo/Imap/Enumerations/FolderStatus.php | 0 .../MailSo/Imap/Enumerations/FolderType.php | 0 .../MailSo/Imap/Enumerations/MessageFlag.php | 0 .../Imap/Enumerations/ResponseStatus.php | 0 .../MailSo/Imap/Enumerations/ResponseType.php | 0 .../MailSo/Imap/Enumerations/StoreAction.php | 0 .../MailSo/Imap/Exceptions/Exception.php | 0 .../Exceptions/InvalidResponseException.php | 0 .../LoginBadCredentialsException.php | 0 .../Exceptions/LoginBadMethodException.php | 0 .../MailSo/Imap/Exceptions/LoginException.php | 0 .../Exceptions/NegativeResponseException.php | 0 .../Imap/Exceptions/ResponseException.php | 0 .../Exceptions/ResponseNotFoundException.php | 0 .../Imap/Exceptions/RuntimeException.php | 0 .../libraries/MailSo/Imap/FetchResponse.php | 0 .../app/libraries/MailSo/Imap/Folder.php | 0 .../MailSo/Imap/FolderInformation.php | 0 .../app/libraries/MailSo/Imap/ImapClient.php | 0 .../libraries/MailSo/Imap/NamespaceResult.php | 0 .../app/libraries/MailSo/Imap/Response.php | 0 .../libraries/MailSo/Imap/SearchBuilder.php | 0 .../app/libraries/MailSo/Log/Driver.php | 0 .../libraries/MailSo/Log/Drivers/Callback.php | 0 .../app/libraries/MailSo/Log/Drivers/File.php | 0 .../libraries/MailSo/Log/Drivers/Inline.php | 0 .../MailSo/Log/Enumerations/Type.php | 0 .../app/libraries/MailSo/Log/Logger.php | 0 .../app/libraries/MailSo/Mail/Attachment.php | 0 .../MailSo/Mail/AttachmentCollection.php | 0 .../MailSo/Mail/Exceptions/Exception.php | 0 .../MailSo/Mail/Exceptions/NonEmptyFolder.php | 0 .../Mail/Exceptions/RuntimeException.php | 0 .../app/libraries/MailSo/Mail/Folder.php | 0 .../MailSo/Mail/FolderCollection.php | 0 .../app/libraries/MailSo/Mail/MailClient.php | 0 .../app/libraries/MailSo/Mail/Message.php | 0 .../MailSo/Mail/MessageCollection.php | 0 .../app/libraries/MailSo/MailSo.php | 0 .../app/libraries/MailSo/Mime/Attachment.php | 0 .../MailSo/Mime/AttachmentCollection.php | 0 .../app/libraries/MailSo/Mime/Email.php | 0 .../libraries/MailSo/Mime/EmailCollection.php | 0 .../MailSo/Mime/Enumerations/Constants.php | 0 .../MailSo/Mime/Enumerations/Header.php | 0 .../Mime/Enumerations/MessagePriority.php | 0 .../MailSo/Mime/Enumerations/MimeType.php | 0 .../MailSo/Mime/Enumerations/Parameter.php | 0 .../MailSo/Mime/Enumerations/Sensitivity.php | 0 .../app/libraries/MailSo/Mime/Header.php | 0 .../MailSo/Mime/HeaderCollection.php | 0 .../app/libraries/MailSo/Mime/Message.php | 0 .../app/libraries/MailSo/Mime/Parameter.php | 0 .../MailSo/Mime/ParameterCollection.php | 0 .../MailSo/Mime/Parser/ParserEmpty.php | 0 .../MailSo/Mime/Parser/ParserInterface.php | 0 .../MailSo/Mime/Parser/ParserMemory.php | 0 .../app/libraries/MailSo/Mime/Part.php | 0 .../libraries/MailSo/Mime/PartCollection.php | 0 .../Enumerations/ConnectionSecurityType.php | 0 .../Net/Exceptions/ConnectionException.php | 0 .../MailSo/Net/Exceptions/Exception.php | 0 .../Exceptions/InvalidArgumentException.php | 0 .../SocketAlreadyConnectedException.php | 0 .../SocketCanNotConnectToHostException.php | 0 ...ketConnectionDoesNotAvailableException.php | 0 .../Net/Exceptions/SocketReadException.php | 0 .../Exceptions/SocketReadTimeoutException.php | 0 .../SocketUnreadBufferException.php | 0 ...etUnsuppoterdSecureConnectionException.php | 0 .../Net/Exceptions/SocketWriteException.php | 0 .../app/libraries/MailSo/Net/NetClient.php | 0 .../MailSo/Pop3/Exceptions/Exception.php | 0 .../LoginBadCredentialsException.php | 0 .../Exceptions/NegativeResponseException.php | 0 .../Pop3/Exceptions/ResponseException.php | 0 .../Pop3/Exceptions/RuntimeException.php | 0 .../app/libraries/MailSo/Pop3/Pop3Client.php | 0 .../MailSo/Poppassd/Exceptions/Exception.php | 0 .../LoginBadCredentialsException.php | 0 .../Exceptions/NegativeResponseException.php | 0 .../Poppassd/Exceptions/ResponseException.php | 0 .../Poppassd/Exceptions/RuntimeException.php | 0 .../MailSo/Poppassd/PoppassdClient.php | 0 .../MailSo/Sieve/Exceptions/Exception.php | 0 .../LoginBadCredentialsException.php | 0 .../Exceptions/LoginBadMethodException.php | 0 .../Sieve/Exceptions/LoginException.php | 0 .../Exceptions/NegativeResponseException.php | 0 .../Sieve/Exceptions/ResponseException.php | 0 .../Sieve/Exceptions/RuntimeException.php | 0 .../MailSo/Sieve/ManageSieveClient.php | 0 .../MailSo/Smtp/Exceptions/Exception.php | 0 .../LoginBadCredentialsException.php | 0 .../Exceptions/LoginBadMethodException.php | 0 .../MailSo/Smtp/Exceptions/LoginException.php | 0 .../Exceptions/NegativeResponseException.php | 0 .../Smtp/Exceptions/ResponseException.php | 0 .../Smtp/Exceptions/RuntimeException.php | 0 .../app/libraries/MailSo/Smtp/SmtpClient.php | 0 .../app/libraries/MailSo/Version.php | 0 .../app/libraries/PHP-OAuth2/Client.php | 0 .../GrantType/AuthorizationCode.php | 0 .../GrantType/ClientCredentials.php | 0 .../PHP-OAuth2/GrantType/IGrantType.php | 0 .../PHP-OAuth2/GrantType/Password.php | 0 .../PHP-OAuth2/GrantType/RefreshToken.php | 0 .../app/libraries/PHP-OAuth2/README | 0 .../app/libraries/RainLoop/Account.php | 0 .../app/libraries/RainLoop/Actions.php | 58 ++++++- .../RainLoop/Config/AbstractConfig.php | 0 .../libraries/RainLoop/Config/Application.php | 1 + .../app/libraries/RainLoop/Config/Plugin.php | 0 .../app/libraries/RainLoop/Domain.php | 0 .../RainLoop/Enumerations/CustomThemeType.php | 0 .../Enumerations/PluginPropertyType.php | 0 .../RainLoop/Enumerations/SignMeType.php | 0 .../RainLoop/Enumerations/TimeFormat.php | 0 .../RainLoop/Exceptions/AuthException.php | 0 .../RainLoop/Exceptions/ClientException.php | 0 .../RainLoop/Exceptions/Exception.php | 0 .../Exceptions/InvalidArgumentException.php | 0 .../RainLoop/Exceptions/RuntimeException.php | 0 .../app/libraries/RainLoop/Notifications.php | 0 .../RainLoop/Plugins/AbstractPlugin.php | 24 ++- .../libraries/RainLoop/Plugins/Manager.php | 12 +- .../libraries/RainLoop/Plugins/Property.php | 0 .../RainLoop/Providers/AbstractProvider.php | 0 .../RainLoop/Providers/ChangePassword.php | 0 .../ChangePasswordInterface.php | 0 .../libraries/RainLoop/Providers/Contacts.php | 0 .../Providers/Contacts/Classes/Contact.php | 0 .../Providers/Contacts/Classes/Db.php | 0 .../Providers/Contacts/ContactsInterface.php | 0 .../Providers/Contacts/DefaultContacts.php | 0 .../libraries/RainLoop/Providers/Domain.php | 0 .../Providers/Domain/DefaultDomain.php | 0 .../Providers/Domain/DomainAdminInterface.php | 0 .../Providers/Domain/DomainInterface.php | 0 .../Domain/DomainSimpleInterface.php | 0 .../libraries/RainLoop/Providers/Login.php | 0 .../RainLoop/Providers/Login/DefaultLogin.php | 0 .../Providers/Login/LoginInterface.php | 0 .../libraries/RainLoop/Providers/Settings.php | 0 .../Providers/Settings/DefaultSettings.php | 0 .../Providers/Settings/SettingsInterface.php | 0 .../libraries/RainLoop/Providers/Storage.php | 0 .../Providers/Storage/DefaultStorage.php | 0 .../Storage/Enumerations/StorageType.php | 0 .../Enumerations/UploadClientError.php | 0 .../Storage/Enumerations/UploadError.php | 0 .../Providers/Storage/StorageInterface.php | 0 .../RainLoop/Providers/Suggestions.php | 0 .../Suggestions/SuggestionsInterface.php | 0 .../app/libraries/RainLoop/Service.php | 0 .../app/libraries/RainLoop/ServiceActions.php | 0 .../app/libraries/RainLoop/Settings.php | 0 .../app/libraries/RainLoop/Social.php | 0 .../app/libraries/RainLoop/Utils.php | 0 .../app/libraries/facebook/base_facebook.php | 0 .../app/libraries/facebook/facebook.php | 0 .../libraries/facebook/fb_ca_chain_bundle.crt | 0 .../app/libraries/lessphp/LICENSE | 0 .../app/libraries/lessphp/README.md | 0 .../app/libraries/lessphp/ctype.php | 0 .../app/libraries/lessphp/lessc.inc.php | 0 .../app/libraries/pclzip/gnu-lgpl.txt | 0 .../app/libraries/pclzip/pclzip.lib.php | 0 .../app/libraries/pclzip/readme.txt | 0 .../app/libraries/tmhOAuth/LICENSE | 0 .../app/libraries/tmhOAuth/README.md | 0 .../app/libraries/tmhOAuth/cacert.pem | 0 .../app/libraries/tmhOAuth/tmhOAuth.php | 0 .../app/libraries/tmhOAuth/tmhUtilities.php | 0 .../app/templates/BadBrowser.html | 0 .../app/templates/Error.html | 0 .../app/templates/Index.html | 0 .../templates/Themes/custom-values-dark.less | 0 .../templates/Themes/custom-values-light.less | 0 .../app/templates/Themes/template.less | 0 .../app/templates/Themes/values.less | 0 .../templates/Views/AdminDomainListItem.html | 0 .../app/templates/Views/AdminDomains.html | 0 .../app/templates/Views/AdminGeneral.html | 4 + .../app/templates/Views/AdminLicensing.html | 0 .../app/templates/Views/AdminLogin.html | 0 .../app/templates/Views/AdminMenu.html | 0 .../app/templates/Views/AdminPackages.html | 0 .../Views/AdminPackagesListItem.html | 0 .../templates/Views/AdminPackagesTable.html | 0 .../app/templates/Views/AdminPane.html | 0 .../templates/Views/AdminPluginListItem.html | 0 .../templates/Views/AdminPluginProperty.html | 0 .../app/templates/Views/AdminPlugins.html | 0 .../app/templates/Views/AdminSecurity.html | 0 .../app/templates/Views/AdminSocial.html | 0 .../templates/Views/ComposeAttachment.html | 0 .../Views/ComposeAttachmentInProcess.html | 0 .../app/templates/Views/Login.html | 0 .../app/templates/Views/MailFolderList.html | 0 .../templates/Views/MailFolderListItem.html | 0 .../Views/MailFolderListSystemItem.html | 0 .../app/templates/Views/MailMessageList.html | 0 .../templates/Views/MailMessageListItem.html | 0 .../MailMessageListItemNoPreviewPane.html | 0 .../app/templates/Views/MailMessageView.html | 0 .../app/templates/Views/PopupsActivate.html | 0 .../app/templates/Views/PopupsAddAccount.html | 0 .../templates/Views/PopupsAdvancedSearch.html | 0 .../app/templates/Views/PopupsCompose.html | 0 .../app/templates/Views/PopupsContacts.html | 0 .../app/templates/Views/PopupsDomain.html | 0 .../templates/Views/PopupsFolderClear.html | 0 .../templates/Views/PopupsFolderCreate.html | 0 .../templates/Views/PopupsFolderSystem.html | 0 .../app/templates/Views/PopupsLanguages.html | 0 .../app/templates/Views/PopupsPlugin.html | 6 +- .../Views/PopupsWindowSimpleMessage.html | 0 .../app/templates/Views/SettingsAccounts.html | 0 .../Views/SettingsChangePassword.html | 0 .../app/templates/Views/SettingsCustom.html | 0 .../templates/Views/SettingsFolderItem.html | 0 .../app/templates/Views/SettingsFolders.html | 0 .../app/templates/Views/SettingsGeneral.html | 0 .../app/templates/Views/SettingsMenu.html | 0 .../app/templates/Views/SettingsPane.html | 0 .../app/templates/Views/SettingsPersonal.html | 0 .../app/templates/Views/SettingsSocial.html | 0 .../app/templates/Views/SettingsThemes.html | 0 .../app/templates/Views/SystemDropDown.html | 0 rainloop/v/{1.3.4.455 => 1.3.5.459}/check.php | 0 rainloop/v/{1.3.4.455 => 1.3.5.459}/index.php | 0 .../v/{1.3.4.455 => 1.3.5.459}/langs/de.ini | 0 .../v/{1.3.4.455 => 1.3.5.459}/langs/en.ini | 0 .../v/{1.3.4.455 => 1.3.5.459}/langs/es.ini | 0 .../v/{1.3.4.455 => 1.3.5.459}/langs/fr.ini | 0 .../v/{1.3.4.455 => 1.3.5.459}/langs/is.ini | 0 .../v/{1.3.4.455 => 1.3.5.459}/langs/lv.ini | 0 .../v/{1.3.4.455 => 1.3.5.459}/langs/nl.ini | 0 .../{1.3.4.455 => 1.3.5.459}/langs/pt-br.ini | 0 .../v/{1.3.4.455 => 1.3.5.459}/langs/ru.ini | 0 .../static/browsers/chrome.gif | Bin .../static/browsers/firefox.gif | Bin .../static/browsers/opera.gif | Bin .../static/browsers/safari.gif | Bin .../static/css/app.css | 2 +- .../static/css/flags.png | Bin .../static/css/fonts/icomoon.dev.svg | 0 .../static/css/fonts/icomoon.eot | Bin .../static/css/fonts/icomoon.svg | 0 .../static/css/fonts/icomoon.ttf | Bin .../static/css/fonts/icomoon.woff | Bin .../static/css/images/editor.png | Bin .../static/css/images/empty-contact.png | Bin .../static/css/images/grey.png | Bin .../css/images/icom-message-notification.png | Bin .../static/css/images/loader-black.gif | Bin .../static/css/images/loader-white.gif | Bin .../static/css/images/sync.gif | Bin .../static/css/images/sync.png | Bin .../static/css/images/white.png | Bin .../static/css/select2-spinner.gif | Bin .../static/css/select2.png | Bin .../static/css/select2x2.png | Bin .../static/favicon.ico | Bin .../static/favicon.png | Bin rainloop/v/1.3.5.459/static/js/admin.min.js | 153 ++++++++++++++++++ .../static/js/app.min.js | 142 ++++++++-------- .../static/js/boot.js | 0 .../static/js/libs.js | 146 ++++++++--------- .../static/services/amazon.png | Bin .../static/services/apple.jpg | Bin .../static/services/asana.png | Bin .../static/services/battle.net.png | Bin .../static/services/cnet.jpg | Bin .../static/services/ea.png | Bin .../static/services/ebay.jpg | Bin .../static/services/facebook.png | Bin .../static/services/github.png | Bin .../static/services/google-plus.png | Bin .../static/services/google.png | Bin .../static/services/icloud.jpg | Bin .../static/services/microsoft.jpg | Bin .../static/services/myspace.png | Bin .../static/services/onlive.png | Bin .../static/services/paypal.jpg | Bin .../static/services/skype.png | Bin .../static/services/steam.png | Bin .../static/services/ted.png | Bin .../static/services/twitter.jpg | Bin .../static/services/youtube.gif | Bin .../static/sounds/new-mail.mp3 | Bin .../static/sounds/new-mail.ogg | Bin .../themes/A/images/background.jpg | Bin .../themes/A/images/preview.png | Bin .../themes/A/styles.less | 0 .../themes/Clear/images/preview.png | Bin .../themes/Clear/styles.less | 0 .../themes/Custom/ext.less | 0 .../themes/Custom/images/preview.png | Bin .../themes/Default/images/background.jpg | Bin .../themes/Default/images/background.png | Bin .../themes/Default/images/preview.png | Bin .../themes/Default/styles.less | 0 .../themes/Linen/images/background.jpg | Bin .../themes/Linen/images/background.png | Bin .../themes/Linen/images/preview.png | Bin .../themes/Linen/styles.less | 0 .../themes/Love/images/background.jpg | Bin .../themes/Love/images/preview.png | Bin .../themes/Love/styles.less | 0 .../themes/Snow/images/background.jpg | Bin .../themes/Snow/images/preview.png | Bin .../themes/Snow/styles.less | 0 .../themes/Squares/images/background.jpg | Bin .../themes/Squares/images/background.png | Bin .../themes/Squares/images/preview.png | Bin .../themes/Squares/styles.less | 0 .../themes/SquaresDark/images/background.jpg | Bin .../themes/SquaresDark/images/background.png | Bin .../themes/SquaresDark/images/preview.png | Bin .../themes/SquaresDark/styles.less | 0 .../themes/Stripes/images/background.jpg | Bin .../themes/Stripes/images/preview.png | Bin .../themes/Stripes/styles.less | 0 .../themes/Wood/images/background.jpg | Bin .../themes/Wood/images/background.png | Bin .../themes/Wood/images/preview.png | Bin .../themes/Wood/styles.less | 0 .../themes/Xv/images/background.jpg | Bin .../themes/Xv/images/background.png | Bin .../themes/Xv/images/preview.png | Bin .../themes/Xv/styles.less | 0 433 files changed, 396 insertions(+), 309 deletions(-) delete mode 100644 rainloop/v/1.3.4.455/REVISION delete mode 100644 rainloop/v/1.3.4.455/VERSION delete mode 100644 rainloop/v/1.3.4.455/static/js/admin.min.js rename rainloop/v/{1.3.4.455 => 1.3.5.459}/LICENSE (100%) create mode 100644 rainloop/v/1.3.5.459/REVISION create mode 100644 rainloop/v/1.3.5.459/VERSION rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/.htaccess (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/domains/disabled (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/domains/gmail.com.ini (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/domains/outlook.com.ini (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/domains/yahoo.com.ini (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/handle.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/i18n/langs.ini (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/i18n/moment/ar-ma.js (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/i18n/moment/ar.js (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/i18n/moment/bg.js (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/i18n/moment/br.js (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/i18n/moment/bs.js (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/i18n/moment/ca.js (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/i18n/moment/cs.js (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/i18n/moment/cv.js (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/i18n/moment/da.js (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/i18n/moment/de.js (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/i18n/moment/el.js (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/i18n/moment/en-au.js (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/i18n/moment/en-ca.js (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/i18n/moment/en-gb.js (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/i18n/moment/eo.js (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/i18n/moment/es.js (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/i18n/moment/et.js (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/i18n/moment/eu.js (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/i18n/moment/fa.js (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/i18n/moment/fi.js (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/i18n/moment/fr-ca.js (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/i18n/moment/fr.js (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/i18n/moment/gl.js (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/i18n/moment/he.js (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/i18n/moment/hi.js (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/i18n/moment/hr.js (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/i18n/moment/hu.js (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/i18n/moment/id.js (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/i18n/moment/is.js (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/i18n/moment/it.js (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/i18n/moment/ja.js (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/i18n/moment/ka.js (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/i18n/moment/ko.js (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/i18n/moment/lt.js (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/i18n/moment/lv.js (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/i18n/moment/ml.js (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/i18n/moment/mr.js (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/i18n/moment/ms-my.js (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/i18n/moment/nb.js (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/i18n/moment/ne.js (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/i18n/moment/nl.js (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/i18n/moment/nn.js (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/i18n/moment/pl.js (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/i18n/moment/pt-br.js (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/i18n/moment/pt.js (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/i18n/moment/ro.js (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/i18n/moment/ru.js (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/i18n/moment/sk.js (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/i18n/moment/sl.js (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/i18n/moment/sq.js (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/i18n/moment/sv.js (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/i18n/moment/th.js (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/i18n/moment/tr.js (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/i18n/moment/tzm-la.js (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/i18n/moment/tzm.js (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/i18n/moment/uk.js (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/i18n/moment/uz.js (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/i18n/moment/vn.js (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/i18n/moment/zh-cn.js (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/i18n/moment/zh-tw.js (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Base/Collection.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Base/Crypt.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Base/DateTimeHelper.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Base/Enumerations/Charset.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Base/Enumerations/Encoding.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Base/Exceptions/Exception.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Base/Exceptions/InvalidArgumentException.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Base/HtmlUtils.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Base/Http.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Base/LinkFinder.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Base/Loader.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Base/ResourceRegistry.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Base/StreamWrappers/Binary.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Base/StreamWrappers/Literal.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Base/StreamWrappers/SubStreams.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Base/StreamWrappers/Test.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Base/Utils.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Base/Validator.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Cache/CacheClient.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Cache/DriverInterface.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Cache/Drivers/APC.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Cache/Drivers/File.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Cache/Drivers/Memcache.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Imap/BodyStructure.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Imap/Enumerations/FetchType.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Imap/Enumerations/FolderResponseStatus.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Imap/Enumerations/FolderStatus.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Imap/Enumerations/FolderType.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Imap/Enumerations/MessageFlag.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Imap/Enumerations/ResponseStatus.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Imap/Enumerations/ResponseType.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Imap/Enumerations/StoreAction.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Imap/Exceptions/Exception.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Imap/Exceptions/InvalidResponseException.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Imap/Exceptions/LoginBadCredentialsException.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Imap/Exceptions/LoginBadMethodException.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Imap/Exceptions/LoginException.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Imap/Exceptions/NegativeResponseException.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Imap/Exceptions/ResponseException.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Imap/Exceptions/ResponseNotFoundException.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Imap/Exceptions/RuntimeException.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Imap/FetchResponse.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Imap/Folder.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Imap/FolderInformation.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Imap/ImapClient.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Imap/NamespaceResult.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Imap/Response.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Imap/SearchBuilder.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Log/Driver.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Log/Drivers/Callback.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Log/Drivers/File.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Log/Drivers/Inline.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Log/Enumerations/Type.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Log/Logger.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Mail/Attachment.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Mail/AttachmentCollection.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Mail/Exceptions/Exception.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Mail/Exceptions/NonEmptyFolder.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Mail/Exceptions/RuntimeException.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Mail/Folder.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Mail/FolderCollection.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Mail/MailClient.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Mail/Message.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Mail/MessageCollection.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/MailSo.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Mime/Attachment.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Mime/AttachmentCollection.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Mime/Email.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Mime/EmailCollection.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Mime/Enumerations/Constants.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Mime/Enumerations/Header.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Mime/Enumerations/MessagePriority.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Mime/Enumerations/MimeType.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Mime/Enumerations/Parameter.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Mime/Enumerations/Sensitivity.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Mime/Header.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Mime/HeaderCollection.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Mime/Message.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Mime/Parameter.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Mime/ParameterCollection.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Mime/Parser/ParserEmpty.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Mime/Parser/ParserInterface.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Mime/Parser/ParserMemory.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Mime/Part.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Mime/PartCollection.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Net/Enumerations/ConnectionSecurityType.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Net/Exceptions/ConnectionException.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Net/Exceptions/Exception.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Net/Exceptions/InvalidArgumentException.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Net/Exceptions/SocketAlreadyConnectedException.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Net/Exceptions/SocketCanNotConnectToHostException.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Net/Exceptions/SocketConnectionDoesNotAvailableException.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Net/Exceptions/SocketReadException.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Net/Exceptions/SocketReadTimeoutException.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Net/Exceptions/SocketUnreadBufferException.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Net/Exceptions/SocketUnsuppoterdSecureConnectionException.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Net/Exceptions/SocketWriteException.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Net/NetClient.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Pop3/Exceptions/Exception.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Pop3/Exceptions/LoginBadCredentialsException.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Pop3/Exceptions/NegativeResponseException.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Pop3/Exceptions/ResponseException.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Pop3/Exceptions/RuntimeException.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Pop3/Pop3Client.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Poppassd/Exceptions/Exception.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Poppassd/Exceptions/LoginBadCredentialsException.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Poppassd/Exceptions/NegativeResponseException.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Poppassd/Exceptions/ResponseException.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Poppassd/Exceptions/RuntimeException.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Poppassd/PoppassdClient.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Sieve/Exceptions/Exception.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Sieve/Exceptions/LoginBadCredentialsException.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Sieve/Exceptions/LoginBadMethodException.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Sieve/Exceptions/LoginException.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Sieve/Exceptions/NegativeResponseException.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Sieve/Exceptions/ResponseException.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Sieve/Exceptions/RuntimeException.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Sieve/ManageSieveClient.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Smtp/Exceptions/Exception.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Smtp/Exceptions/LoginBadCredentialsException.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Smtp/Exceptions/LoginBadMethodException.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Smtp/Exceptions/LoginException.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Smtp/Exceptions/NegativeResponseException.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Smtp/Exceptions/ResponseException.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Smtp/Exceptions/RuntimeException.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Smtp/SmtpClient.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/MailSo/Version.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/PHP-OAuth2/Client.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/PHP-OAuth2/GrantType/AuthorizationCode.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/PHP-OAuth2/GrantType/ClientCredentials.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/PHP-OAuth2/GrantType/IGrantType.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/PHP-OAuth2/GrantType/Password.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/PHP-OAuth2/GrantType/RefreshToken.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/PHP-OAuth2/README (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/RainLoop/Account.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/RainLoop/Actions.php (99%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/RainLoop/Config/AbstractConfig.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/RainLoop/Config/Application.php (96%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/RainLoop/Config/Plugin.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/RainLoop/Domain.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/RainLoop/Enumerations/CustomThemeType.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/RainLoop/Enumerations/PluginPropertyType.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/RainLoop/Enumerations/SignMeType.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/RainLoop/Enumerations/TimeFormat.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/RainLoop/Exceptions/AuthException.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/RainLoop/Exceptions/ClientException.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/RainLoop/Exceptions/Exception.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/RainLoop/Exceptions/InvalidArgumentException.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/RainLoop/Exceptions/RuntimeException.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/RainLoop/Notifications.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/RainLoop/Plugins/AbstractPlugin.php (87%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/RainLoop/Plugins/Manager.php (92%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/RainLoop/Plugins/Property.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/RainLoop/Providers/AbstractProvider.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/RainLoop/Providers/ChangePassword.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/RainLoop/Providers/ChangePassword/ChangePasswordInterface.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/RainLoop/Providers/Contacts.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/RainLoop/Providers/Contacts/Classes/Contact.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/RainLoop/Providers/Contacts/Classes/Db.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/RainLoop/Providers/Contacts/ContactsInterface.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/RainLoop/Providers/Contacts/DefaultContacts.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/RainLoop/Providers/Domain.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/RainLoop/Providers/Domain/DefaultDomain.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/RainLoop/Providers/Domain/DomainAdminInterface.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/RainLoop/Providers/Domain/DomainInterface.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/RainLoop/Providers/Domain/DomainSimpleInterface.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/RainLoop/Providers/Login.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/RainLoop/Providers/Login/DefaultLogin.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/RainLoop/Providers/Login/LoginInterface.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/RainLoop/Providers/Settings.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/RainLoop/Providers/Settings/DefaultSettings.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/RainLoop/Providers/Settings/SettingsInterface.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/RainLoop/Providers/Storage.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/RainLoop/Providers/Storage/DefaultStorage.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/RainLoop/Providers/Storage/Enumerations/StorageType.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/RainLoop/Providers/Storage/Enumerations/UploadClientError.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/RainLoop/Providers/Storage/Enumerations/UploadError.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/RainLoop/Providers/Storage/StorageInterface.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/RainLoop/Providers/Suggestions.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/RainLoop/Providers/Suggestions/SuggestionsInterface.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/RainLoop/Service.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/RainLoop/ServiceActions.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/RainLoop/Settings.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/RainLoop/Social.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/RainLoop/Utils.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/facebook/base_facebook.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/facebook/facebook.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/facebook/fb_ca_chain_bundle.crt (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/lessphp/LICENSE (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/lessphp/README.md (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/lessphp/ctype.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/lessphp/lessc.inc.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/pclzip/gnu-lgpl.txt (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/pclzip/pclzip.lib.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/pclzip/readme.txt (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/tmhOAuth/LICENSE (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/tmhOAuth/README.md (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/tmhOAuth/cacert.pem (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/tmhOAuth/tmhOAuth.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/libraries/tmhOAuth/tmhUtilities.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/templates/BadBrowser.html (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/templates/Error.html (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/templates/Index.html (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/templates/Themes/custom-values-dark.less (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/templates/Themes/custom-values-light.less (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/templates/Themes/template.less (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/templates/Themes/values.less (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/templates/Views/AdminDomainListItem.html (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/templates/Views/AdminDomains.html (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/templates/Views/AdminGeneral.html (89%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/templates/Views/AdminLicensing.html (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/templates/Views/AdminLogin.html (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/templates/Views/AdminMenu.html (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/templates/Views/AdminPackages.html (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/templates/Views/AdminPackagesListItem.html (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/templates/Views/AdminPackagesTable.html (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/templates/Views/AdminPane.html (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/templates/Views/AdminPluginListItem.html (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/templates/Views/AdminPluginProperty.html (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/templates/Views/AdminPlugins.html (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/templates/Views/AdminSecurity.html (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/templates/Views/AdminSocial.html (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/templates/Views/ComposeAttachment.html (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/templates/Views/ComposeAttachmentInProcess.html (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/templates/Views/Login.html (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/templates/Views/MailFolderList.html (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/templates/Views/MailFolderListItem.html (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/templates/Views/MailFolderListSystemItem.html (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/templates/Views/MailMessageList.html (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/templates/Views/MailMessageListItem.html (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/templates/Views/MailMessageListItemNoPreviewPane.html (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/templates/Views/MailMessageView.html (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/templates/Views/PopupsActivate.html (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/templates/Views/PopupsAddAccount.html (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/templates/Views/PopupsAdvancedSearch.html (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/templates/Views/PopupsCompose.html (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/templates/Views/PopupsContacts.html (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/templates/Views/PopupsDomain.html (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/templates/Views/PopupsFolderClear.html (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/templates/Views/PopupsFolderCreate.html (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/templates/Views/PopupsFolderSystem.html (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/templates/Views/PopupsLanguages.html (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/templates/Views/PopupsPlugin.html (82%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/templates/Views/PopupsWindowSimpleMessage.html (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/templates/Views/SettingsAccounts.html (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/templates/Views/SettingsChangePassword.html (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/templates/Views/SettingsCustom.html (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/templates/Views/SettingsFolderItem.html (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/templates/Views/SettingsFolders.html (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/templates/Views/SettingsGeneral.html (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/templates/Views/SettingsMenu.html (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/templates/Views/SettingsPane.html (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/templates/Views/SettingsPersonal.html (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/templates/Views/SettingsSocial.html (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/templates/Views/SettingsThemes.html (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/app/templates/Views/SystemDropDown.html (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/check.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/index.php (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/langs/de.ini (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/langs/en.ini (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/langs/es.ini (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/langs/fr.ini (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/langs/is.ini (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/langs/lv.ini (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/langs/nl.ini (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/langs/pt-br.ini (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/langs/ru.ini (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/static/browsers/chrome.gif (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/static/browsers/firefox.gif (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/static/browsers/opera.gif (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/static/browsers/safari.gif (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/static/css/app.css (69%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/static/css/flags.png (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/static/css/fonts/icomoon.dev.svg (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/static/css/fonts/icomoon.eot (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/static/css/fonts/icomoon.svg (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/static/css/fonts/icomoon.ttf (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/static/css/fonts/icomoon.woff (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/static/css/images/editor.png (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/static/css/images/empty-contact.png (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/static/css/images/grey.png (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/static/css/images/icom-message-notification.png (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/static/css/images/loader-black.gif (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/static/css/images/loader-white.gif (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/static/css/images/sync.gif (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/static/css/images/sync.png (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/static/css/images/white.png (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/static/css/select2-spinner.gif (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/static/css/select2.png (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/static/css/select2x2.png (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/static/favicon.ico (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/static/favicon.png (100%) create mode 100644 rainloop/v/1.3.5.459/static/js/admin.min.js rename rainloop/v/{1.3.4.455 => 1.3.5.459}/static/js/app.min.js (81%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/static/js/boot.js (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/static/js/libs.js (91%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/static/services/amazon.png (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/static/services/apple.jpg (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/static/services/asana.png (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/static/services/battle.net.png (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/static/services/cnet.jpg (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/static/services/ea.png (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/static/services/ebay.jpg (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/static/services/facebook.png (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/static/services/github.png (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/static/services/google-plus.png (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/static/services/google.png (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/static/services/icloud.jpg (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/static/services/microsoft.jpg (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/static/services/myspace.png (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/static/services/onlive.png (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/static/services/paypal.jpg (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/static/services/skype.png (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/static/services/steam.png (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/static/services/ted.png (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/static/services/twitter.jpg (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/static/services/youtube.gif (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/static/sounds/new-mail.mp3 (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/static/sounds/new-mail.ogg (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/themes/A/images/background.jpg (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/themes/A/images/preview.png (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/themes/A/styles.less (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/themes/Clear/images/preview.png (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/themes/Clear/styles.less (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/themes/Custom/ext.less (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/themes/Custom/images/preview.png (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/themes/Default/images/background.jpg (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/themes/Default/images/background.png (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/themes/Default/images/preview.png (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/themes/Default/styles.less (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/themes/Linen/images/background.jpg (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/themes/Linen/images/background.png (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/themes/Linen/images/preview.png (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/themes/Linen/styles.less (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/themes/Love/images/background.jpg (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/themes/Love/images/preview.png (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/themes/Love/styles.less (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/themes/Snow/images/background.jpg (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/themes/Snow/images/preview.png (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/themes/Snow/styles.less (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/themes/Squares/images/background.jpg (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/themes/Squares/images/background.png (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/themes/Squares/images/preview.png (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/themes/Squares/styles.less (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/themes/SquaresDark/images/background.jpg (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/themes/SquaresDark/images/background.png (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/themes/SquaresDark/images/preview.png (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/themes/SquaresDark/styles.less (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/themes/Stripes/images/background.jpg (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/themes/Stripes/images/preview.png (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/themes/Stripes/styles.less (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/themes/Wood/images/background.jpg (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/themes/Wood/images/background.png (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/themes/Wood/images/preview.png (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/themes/Wood/styles.less (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/themes/Xv/images/background.jpg (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/themes/Xv/images/background.png (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/themes/Xv/images/preview.png (100%) rename rainloop/v/{1.3.4.455 => 1.3.5.459}/themes/Xv/styles.less (100%) diff --git a/data/VERSION b/data/VERSION index 210d13e29..0984ad6bf 100644 --- a/data/VERSION +++ b/data/VERSION @@ -1 +1 @@ -1.3.4.455 \ No newline at end of file +1.3.5.459 \ No newline at end of file diff --git a/rainloop/v/1.3.4.455/REVISION b/rainloop/v/1.3.4.455/REVISION deleted file mode 100644 index d4ecdddb7..000000000 --- a/rainloop/v/1.3.4.455/REVISION +++ /dev/null @@ -1 +0,0 @@ -735c5d28c7ac54614bdae62aa81e08dd6f08120e \ No newline at end of file diff --git a/rainloop/v/1.3.4.455/VERSION b/rainloop/v/1.3.4.455/VERSION deleted file mode 100644 index 210d13e29..000000000 --- a/rainloop/v/1.3.4.455/VERSION +++ /dev/null @@ -1 +0,0 @@ -1.3.4.455 \ No newline at end of file diff --git a/rainloop/v/1.3.4.455/static/js/admin.min.js b/rainloop/v/1.3.4.455/static/js/admin.min.js deleted file mode 100644 index caea3e085..000000000 --- a/rainloop/v/1.3.4.455/static/js/admin.min.js +++ /dev/null @@ -1,151 +0,0 @@ -(function(h,j,d,qa,z,i){function m(){this.sBase="#/";this.sCdnStaticDomain=f.settingsGet("CdnStaticDomain");this.sVersion=f.settingsGet("Version");this.sSpecSuffix=f.settingsGet("AuthAccountHash")||"0";this.sServer="./?";this.sCdnStaticDomain=""===this.sCdnStaticDomain?this.sCdnStaticDomain:"/"===this.sCdnStaticDomain.substr(-1)?this.sCdnStaticDomain:this.sCdnStaticDomain+"/"}function M(){}function N(){}function O(){var a=i.find([N,M],function(a){return a.supported()});a&&(this.oDriver=new a)}function ra(){} -function u(a,b){this.sPosition=c.pString(a);this.sTemplate=c.pString(b);this.viewModelName="";this.viewModelVisibility=d.observable(!1);"Popups"===this.sPosition&&(this.modalVisibility=d.observable(!1));this.viewModelDom=null}function x(a,b){this.sScreenName=a;this.aViewModels=c.isArray(b)?b:[]}function q(){this.sDefaultScreenName="";this.oScreens={};this.oCurrentScreen=this.oBoot=null;this.popupVisibility=d.observable(!1);this.popupVisibility.subscribe(function(a){f&&f.popupVisibility(a)})}function t(a, -b){this.email=a||"";this.name=b||"";this.privateType=null;this.clearDuplicateName()}function A(){u.call(this,"Popups","PopupsDomain");this.edit=d.observable(!1);this.saving=d.observable(!1);this.savingError=d.observable("");this.whiteListPage=d.observable(!1);this.testing=d.observable(!1);this.testingDone=d.observable(!1);this.testingImapError=d.observable(!1);this.testingSmtpError=d.observable(!1);this.imapServerFocus=d.observable(!1);this.smtpServerFocus=d.observable(!1);this.name=d.observable(""); -this.imapServer=d.observable("");this.imapPort=d.observable(l.Values.ImapDefaulPort);this.imapSecure=d.observable(g.ServerSecure.None);this.smtpServer=d.observable("");this.smtpPort=d.observable(l.Values.SmtpDefaulPort);this.smtpSecure=d.observable(g.ServerSecure.None);this.smtpAuth=d.observable(!0);this.whiteList=d.observable("");this.imapServerFocus.subscribe(function(a){a&&(""!==this.name()&&""===this.imapServer())&&this.imapServer(this.name())},this);this.smtpServerFocus.subscribe(function(a){a&& -(""!==this.imapServer()&&""===this.smtpServer())&&this.smtpServer(this.imapServer())},this);this.headerText=d.computed(function(){var a=this.name();return this.edit()?'Edit Domain "'+a+'"':"Add Domain"+(""===a?"":' "'+a+'"')},this);this.domainIsComputed=d.computed(function(){return""!==this.name()&&""!==this.imapServer()&&""!==this.imapPort()&&""!==this.smtpServer()&&""!==this.smtpPort()},this);this.canBeTested=d.computed(function(){return!this.testing()&&this.domainIsComputed()},this);this.canBeSaved= -d.computed(function(){return!this.saving()&&this.domainIsComputed()},this);this.createOrAddCommand=c.createCommand(this,function(){this.saving(!0);f.remote().createOrUpdateDomain(i.bind(this.onDomainCreateOrSaveResponse,this),!this.edit(),this.name(),this.imapServer(),this.imapPort(),this.imapSecure(),this.smtpServer(),this.smtpPort(),this.smtpSecure(),this.smtpAuth(),this.whiteList())},this.canBeSaved);this.testConnectionCommand=c.createCommand(this,function(){this.whiteListPage(!1);this.testingDone(!1); -this.testingImapError(!1);this.testingSmtpError(!1);this.testing(!0);f.remote().testConnectionForDomain(i.bind(this.onTestConnectionResponse,this),this.imapServer(),this.imapPort(),this.imapSecure(),this.smtpServer(),this.smtpPort(),this.smtpSecure(),this.smtpAuth())},this.canBeTested);this.whiteListCommand=c.createCommand(this,function(){this.whiteListPage(!this.whiteListPage())})}function P(){u.call(this,"Popups","PopupsPlugin");this.onPluginSettingsUpdateResponse=i.bind(this.onPluginSettingsUpdateResponse, -this);this.saveError=d.observable("");this.name=d.observable("");this.readme=d.observable("");this.configures=d.observableArray([]);this.hasReadme=d.computed(function(){return""!==this.readme()},this);this.hasConfiguration=d.computed(function(){return 0').appendTo("body");G.on("error",function(a){f&&(a&&a.originalEvent&&a.originalEvent.message&&-1===c.inArray(a.originalEvent.message,["Uncaught Error: Error calling method on NPObject."]))&&f.remote().jsError(c.emptyFunction,a.originalEvent.message,a.originalEvent.filename, -a.originalEvent.lineno,location&&location.toString?location.toString():"",T.attr("class"))})}function w(){v.call(this);this.oCache=this.oRemote=this.oData=null}var l={},g={},k={},c={},n={},U,V,ja,H,ka,D,la=d.observable(!0),W=d.observable(!0),r=null,X=h.rainloopAppData||{},ma=h.rainloopI18N||{},T=j("html"),G=j(h),va=j(h.document),Y=[],na=[],oa=[],Z=h.Notification&&h.Notification.requestPermission?h.Notification:null,f=null;V=U=0;ja=!1;H=(navigator.userAgent||"").toLowerCase();ka=-1/g,">").replace(/"/g,""").replace(/'/g,"'"):""};c.splitPlainText=function(a,b){for(var e="",s="",d=a,f=0,g=0,b=c.isUnd(b)?100:b;d.length>b;)s=d.substring(0,b),f=s.lastIndexOf(" "),g=s.lastIndexOf("\n"),-1!==g&&(f=g),-1===f&&(f=b),e+=s.substring(0,f)+"\n",d=d.substring(f+1);return e+d};var aa={};c.timeOutAction=function(a, -b,e){c.isUnd(aa[a])&&(aa[a]=0);h.clearTimeout(aa[a]);aa[a]=h.setTimeout(b,e)};var pa={};c.timeOutActionSecond=function(a,b,e){pa[a]||(pa[a]=h.setTimeout(function(){b();pa[a]=0},e))};var y=!1;c.audio=function(a,b){if(!1===y)if(ka)y=null;else{var e=!1,c=!1,d=h.Audio?new h.Audio:null;d&&d.canPlayType&&d.play?((e=""!==d.canPlayType('audio/mpeg; codecs="mp3"'))||(c=""!==d.canPlayType('audio/ogg; codecs="vorbis"')),e||c?(y=d,y.preload="none",y.loop=!1,y.autoplay=!1,y.muted=!1,y.src=e?a:b):y=null):y=null}return y}; -c.hos=function(a,b){return a&&Object.hasOwnProperty?Object.hasOwnProperty.call(a,b):!1};c.i18n=function(a,b,e){var d="",a=c.isUnd(ma[a])?c.isUnd(e)?a:e:ma[a];if(!c.isUnd(b)&&!c.isNull(b))for(d in b)c.hos(b,d)&&(a=a.replace("%"+d+"%",b[d]));return a};c.i18nToNode=function(a){i.defer(function(){j(".i18n",a).each(function(){var a=j(this),e="";(e=a.data("i18n-text"))?a.text(c.i18n(e)):((e=a.data("i18n-html"))&&a.html(c.i18n(e)),(e=a.data("i18n-placeholder"))&&a.attr("placeholder",c.i18n(e)))})})};c.i18nToDoc= -function(){h.rainloopI18N&&(ma=h.rainloopI18N||{},c.i18nToNode(va),W(!W()));h.rainloopI18N={}};c.initOnStartOrLangChange=function(a,b,e){a&&a.call(b);e?W.subscribe(function(){a&&a.call(b);e.call(b)}):a&&W.subscribe(a,b)};c.inFocus=function(){var a=document.activeElement;return a&&("INPUT"===a.tagName||"TEXTAREA"===a.tagName||"IFRAME"===a.tagName||"DIV"===a.tagName&&"editorHtmlArea"===a.className&&a.contentEditable)};c.removeInFocus=function(){if(document&&document.activeElement&&document.activeElement.blur){var a= -j(document.activeElement);(a.is("input")||a.is("textarea"))&&document.activeElement.blur()}};c.removeSelection=function(){if(h&&h.getSelection){var a=h.getSelection();a&&a.removeAllRanges&&a.removeAllRanges()}else document&&(document.selection&&document.selection.empty)&&document.selection.empty()};c.replySubjectAdd=function(a,b){var e=null,d=c.trim(b);null!==(e=(new h.RegExp("^"+a+"[\\s]?\\:(.*)$","gi")).exec(b))&&!c.isUnd(e[1])?d=a+"[2]: "+e[1]:null!==(e=(new h.RegExp("^("+a+"[\\s]?[\\[\\(]?)([\\d]+)([\\]\\)]?[\\s]?\\:.*)$", -"gi")).exec(b))&&!c.isUnd(e[1])&&!c.isUnd(e[2])&&!c.isUnd(e[3])?(c.pInt(e[2]),d=e[1]+(c.pInt(e[2])+1)+e[3]):d=a+": "+b;return d};c.roundNumber=function(a,b){return Math.round(a*Math.pow(10,b))/Math.pow(10,b)};c.friendlySize=function(a){a=c.pInt(a);return 1073741824<=a?c.roundNumber(a/1073741824,1)+"GB":1048576<=a?c.roundNumber(a/1048576,1)+"MB":1024<=a?c.roundNumber(a/1024,0)+"KB":a+"B"};c.log=function(a){h.console&&h.console.log&&h.console.log(a)};c.getNotification=function(a){a=c.pInt(a);return c.isUnd(k[a])? -"":k[a]};c.initNotificationLanguage=function(){k[g.Notification.InvalidToken]=c.i18n("NOTIFICATIONS/INVALID_TOKEN");k[g.Notification.AuthError]=c.i18n("NOTIFICATIONS/AUTH_ERROR");k[g.Notification.AccessError]=c.i18n("NOTIFICATIONS/ACCESS_ERROR");k[g.Notification.ConnectionError]=c.i18n("NOTIFICATIONS/CONNECTION_ERROR");k[g.Notification.CaptchaError]=c.i18n("NOTIFICATIONS/CAPTCHA_ERROR");k[g.Notification.SocialFacebookLoginAccessDisable]=c.i18n("NOTIFICATIONS/SOCIAL_FACEBOOK_LOGIN_ACCESS_DISABLE"); -k[g.Notification.SocialTwitterLoginAccessDisable]=c.i18n("NOTIFICATIONS/SOCIAL_TWITTER_LOGIN_ACCESS_DISABLE");k[g.Notification.SocialGoogleLoginAccessDisable]=c.i18n("NOTIFICATIONS/SOCIAL_GOOGLE_LOGIN_ACCESS_DISABLE");k[g.Notification.DomainNotAllowed]=c.i18n("NOTIFICATIONS/DOMAIN_NOT_ALLOWED");k[g.Notification.AccountNotAllowed]=c.i18n("NOTIFICATIONS/ACCOUNT_NOT_ALLOWED");k[g.Notification.CantGetMessageList]=c.i18n("NOTIFICATIONS/CANT_GET_MESSAGE_LIST");k[g.Notification.CantGetMessage]=c.i18n("NOTIFICATIONS/CANT_GET_MESSAGE"); -k[g.Notification.CantDeleteMessage]=c.i18n("NOTIFICATIONS/CANT_DELETE_MESSAGE");k[g.Notification.CantMoveMessage]=c.i18n("NOTIFICATIONS/CANT_MOVE_MESSAGE");k[g.Notification.CantSaveMessage]=c.i18n("NOTIFICATIONS/CANT_SAVE_MESSAGE");k[g.Notification.CantSendMessage]=c.i18n("NOTIFICATIONS/CANT_SEND_MESSAGE");k[g.Notification.InvalidRecipients]=c.i18n("NOTIFICATIONS/INVALID_RECIPIENTS");k[g.Notification.CantCreateFolder]=c.i18n("NOTIFICATIONS/CANT_CREATE_FOLDER");k[g.Notification.CantRenameFolder]=c.i18n("NOTIFICATIONS/CANT_RENAME_FOLDER"); -k[g.Notification.CantDeleteFolder]=c.i18n("NOTIFICATIONS/CANT_DELETE_FOLDER");k[g.Notification.CantDeleteNonEmptyFolder]=c.i18n("NOTIFICATIONS/CANT_DELETE_NON_EMPTY_FOLDER");k[g.Notification.CantSubscribeFolder]=c.i18n("NOTIFICATIONS/CANT_SUBSCRIBE_FOLDER");k[g.Notification.CantUnsubscribeFolder]=c.i18n("NOTIFICATIONS/CANT_UNSUBSCRIBE_FOLDER");k[g.Notification.CantSaveSettings]=c.i18n("NOTIFICATIONS/CANT_SAVE_SETTINGS");k[g.Notification.CantSavePluginSettings]=c.i18n("NOTIFICATIONS/CANT_SAVE_PLUGIN_SETTINGS"); -k[g.Notification.DomainAlreadyExists]=c.i18n("NOTIFICATIONS/DOMAIN_ALREADY_EXISTS");k[g.Notification.CantInstallPackage]=c.i18n("NOTIFICATIONS/CANT_INSTALL_PACKAGE");k[g.Notification.CantDeletePackage]=c.i18n("NOTIFICATIONS/CANT_DELETE_PACKAGE");k[g.Notification.InvalidPluginPackage]=c.i18n("NOTIFICATIONS/INVALID_PLUGIN_PACKAGE");k[g.Notification.UnsupportedPluginPackage]=c.i18n("NOTIFICATIONS/UNSUPPORTED_PLUGIN_PACKAGE");k[g.Notification.LicensingServerIsUnavailable]=c.i18n("NOTIFICATIONS/LICENSING_SERVER_IS_UNAVAILABLE"); -k[g.Notification.LicensingExpired]=c.i18n("NOTIFICATIONS/LICENSING_EXPIRED");k[g.Notification.LicensingBanned]=c.i18n("NOTIFICATIONS/LICENSING_BANNED");k[g.Notification.DemoSendMessageError]=c.i18n("NOTIFICATIONS/DEMO_SEND_MESSAGE_ERROR");k[g.Notification.AccountAlreadyExists]=c.i18n("NOTIFICATIONS/ACCOUNT_ALREADY_EXISTS");k[g.Notification.MailServerError]=c.i18n("NOTIFICATIONS/MAIL_SERVER_ERROR");k[g.Notification.UnknownNotification]=c.i18n("NOTIFICATIONS/UNKNOWN_ERROR");k[g.Notification.UnknownError]= -c.i18n("NOTIFICATIONS/UNKNOWN_ERROR")};c.getUploadErrorDescByCode=function(a){var b="";switch(c.pInt(a)){case g.UploadErrorCode.FileIsTooBig:b=c.i18n("UPLOAD/ERROR_FILE_IS_TOO_BIG");break;case g.UploadErrorCode.FilePartiallyUploaded:b=c.i18n("UPLOAD/ERROR_FILE_PARTIALLY_UPLOADED");break;case g.UploadErrorCode.FileNoUploaded:b=c.i18n("UPLOAD/ERROR_NO_FILE_UPLOADED");break;case g.UploadErrorCode.MissingTempFolder:b=c.i18n("UPLOAD/ERROR_MISSING_TEMP_FOLDER");break;case g.UploadErrorCode.FileOnSaveingError:b= -c.i18n("UPLOAD/ERROR_ON_SAVING_FILE");break;case g.UploadErrorCode.FileType:b=c.i18n("UPLOAD/ERROR_FILE_TYPE");break;default:b=c.i18n("UPLOAD/ERROR_UNKNOWN")}return b};c.killCtrlAandS=function(a){if(a=a||h.event){var b=a.target||a.srcElement,e=a.keyCode||a.which;if(a.ctrlKey&&e===g.EventKeyCode.S)a.preventDefault();else if((!b||!b.tagName||!b.tagName.match(/INPUT|TEXTAREA/i))&&a.ctrlKey&&e===g.EventKeyCode.A)h.getSelection?h.getSelection().removeAllRanges():h.document.selection&&h.document.selection.clear&& -h.document.selection.clear(),a.preventDefault()}};c.createCommand=function(a,b,e){var s=b?function(){s.canExecute&&s.canExecute()&&b.apply(a,Array.prototype.slice.call(arguments));return!1}:function(){};s.enabled=d.observable(!0);e=c.isUnd(e)?!0:e;s.canExecute=c.isFunc(e)?d.computed(function(){return s.enabled()&&e.call(a)}):d.computed(function(){return s.enabled()&&!!e});return s};c.initDataConstructorBySettings=function(a){a.ignoreFolderSubscribe=d.observable(!1);a.editorDefaultType=d.observable(g.EditorDefaultType.Html); -a.showImages=d.observable(!1);a.showAnimation=d.observable(!1);a.allowThemes=d.observable(!0);a.allowCustomLogin=d.observable(!1);a.allowLanguagesOnSettings=d.observable(!0);a.allowLanguagesOnLogin=d.observable(!0);a.desktopNotifications=d.observable(!1);a.useThreads=d.observable(!0);a.replySameFolder=d.observable(!0);a.usePreviewPane=d.observable(!0);a.useCheckboxesInList=d.observable(!0);a.showAnimation.subscribe(function(a){D?T.removeClass("rl-anim").addClass("no-rl-anim"):T.toggleClass("rl-anim", -a).toggleClass("no-rl-anim",!a)});a.showAnimation.valueHasMutated();a.desktopNotificationsPermisions=d.computed(function(){a.desktopNotifications();var b=g.DesktopNotifications.NotSupported;if(Z&&Z.permission)switch(Z.permission.toLowerCase()){case "granted":b=g.DesktopNotifications.Allowed;break;case "denied":b=g.DesktopNotifications.Denied;break;case "default":b=g.DesktopNotifications.NotAllowed}else h.webkitNotifications&&h.webkitNotifications.checkPermission&&(b=h.webkitNotifications.checkPermission()); -return b});a.useDesktopNotifications=d.computed({read:function(){return a.desktopNotifications()&&g.DesktopNotifications.Allowed===a.desktopNotificationsPermisions()},write:function(b){b?(b=a.desktopNotificationsPermisions(),g.DesktopNotifications.Allowed===b?a.desktopNotifications(!0):g.DesktopNotifications.NotAllowed===b?Z.requestPermission(function(){a.desktopNotifications.valueHasMutated();g.DesktopNotifications.Allowed===a.desktopNotificationsPermisions()?a.desktopNotifications()?a.desktopNotifications.valueHasMutated(): -a.desktopNotifications(!0):a.desktopNotifications()?a.desktopNotifications(!1):a.desktopNotifications.valueHasMutated()}):a.desktopNotifications(!1)):a.desktopNotifications(!1)}});a.language=d.observable("");a.languages=d.observableArray([]);a.mainLanguage=d.computed({read:a.language,write:function(b){b!==a.language()?-1=a.diff(e,"hours")?d:a.format("L")===e.format("L")?c.i18n("MESSAGE_LIST/TODAY_AT",{TIME:e.format("LT")}):a.clone().subtract("days",1).format("L")===e.format("L")?c.i18n("MESSAGE_LIST/YESTERDAY_IN",{TIME:e.format("LT")}):a.year()===e.year()?e.format("D MMM."): -e.format("LL")},a)};c.isFolderExpanded=function(a){var b=f.local().get(g.ClientSideKeyName.ExpandedFolders);return i.isArray(b)&&-1!==i.indexOf(b,a)};c.setExpandedFolder=function(a,b){var e=f.local().get(g.ClientSideKeyName.ExpandedFolders);i.isArray(e)||(e=[]);b?(e.push(a),e=i.uniq(e)):e=i.without(e,a);f.local().set(g.ClientSideKeyName.ExpandedFolders,e)};c.initLayoutResizer=function(a,b,e,c,d,g,h,ba,ca){var d=d||300,g=g||500,h=h||g-d/2,ba=ba||300,p=0,k=j(a),l=j(b),n=j(e),b=f.local().get(ca)||h, -m=function(a,b,e){if(b||e)a=n.width(),b=b?100*(b.size.width/a):null,null===b&&e&&(b=100*(k.width()/a)),null!==b&&(k.css({width:"",height:"",right:""+(100-b)+"%"}),l.css({width:"",height:"",left:""+b+"%"}))};b&&k.width(b);p=n.width()-ba;p=g>p?p:g;k.resizable({minWidth:d,maxWidth:p,handles:"e",resize:m,stop:m});m(null,null,!0);G.resize(i.throttle(function(b,e){c&&(c()&&e&&e.element&&e.element[0].id&&"#"+e.element[0].id===""+a)&&(p=n.width()-ba,p=g>p?p:g,k.resizable("option","maxWidth",p),e.size&&e.size.width&& -f.local().set(ca,e.size.width),m(null,null,!0))},400))};c.initBlockquoteSwitcher=function(a){if(a){var b=j("blockquote:not(.rl-bq-switcher)",a).filter(function(){return 0===j(this).parent().closest("blockquote",a).length});b&&0').insertBefore(a).click(function(){a.toggleClass("hidden-bq");c.windowResize()}).after("
").before("
")})}}; -c.removeBlockquoteSwitcher=function(a){a&&(j(a).find("blockquote.rl-bq-switcher").each(function(){j(this).removeClass("rl-bq-switcher hidden-bq")}),j(a).find(".rlBlockquoteSwitcher").each(function(){j(this).remove()}))};c.extendAsViewModel=function(a,b){b&&(b.__name=a,n.regViewModelHook(a,b),i.extend(b.prototype,u.prototype))};c.addSettingsViewModel=function(a,b,e,c,d){a.__rlSettingsData={Label:e,Template:b,Route:c,IsDefault:!!d};Y.push(a)};c.removeSettingsViewModel=function(a){na.push(a)};c.disableSettingsViewModel= -function(a){oa.push(a)};c.convertThemeName=function(a){return c.trim(a.replace(/[^a-zA-Z]/g," ").replace(/([A-Z])/g," $1").replace(/[\s]+/g," "))};c.convertLangName=function(a){return c.i18n("LANGS_NAMES/LANG_"+a.toUpperCase().replace(/[^a-zA-Z0-9]+/,"_"),null,a)};c.fakeMd5=function(a){for(var b="",a=c.isUnd(a)?32:c.pInt(a);b.length/g,">").replace(/")};c.draggeblePlace=function(){return j('
 
').appendTo("#rl-hidden")};c.defautOptionsAfterRender=function(a,b){b&&!c.isUnd(b.disable)&&d.applyBindingsToNode(a,{disable:b.disable},b)};c.windowPopupKnockout=function(a,b,e,d){var f=null,g=h.open(""),i="__OpenerApplyBindingsUid"+c.fakeMd5()+"__",k=j("#"+b);h[i]= -function(){if(g&&g.document.body&&k&&k[0]){var b=j(g.document.body);j("#rl-content",b).html(k.html());j("html",g.document).addClass("external "+j("html").attr("class"));c.i18nToNode(b);q.prototype.applyExternal(a,j("#rl-content",b)[0]);h[i]=null;d(g)}};g.document.open();g.document.write(''+ -c.encodeHtml(e)+'
');g.document.close();f=g.document.createElement("script");f.type="text/javascript";f.innerHTML="if(window&&window.opener&&window.opener['"+i+"']){window.opener['"+i+"']();window.opener['"+i+"']=null}";g.document.getElementsByTagName("head")[0].appendChild(f)};c.settingsSaveHelperFunction=function(a,b,e,d){e=e||null;d=c.isUnd(d)?1E3:c.pInt(d);return function(c,f,h,j,ca){b.call(e,f&&f.Result?g.SaveSettingsStep.TrueResult: -g.SaveSettingsStep.FalseResult);a&&a.call(e,c,f,h,j,ca);i.delay(function(){b.call(e,g.SaveSettingsStep.Idle)},d)}};c.settingsSaveHelperSimpleFunction=function(a,b){return c.settingsSaveHelperFunction(null,a,b,1E3)};c.resizeAndCrop=function(a,b,e){var c=new Image;c.onload=function(){var a=[0,0],c=document.createElement("canvas"),d=c.getContext("2d");c.width=b;c.height=b;a=this.width>this.height?[this.width-this.height,0]:[0,this.height-this.width];d.fillStyle="#fff";d.fillRect(0,0,b,b);d.drawImage(this, -a[0]/2,a[1]/2,this.width-a[0],this.height-a[1],0,0,b,b);e(c.toDataURL("image/jpeg"))};c.src=a};d.bindingHandlers.tooltip={init:function(a,b){if(!D){var e=j(a).data("tooltip-class")||"";j(a).tooltip({delay:{show:500,hide:100},html:!0,trigger:"hover",title:function(){return''+c.i18n(d.utils.unwrapObservable(b()))+""}})}}};d.bindingHandlers.tooltip2={init:function(a,b){var c=j(a).data("tooltip-class")||"";j(a).tooltip({delay:{show:500,hide:100},html:!0,title:function(){return''+b()()+""}})}};d.bindingHandlers.popover={init:function(a,b){j(a).popover(d.utils.unwrapObservable(b()))}};d.bindingHandlers.resizecrop={init:function(a){j(a).addClass("resizecrop").resizecrop({width:"100",height:"100",wrapperCSS:{"border-radius":"10px"}})},update:function(a,b){b()();j(a).resizecrop({width:"100",height:"100"})}};d.bindingHandlers.onEnter={init:function(a,b,c,d){j(a).on("keypress",function(c){c&&13===h.parseInt(c.keyCode,10)&&(j(a).trigger("change"),b().call(d))})}};d.bindingHandlers.onEsc= -{init:function(a,b,c,d){j(a).on("keypress",function(c){c&&27===h.parseInt(c.keyCode,10)&&(j(a).trigger("change"),b().call(d))})}};d.bindingHandlers.modal={init:function(a,b){j(a).modal({keyboard:!1,show:d.utils.unwrapObservable(b())}).on("hidden",function(){b()(!1)})},update:function(a,b){var c=d.utils.unwrapObservable(b());j(a).modal(c?"show":"hide");i.delay(function(){j(a).toggleClass("popup-active",c)},1)}};d.bindingHandlers.i18nInit={init:function(a){c.i18nToNode(a)}};d.bindingHandlers.i18nUpdate= -{update:function(a,b){d.utils.unwrapObservable(b());c.i18nToNode(a)}};d.bindingHandlers.link={update:function(a,b){j(a).attr("href",d.utils.unwrapObservable(b()))}};d.bindingHandlers.title={update:function(a,b){j(a).attr("title",d.utils.unwrapObservable(b()))}};d.bindingHandlers.textF={init:function(a,b){j(a).text(d.utils.unwrapObservable(b()))}};d.bindingHandlers.initDom={init:function(a,b){b()(a)}};d.bindingHandlers.initResizeTrigger={init:function(a,b){var c=d.utils.unwrapObservable(b());j(a).css({height:c[1], -"min-height":c[1]})},update:function(a,b){var e=d.utils.unwrapObservable(b()),f=c.pInt(e[1]),g=0,g=j(a).offset().top;0=e.left&&a.pageX<=e.left+d.width()&&(a.pageY>=b-100&&a.pageY<=b&&(b=function(){d.scrollTop(d.scrollTop()+3);c.windowResize()},d.data("timerScroll",h.setInterval(b,10)),b()),a.pageY>=e.top&&a.pageY<=e.top+100))e=function(){d.scrollTop(d.scrollTop()-3);c.windowResize()},d.data("timerScroll",h.setInterval(e,10)), -e()})},e.stop=function(){j(f).each(function(){h.clearInterval(j(this).data("timerScroll"));j(this).data("timerScroll",!1)})});e.helper=function(a){return b()(a&&a.target?d.dataFor(a.target):null)};j(a).draggable(e).on("mousedown",function(){c.removeInFocus()})}}};d.bindingHandlers.droppable={init:function(a,b,c){if(!D){var d=b(),f=(b=c())&&b.droppableOver?b.droppableOver:null,g=b&&b.droppableOut?b.droppableOut:null,b={tolerance:"pointer",hoverClass:"droppableHover"};d&&(b.drop=function(a,b){d(a,b)}, -f&&(b.over=function(a,b){f(a,b)}),g&&(b.out=function(a,b){g(a,b)}),j(a).droppable(b))}}};d.bindingHandlers.nano={init:function(a){D||j(a).addClass("nano").nanoScroller({iOSNativeScrolling:!1,preventPageScrolling:!0})}};d.bindingHandlers.saveTrigger={init:function(a){j(a).append('  ').addClass("settings-saved-trigger")},update:function(a,b){var c=d.utils.unwrapObservable(b()),f=j(a);switch(c.toString()){case "1":f.find(".animated,.error").hide().removeClass("visible").end().find(".success").show().addClass("visible"); -break;case "0":f.find(".animated,.success").hide().removeClass("visible").end().find(".error").show().addClass("visible");break;case "-2":f.find(".error,.success").hide().removeClass("visible").end().find(".animated").show().addClass("visible");break;default:f.find(".animated").hide().end().find(".error,.success").removeClass("visible")}}};d.bindingHandlers.select2={init:function(a,b){var e=0,g=null,wa=new h.RegExp(/[a-zA-Z0-9\.\-_]+@[a-zA-Z0-9\.\-_]+/),xa=new h.RegExp(/(.+) [<]?([^\s<@]+@[a-zA-Z0-9\.\-_]+)[>]?/), -k=function(){return""},l=function(a){f.getAutocomplete(a.term,a.page,function(b,c){a.callback({more:!!c,results:i.map(b,function(a){var b=a.toLine(!1);return{id:b,text:b,c:a}})})})};j(a).addClass("ko-select2").select2({query:function(a){a&&(0===e?(l(a),e=h.setTimeout(c.emptyFunction,100)):(h.clearInterval(e),e=h.setTimeout(function(){l(a)},100)))},formatSelection:function(a,b){var c=a&&a.c?a.c.select2Selection(b):a.text;if(null!==c)return c},formatResult:function(a,b,c,e){b=a&&a.c?a.c.select2Result(b): -"";return""===b?e(a.text):b},createSearchChoice:function(a,b){return 0===b.length&&wa.test(a)?{id:a,text:a}:null},formatNoMatches:k,formatSearching:function(){return c.i18n("SUGGESTIONS/SEARCHING_DESC")},formatInputTooShort:k,formatSelectionTooBig:k,multiple:!0,tokenSeparators:[",",";"],minimumInputLength:2,selectOnBlur:!1,closeOnSelect:!0,openOnEnter:!1});d.utils.domNodeDisposal.addDisposeCallback(a,function(){j(a).select2("destroy")});j(a).on("change",function(){for(var a=j(this).select2("data"), -e=0,d=a.length,f=null,h=[];e").addClass("rl-view-model").addClass("RL-"+e.viewModelTemplate()).hide().attr("data-bind",'template: {name: "'+e.viewModelTemplate()+'"}, i18nInit: true'),i.appendTo(h),e.viewModelDom=i,a.__dom=i,"Popups"===g&&(e.cancelCommand=e.closeCommand=c.createCommand(e,function(){r.hideScreenPopup(a)})),n.runHook("view-model-pre-build",[a.__name,e,i]),d.applyBindings(e,i[0]),this.delegateRun(e,"onBuild",[i]),n.runHook("view-model-post-build",[a.__name,e,i])):c.log("Cannot find view model position: "+ -g)}return a?a.__vm:null};q.prototype.applyExternal=function(a,b){a&&b&&d.applyBindings(a,b)};q.prototype.hideScreenPopup=function(a){a&&(a.__vm&&a.__dom)&&(a.__dom.hide(),a.__vm.modalVisibility(!1),this.delegateRun(a.__vm,"onHide"),this.popupVisibility(!1),i.defer(function(){a.__dom.find(".ko-select2").select2("close")}))};q.prototype.showScreenPopup=function(a,b){a&&(this.buildViewModel(a),a.__vm&&a.__dom&&(a.__dom.show(),a.__vm.modalVisibility(!0),this.delegateRun(a.__vm,"onShow",b||[]),this.popupVisibility(!0), -n.runHook("view-model-on-show",[a.__name,a.__vm,b||[]])))};q.prototype.screenOnRoute=function(a,b){var e=this,d=null,f=null;""===c.pString(a)&&(a=this.sDefaultScreenName);if(""!==a){d=this.screen(a);if(!d&&(d=this.screen(this.sDefaultScreenName)))b=a+"/"+b,a=this.sDefaultScreenName;d&&d.__started&&(d.__builded||(d.__builded=!0,c.isNonEmptyArray(d.viewModels())&&i.each(d.viewModels(),function(a){this.buildViewModel(a,d)},this),this.delegateRun(d,"onBuild")),i.defer(function(){if(e.oCurrentScreen){e.delegateRun(e.oCurrentScreen, -"onHide");c.isNonEmptyArray(e.oCurrentScreen.viewModels())&&i.each(e.oCurrentScreen.viewModels(),function(a){if(a.__vm&&a.__dom&&"Popups"!==a.__vm.viewModelPosition()){a.__dom.hide();a.__vm.viewModelVisibility(false);e.delegateRun(a.__vm,"onHide")}})}e.oCurrentScreen=d;if(e.oCurrentScreen){e.delegateRun(e.oCurrentScreen,"onShow");n.runHook("screen-on-show",[e.oCurrentScreen.screenName(),e.oCurrentScreen]);c.isNonEmptyArray(e.oCurrentScreen.viewModels())&&i.each(e.oCurrentScreen.viewModels(),function(a){if(a.__vm&& -a.__dom&&"Popups"!==a.__vm.viewModelPosition()){a.__dom.show();a.__vm.viewModelVisibility(true);e.delegateRun(a.__vm,"onShow");n.runHook("view-model-on-show",[a.__name,a.__vm])}},e)}(f=d.__cross())&&f.parse(b)}))}};q.prototype.startScreens=function(a){i.each(a,function(a){var c=(a=new a)?a.screenName():"";a&&""!==c&&(""===this.sDefaultScreenName&&(this.sDefaultScreenName=c),this.oScreens[c]=a)},this);i.each(this.oScreens,function(a){a&&(!a.__started&&a.__start)&&(a.__started=!0,a.__start(),n.runHook("screen-pre-start", -[a.screenName(),a]),this.delegateRun(a,"onStart"),n.runHook("screen-post-start",[a.screenName(),a]))},this);a=qa.create();a.addRoute(/^([a-zA-Z0-9\-]*)\/?(.*)$/,i.bind(this.screenOnRoute,this));z.initialized.add(a.parse,a);z.changed.add(a.parse,a);z.init()};q.prototype.setHash=function(a,b){a="#"===a.substr(0,1)?a.substr(1):a;a="/"===a.substr(0,1)?a.substr(1):a;(c.isUnd(b)?0:b)?(z.changed.active=!1,z.setHash(a),z.changed.active=!0):(z.changed.active=!0,z.setHash(a))};q.prototype.bootstart=function(){this.oBoot&& -this.oBoot.bootstart&&this.oBoot.bootstart();return this};r=new q;t.newInstanceFromJson=function(a){var b=new t;return b.initByJson(a)?b:null};t.prototype.name="";t.prototype.email="";t.prototype.privateType=null;t.prototype.validate=function(){return""!==this.name||""!==this.email};t.prototype.hash=function(a){return"#"+(a?"":this.name)+"#"+this.email+"#"};t.prototype.clearDuplicateName=function(){this.name===this.email&&(this.name="")};t.prototype.type=function(){if(null===this.privateType&&(this.email&& -"@facebook.com"===this.email.substr(-13)&&(this.privateType=g.EmailType.Facebook),null===this.privateType))this.privateType=g.EmailType.Default;return this.privateType};t.prototype.search=function(a){return-1<(this.name+" "+this.email).toLowerCase().indexOf(a.toLowerCase())};t.prototype.parse=function(a){var a=c.trim(a),b=/(?:"([^"]+)")? ?,]+)>?,? ?/g.exec(a);b?(this.name=b[1]||"",this.email=b[2]||"",this.clearDuplicateName()):/^[^@]+@[^@]+$/.test(a)&&(this.name="",this.email=a)};t.prototype.initByJson= -function(a){var b=!1;a&&"Object/Email"===a["@Object"]&&(this.name=c.trim(a.Name),this.email=c.trim(a.Email),b=""!==this.email,this.clearDuplicateName());return b};t.prototype.toLine=function(a,b){var e="";""!==this.email&&(b=c.isUnd(b)?!1:!!b,a&&""!==this.name?e=b?'")+'" target="_blank" tabindex="-1">'+c.encodeHtml(this.name)+"":this.name:(e=this.email,""!==this.name?e=b?c.encodeHtml('"'+this.name+'" <')+'")+'" target="_blank" tabindex="-1">'+c.encodeHtml(e)+""+c.encodeHtml(">"):'"'+this.name+'" <'+e+">":b&&(e=''+c.encodeHtml(this.email)+"")));return e};t.prototype.select2Result=function(){var a="",b=f.cache().getUserPic(this.email),a=""!==b?a+(''):a+('');g.EmailType.Facebook===this.type()?(a+=""+(0'):a+=""+(0('+this.name+")":this.email);return a+""};t.prototype.select2Selection=function(a){var b="";if(g.EmailType.Facebook===this.type()){if(b=0").text(b).appendTo(a),a.append(''), -null}else b=0(new h.Date).getTime()-n);p&&l.oRequests[p]&&(l.oRequests[p].__aborted&&(e="abort"),l.oRequests[p]= -null);l.defaultResponse(a,p,e,d,f,b)});p&&(0").addClass("rl-settings-view-model").hide().attr("data-bind",'template: {name: "'+g.__rlSettingsData.Template+'"}, i18nInit: true'),k.appendTo(h),e.data=f.data(),e.viewModelDom=k,e.__rlSettingsData=g.__rlSettingsData,g.__dom=k,g.__builded=!0,g.__vm=e,d.applyBindings(e,k[0]),r.delegateRun(e, -"onBuild",[k])):c.log("Cannot find sub settings view model position: SettingsSubScreen"),e&&i.defer(function(){if(b.oCurrentSubScreen){r.delegateRun(b.oCurrentSubScreen,"onHide");b.oCurrentSubScreen.viewModelDom.hide()}b.oCurrentSubScreen=e;if(b.oCurrentSubScreen){b.oCurrentSubScreen.viewModelDom.show();r.delegateRun(b.oCurrentSubScreen,"onShow");i.each(b.menu(),function(a){a.selected(e&&e.__rlSettingsData&&a.route===e.__rlSettingsData.Route)})}c.windowResize()}))};J.prototype.onBuild=function(){i.each(Y, -function(a){a&&(a.__rlSettingsData&&!i.find(na,function(b){return b&&b===a}))&&this.menu.push({route:a.__rlSettingsData.Route,label:a.__rlSettingsData.Label,selected:d.observable(!1),disabled:!!i.find(oa,function(b){return b&&b===a})})},this)};J.prototype.routes=function(){var a=i.find(Y,function(a){return a&&a.__rlSettingsData&&a.__rlSettingsData.IsDefault}),b=a?a.__rlSettingsData.Route:"general",a={subname:/^(.*)$/,normalize_:function(a,d){d.subname=c.isUnd(d.subname)?b:c.pString(d.subname);return[d.subname]}}; -return[["{subname}/",a],["{subname}",a],["",a]]};i.extend(ha.prototype,x.prototype);ha.prototype.onShow=function(){f.setTitle("")};i.extend(ia.prototype,J.prototype);ia.prototype.onShow=function(){f.setTitle("")};i.extend(v.prototype,ra.prototype);v.prototype.oSettings=null;v.prototype.oLink=null;v.prototype.download=function(a){D?this.iframe.attr("src",a):h.open(a)};v.prototype.link=function(){null===this.oLink&&(this.oLink=new m);return this.oLink};v.prototype.local=function(){null===this.oLocal&& -(this.oLocal=new O);return this.oLocal};v.prototype.settingsGet=function(a){null===this.oSettings&&(this.oSettings=c.isNormal(X)?X:{});return c.isUnd(this.oSettings[a])?null:this.oSettings[a]};v.prototype.settingsSet=function(a,b){null===this.oSettings&&(this.oSettings=c.isNormal(X)?X:{});this.oSettings[a]=b};v.prototype.setTitle=function(a){a=(0 $oConfig->Get('labs', 'custom_login_link', ''), 'CustomLogoutLink' => $oConfig->Get('labs', 'custom_logout_link', ''), 'AllowAdditionalAccounts' => (bool) $oConfig->Get('webmail', 'allow_additional_accounts', true), + 'DetermineUserLanguage' => (bool) $oConfig->Get('labs', 'determine_user_language', false), 'AllowCustomLogin' => (bool) $oConfig->Get('login', 'allow_custom_login', false), 'AllowThemes' => (bool) $oConfig->Get('webmail', 'allow_themes', true), 'AllowCustomTheme' => (bool) $oConfig->Get('webmail', 'allow_custom_theme', true), @@ -1064,15 +1065,33 @@ class Actions $sNewThemeLink = \str_replace('/Css/0/User/-/Custom/-/', '/Css/'.$sAuthAccountHash.'/User/-/Custom/-/', $sNewThemeLink); } + $bUserLanguage = false; if (!$bAdmin && !$aResult['Auth'] && !empty($_COOKIE['rllang']) && $oConfig->Get('webmail', 'allow_languages_on_login', true)) { $sLanguage = $_COOKIE['rllang']; } - + else if (!$bAdmin && !$aResult['Auth']) + { + $sUserLanguage = ''; + if (!$bAdmin && !$aResult['Auth'] && + $oConfig->Get('labs', 'determine_user_language', false)) + { + $sUserLanguage = $this->detectUserLanguage(); + } + + $sLanguage = $this->ValidateLanguage($sLanguage); + if (0 < \strlen($sUserLanguage) && $sLanguage !== $sUserLanguage) + { + $sLanguage = $sUserLanguage; + $bUserLanguage = true; + } + } + $aResult['Theme'] = $sTheme; $aResult['NewThemeLink'] = $sNewThemeLink; $aResult['Language'] = $this->ValidateLanguage($sLanguage); + $aResult['UserLanguage'] = $bUserLanguage; $aResult['LangLink'] = './?/Lang/0/'.($bAdmin ? 'en' : $aResult['Language']).'/'.$sStaticCache.'/'; $aResult['TemplatesLink'] = './?/Templates/0/'.$sStaticCache.'/'; $aResult['PluginsLink'] = './?/Plugins/0/'.($bAdmin ? 'Admin' : 'User').'/'.$sStaticCache.'/'; @@ -1083,6 +1102,31 @@ class Actions return $aResult; } + private function detectUserLanguage() + { + $sLang = ''; + $sAcceptLang = $this->Http()->GetServer('HTTP_ACCEPT_LANGUAGE', 'en'); + if (false !== \strpos($sAcceptLang, ',')) + { + $aParts = \explode(',', $sAcceptLang, 2); + $sLang = !empty($aParts[0]) ? \strtolower($aParts[0]) : ''; + } + + if (!empty($sLang)) + { + $sLang = \preg_replace('/[^a-zA-Z0-9]+/', '-', $sLang); + if ($sLang !== $this->ValidateLanguage($sLang)) + { + if (2 < strlen($sLang)) + { + $sLang = \substr($sLang, 0, 2); + } + } + } + + return $this->ValidateLanguage($sLang); + } + private function loginErrorDelay() { $iDelay = (int) $this->Config()->Get('labs', 'login_fault_delay', 0); @@ -1576,6 +1620,7 @@ class Actions $this->setConfigFromParams($oConfig, 'AllowLanguagesOnLogin', 'login', 'allow_languages_on_login', 'bool'); $this->setConfigFromParams($oConfig, 'AllowCustomLogin', 'login', 'allow_custom_login', 'bool'); $this->setConfigFromParams($oConfig, 'AllowAdditionalAccounts', 'webmail', 'allow_additional_accounts', 'bool'); + $this->setConfigFromParams($oConfig, 'DetermineUserLanguage', 'labs', 'determine_user_language', 'bool'); $this->setConfigFromParams($oConfig, 'Title', 'webmail', 'title', 'string'); $this->setConfigFromParams($oConfig, 'TokenProtection', 'security', 'csrf_protection', 'bool'); @@ -5172,6 +5217,7 @@ class Actions $mResult = $mResponse; if (is_object($mResponse)) { + $bHook = true; $sClassName = get_class($mResponse); if ('MailSo\Mail\Message' === $sClassName) { @@ -5363,15 +5409,25 @@ class Actions 'IsThreadsSupported' => $mResponse->IsThreadsSupported, 'SystemFolders' => isset($mResponse->SystemFolders) && \is_array($mResponse->SystemFolders) ? $mResponse->SystemFolders : array() )); + + } else if ($mResponse instanceof \MailSo\Base\Collection) { $aList =& $mResponse->GetAsArray(); $mResult = $this->responseObject($aList, $sParent, $aParameters); + + $bHook = false; } else { $mResult = '['.get_class($mResponse).']'; + $bHook = false; + } + + if ($bHook) + { + $this->Plugins()->RunHook('filter.response-object', array($sClassName, $mResult), false); } } else if (is_array($mResponse)) diff --git a/rainloop/v/1.3.4.455/app/libraries/RainLoop/Config/AbstractConfig.php b/rainloop/v/1.3.5.459/app/libraries/RainLoop/Config/AbstractConfig.php similarity index 100% rename from rainloop/v/1.3.4.455/app/libraries/RainLoop/Config/AbstractConfig.php rename to rainloop/v/1.3.5.459/app/libraries/RainLoop/Config/AbstractConfig.php diff --git a/rainloop/v/1.3.4.455/app/libraries/RainLoop/Config/Application.php b/rainloop/v/1.3.5.459/app/libraries/RainLoop/Config/Application.php similarity index 96% rename from rainloop/v/1.3.4.455/app/libraries/RainLoop/Config/Application.php rename to rainloop/v/1.3.5.459/app/libraries/RainLoop/Config/Application.php index 5ca7309c9..3ef532d4c 100644 --- a/rainloop/v/1.3.4.455/app/libraries/RainLoop/Config/Application.php +++ b/rainloop/v/1.3.5.459/app/libraries/RainLoop/Config/Application.php @@ -191,6 +191,7 @@ Enables caching in the system'), 'login_fault_delay' => array(1), 'log_ajax_response_write_limit' => array(300), 'suggestions_limit' => array(50), + 'determine_user_language' => array(false), 'use_imap_sort' => array(false), 'use_imap_list_status' => array(false), 'use_imap_thread' => array(true), diff --git a/rainloop/v/1.3.4.455/app/libraries/RainLoop/Config/Plugin.php b/rainloop/v/1.3.5.459/app/libraries/RainLoop/Config/Plugin.php similarity index 100% rename from rainloop/v/1.3.4.455/app/libraries/RainLoop/Config/Plugin.php rename to rainloop/v/1.3.5.459/app/libraries/RainLoop/Config/Plugin.php diff --git a/rainloop/v/1.3.4.455/app/libraries/RainLoop/Domain.php b/rainloop/v/1.3.5.459/app/libraries/RainLoop/Domain.php similarity index 100% rename from rainloop/v/1.3.4.455/app/libraries/RainLoop/Domain.php rename to rainloop/v/1.3.5.459/app/libraries/RainLoop/Domain.php diff --git a/rainloop/v/1.3.4.455/app/libraries/RainLoop/Enumerations/CustomThemeType.php b/rainloop/v/1.3.5.459/app/libraries/RainLoop/Enumerations/CustomThemeType.php similarity index 100% rename from rainloop/v/1.3.4.455/app/libraries/RainLoop/Enumerations/CustomThemeType.php rename to rainloop/v/1.3.5.459/app/libraries/RainLoop/Enumerations/CustomThemeType.php diff --git a/rainloop/v/1.3.4.455/app/libraries/RainLoop/Enumerations/PluginPropertyType.php b/rainloop/v/1.3.5.459/app/libraries/RainLoop/Enumerations/PluginPropertyType.php similarity index 100% rename from rainloop/v/1.3.4.455/app/libraries/RainLoop/Enumerations/PluginPropertyType.php rename to rainloop/v/1.3.5.459/app/libraries/RainLoop/Enumerations/PluginPropertyType.php diff --git a/rainloop/v/1.3.4.455/app/libraries/RainLoop/Enumerations/SignMeType.php b/rainloop/v/1.3.5.459/app/libraries/RainLoop/Enumerations/SignMeType.php similarity index 100% rename from rainloop/v/1.3.4.455/app/libraries/RainLoop/Enumerations/SignMeType.php rename to rainloop/v/1.3.5.459/app/libraries/RainLoop/Enumerations/SignMeType.php diff --git a/rainloop/v/1.3.4.455/app/libraries/RainLoop/Enumerations/TimeFormat.php b/rainloop/v/1.3.5.459/app/libraries/RainLoop/Enumerations/TimeFormat.php similarity index 100% rename from rainloop/v/1.3.4.455/app/libraries/RainLoop/Enumerations/TimeFormat.php rename to rainloop/v/1.3.5.459/app/libraries/RainLoop/Enumerations/TimeFormat.php diff --git a/rainloop/v/1.3.4.455/app/libraries/RainLoop/Exceptions/AuthException.php b/rainloop/v/1.3.5.459/app/libraries/RainLoop/Exceptions/AuthException.php similarity index 100% rename from rainloop/v/1.3.4.455/app/libraries/RainLoop/Exceptions/AuthException.php rename to rainloop/v/1.3.5.459/app/libraries/RainLoop/Exceptions/AuthException.php diff --git a/rainloop/v/1.3.4.455/app/libraries/RainLoop/Exceptions/ClientException.php b/rainloop/v/1.3.5.459/app/libraries/RainLoop/Exceptions/ClientException.php similarity index 100% rename from rainloop/v/1.3.4.455/app/libraries/RainLoop/Exceptions/ClientException.php rename to rainloop/v/1.3.5.459/app/libraries/RainLoop/Exceptions/ClientException.php diff --git a/rainloop/v/1.3.4.455/app/libraries/RainLoop/Exceptions/Exception.php b/rainloop/v/1.3.5.459/app/libraries/RainLoop/Exceptions/Exception.php similarity index 100% rename from rainloop/v/1.3.4.455/app/libraries/RainLoop/Exceptions/Exception.php rename to rainloop/v/1.3.5.459/app/libraries/RainLoop/Exceptions/Exception.php diff --git a/rainloop/v/1.3.4.455/app/libraries/RainLoop/Exceptions/InvalidArgumentException.php b/rainloop/v/1.3.5.459/app/libraries/RainLoop/Exceptions/InvalidArgumentException.php similarity index 100% rename from rainloop/v/1.3.4.455/app/libraries/RainLoop/Exceptions/InvalidArgumentException.php rename to rainloop/v/1.3.5.459/app/libraries/RainLoop/Exceptions/InvalidArgumentException.php diff --git a/rainloop/v/1.3.4.455/app/libraries/RainLoop/Exceptions/RuntimeException.php b/rainloop/v/1.3.5.459/app/libraries/RainLoop/Exceptions/RuntimeException.php similarity index 100% rename from rainloop/v/1.3.4.455/app/libraries/RainLoop/Exceptions/RuntimeException.php rename to rainloop/v/1.3.5.459/app/libraries/RainLoop/Exceptions/RuntimeException.php diff --git a/rainloop/v/1.3.4.455/app/libraries/RainLoop/Notifications.php b/rainloop/v/1.3.5.459/app/libraries/RainLoop/Notifications.php similarity index 100% rename from rainloop/v/1.3.4.455/app/libraries/RainLoop/Notifications.php rename to rainloop/v/1.3.5.459/app/libraries/RainLoop/Notifications.php diff --git a/rainloop/v/1.3.4.455/app/libraries/RainLoop/Plugins/AbstractPlugin.php b/rainloop/v/1.3.5.459/app/libraries/RainLoop/Plugins/AbstractPlugin.php similarity index 87% rename from rainloop/v/1.3.4.455/app/libraries/RainLoop/Plugins/AbstractPlugin.php rename to rainloop/v/1.3.5.459/app/libraries/RainLoop/Plugins/AbstractPlugin.php index fcfb49155..47a9021fa 100644 --- a/rainloop/v/1.3.4.455/app/libraries/RainLoop/Plugins/AbstractPlugin.php +++ b/rainloop/v/1.3.5.459/app/libraries/RainLoop/Plugins/AbstractPlugin.php @@ -29,6 +29,11 @@ abstract class AbstractPlugin */ private $sPath; + /** + * @var string + */ + private $sVersion; + /** * @var array */ @@ -43,6 +48,7 @@ abstract class AbstractPlugin { $this->sName = ''; $this->sPath = ''; + $this->sVersion = '0.0'; $this->aConfigMap = null; $this->oPluginManager = null; @@ -95,6 +101,14 @@ abstract class AbstractPlugin return $this->sName; } + /** + * @return string + */ + public function Version() + { + return $this->sVersion; + } + /** * @param bool | null $bLangs = null * @return bool @@ -122,7 +136,7 @@ abstract class AbstractPlugin */ public function Hash() { - return ''; + return \md5($this->sVersion); } /** @@ -154,14 +168,20 @@ abstract class AbstractPlugin /** * @param string $sPath * @param string $sName + * @param string $sVersion = '' * * @return self */ - public function SetValues($sPath, $sName) + public function SetValues($sPath, $sName, $sVersion = '') { $this->sName = $sName; $this->sPath = $sPath; + if (0 < \strlen($sVersion)) + { + $this->sVersion = $sVersion; + } + return $this; } diff --git a/rainloop/v/1.3.4.455/app/libraries/RainLoop/Plugins/Manager.php b/rainloop/v/1.3.5.459/app/libraries/RainLoop/Plugins/Manager.php similarity index 92% rename from rainloop/v/1.3.4.455/app/libraries/RainLoop/Plugins/Manager.php rename to rainloop/v/1.3.5.459/app/libraries/RainLoop/Plugins/Manager.php index 9c0755e1f..d6f50bb95 100644 --- a/rainloop/v/1.3.4.455/app/libraries/RainLoop/Plugins/Manager.php +++ b/rainloop/v/1.3.5.459/app/libraries/RainLoop/Plugins/Manager.php @@ -118,23 +118,25 @@ class Manager public function CreatePluginByName($sName) { $oPlugin = null; - if (preg_match('/^[a-z0-9\-]+$/', $sName) && - file_exists(APP_PLUGINS_PATH.$sName.'/index.php')) + if (\preg_match('/^[a-z0-9\-]+$/', $sName) && + \file_exists(APP_PLUGINS_PATH.$sName.'/index.php')) { $sClassName = $this->convertPluginFolderNameToClassName($sName); - if (!class_exists($sClassName)) + if (!\class_exists($sClassName)) { include APP_PLUGINS_PATH.$sName.'/index.php'; } - if (class_exists($sClassName)) + if (\class_exists($sClassName)) { $oPlugin = new $sClassName(); if ($oPlugin instanceof \RainLoop\Plugins\AbstractPlugin) { $oPlugin - ->SetValues(APP_PLUGINS_PATH.$sName, $sName) + ->SetValues(APP_PLUGINS_PATH.$sName, $sName, + \file_exists(APP_PLUGINS_PATH.$sName.'/VERSION') ? + \file_get_contents(APP_PLUGINS_PATH.$sName.'/VERSION') : '') ->SetPluginManager($this) ->SetPluginConfig(new \RainLoop\Config\Plugin($sName, $oPlugin->ConfigMap())) ; diff --git a/rainloop/v/1.3.4.455/app/libraries/RainLoop/Plugins/Property.php b/rainloop/v/1.3.5.459/app/libraries/RainLoop/Plugins/Property.php similarity index 100% rename from rainloop/v/1.3.4.455/app/libraries/RainLoop/Plugins/Property.php rename to rainloop/v/1.3.5.459/app/libraries/RainLoop/Plugins/Property.php diff --git a/rainloop/v/1.3.4.455/app/libraries/RainLoop/Providers/AbstractProvider.php b/rainloop/v/1.3.5.459/app/libraries/RainLoop/Providers/AbstractProvider.php similarity index 100% rename from rainloop/v/1.3.4.455/app/libraries/RainLoop/Providers/AbstractProvider.php rename to rainloop/v/1.3.5.459/app/libraries/RainLoop/Providers/AbstractProvider.php diff --git a/rainloop/v/1.3.4.455/app/libraries/RainLoop/Providers/ChangePassword.php b/rainloop/v/1.3.5.459/app/libraries/RainLoop/Providers/ChangePassword.php similarity index 100% rename from rainloop/v/1.3.4.455/app/libraries/RainLoop/Providers/ChangePassword.php rename to rainloop/v/1.3.5.459/app/libraries/RainLoop/Providers/ChangePassword.php diff --git a/rainloop/v/1.3.4.455/app/libraries/RainLoop/Providers/ChangePassword/ChangePasswordInterface.php b/rainloop/v/1.3.5.459/app/libraries/RainLoop/Providers/ChangePassword/ChangePasswordInterface.php similarity index 100% rename from rainloop/v/1.3.4.455/app/libraries/RainLoop/Providers/ChangePassword/ChangePasswordInterface.php rename to rainloop/v/1.3.5.459/app/libraries/RainLoop/Providers/ChangePassword/ChangePasswordInterface.php diff --git a/rainloop/v/1.3.4.455/app/libraries/RainLoop/Providers/Contacts.php b/rainloop/v/1.3.5.459/app/libraries/RainLoop/Providers/Contacts.php similarity index 100% rename from rainloop/v/1.3.4.455/app/libraries/RainLoop/Providers/Contacts.php rename to rainloop/v/1.3.5.459/app/libraries/RainLoop/Providers/Contacts.php diff --git a/rainloop/v/1.3.4.455/app/libraries/RainLoop/Providers/Contacts/Classes/Contact.php b/rainloop/v/1.3.5.459/app/libraries/RainLoop/Providers/Contacts/Classes/Contact.php similarity index 100% rename from rainloop/v/1.3.4.455/app/libraries/RainLoop/Providers/Contacts/Classes/Contact.php rename to rainloop/v/1.3.5.459/app/libraries/RainLoop/Providers/Contacts/Classes/Contact.php diff --git a/rainloop/v/1.3.4.455/app/libraries/RainLoop/Providers/Contacts/Classes/Db.php b/rainloop/v/1.3.5.459/app/libraries/RainLoop/Providers/Contacts/Classes/Db.php similarity index 100% rename from rainloop/v/1.3.4.455/app/libraries/RainLoop/Providers/Contacts/Classes/Db.php rename to rainloop/v/1.3.5.459/app/libraries/RainLoop/Providers/Contacts/Classes/Db.php diff --git a/rainloop/v/1.3.4.455/app/libraries/RainLoop/Providers/Contacts/ContactsInterface.php b/rainloop/v/1.3.5.459/app/libraries/RainLoop/Providers/Contacts/ContactsInterface.php similarity index 100% rename from rainloop/v/1.3.4.455/app/libraries/RainLoop/Providers/Contacts/ContactsInterface.php rename to rainloop/v/1.3.5.459/app/libraries/RainLoop/Providers/Contacts/ContactsInterface.php diff --git a/rainloop/v/1.3.4.455/app/libraries/RainLoop/Providers/Contacts/DefaultContacts.php b/rainloop/v/1.3.5.459/app/libraries/RainLoop/Providers/Contacts/DefaultContacts.php similarity index 100% rename from rainloop/v/1.3.4.455/app/libraries/RainLoop/Providers/Contacts/DefaultContacts.php rename to rainloop/v/1.3.5.459/app/libraries/RainLoop/Providers/Contacts/DefaultContacts.php diff --git a/rainloop/v/1.3.4.455/app/libraries/RainLoop/Providers/Domain.php b/rainloop/v/1.3.5.459/app/libraries/RainLoop/Providers/Domain.php similarity index 100% rename from rainloop/v/1.3.4.455/app/libraries/RainLoop/Providers/Domain.php rename to rainloop/v/1.3.5.459/app/libraries/RainLoop/Providers/Domain.php diff --git a/rainloop/v/1.3.4.455/app/libraries/RainLoop/Providers/Domain/DefaultDomain.php b/rainloop/v/1.3.5.459/app/libraries/RainLoop/Providers/Domain/DefaultDomain.php similarity index 100% rename from rainloop/v/1.3.4.455/app/libraries/RainLoop/Providers/Domain/DefaultDomain.php rename to rainloop/v/1.3.5.459/app/libraries/RainLoop/Providers/Domain/DefaultDomain.php diff --git a/rainloop/v/1.3.4.455/app/libraries/RainLoop/Providers/Domain/DomainAdminInterface.php b/rainloop/v/1.3.5.459/app/libraries/RainLoop/Providers/Domain/DomainAdminInterface.php similarity index 100% rename from rainloop/v/1.3.4.455/app/libraries/RainLoop/Providers/Domain/DomainAdminInterface.php rename to rainloop/v/1.3.5.459/app/libraries/RainLoop/Providers/Domain/DomainAdminInterface.php diff --git a/rainloop/v/1.3.4.455/app/libraries/RainLoop/Providers/Domain/DomainInterface.php b/rainloop/v/1.3.5.459/app/libraries/RainLoop/Providers/Domain/DomainInterface.php similarity index 100% rename from rainloop/v/1.3.4.455/app/libraries/RainLoop/Providers/Domain/DomainInterface.php rename to rainloop/v/1.3.5.459/app/libraries/RainLoop/Providers/Domain/DomainInterface.php diff --git a/rainloop/v/1.3.4.455/app/libraries/RainLoop/Providers/Domain/DomainSimpleInterface.php b/rainloop/v/1.3.5.459/app/libraries/RainLoop/Providers/Domain/DomainSimpleInterface.php similarity index 100% rename from rainloop/v/1.3.4.455/app/libraries/RainLoop/Providers/Domain/DomainSimpleInterface.php rename to rainloop/v/1.3.5.459/app/libraries/RainLoop/Providers/Domain/DomainSimpleInterface.php diff --git a/rainloop/v/1.3.4.455/app/libraries/RainLoop/Providers/Login.php b/rainloop/v/1.3.5.459/app/libraries/RainLoop/Providers/Login.php similarity index 100% rename from rainloop/v/1.3.4.455/app/libraries/RainLoop/Providers/Login.php rename to rainloop/v/1.3.5.459/app/libraries/RainLoop/Providers/Login.php diff --git a/rainloop/v/1.3.4.455/app/libraries/RainLoop/Providers/Login/DefaultLogin.php b/rainloop/v/1.3.5.459/app/libraries/RainLoop/Providers/Login/DefaultLogin.php similarity index 100% rename from rainloop/v/1.3.4.455/app/libraries/RainLoop/Providers/Login/DefaultLogin.php rename to rainloop/v/1.3.5.459/app/libraries/RainLoop/Providers/Login/DefaultLogin.php diff --git a/rainloop/v/1.3.4.455/app/libraries/RainLoop/Providers/Login/LoginInterface.php b/rainloop/v/1.3.5.459/app/libraries/RainLoop/Providers/Login/LoginInterface.php similarity index 100% rename from rainloop/v/1.3.4.455/app/libraries/RainLoop/Providers/Login/LoginInterface.php rename to rainloop/v/1.3.5.459/app/libraries/RainLoop/Providers/Login/LoginInterface.php diff --git a/rainloop/v/1.3.4.455/app/libraries/RainLoop/Providers/Settings.php b/rainloop/v/1.3.5.459/app/libraries/RainLoop/Providers/Settings.php similarity index 100% rename from rainloop/v/1.3.4.455/app/libraries/RainLoop/Providers/Settings.php rename to rainloop/v/1.3.5.459/app/libraries/RainLoop/Providers/Settings.php diff --git a/rainloop/v/1.3.4.455/app/libraries/RainLoop/Providers/Settings/DefaultSettings.php b/rainloop/v/1.3.5.459/app/libraries/RainLoop/Providers/Settings/DefaultSettings.php similarity index 100% rename from rainloop/v/1.3.4.455/app/libraries/RainLoop/Providers/Settings/DefaultSettings.php rename to rainloop/v/1.3.5.459/app/libraries/RainLoop/Providers/Settings/DefaultSettings.php diff --git a/rainloop/v/1.3.4.455/app/libraries/RainLoop/Providers/Settings/SettingsInterface.php b/rainloop/v/1.3.5.459/app/libraries/RainLoop/Providers/Settings/SettingsInterface.php similarity index 100% rename from rainloop/v/1.3.4.455/app/libraries/RainLoop/Providers/Settings/SettingsInterface.php rename to rainloop/v/1.3.5.459/app/libraries/RainLoop/Providers/Settings/SettingsInterface.php diff --git a/rainloop/v/1.3.4.455/app/libraries/RainLoop/Providers/Storage.php b/rainloop/v/1.3.5.459/app/libraries/RainLoop/Providers/Storage.php similarity index 100% rename from rainloop/v/1.3.4.455/app/libraries/RainLoop/Providers/Storage.php rename to rainloop/v/1.3.5.459/app/libraries/RainLoop/Providers/Storage.php diff --git a/rainloop/v/1.3.4.455/app/libraries/RainLoop/Providers/Storage/DefaultStorage.php b/rainloop/v/1.3.5.459/app/libraries/RainLoop/Providers/Storage/DefaultStorage.php similarity index 100% rename from rainloop/v/1.3.4.455/app/libraries/RainLoop/Providers/Storage/DefaultStorage.php rename to rainloop/v/1.3.5.459/app/libraries/RainLoop/Providers/Storage/DefaultStorage.php diff --git a/rainloop/v/1.3.4.455/app/libraries/RainLoop/Providers/Storage/Enumerations/StorageType.php b/rainloop/v/1.3.5.459/app/libraries/RainLoop/Providers/Storage/Enumerations/StorageType.php similarity index 100% rename from rainloop/v/1.3.4.455/app/libraries/RainLoop/Providers/Storage/Enumerations/StorageType.php rename to rainloop/v/1.3.5.459/app/libraries/RainLoop/Providers/Storage/Enumerations/StorageType.php diff --git a/rainloop/v/1.3.4.455/app/libraries/RainLoop/Providers/Storage/Enumerations/UploadClientError.php b/rainloop/v/1.3.5.459/app/libraries/RainLoop/Providers/Storage/Enumerations/UploadClientError.php similarity index 100% rename from rainloop/v/1.3.4.455/app/libraries/RainLoop/Providers/Storage/Enumerations/UploadClientError.php rename to rainloop/v/1.3.5.459/app/libraries/RainLoop/Providers/Storage/Enumerations/UploadClientError.php diff --git a/rainloop/v/1.3.4.455/app/libraries/RainLoop/Providers/Storage/Enumerations/UploadError.php b/rainloop/v/1.3.5.459/app/libraries/RainLoop/Providers/Storage/Enumerations/UploadError.php similarity index 100% rename from rainloop/v/1.3.4.455/app/libraries/RainLoop/Providers/Storage/Enumerations/UploadError.php rename to rainloop/v/1.3.5.459/app/libraries/RainLoop/Providers/Storage/Enumerations/UploadError.php diff --git a/rainloop/v/1.3.4.455/app/libraries/RainLoop/Providers/Storage/StorageInterface.php b/rainloop/v/1.3.5.459/app/libraries/RainLoop/Providers/Storage/StorageInterface.php similarity index 100% rename from rainloop/v/1.3.4.455/app/libraries/RainLoop/Providers/Storage/StorageInterface.php rename to rainloop/v/1.3.5.459/app/libraries/RainLoop/Providers/Storage/StorageInterface.php diff --git a/rainloop/v/1.3.4.455/app/libraries/RainLoop/Providers/Suggestions.php b/rainloop/v/1.3.5.459/app/libraries/RainLoop/Providers/Suggestions.php similarity index 100% rename from rainloop/v/1.3.4.455/app/libraries/RainLoop/Providers/Suggestions.php rename to rainloop/v/1.3.5.459/app/libraries/RainLoop/Providers/Suggestions.php diff --git a/rainloop/v/1.3.4.455/app/libraries/RainLoop/Providers/Suggestions/SuggestionsInterface.php b/rainloop/v/1.3.5.459/app/libraries/RainLoop/Providers/Suggestions/SuggestionsInterface.php similarity index 100% rename from rainloop/v/1.3.4.455/app/libraries/RainLoop/Providers/Suggestions/SuggestionsInterface.php rename to rainloop/v/1.3.5.459/app/libraries/RainLoop/Providers/Suggestions/SuggestionsInterface.php diff --git a/rainloop/v/1.3.4.455/app/libraries/RainLoop/Service.php b/rainloop/v/1.3.5.459/app/libraries/RainLoop/Service.php similarity index 100% rename from rainloop/v/1.3.4.455/app/libraries/RainLoop/Service.php rename to rainloop/v/1.3.5.459/app/libraries/RainLoop/Service.php diff --git a/rainloop/v/1.3.4.455/app/libraries/RainLoop/ServiceActions.php b/rainloop/v/1.3.5.459/app/libraries/RainLoop/ServiceActions.php similarity index 100% rename from rainloop/v/1.3.4.455/app/libraries/RainLoop/ServiceActions.php rename to rainloop/v/1.3.5.459/app/libraries/RainLoop/ServiceActions.php diff --git a/rainloop/v/1.3.4.455/app/libraries/RainLoop/Settings.php b/rainloop/v/1.3.5.459/app/libraries/RainLoop/Settings.php similarity index 100% rename from rainloop/v/1.3.4.455/app/libraries/RainLoop/Settings.php rename to rainloop/v/1.3.5.459/app/libraries/RainLoop/Settings.php diff --git a/rainloop/v/1.3.4.455/app/libraries/RainLoop/Social.php b/rainloop/v/1.3.5.459/app/libraries/RainLoop/Social.php similarity index 100% rename from rainloop/v/1.3.4.455/app/libraries/RainLoop/Social.php rename to rainloop/v/1.3.5.459/app/libraries/RainLoop/Social.php diff --git a/rainloop/v/1.3.4.455/app/libraries/RainLoop/Utils.php b/rainloop/v/1.3.5.459/app/libraries/RainLoop/Utils.php similarity index 100% rename from rainloop/v/1.3.4.455/app/libraries/RainLoop/Utils.php rename to rainloop/v/1.3.5.459/app/libraries/RainLoop/Utils.php diff --git a/rainloop/v/1.3.4.455/app/libraries/facebook/base_facebook.php b/rainloop/v/1.3.5.459/app/libraries/facebook/base_facebook.php similarity index 100% rename from rainloop/v/1.3.4.455/app/libraries/facebook/base_facebook.php rename to rainloop/v/1.3.5.459/app/libraries/facebook/base_facebook.php diff --git a/rainloop/v/1.3.4.455/app/libraries/facebook/facebook.php b/rainloop/v/1.3.5.459/app/libraries/facebook/facebook.php similarity index 100% rename from rainloop/v/1.3.4.455/app/libraries/facebook/facebook.php rename to rainloop/v/1.3.5.459/app/libraries/facebook/facebook.php diff --git a/rainloop/v/1.3.4.455/app/libraries/facebook/fb_ca_chain_bundle.crt b/rainloop/v/1.3.5.459/app/libraries/facebook/fb_ca_chain_bundle.crt similarity index 100% rename from rainloop/v/1.3.4.455/app/libraries/facebook/fb_ca_chain_bundle.crt rename to rainloop/v/1.3.5.459/app/libraries/facebook/fb_ca_chain_bundle.crt diff --git a/rainloop/v/1.3.4.455/app/libraries/lessphp/LICENSE b/rainloop/v/1.3.5.459/app/libraries/lessphp/LICENSE similarity index 100% rename from rainloop/v/1.3.4.455/app/libraries/lessphp/LICENSE rename to rainloop/v/1.3.5.459/app/libraries/lessphp/LICENSE diff --git a/rainloop/v/1.3.4.455/app/libraries/lessphp/README.md b/rainloop/v/1.3.5.459/app/libraries/lessphp/README.md similarity index 100% rename from rainloop/v/1.3.4.455/app/libraries/lessphp/README.md rename to rainloop/v/1.3.5.459/app/libraries/lessphp/README.md diff --git a/rainloop/v/1.3.4.455/app/libraries/lessphp/ctype.php b/rainloop/v/1.3.5.459/app/libraries/lessphp/ctype.php similarity index 100% rename from rainloop/v/1.3.4.455/app/libraries/lessphp/ctype.php rename to rainloop/v/1.3.5.459/app/libraries/lessphp/ctype.php diff --git a/rainloop/v/1.3.4.455/app/libraries/lessphp/lessc.inc.php b/rainloop/v/1.3.5.459/app/libraries/lessphp/lessc.inc.php similarity index 100% rename from rainloop/v/1.3.4.455/app/libraries/lessphp/lessc.inc.php rename to rainloop/v/1.3.5.459/app/libraries/lessphp/lessc.inc.php diff --git a/rainloop/v/1.3.4.455/app/libraries/pclzip/gnu-lgpl.txt b/rainloop/v/1.3.5.459/app/libraries/pclzip/gnu-lgpl.txt similarity index 100% rename from rainloop/v/1.3.4.455/app/libraries/pclzip/gnu-lgpl.txt rename to rainloop/v/1.3.5.459/app/libraries/pclzip/gnu-lgpl.txt diff --git a/rainloop/v/1.3.4.455/app/libraries/pclzip/pclzip.lib.php b/rainloop/v/1.3.5.459/app/libraries/pclzip/pclzip.lib.php similarity index 100% rename from rainloop/v/1.3.4.455/app/libraries/pclzip/pclzip.lib.php rename to rainloop/v/1.3.5.459/app/libraries/pclzip/pclzip.lib.php diff --git a/rainloop/v/1.3.4.455/app/libraries/pclzip/readme.txt b/rainloop/v/1.3.5.459/app/libraries/pclzip/readme.txt similarity index 100% rename from rainloop/v/1.3.4.455/app/libraries/pclzip/readme.txt rename to rainloop/v/1.3.5.459/app/libraries/pclzip/readme.txt diff --git a/rainloop/v/1.3.4.455/app/libraries/tmhOAuth/LICENSE b/rainloop/v/1.3.5.459/app/libraries/tmhOAuth/LICENSE similarity index 100% rename from rainloop/v/1.3.4.455/app/libraries/tmhOAuth/LICENSE rename to rainloop/v/1.3.5.459/app/libraries/tmhOAuth/LICENSE diff --git a/rainloop/v/1.3.4.455/app/libraries/tmhOAuth/README.md b/rainloop/v/1.3.5.459/app/libraries/tmhOAuth/README.md similarity index 100% rename from rainloop/v/1.3.4.455/app/libraries/tmhOAuth/README.md rename to rainloop/v/1.3.5.459/app/libraries/tmhOAuth/README.md diff --git a/rainloop/v/1.3.4.455/app/libraries/tmhOAuth/cacert.pem b/rainloop/v/1.3.5.459/app/libraries/tmhOAuth/cacert.pem similarity index 100% rename from rainloop/v/1.3.4.455/app/libraries/tmhOAuth/cacert.pem rename to rainloop/v/1.3.5.459/app/libraries/tmhOAuth/cacert.pem diff --git a/rainloop/v/1.3.4.455/app/libraries/tmhOAuth/tmhOAuth.php b/rainloop/v/1.3.5.459/app/libraries/tmhOAuth/tmhOAuth.php similarity index 100% rename from rainloop/v/1.3.4.455/app/libraries/tmhOAuth/tmhOAuth.php rename to rainloop/v/1.3.5.459/app/libraries/tmhOAuth/tmhOAuth.php diff --git a/rainloop/v/1.3.4.455/app/libraries/tmhOAuth/tmhUtilities.php b/rainloop/v/1.3.5.459/app/libraries/tmhOAuth/tmhUtilities.php similarity index 100% rename from rainloop/v/1.3.4.455/app/libraries/tmhOAuth/tmhUtilities.php rename to rainloop/v/1.3.5.459/app/libraries/tmhOAuth/tmhUtilities.php diff --git a/rainloop/v/1.3.4.455/app/templates/BadBrowser.html b/rainloop/v/1.3.5.459/app/templates/BadBrowser.html similarity index 100% rename from rainloop/v/1.3.4.455/app/templates/BadBrowser.html rename to rainloop/v/1.3.5.459/app/templates/BadBrowser.html diff --git a/rainloop/v/1.3.4.455/app/templates/Error.html b/rainloop/v/1.3.5.459/app/templates/Error.html similarity index 100% rename from rainloop/v/1.3.4.455/app/templates/Error.html rename to rainloop/v/1.3.5.459/app/templates/Error.html diff --git a/rainloop/v/1.3.4.455/app/templates/Index.html b/rainloop/v/1.3.5.459/app/templates/Index.html similarity index 100% rename from rainloop/v/1.3.4.455/app/templates/Index.html rename to rainloop/v/1.3.5.459/app/templates/Index.html diff --git a/rainloop/v/1.3.4.455/app/templates/Themes/custom-values-dark.less b/rainloop/v/1.3.5.459/app/templates/Themes/custom-values-dark.less similarity index 100% rename from rainloop/v/1.3.4.455/app/templates/Themes/custom-values-dark.less rename to rainloop/v/1.3.5.459/app/templates/Themes/custom-values-dark.less diff --git a/rainloop/v/1.3.4.455/app/templates/Themes/custom-values-light.less b/rainloop/v/1.3.5.459/app/templates/Themes/custom-values-light.less similarity index 100% rename from rainloop/v/1.3.4.455/app/templates/Themes/custom-values-light.less rename to rainloop/v/1.3.5.459/app/templates/Themes/custom-values-light.less diff --git a/rainloop/v/1.3.4.455/app/templates/Themes/template.less b/rainloop/v/1.3.5.459/app/templates/Themes/template.less similarity index 100% rename from rainloop/v/1.3.4.455/app/templates/Themes/template.less rename to rainloop/v/1.3.5.459/app/templates/Themes/template.less diff --git a/rainloop/v/1.3.4.455/app/templates/Themes/values.less b/rainloop/v/1.3.5.459/app/templates/Themes/values.less similarity index 100% rename from rainloop/v/1.3.4.455/app/templates/Themes/values.less rename to rainloop/v/1.3.5.459/app/templates/Themes/values.less diff --git a/rainloop/v/1.3.4.455/app/templates/Views/AdminDomainListItem.html b/rainloop/v/1.3.5.459/app/templates/Views/AdminDomainListItem.html similarity index 100% rename from rainloop/v/1.3.4.455/app/templates/Views/AdminDomainListItem.html rename to rainloop/v/1.3.5.459/app/templates/Views/AdminDomainListItem.html diff --git a/rainloop/v/1.3.4.455/app/templates/Views/AdminDomains.html b/rainloop/v/1.3.5.459/app/templates/Views/AdminDomains.html similarity index 100% rename from rainloop/v/1.3.4.455/app/templates/Views/AdminDomains.html rename to rainloop/v/1.3.5.459/app/templates/Views/AdminDomains.html diff --git a/rainloop/v/1.3.4.455/app/templates/Views/AdminGeneral.html b/rainloop/v/1.3.5.459/app/templates/Views/AdminGeneral.html similarity index 89% rename from rainloop/v/1.3.4.455/app/templates/Views/AdminGeneral.html rename to rainloop/v/1.3.5.459/app/templates/Views/AdminGeneral.html index 75eb6a0eb..ffbebd8ad 100644 --- a/rainloop/v/1.3.4.455/app/templates/Views/AdminGeneral.html +++ b/rainloop/v/1.3.5.459/app/templates/Views/AdminGeneral.html @@ -38,6 +38,10 @@ Allow language selection on login screen +
diff --git a/rainloop/v/1.3.4.455/app/templates/Views/AdminLicensing.html b/rainloop/v/1.3.5.459/app/templates/Views/AdminLicensing.html similarity index 100% rename from rainloop/v/1.3.4.455/app/templates/Views/AdminLicensing.html rename to rainloop/v/1.3.5.459/app/templates/Views/AdminLicensing.html diff --git a/rainloop/v/1.3.4.455/app/templates/Views/AdminLogin.html b/rainloop/v/1.3.5.459/app/templates/Views/AdminLogin.html similarity index 100% rename from rainloop/v/1.3.4.455/app/templates/Views/AdminLogin.html rename to rainloop/v/1.3.5.459/app/templates/Views/AdminLogin.html diff --git a/rainloop/v/1.3.4.455/app/templates/Views/AdminMenu.html b/rainloop/v/1.3.5.459/app/templates/Views/AdminMenu.html similarity index 100% rename from rainloop/v/1.3.4.455/app/templates/Views/AdminMenu.html rename to rainloop/v/1.3.5.459/app/templates/Views/AdminMenu.html diff --git a/rainloop/v/1.3.4.455/app/templates/Views/AdminPackages.html b/rainloop/v/1.3.5.459/app/templates/Views/AdminPackages.html similarity index 100% rename from rainloop/v/1.3.4.455/app/templates/Views/AdminPackages.html rename to rainloop/v/1.3.5.459/app/templates/Views/AdminPackages.html diff --git a/rainloop/v/1.3.4.455/app/templates/Views/AdminPackagesListItem.html b/rainloop/v/1.3.5.459/app/templates/Views/AdminPackagesListItem.html similarity index 100% rename from rainloop/v/1.3.4.455/app/templates/Views/AdminPackagesListItem.html rename to rainloop/v/1.3.5.459/app/templates/Views/AdminPackagesListItem.html diff --git a/rainloop/v/1.3.4.455/app/templates/Views/AdminPackagesTable.html b/rainloop/v/1.3.5.459/app/templates/Views/AdminPackagesTable.html similarity index 100% rename from rainloop/v/1.3.4.455/app/templates/Views/AdminPackagesTable.html rename to rainloop/v/1.3.5.459/app/templates/Views/AdminPackagesTable.html diff --git a/rainloop/v/1.3.4.455/app/templates/Views/AdminPane.html b/rainloop/v/1.3.5.459/app/templates/Views/AdminPane.html similarity index 100% rename from rainloop/v/1.3.4.455/app/templates/Views/AdminPane.html rename to rainloop/v/1.3.5.459/app/templates/Views/AdminPane.html diff --git a/rainloop/v/1.3.4.455/app/templates/Views/AdminPluginListItem.html b/rainloop/v/1.3.5.459/app/templates/Views/AdminPluginListItem.html similarity index 100% rename from rainloop/v/1.3.4.455/app/templates/Views/AdminPluginListItem.html rename to rainloop/v/1.3.5.459/app/templates/Views/AdminPluginListItem.html diff --git a/rainloop/v/1.3.4.455/app/templates/Views/AdminPluginProperty.html b/rainloop/v/1.3.5.459/app/templates/Views/AdminPluginProperty.html similarity index 100% rename from rainloop/v/1.3.4.455/app/templates/Views/AdminPluginProperty.html rename to rainloop/v/1.3.5.459/app/templates/Views/AdminPluginProperty.html diff --git a/rainloop/v/1.3.4.455/app/templates/Views/AdminPlugins.html b/rainloop/v/1.3.5.459/app/templates/Views/AdminPlugins.html similarity index 100% rename from rainloop/v/1.3.4.455/app/templates/Views/AdminPlugins.html rename to rainloop/v/1.3.5.459/app/templates/Views/AdminPlugins.html diff --git a/rainloop/v/1.3.4.455/app/templates/Views/AdminSecurity.html b/rainloop/v/1.3.5.459/app/templates/Views/AdminSecurity.html similarity index 100% rename from rainloop/v/1.3.4.455/app/templates/Views/AdminSecurity.html rename to rainloop/v/1.3.5.459/app/templates/Views/AdminSecurity.html diff --git a/rainloop/v/1.3.4.455/app/templates/Views/AdminSocial.html b/rainloop/v/1.3.5.459/app/templates/Views/AdminSocial.html similarity index 100% rename from rainloop/v/1.3.4.455/app/templates/Views/AdminSocial.html rename to rainloop/v/1.3.5.459/app/templates/Views/AdminSocial.html diff --git a/rainloop/v/1.3.4.455/app/templates/Views/ComposeAttachment.html b/rainloop/v/1.3.5.459/app/templates/Views/ComposeAttachment.html similarity index 100% rename from rainloop/v/1.3.4.455/app/templates/Views/ComposeAttachment.html rename to rainloop/v/1.3.5.459/app/templates/Views/ComposeAttachment.html diff --git a/rainloop/v/1.3.4.455/app/templates/Views/ComposeAttachmentInProcess.html b/rainloop/v/1.3.5.459/app/templates/Views/ComposeAttachmentInProcess.html similarity index 100% rename from rainloop/v/1.3.4.455/app/templates/Views/ComposeAttachmentInProcess.html rename to rainloop/v/1.3.5.459/app/templates/Views/ComposeAttachmentInProcess.html diff --git a/rainloop/v/1.3.4.455/app/templates/Views/Login.html b/rainloop/v/1.3.5.459/app/templates/Views/Login.html similarity index 100% rename from rainloop/v/1.3.4.455/app/templates/Views/Login.html rename to rainloop/v/1.3.5.459/app/templates/Views/Login.html diff --git a/rainloop/v/1.3.4.455/app/templates/Views/MailFolderList.html b/rainloop/v/1.3.5.459/app/templates/Views/MailFolderList.html similarity index 100% rename from rainloop/v/1.3.4.455/app/templates/Views/MailFolderList.html rename to rainloop/v/1.3.5.459/app/templates/Views/MailFolderList.html diff --git a/rainloop/v/1.3.4.455/app/templates/Views/MailFolderListItem.html b/rainloop/v/1.3.5.459/app/templates/Views/MailFolderListItem.html similarity index 100% rename from rainloop/v/1.3.4.455/app/templates/Views/MailFolderListItem.html rename to rainloop/v/1.3.5.459/app/templates/Views/MailFolderListItem.html diff --git a/rainloop/v/1.3.4.455/app/templates/Views/MailFolderListSystemItem.html b/rainloop/v/1.3.5.459/app/templates/Views/MailFolderListSystemItem.html similarity index 100% rename from rainloop/v/1.3.4.455/app/templates/Views/MailFolderListSystemItem.html rename to rainloop/v/1.3.5.459/app/templates/Views/MailFolderListSystemItem.html diff --git a/rainloop/v/1.3.4.455/app/templates/Views/MailMessageList.html b/rainloop/v/1.3.5.459/app/templates/Views/MailMessageList.html similarity index 100% rename from rainloop/v/1.3.4.455/app/templates/Views/MailMessageList.html rename to rainloop/v/1.3.5.459/app/templates/Views/MailMessageList.html diff --git a/rainloop/v/1.3.4.455/app/templates/Views/MailMessageListItem.html b/rainloop/v/1.3.5.459/app/templates/Views/MailMessageListItem.html similarity index 100% rename from rainloop/v/1.3.4.455/app/templates/Views/MailMessageListItem.html rename to rainloop/v/1.3.5.459/app/templates/Views/MailMessageListItem.html diff --git a/rainloop/v/1.3.4.455/app/templates/Views/MailMessageListItemNoPreviewPane.html b/rainloop/v/1.3.5.459/app/templates/Views/MailMessageListItemNoPreviewPane.html similarity index 100% rename from rainloop/v/1.3.4.455/app/templates/Views/MailMessageListItemNoPreviewPane.html rename to rainloop/v/1.3.5.459/app/templates/Views/MailMessageListItemNoPreviewPane.html diff --git a/rainloop/v/1.3.4.455/app/templates/Views/MailMessageView.html b/rainloop/v/1.3.5.459/app/templates/Views/MailMessageView.html similarity index 100% rename from rainloop/v/1.3.4.455/app/templates/Views/MailMessageView.html rename to rainloop/v/1.3.5.459/app/templates/Views/MailMessageView.html diff --git a/rainloop/v/1.3.4.455/app/templates/Views/PopupsActivate.html b/rainloop/v/1.3.5.459/app/templates/Views/PopupsActivate.html similarity index 100% rename from rainloop/v/1.3.4.455/app/templates/Views/PopupsActivate.html rename to rainloop/v/1.3.5.459/app/templates/Views/PopupsActivate.html diff --git a/rainloop/v/1.3.4.455/app/templates/Views/PopupsAddAccount.html b/rainloop/v/1.3.5.459/app/templates/Views/PopupsAddAccount.html similarity index 100% rename from rainloop/v/1.3.4.455/app/templates/Views/PopupsAddAccount.html rename to rainloop/v/1.3.5.459/app/templates/Views/PopupsAddAccount.html diff --git a/rainloop/v/1.3.4.455/app/templates/Views/PopupsAdvancedSearch.html b/rainloop/v/1.3.5.459/app/templates/Views/PopupsAdvancedSearch.html similarity index 100% rename from rainloop/v/1.3.4.455/app/templates/Views/PopupsAdvancedSearch.html rename to rainloop/v/1.3.5.459/app/templates/Views/PopupsAdvancedSearch.html diff --git a/rainloop/v/1.3.4.455/app/templates/Views/PopupsCompose.html b/rainloop/v/1.3.5.459/app/templates/Views/PopupsCompose.html similarity index 100% rename from rainloop/v/1.3.4.455/app/templates/Views/PopupsCompose.html rename to rainloop/v/1.3.5.459/app/templates/Views/PopupsCompose.html diff --git a/rainloop/v/1.3.4.455/app/templates/Views/PopupsContacts.html b/rainloop/v/1.3.5.459/app/templates/Views/PopupsContacts.html similarity index 100% rename from rainloop/v/1.3.4.455/app/templates/Views/PopupsContacts.html rename to rainloop/v/1.3.5.459/app/templates/Views/PopupsContacts.html diff --git a/rainloop/v/1.3.4.455/app/templates/Views/PopupsDomain.html b/rainloop/v/1.3.5.459/app/templates/Views/PopupsDomain.html similarity index 100% rename from rainloop/v/1.3.4.455/app/templates/Views/PopupsDomain.html rename to rainloop/v/1.3.5.459/app/templates/Views/PopupsDomain.html diff --git a/rainloop/v/1.3.4.455/app/templates/Views/PopupsFolderClear.html b/rainloop/v/1.3.5.459/app/templates/Views/PopupsFolderClear.html similarity index 100% rename from rainloop/v/1.3.4.455/app/templates/Views/PopupsFolderClear.html rename to rainloop/v/1.3.5.459/app/templates/Views/PopupsFolderClear.html diff --git a/rainloop/v/1.3.4.455/app/templates/Views/PopupsFolderCreate.html b/rainloop/v/1.3.5.459/app/templates/Views/PopupsFolderCreate.html similarity index 100% rename from rainloop/v/1.3.4.455/app/templates/Views/PopupsFolderCreate.html rename to rainloop/v/1.3.5.459/app/templates/Views/PopupsFolderCreate.html diff --git a/rainloop/v/1.3.4.455/app/templates/Views/PopupsFolderSystem.html b/rainloop/v/1.3.5.459/app/templates/Views/PopupsFolderSystem.html similarity index 100% rename from rainloop/v/1.3.4.455/app/templates/Views/PopupsFolderSystem.html rename to rainloop/v/1.3.5.459/app/templates/Views/PopupsFolderSystem.html diff --git a/rainloop/v/1.3.4.455/app/templates/Views/PopupsLanguages.html b/rainloop/v/1.3.5.459/app/templates/Views/PopupsLanguages.html similarity index 100% rename from rainloop/v/1.3.4.455/app/templates/Views/PopupsLanguages.html rename to rainloop/v/1.3.5.459/app/templates/Views/PopupsLanguages.html diff --git a/rainloop/v/1.3.4.455/app/templates/Views/PopupsPlugin.html b/rainloop/v/1.3.5.459/app/templates/Views/PopupsPlugin.html similarity index 82% rename from rainloop/v/1.3.4.455/app/templates/Views/PopupsPlugin.html rename to rainloop/v/1.3.5.459/app/templates/Views/PopupsPlugin.html index b99c67297..8ce406404 100644 --- a/rainloop/v/1.3.4.455/app/templates/Views/PopupsPlugin.html +++ b/rainloop/v/1.3.5.459/app/templates/Views/PopupsPlugin.html @@ -8,8 +8,7 @@
").addClass("rl-settings-view-model").hide().attr("data-bind",'template: {name: "'+g.__rlSettingsData.Template+'"}, i18nInit: true'),t.appendTo(h),c.data=e.data(),c.viewModelDom=t,c.__rlSettingsData=g.__rlSettingsData,g.__dom=t,g.__builded=!0,g.__vm=c,f.applyBindings(c,t[0]),q.delegateRun(c,"onBuild",[t])):d.log("Cannot find sub settings view model position: SettingsSubScreen"), +c&&i.defer(function(){if(b.oCurrentSubScreen){q.delegateRun(b.oCurrentSubScreen,"onHide");b.oCurrentSubScreen.viewModelDom.hide()}b.oCurrentSubScreen=c;if(b.oCurrentSubScreen){b.oCurrentSubScreen.viewModelDom.show();q.delegateRun(b.oCurrentSubScreen,"onShow");i.each(b.menu(),function(a){a.selected(c&&c.__rlSettingsData&&a.route===c.__rlSettingsData.Route)})}d.windowResize()}))};ka.prototype.onBuild=function(){i.each(Ka,function(a){a&&(a.__rlSettingsData&&!i.find(Xa,function(b){return b&&b===a}))&& +this.menu.push({route:a.__rlSettingsData.Route,label:a.__rlSettingsData.Label,selected:f.observable(!1),disabled:!!i.find(Ya,function(b){return b&&b===a})})},this)};ka.prototype.routes=function(){var a=i.find(Ka,function(a){return a&&a.__rlSettingsData&&a.__rlSettingsData.IsDefault}),b=a?a.__rlSettingsData.Route:"general",a={subname:/^(.*)$/,normalize_:function(a,e){e.subname=d.isUnd(e.subname)?b:d.pString(e.subname);return[e.subname]}};return[["{subname}/",a],["{subname}",a],["",a]]};i.extend(Fa.prototype, +K.prototype);Fa.prototype.onShow=function(){e.setTitle(d.i18n("TITLES/LOGIN"))};i.extend(V.prototype,K.prototype);V.prototype.oLastRoute={};V.prototype.onShow=function(){var a=e.data().accountEmail();e.setTitle((""===a?"":a+" - ")+d.i18n("TITLES/MAILBOX"));this.mailBoxScreenVisibily(!0)};V.prototype.onHide=function(){this.mailBoxScreenVisibily(!1)};V.prototype.onRoute=function(a,b,c){var d=e.data(),a=e.cache().getFolderFullNameRaw(a);if(a=e.cache().getFolderFromCacheList(a))d.currentFolder(a).messageListPage(b).messageListSearch(c), +!d.usePreviewPane()&&d.message()&&d.message(null),e.reloadMessageList()};V.prototype.onStart=function(){var a=e.data(),b=function(){d.windowResize()};e.settingsGet("AllowAdditionalAccounts")&&e.accounts();i.delay(function(){e.quota()},5E3);i.delay(function(){"INBOX"!==a.currentFolderFullNameRaw()&&e.folderInformation("INBOX")},1E3);i.delay(function(){var b=e.data().spamFolder();b!==a.currentFolderFullNameRaw()&&e.folderInformation(b)},1500);i.delay(function(){var b=e.data().draftFolder();b!==a.currentFolderFullNameRaw()&& +e.folderInformation(b)},2E3);i.delay(function(){e.remote().appDelayStart(d.emptyFunction)},35E3);h.setInterval(function(){e.folderInformation("INBOX")},12E4);h.setInterval(function(){e.quota()},3E5);ba.toggleClass("rl-no-preview-pane",!a.usePreviewPane());a.folderList.subscribe(b);a.messageList.subscribe(b);a.message.subscribe(b);a.usePreviewPane.subscribe(function(b){ba.toggleClass("rl-no-preview-pane",!b);a.messageList.valueHasMutated()})};V.prototype.onBuild=function(){if(!W){var a=this;i.defer(function(){d.initLayoutResizer("#rl-resizer-left", +"#rl-resizer-right","#rl-right",a.resizeTriggerForMessageList,350,900,350,350,g.ClientSideKeyName.MailBoxListSize)});i.defer(function(){d.initLayoutResizer("#rl-top-resizer-left","#rl-top-resizer-right","#rl-center",a.resizeTriggerForFolderList,120,300,200,600,g.ClientSideKeyName.FolderListSize)})}};V.prototype.routes=function(){var a=function(a,c){c[0]=d.pString(c[0]);c[1]=d.pInt(c[1]);c[1]=0>=c[1]?1:c[1];c[2]=d.pString(c[2]);""===a&&(c[0]="Inbox",c[1]=1);return[decodeURI(c[0]),c[1],decodeURI(c[2])]}; +return[[/^([a-zA-Z0-9]+)\/p([1-9][0-9]*)\/(.+)\/?$/,{normalize_:a}],[/^([a-zA-Z0-9]+)\/p([1-9][0-9]*)\/?$/,{normalize_:a}],[/^([a-zA-Z0-9]+)\/(.+)\/?$/,{normalize_:function(a,c){c[0]=d.pString(c[0]);c[1]=d.pString(c[1]);""===a&&(c[0]="Inbox");return[decodeURI(c[0]),1,decodeURI(c[1])]}}],[/^([^\/]*)$/,{normalize_:a}]]};i.extend(Ta.prototype,ka.prototype);Ta.prototype.onShow=function(){e.setTitle(this.sSettingsTitle)};i.extend(J.prototype,ab.prototype);J.prototype.oSettings=null;J.prototype.oLink=null; +J.prototype.download=function(a){W?h.open(a):this.iframe.attr("src",a)};J.prototype.link=function(){null===this.oLink&&(this.oLink=new B);return this.oLink};J.prototype.local=function(){null===this.oLocal&&(this.oLocal=new za);return this.oLocal};J.prototype.settingsGet=function(a){null===this.oSettings&&(this.oSettings=d.isNormal(Ia)?Ia:{});return d.isUnd(this.oSettings[a])?null:this.oSettings[a]};J.prototype.settingsSet=function(a,b){null===this.oSettings&&(this.oSettings=d.isNormal(Ia)?Ia:{}); +this.oSettings[a]=b};J.prototype.setTitle=function(a){a=(0a.a.l(c,b[f])&&c.push(b[f]);return c},ha:function(a,b){a=a||[];for(var f=[],c=0,d=a.length;cd?f&&b.push(c):f||b.splice(d,1)},extend:function(a,b){if(b)for(var f in b)b.hasOwnProperty(f)&& -(a[f]=b[f]);return a},L:b,Da:function(a,b){if(!a)return a;var f={},c;for(c in a)a.hasOwnProperty(c)&&(f[c]=b(a[c],c,a));return f},wa:function(b){for(;b.firstChild;)a.removeNode(b.firstChild)},Vb:function(b){b=a.a.Q(b);for(var c=w.createElement("div"),f=0,d=b.length;fh?a.setAttribute("selected",b):a.selected=b},la:function(a){return null===a||a=== -q?"":a.trim?a.trim():a.toString().replace(/^[\s\xa0]+|[\s\xa0]+$/g,"")},ec:function(b,c){for(var f=[],d=(b||"").split(c),e=0,h=d.length;ea.length?!1:a.substring(0,b.length)===b},Gb:function(a,b){if(a===b)return!0;if(b.contains)return b.contains(3===a.nodeType?a.parentNode:a);if(b.compareDocumentPosition)return 16==(b.compareDocumentPosition(a)&16);for(;a&&a!=b;)a=a.parentNode;return!!a},va:function(b){return a.a.Gb(b, -b.ownerDocument.documentElement)},Ra:function(b){return!!a.a.Ua(b,a.a.va)},v:function(a){return a&&a.tagName&&a.tagName.toLowerCase()},r:function(b,d,f){var e=h&&g[d];if(e||"undefined"==typeof u)if(e||"function"!=typeof b.addEventListener)if("undefined"!=typeof b.attachEvent){var s=function(a){f.call(b,a)},l="on"+d;b.attachEvent(l,s);a.a.C.ea(b,function(){b.detachEvent(l,s)})}else throw Error("Browser doesn't support addEventListener or attachEvent");else b.addEventListener(d,f,!1);else{if(c(b,d)){var n= -f;f=function(a,b){var f=this.checked;b&&(this.checked=!0!==b.Ab);n.call(this,a);this.checked=f}}u(b).bind(d,f)}},da:function(a,b){if(!a||!a.nodeType)throw Error("element must be a DOM node when calling triggerEvent");if("undefined"!=typeof u){var f=[];c(a,b)&&f.push({Ab:a.checked});u(a).trigger(b,f)}else if("function"==typeof w.createEvent)if("function"==typeof a.dispatchEvent)f=w.createEvent(e[b]||"HTMLEvents"),f.initEvent(b,!0,!0,y,0,0,0,0,0,!1,!1,!1,!1,0,a),a.dispatchEvent(f);else throw Error("The supplied element doesn't support dispatchEvent"); -else if("undefined"!=typeof a.fireEvent)c(a,b)&&(a.checked=!0!==a.checked),a.fireEvent("on"+b);else throw Error("Browser doesn't support triggering events");},c:function(b){return a.J(b)?b():b},Ha:function(b){return a.J(b)?b.t():b},ma:function(b,c,f){if(c){var d=/\S+/g,e=b.className.match(d)||[];a.a.n(c.match(d),function(b){a.a.V(e,b,f)});b.className=e.join(" ")}},Ma:function(b,c){var f=a.a.c(c);if(null===f||f===q)f="";var d=a.e.firstChild(b);!d||3!=d.nodeType||a.e.nextSibling(d)?a.e.S(b,[w.createTextNode(f)]): -d.data=f;a.a.Jb(b)},pb:function(a,b){a.name=b;if(7>=h)try{a.mergeAttributes(w.createElement(""),!1)}catch(f){}},Jb:function(a){9<=h&&(a=1==a.nodeType?a:a.parentNode,a.style&&(a.style.zoom=a.style.zoom))},Hb:function(a){if(h){var b=a.style.width;a.style.width=0;a.style.width=b}},Zb:function(b,c){b=a.a.c(b);c=a.a.c(c);for(var f=[],d=b;d<=c;d++)f.push(d);return f},Q:function(a){for(var b=[],c=0,d=a.length;ch?a.setAttribute("selected",b):a.selected=b},la:function(a){return null===a||a=== +q?"":a.trim?a.trim():a.toString().replace(/^[\s\xa0]+|[\s\xa0]+$/g,"")},ec:function(b,c){for(var f=[],d=(b||"").split(c),e=0,g=d.length;ea.length?!1:a.substring(0,b.length)===b},Gb:function(a,b){if(a===b)return!0;if(11===a.nodeType)return!1;if(b.contains)return b.contains(3===a.nodeType?a.parentNode:a);if(b.compareDocumentPosition)return 16==(b.compareDocumentPosition(a)&16);for(;a&&a!=b;)a=a.parentNode; +return!!a},va:function(b){return a.a.Gb(b,b.ownerDocument.documentElement)},Ra:function(b){return!!a.a.Ua(b,a.a.va)},v:function(a){return a&&a.tagName&&a.tagName.toLowerCase()},r:function(b,d,f){var e=h&&g[d];if(e||"undefined"==typeof u)if(e||"function"!=typeof b.addEventListener)if("undefined"!=typeof b.attachEvent){var s=function(a){f.call(b,a)},l="on"+d;b.attachEvent(l,s);a.a.C.ea(b,function(){b.detachEvent(l,s)})}else throw Error("Browser doesn't support addEventListener or attachEvent");else b.addEventListener(d, +f,!1);else{if(c(b,d)){var n=f;f=function(a,b){var f=this.checked;b&&(this.checked=!0!==b.Ab);n.call(this,a);this.checked=f}}u(b).bind(d,f)}},da:function(a,b){if(!a||!a.nodeType)throw Error("element must be a DOM node when calling triggerEvent");if("undefined"!=typeof u){var f=[];c(a,b)&&f.push({Ab:a.checked});u(a).trigger(b,f)}else if("function"==typeof w.createEvent)if("function"==typeof a.dispatchEvent)f=w.createEvent(e[b]||"HTMLEvents"),f.initEvent(b,!0,!0,y,0,0,0,0,0,!1,!1,!1,!1,0,a),a.dispatchEvent(f); +else throw Error("The supplied element doesn't support dispatchEvent");else if("undefined"!=typeof a.fireEvent)c(a,b)&&(a.checked=!0!==a.checked),a.fireEvent("on"+b);else throw Error("Browser doesn't support triggering events");},c:function(b){return a.M(b)?b():b},Ha:function(b){return a.M(b)?b.t():b},ma:function(b,c,f){if(c){var d=/\S+/g,e=b.className.match(d)||[];a.a.n(c.match(d),function(b){a.a.V(e,b,f)});b.className=e.join(" ")}},Ma:function(b,c){var f=a.a.c(c);if(null===f||f===q)f="";var d=a.e.firstChild(b); +!d||3!=d.nodeType||a.e.nextSibling(d)?a.e.S(b,[w.createTextNode(f)]):d.data=f;a.a.Jb(b)},pb:function(a,b){a.name=b;if(7>=h)try{a.mergeAttributes(w.createElement(""),!1)}catch(f){}},Jb:function(a){9<=h&&(a=1==a.nodeType?a:a.parentNode,a.style&&(a.style.zoom=a.style.zoom))},Hb:function(a){if(h){var b=a.style.width;a.style.width=0;a.style.width=b}},Zb:function(b,c){b=a.a.c(b);c=a.a.c(c);for(var f=[],d=b;d<=c;d++)f.push(d);return f},Q:function(a){for(var b=[],c=0,d=a.length;c< +d;c++)b.push(a[c]);return b},cc:6===h,dc:7===h,ja:h,ab:function(b,c){for(var f=a.a.Q(b.getElementsByTagName("input")).concat(a.a.Q(b.getElementsByTagName("textarea"))),d="string"==typeof c?function(a){return a.name===c}:function(a){return c.test(a.name)},e=[],g=f.length-1;0<=g;g--)d(f[g])&&e.push(f[g]);return e},Wb:function(b){return"string"==typeof b&&(b=a.a.la(b))?B&&B.parse?B.parse(b):(new Function("return "+b))():null},Na:function(b,c,f){if(!B||!B.stringify)throw Error("Cannot find JSON.stringify(). Some browsers (e.g., IE < 8) don't support it natively, but you can overcome this by adding a script reference to json2.js, downloadable from http://www.json.org/json2.js"); +return B.stringify(a.a.c(b),c,f)},Xb:function(c,d,f){f=f||{};var e=f.params||{},g=f.includeFields||this.$a,h=c;if("object"==typeof c&&"form"===a.a.v(c))for(var h=c.action,n=g.length-1;0<=n;n--)for(var r=a.a.ab(c,g[n]),v=r.length-1;0<=v;v--)e[r[v].name]=r[v].value;d=a.a.c(d);var t=w.createElement("form");t.style.display="none";t.action=h;t.method="post";for(var E in d)c=w.createElement("input"),c.name=E,c.value=a.a.Na(a.a.c(d[E])),t.appendChild(c);b(e,function(a,b){var c=w.createElement("input");c.name= a;c.value=b;t.appendChild(c)});w.body.appendChild(t);f.submitter?f.submitter(t):t.submit();setTimeout(function(){t.parentNode.removeChild(t)},0)}}}();a.b("utils",a.a);a.b("utils.arrayForEach",a.a.n);a.b("utils.arrayFirst",a.a.Ua);a.b("utils.arrayFilter",a.a.ga);a.b("utils.arrayGetDistinctValues",a.a.Va);a.b("utils.arrayIndexOf",a.a.l);a.b("utils.arrayMap",a.a.ha);a.b("utils.arrayPushAll",a.a.X);a.b("utils.arrayRemoveItem",a.a.ia);a.b("utils.extend",a.a.extend);a.b("utils.fieldsIncludedWithJsonPost", -a.a.$a);a.b("utils.getFormFields",a.a.ab);a.b("utils.peekObservable",a.a.Ha);a.b("utils.postJson",a.a.Xb);a.b("utils.parseJson",a.a.Wb);a.b("utils.registerEventHandler",a.a.r);a.b("utils.stringifyJson",a.a.Na);a.b("utils.range",a.a.Zb);a.b("utils.toggleDomNodeCssClass",a.a.ma);a.b("utils.triggerEvent",a.a.da);a.b("utils.unwrapObservable",a.a.c);a.b("utils.objectForEach",a.a.L);a.b("utils.addOrRemoveItem",a.a.V);a.b("unwrap",a.a.c);Function.prototype.bind||(Function.prototype.bind=function(a){var c= +a.a.$a);a.b("utils.getFormFields",a.a.ab);a.b("utils.peekObservable",a.a.Ha);a.b("utils.postJson",a.a.Xb);a.b("utils.parseJson",a.a.Wb);a.b("utils.registerEventHandler",a.a.r);a.b("utils.stringifyJson",a.a.Na);a.b("utils.range",a.a.Zb);a.b("utils.toggleDomNodeCssClass",a.a.ma);a.b("utils.triggerEvent",a.a.da);a.b("utils.unwrapObservable",a.a.c);a.b("utils.objectForEach",a.a.K);a.b("utils.addOrRemoveItem",a.a.V);a.b("unwrap",a.a.c);Function.prototype.bind||(Function.prototype.bind=function(a){var c= this,d=Array.prototype.slice.call(arguments);a=d.shift();return function(){return c.apply(a,d.concat(Array.prototype.slice.call(arguments)))}});a.a.f=new function(){function a(b,h){var k=b[d];if(!k||"null"===k||!e[k]){if(!h)return q;k=b[d]="ko"+c++;e[k]={}}return e[k]}var c=0,d="__ko__"+(new Date).getTime(),e={};return{get:function(c,d){var e=a(c,!1);return e===q?q:e[d]},set:function(c,d,e){if(e!==q||a(c,!1)!==q)a(c,!0)[d]=e},clear:function(a){var b=a[d];return b?(delete e[b],a[d]=null,!0):!1},D:function(){return c++ + d}}};a.b("utils.domData",a.a.f);a.b("utils.domData.clear",a.a.f.clear);a.a.C=new function(){function b(b,c){var e=a.a.f.get(b,d);e===q&&c&&(e=[],a.a.f.set(b,d,e));return e}function c(d){var e=b(d,!1);if(e)for(var e=e.slice(0),m=0;m",""]||!d.indexOf("",""]||(!d.indexOf("",""]||[0,"",""];b="ignored
"+d[1]+b+d[2]+"
";for("function"==typeof y.innerShiv?c.appendChild(y.innerShiv(b)):c.innerHTML=b;d[0]--;)c=c.lastChild;c=a.a.Q(c.lastChild.childNodes)}return c};a.a.Ka=function(b,c){a.a.wa(b);c=a.a.c(c);if(null!==c&&c!==q)if("string"!=typeof c&&(c=c.toString()),"undefined"!=typeof u)u(b).html(c);else for(var d=a.a.Fa(c),e=0;ec[0]?l+c[0]:c[0]),l);for(var l=1===n?l:Math.min(b+(c[1]||0),l),n=b+n-2,r=Math.max(l,n),v=2;bc[0]?l+c[0]:c[0]),l);for(var l=1===n?l:Math.min(b+(c[1]||0),l),n=b+n-2,r=Math.max(l,n),v=2;bc;c++)b=b();return b})};a.toJSON=function(b,c,d){b=a.tb(b);return a.a.Na(b,c,d)};d.prototype={save:function(b,c){var d=a.a.l(this.keys,b);0<=d?this.Qa[d]=c:(this.keys.push(b),this.Qa.push(c))},get:function(b){b=a.a.l(this.keys,b);return 0<=b?this.Qa[b]:q}}})(); -a.b("toJS",a.tb);a.b("toJSON",a.toJSON);(function(){a.k={o:function(b){switch(a.a.v(b)){case "option":return!0===b.__ko__hasDomDataOptionValue__?a.a.f.get(b,a.d.options.Ea):7>=a.a.ja?b.getAttributeNode("value")&&b.getAttributeNode("value").specified?b.value:b.text:b.value;case "select":return 0<=b.selectedIndex?a.k.o(b.options[b.selectedIndex]):q;default:return b.value}},na:function(b,c){switch(a.a.v(b)){case "option":switch(typeof c){case "string":a.a.f.set(b,a.d.options.Ea,q);"__ko__hasDomDataOptionValue__"in -b&&delete b.__ko__hasDomDataOptionValue__;b.value=c;break;default:a.a.f.set(b,a.d.options.Ea,c),b.__ko__hasDomDataOptionValue__=!0,b.value="number"===typeof c?c:""}break;case "select":""===c&&(c=q);if(null===c||c===q)b.selectedIndex=-1;for(var d=b.options.length-1;0<=d;d--)if(a.k.o(b.options[d])==c){b.selectedIndex=d;break}1=n){k&&c.push(l?{key:k,value:l.join("")}:{unknown:k});k=l=n=0;continue}}else if(58===t){if(!l)continue}else if(47===t&&r&&1=a.a.ja&&c in M?(c=M[c],h?b.removeAttribute(c):b[c]=d):h||b.setAttribute(c,d.toString());"name"===c&&a.a.pb(b,h?"":d.toString())})}};(function(){a.d.checked={after:["value","attr"],init:function(b,c,d){function e(){return d.has("checkedValue")?a.a.c(d.get("checkedValue")):b.value}function g(){var k=b.checked,g=s?e():k;if(l&&(!m||k)){var h=a.i.p(c);f?p!==g?(k&&(a.a.V(h,g,!0),a.a.V(h,p,!1)),p=g):a.a.V(h,g,k):a.g.oa(h,d,"checked",g,!0)}}function h(){var d=a.a.c(c());b.checked=f?0<=a.a.l(d,e()):k?d: -e()===d}var k="checkbox"==b.type,m="radio"==b.type;if(k||m){var f=k&&a.a.c(c())instanceof Array,p=f?e():q,s=m||f,l=!1;m&&!b.name&&a.d.uniqueName.init(b,function(){return!0});a.h(g,null,{I:b});a.a.r(b,"click",g);a.h(h,null,{I:b});l=!0}}};a.g.U.checked=!0;a.d.checkedValue={update:function(b,c){b.value=a.a.c(c())}}})();a.d.css={update:function(b,c){var d=a.a.c(c());"object"==typeof d?a.a.L(d,function(c,d){d=a.a.c(d);a.a.ma(b,c,d)}):(d=String(d||""),a.a.ma(b,b.__ko__cssValue,!1),b.__ko__cssValue=d,a.a.ma(b, -d,!0))}};a.d.enable={update:function(b,c){var d=a.a.c(c());d&&b.disabled?b.removeAttribute("disabled"):d||b.disabled||(b.disabled=!0)}};a.d.disable={update:function(b,c){a.d.enable.update(b,function(){return!a.a.c(c())})}};a.d.event={init:function(b,c,d,e,g){var h=c()||{};a.a.L(h,function(k){"string"==typeof k&&a.a.r(b,k,function(b){var f,h=c()[k];if(h){try{var s=a.a.Q(arguments);e=g.$data;s.unshift(e);f=h.apply(e,s)}finally{!0!==f&&(b.preventDefault?b.preventDefault():b.returnValue=!1)}!1===d.get(k+ -"Bubble")&&(b.cancelBubble=!0,b.stopPropagation&&b.stopPropagation())}})})}};a.d.foreach={hb:function(b){return function(){var c=b(),d=a.a.Ha(c);if(!d||"number"==typeof d.length)return{foreach:c,templateEngine:a.K.Aa};a.a.c(c);return{foreach:d.data,as:d.as,includeDestroyed:d.includeDestroyed,afterAdd:d.afterAdd,beforeRemove:d.beforeRemove,afterRender:d.afterRender,beforeMove:d.beforeMove,afterMove:d.afterMove,templateEngine:a.K.Aa}}},init:function(b,c){return a.d.template.init(b,a.d.foreach.hb(c))}, -update:function(b,c,d,e,g){return a.d.template.update(b,a.d.foreach.hb(c),d,e,g)}};a.g.Y.foreach=!1;a.e.P.foreach=!0;a.d.hasfocus={init:function(b,c,d){function e(e){b.__ko_hasfocusUpdating=!0;var g=b.ownerDocument;if("activeElement"in g){var f;try{f=g.activeElement}catch(h){f=g.body}e=f===b}g=c();a.g.oa(g,d,"hasfocus",e,!0);b.__ko_hasfocusLastValue=e;b.__ko_hasfocusUpdating=!1}var g=e.bind(null,!0),h=e.bind(null,!1);a.a.r(b,"focus",g);a.a.r(b,"focusin",g);a.a.r(b,"blur",h);a.a.r(b,"focusout",h)}, -update:function(b,c){var d=!!a.a.c(c());b.__ko_hasfocusUpdating||b.__ko_hasfocusLastValue===d||(d?b.focus():b.blur(),a.i.p(a.a.da,null,[b,d?"focusin":"focusout"]))}};a.g.U.hasfocus=!0;a.d.hasFocus=a.d.hasfocus;a.g.U.hasFocus=!0;a.d.html={init:function(){return{controlsDescendantBindings:!0}},update:function(b,c){a.a.Ka(b,c())}};var L=a.a.f.D();H("if");H("ifnot",!1,!0);H("with",!0,!1,function(a,c){return a.createChildContext(c)});a.d.options={init:function(b){if("select"!==a.a.v(b))throw Error("options binding applies only to SELECT elements"); -for(;0a.a.ja?0:b.nodes)?b.nodes():null;if(c)return a.a.Q(c.cloneNode(!0).childNodes);b=b.text();return a.a.Fa(b)};a.K.Aa=new a.K;a.La(a.K.Aa);a.b("nativeTemplateEngine",a.K);(function(){a.Ba=function(){var a=this.Rb=function(){if("undefined"==typeof u||!u.tmpl)return 0;try{if(0<=u.tmpl.tag.tmpl.open.toString().indexOf("__"))return 2}catch(a){}return 1}();this.renderTemplateSource=function(b,e,g){g=g||{};if(2>a)throw Error("Your version of jQuery.tmpl is too old. Please upgrade to jQuery.tmpl 1.0.0pre or later."); -var h=b.data("precompiled");h||(h=b.text()||"",h=u.template(null,"{{ko_with $item.koBindingContext}}"+h+"{{/ko_with}}"),b.data("precompiled",h));b=[e.$data];e=u.extend({koBindingContext:e},g.templateOptions);e=u.tmpl(h,b,e);e.appendTo(w.createElement("div"));u.fragments={};return e};this.createJavaScriptEvaluatorBlock=function(a){return"{{ko_code ((function() { return "+a+" })()) }}"};this.addTemplate=function(a,b){w.write("