From 53dc509d797ad5b7ffefa16056b0ee54eb51f4ea Mon Sep 17 00:00:00 2001 From: RainLoop Team Date: Wed, 7 May 2014 20:04:32 +0400 Subject: [PATCH] Many interface improvements, optimizations --- dev/Boots/AbstractApp.js | 12 + dev/Boots/RainLoopApp.js | 17 +- dev/Common/Enums.js | 1 + dev/Common/Knockout.js | 2 +- dev/Common/Utils.js | 2 +- dev/Common/_Begin.js | 2 + dev/Knoin/Knoin.js | 2 + dev/Storages/WebMailAjaxRemote.js | 6 +- dev/Styles/Ask.less | 4 - dev/Styles/FolderSystem.less | 3 - dev/Styles/Languages.less | 1 - dev/Styles/Layout.less | 16 + dev/Styles/MessageList.less | 2 +- dev/ViewModels/MailBoxFolderListViewModel.js | 18 +- dev/ViewModels/MailBoxMessageListViewModel.js | 30 +- dev/ViewModels/MailBoxMessageViewViewModel.js | 22 +- .../0.0.0/app/libraries/MailSo/Base/Utils.php | 26 +- .../app/libraries/MailSo/Imap/ImapClient.php | 18 +- .../app/libraries/MailSo/Smtp/SmtpClient.php | 3 +- .../libraries/RainLoop/Common/PdoAbstract.php | 5 - .../RainLoop/Providers/AddressBook.php | 8 +- .../Providers/AddressBook/PdoAddressBook.php | 2 +- .../v/0.0.0/app/libraries/RainLoop/Utils.php | 3 +- .../app/templates/Views/MailMessageList.html | 10 +- .../app/templates/Views/MailMessageView.html | 16 +- rainloop/v/0.0.0/static/css/app.css | 118 ++++---- rainloop/v/0.0.0/static/css/app.min.css | 2 +- .../v/0.0.0/static/css/fonts/rainloop.eot | Bin 17948 -> 17976 bytes .../v/0.0.0/static/css/fonts/rainloop.svg | 79 ++--- .../v/0.0.0/static/css/fonts/rainloop.ttf | Bin 17780 -> 17808 bytes .../v/0.0.0/static/css/fonts/rainloop.woff | Bin 12696 -> 12572 bytes rainloop/v/0.0.0/static/js/admin.js | 125 ++++---- rainloop/v/0.0.0/static/js/admin.min.js | 8 +- rainloop/v/0.0.0/static/js/app.js | 278 ++++++++++++------ rainloop/v/0.0.0/static/js/app.min.js | 18 +- rainloop/v/0.0.0/static/js/libs.js | 104 +++---- vendors/fontastic/fonts/rainloop.eot | Bin 17948 -> 17976 bytes vendors/fontastic/fonts/rainloop.svg | 79 ++--- vendors/fontastic/fonts/rainloop.ttf | Bin 17780 -> 17808 bytes vendors/fontastic/fonts/rainloop.woff | Bin 12696 -> 12572 bytes vendors/fontastic/icons-reference.html | 24 +- vendors/fontastic/styles.css | 81 ++--- 42 files changed, 686 insertions(+), 461 deletions(-) diff --git a/dev/Boots/AbstractApp.js b/dev/Boots/AbstractApp.js index 985508f7c..18db6cd40 100644 --- a/dev/Boots/AbstractApp.js +++ b/dev/Boots/AbstractApp.js @@ -41,6 +41,18 @@ function AbstractApp() ); } }); + + $document.on('keydown', function (oEvent) { + if (oEvent && oEvent.ctrlKey) + { + $html.addClass('rl-ctrl-key-pressed'); + } + }).on('keyup', function (oEvent) { + if (oEvent && !oEvent.ctrlKey) + { + $html.removeClass('rl-ctrl-key-pressed'); + } + }); } _.extend(AbstractApp.prototype, KnoinAbstractBoot.prototype); diff --git a/dev/Boots/RainLoopApp.js b/dev/Boots/RainLoopApp.js index 2c9a28957..87d5c57a8 100644 --- a/dev/Boots/RainLoopApp.js +++ b/dev/Boots/RainLoopApp.js @@ -207,10 +207,20 @@ RainLoopApp.prototype.contactsSync = function (fResultFunc) RainLoopApp.prototype.messagesMoveTrigger = function () { - var self = this; + var + self = this, + sSpamFolder = RL.data().spamFolder() + ; _.each(this.oMoveCache, function (oItem) { - RL.remote().messagesMove(self.moveOrDeleteResponseHelper, oItem['From'], oItem['To'], oItem['Uid']); + + var + bSpam = sSpamFolder === oItem['To'], + bHam = !bSpam && sSpamFolder === oItem['From'] && 'INBOX' === oItem['To'] + ; + + RL.remote().messagesMove(self.moveOrDeleteResponseHelper, oItem['From'], oItem['To'], oItem['Uid'], + bSpam ? 'SPAM' : (bHam ? 'HAM' : '')); }); this.oMoveCache = {}; @@ -307,6 +317,9 @@ RainLoopApp.prototype.deleteMessagesFromFolder = function (iDeleteType, sFromFol oMoveFolder = oCache.getFolderFromCacheList(oData.spamFolder()); nSetSystemFoldersNotification = Enums.SetSystemFoldersNotification.Spam; break; + case Enums.FolderType.NotSpam: + oMoveFolder = oCache.getFolderFromCacheList('INBOX'); + break; case Enums.FolderType.Trash: oMoveFolder = oCache.getFolderFromCacheList(oData.trashFolder()); nSetSystemFoldersNotification = Enums.SetSystemFoldersNotification.Trash; diff --git a/dev/Common/Enums.js b/dev/Common/Enums.js index df28bd75a..1ca79c3ed 100644 --- a/dev/Common/Enums.js +++ b/dev/Common/Enums.js @@ -55,6 +55,7 @@ Enums.FolderType = { 'Trash': 13, 'Spam': 14, 'Archive': 15, + 'NotSpam': 80, 'User': 99 }; diff --git a/dev/Common/Knockout.js b/dev/Common/Knockout.js index f9fa57bf8..bbe2f6211 100644 --- a/dev/Common/Knockout.js +++ b/dev/Common/Knockout.js @@ -386,7 +386,7 @@ ko.bindingHandlers.draggable = { } oConf['helper'] = function (oEvent) { - return fValueAccessor()(oEvent && oEvent.target ? ko.dataFor(oEvent.target) : null, !!oEvent.shiftKey); + return fValueAccessor()(oEvent && oEvent.target ? ko.dataFor(oEvent.target) : null); }; $(oElement).draggable(oConf).on('mousedown', function () { diff --git a/dev/Common/Utils.js b/dev/Common/Utils.js index 53cb9d2cf..3ce98157a 100644 --- a/dev/Common/Utils.js +++ b/dev/Common/Utils.js @@ -1337,7 +1337,7 @@ Utils.convertPlainTextToHtml = function (sPlain) Utils.draggeblePlace = function () { - return $('
 
').appendTo('#rl-hidden'); + return $('
 
').appendTo('#rl-hidden'); }; Utils.defautOptionsAfterRender = function (oOption, oItem) diff --git a/dev/Common/_Begin.js b/dev/Common/_Begin.js index c55cd7aac..d6706c21a 100644 --- a/dev/Common/_Begin.js +++ b/dev/Common/_Begin.js @@ -67,6 +67,8 @@ var I18n = window['rainloopI18N'] || {}, $html = $('html'), + +// $body = $('body'), $window = $(window), diff --git a/dev/Knoin/Knoin.js b/dev/Knoin/Knoin.js index e7ae6f297..8fbff1348 100644 --- a/dev/Knoin/Knoin.js +++ b/dev/Knoin/Knoin.js @@ -110,6 +110,7 @@ Knoin.prototype.buildViewModel = function (ViewModelClass, oScreen) this.storeAndSetKeyScope(); RL.popupVisibilityNames.push(this.viewModelName); + oViewModel.viewModelDom.css('z-index', 3000 + RL.popupVisibilityNames().length + 10); Utils.delegateRun(this, 'onFocus', [], 500); } @@ -119,6 +120,7 @@ Knoin.prototype.buildViewModel = function (ViewModelClass, oScreen) this.restoreKeyScope(); RL.popupVisibilityNames.remove(this.viewModelName); + oViewModel.viewModelDom.css('z-index', 2000); _.delay(function () { self.viewModelDom.hide(); diff --git a/dev/Storages/WebMailAjaxRemote.js b/dev/Storages/WebMailAjaxRemote.js index 0165616fc..7376b798f 100644 --- a/dev/Storages/WebMailAjaxRemote.js +++ b/dev/Storages/WebMailAjaxRemote.js @@ -612,13 +612,15 @@ WebMailAjaxRemoteStorage.prototype.folderSetSubscribe = function (fCallback, sFo * @param {string} sFolder * @param {string} sToFolder * @param {Array} aUids + * @param {string=} sLearning */ -WebMailAjaxRemoteStorage.prototype.messagesMove = function (fCallback, sFolder, sToFolder, aUids) +WebMailAjaxRemoteStorage.prototype.messagesMove = function (fCallback, sFolder, sToFolder, aUids, sLearning) { this.defaultRequest(fCallback, 'MessageMove', { 'FromFolder': sFolder, 'ToFolder': sToFolder, - 'Uids': aUids.join(',') + 'Uids': aUids.join(','), + 'Learning': sLearning || '' }, null, '', ['MessageList']); }; diff --git a/dev/Styles/Ask.less b/dev/Styles/Ask.less index de9299341..8c46a3f98 100644 --- a/dev/Styles/Ask.less +++ b/dev/Styles/Ask.less @@ -1,10 +1,6 @@ .popups { .b-ask-content { - &.modal { - z-index: 10000; - } - .modal-header { background-color: #fff; } diff --git a/dev/Styles/FolderSystem.less b/dev/Styles/FolderSystem.less index d315d2379..9d3b54ef0 100644 --- a/dev/Styles/FolderSystem.less +++ b/dev/Styles/FolderSystem.less @@ -1,8 +1,5 @@ .popups { .b-folder-system-content { - &.modal { - z-index: 1102; - } .modal-header { background-color: #fff; } diff --git a/dev/Styles/Languages.less b/dev/Styles/Languages.less index c5e0a5e60..ffaa11931 100644 --- a/dev/Styles/Languages.less +++ b/dev/Styles/Languages.less @@ -2,7 +2,6 @@ .b-languages-content { &.modal { - z-index: 1103; width: 700px; } diff --git a/dev/Styles/Layout.less b/dev/Styles/Layout.less index 849b88c23..2927b77f8 100644 --- a/dev/Styles/Layout.less +++ b/dev/Styles/Layout.less @@ -225,6 +225,22 @@ html.rl-no-preview-pane { } } +.visible-on-ctrl { + display: none; +} + +.hidden-on-ctrl { + display: inline-block; +} + +html.rl-ctrl-key-pressed .visible-on-ctrl { + display: inline-block; +} + +html.rl-ctrl-key-pressed .hidden-on-ctrl { + display: none; +} + #rl-loading, #rl-loading-error { position: absolute; font: 30px Tahoma; diff --git a/dev/Styles/MessageList.less b/dev/Styles/MessageList.less index b942720db..ce4604d4f 100644 --- a/dev/Styles/MessageList.less +++ b/dev/Styles/MessageList.less @@ -52,7 +52,7 @@ html.rl-no-preview-pane { padding-left: 8px; padding-right: 8px; } - + .b-message-list-wrapper { position: absolute; top: 50px; diff --git a/dev/ViewModels/MailBoxFolderListViewModel.js b/dev/ViewModels/MailBoxFolderListViewModel.js index 16eb3a68b..94bcc1928 100644 --- a/dev/ViewModels/MailBoxFolderListViewModel.js +++ b/dev/ViewModels/MailBoxFolderListViewModel.js @@ -116,6 +116,22 @@ MailBoxFolderListViewModel.prototype.onBuild = function (oDom) return false; }); + key('space', Enums.KeyState.FolderList, function () { + var bCollapsed = true, oFolder = null, $items = $('.b-folders .e-item .e-link:not(.hidden).focused', oDom); + if ($items.length && $items[0]) + { + oFolder = ko.dataFor($items[0]); + if (oFolder) + { + bCollapsed = oFolder.collapsed(); + Utils.setExpandedFolder(oFolder.fullNameHash, bCollapsed); + oFolder.collapsed(!bCollapsed); + } + } + + return false; + }); + key('esc, tab, shift+tab, right', Enums.KeyState.FolderList, function () { self.folderList.focused(false); return false; @@ -159,7 +175,7 @@ MailBoxFolderListViewModel.prototype.messagesDrop = function (oToFolder, oUi) { var sFromFolderFullNameRaw = oUi.helper.data('rl-folder'), - bCopy = '1' === oUi.helper.data('rl-copy'), + bCopy = $html.hasClass('rl-ctrl-key-pressed'), aUids = oUi.helper.data('rl-uids') ; diff --git a/dev/ViewModels/MailBoxMessageListViewModel.js b/dev/ViewModels/MailBoxMessageListViewModel.js index ebaa863c6..b94d86cff 100644 --- a/dev/ViewModels/MailBoxMessageListViewModel.js +++ b/dev/ViewModels/MailBoxMessageListViewModel.js @@ -172,6 +172,12 @@ function MailBoxMessageListViewModel() RL.data().messageListCheckedOrSelectedUidsWithSubMails(), true); }, this.canBeMoved); + this.notSpamCommand = Utils.createCommand(this, function () { + RL.deleteMessagesFromFolder(Enums.FolderType.NotSpam, + RL.data().currentFolderFullNameRaw(), + RL.data().messageListCheckedOrSelectedUidsWithSubMails(), true); + }, this.canBeMoved); + this.moveCommand = Utils.createCommand(this, Utils.emptyFunction, this.canBeMoved); this.reloadCommand = Utils.createCommand(this, function () { @@ -263,30 +269,40 @@ MailBoxMessageListViewModel.prototype.cancelSearch = function () * @param {string} sToFolderFullNameRaw * @return {boolean} */ -MailBoxMessageListViewModel.prototype.moveSelectedMessagesToFolder = function (sToFolderFullNameRaw) +MailBoxMessageListViewModel.prototype.moveSelectedMessagesToFolder = function (sToFolderFullNameRaw, bCopy) { if (this.canBeMoved()) { RL.moveMessagesToFolder( RL.data().currentFolderFullNameRaw(), - RL.data().messageListCheckedOrSelectedUidsWithSubMails(), sToFolderFullNameRaw); + RL.data().messageListCheckedOrSelectedUidsWithSubMails(), sToFolderFullNameRaw, bCopy); } return false; }; -MailBoxMessageListViewModel.prototype.dragAndDronHelper = function (oMessageListItem, bCopy) +MailBoxMessageListViewModel.prototype.dragAndDronHelper = function (oMessageListItem) { if (oMessageListItem) { oMessageListItem.checked(true); } - var oEl = Utils.draggeblePlace(); + var + oEl = Utils.draggeblePlace(), + aUids = RL.data().messageListCheckedOrSelectedUidsWithSubMails() + ; + oEl.data('rl-folder', RL.data().currentFolderFullNameRaw()); - oEl.data('rl-uids', RL.data().messageListCheckedOrSelectedUidsWithSubMails()); - oEl.data('rl-copy', bCopy ? '1' : '0'); - oEl.find('.text').text((bCopy ? '+' : '') + '' + RL.data().messageListCheckedOrSelectedUidsWithSubMails().length); + oEl.data('rl-uids', aUids); + oEl.find('.text').text('' + aUids.length); + + _.defer(function () { + var aUids = RL.data().messageListCheckedOrSelectedUidsWithSubMails(); + + oEl.data('rl-uids', aUids); + oEl.find('.text').text('' + aUids.length); + }); return oEl; }; diff --git a/dev/ViewModels/MailBoxMessageViewViewModel.js b/dev/ViewModels/MailBoxMessageViewViewModel.js index d1b8c480c..7eeff2cd5 100644 --- a/dev/ViewModels/MailBoxMessageViewViewModel.js +++ b/dev/ViewModels/MailBoxMessageViewViewModel.js @@ -26,6 +26,7 @@ function MailBoxMessageViewViewModel() this.currentMessage = oData.currentMessage; this.messageListChecked = oData.messageListChecked; this.hasCheckedMessages = oData.hasCheckedMessages; + this.messageListCheckedOrSelectedUidsWithSubMails = oData.messageListCheckedOrSelectedUidsWithSubMails; this.messageLoading = oData.messageLoading; this.messageLoadingThrottle = oData.messageLoadingThrottle; this.messagesBodiesDom = oData.messagesBodiesDom; @@ -87,7 +88,7 @@ function MailBoxMessageViewViewModel() { RL.deleteMessagesFromFolder(Enums.FolderType.Trash, RL.data().currentFolderFullNameRaw(), - RL.data().messageListCheckedOrSelectedUidsWithSubMails(), false); + [this.message().uid], false); } }, this.messageVisibility); @@ -109,6 +110,15 @@ function MailBoxMessageViewViewModel() } }, this.messageVisibility); + this.notSpamCommand = Utils.createCommand(this, function () { + if (this.message()) + { + RL.deleteMessagesFromFolder(Enums.FolderType.NotSpam, + this.message().folderFullNameRaw, + [this.message().uid], true); + } + }, this.messageVisibility); + // viewer this.viewSubject = ko.observable(''); this.viewFromShort = ko.observable(''); @@ -623,6 +633,16 @@ MailBoxMessageViewViewModel.prototype.showImages = function (oMessage) } }; +/** + * @returns {string} + */ +MailBoxMessageViewViewModel.prototype.printableCheckedMessageCount = function () +{ + var iCnt = this.messageListCheckedOrSelectedUidsWithSubMails().length; + return 0 < iCnt ? (100 > iCnt ? iCnt : '99+') : ''; +}; + + /** * @param {MessageModel} oMessage */ diff --git a/rainloop/v/0.0.0/app/libraries/MailSo/Base/Utils.php b/rainloop/v/0.0.0/app/libraries/MailSo/Base/Utils.php index 4dd9c1a10..8a6f25dd4 100644 --- a/rainloop/v/0.0.0/app/libraries/MailSo/Base/Utils.php +++ b/rainloop/v/0.0.0/app/libraries/MailSo/Base/Utils.php @@ -827,34 +827,34 @@ class Utils /** * @staticvar bool $bValidateAction * - * @param int &$iTimer * @param int $iTimeToReset = 15 * @param int $iTimeToAdd = 120 * * @return bool */ - public static function ResetTimeLimit(&$iTimer, $iTimeToReset = 15, $iTimeToAdd = 120) + public static function ResetTimeLimit($iTimeToReset = 15, $iTimeToAdd = 120) { static $bValidateAction = null; + static $iResetTimer = null; + if (null === $bValidateAction) { + $iResetTimer = 0; + $sSafeMode = \strtolower(\trim(@\ini_get('safe_mode'))); $bSafeMode = 'on' === $sSafeMode || '1' === $sSafeMode || 'true' === $sSafeMode; $bValidateAction = !$bSafeMode && \MailSo\Base\Utils::FunctionExistsAndEnabled('set_time_limit'); } - if ($bValidateAction) + if ($bValidateAction && $iTimeToReset < \time() - $iResetTimer) { - $iTime = \time(); - if ($iTimeToReset < $iTime - $iTimer) - { - $iTimer = $iTime; - \set_time_limit($iTimeToAdd); - } + $iResetTimer = \time(); + \set_time_limit($iTimeToAdd); + return true; } - return $bValidateAction; + return false; } /** @@ -1347,7 +1347,6 @@ class Utils */ public static function FpassthruWithTimeLimitReset($fResource, $iBufferLen = 8192) { - $iTimer = 0; $bResult = false; if (\is_resource($fResource)) { @@ -1357,7 +1356,7 @@ class Utils if (false !== $sBuffer) { echo $sBuffer; - \MailSo\Base\Utils::ResetTimeLimit($iTimer); + \MailSo\Base\Utils::ResetTimeLimit(); continue; } @@ -1382,7 +1381,6 @@ class Utils */ public static function MultipleStreamWriter($rRead, $aWrite, $iBufferLen = 8192, $bResetTimeLimit = true, $bFixCrLf = false, $bRewindOnComplete = false) { - $iTimer = 0; $mResult = false; if ($rRead && \is_array($aWrite) && 0 < \count($aWrite)) { @@ -1420,7 +1418,7 @@ class Utils if ($bResetTimeLimit) { - \MailSo\Base\Utils::ResetTimeLimit($iTimer); + \MailSo\Base\Utils::ResetTimeLimit(); } } } diff --git a/rainloop/v/0.0.0/app/libraries/MailSo/Imap/ImapClient.php b/rainloop/v/0.0.0/app/libraries/MailSo/Imap/ImapClient.php index 2e2244ad5..e18545186 100644 --- a/rainloop/v/0.0.0/app/libraries/MailSo/Imap/ImapClient.php +++ b/rainloop/v/0.0.0/app/libraries/MailSo/Imap/ImapClient.php @@ -1788,7 +1788,7 @@ class ImapClient extends \MailSo\Net\NetClient $bIsClosingBracketSquare = false; $iLiteralLen = 0; $iBufferEndIndex = 0; - $iTimer = 0; + $iDebugCount = 0; $rImapLiteralStream = null; @@ -1810,6 +1810,12 @@ class ImapClient extends \MailSo\Net\NetClient while (!$bIsEndOfList) { + $iDebugCount++; + if (100000 === $iDebugCount) + { + $this->Logger()->Write('PartialParseOver: '.$iDebugCount, \MailSo\Log\Enumerations\Type::ERROR); + } + if ($this->bNeedNext) { $iPos = 0; @@ -1854,7 +1860,7 @@ class ImapClient extends \MailSo\Net\NetClient $sLiteral .= $sAddRead; $iRead -= \strlen($sAddRead); - \MailSo\Base\Utils::ResetTimeLimit($iTimer); + \MailSo\Base\Utils::ResetTimeLimit(); } if (false !== $sLiteral) @@ -2203,6 +2209,11 @@ class ImapClient extends \MailSo\Net\NetClient $this->iResponseBufParsedPos = 0; } + if (100000 < $iDebugCount) + { + $this->Logger()->Write('PartialParseOverResult: '.$iDebugCount, \MailSo\Log\Enumerations\Type::ERROR); + } + return $bTreatAsAtom ? $sAtomBuilder : $aList; } @@ -2249,14 +2260,13 @@ class ImapClient extends \MailSo\Net\NetClient \call_user_func($this->aFetchCallbacks[$sFetchKey], $sParent, $sLiteralAtomUpperCase, $rImapLiteralStream); - $iTimer = 0; $iNotReadLiteralLen = 0; while (!\feof($rImapLiteralStream)) { $sBuf = \fread($rImapLiteralStream, 8192); if (false !== $sBuf) { - \MailSo\Base\Utils::ResetTimeLimit($iTimer); + \MailSo\Base\Utils::ResetTimeLimit(); $iNotReadLiteralLen += \strlen($sBuf); continue; } diff --git a/rainloop/v/0.0.0/app/libraries/MailSo/Smtp/SmtpClient.php b/rainloop/v/0.0.0/app/libraries/MailSo/Smtp/SmtpClient.php index 301e222b0..de0f4a979 100644 --- a/rainloop/v/0.0.0/app/libraries/MailSo/Smtp/SmtpClient.php +++ b/rainloop/v/0.0.0/app/libraries/MailSo/Smtp/SmtpClient.php @@ -403,7 +403,6 @@ class SmtpClient extends \MailSo\Net\NetClient $this->writeLog('Message data.', \MailSo\Log\Enumerations\Type::NOTE); - $iTimer = 0; while (!\feof($rDataStream)) { $sBuffer = \fgets($rDataStream); @@ -416,7 +415,7 @@ class SmtpClient extends \MailSo\Net\NetClient $this->sendRaw(\rtrim($sBuffer, "\r\n"), false); - \MailSo\Base\Utils::ResetTimeLimit($iTimer); + \MailSo\Base\Utils::ResetTimeLimit(); continue; } else if (!\feof($rDataStream)) diff --git a/rainloop/v/0.0.0/app/libraries/RainLoop/Common/PdoAbstract.php b/rainloop/v/0.0.0/app/libraries/RainLoop/Common/PdoAbstract.php index c2d4f2f77..1e2738bf1 100644 --- a/rainloop/v/0.0.0/app/libraries/RainLoop/Common/PdoAbstract.php +++ b/rainloop/v/0.0.0/app/libraries/RainLoop/Common/PdoAbstract.php @@ -14,11 +14,6 @@ abstract class PdoAbstract */ protected $bExplain = false; - /** - * @var int - */ - protected $iResetTimer = 0; - /** * @var \MailSo\Log\Logger */ diff --git a/rainloop/v/0.0.0/app/libraries/RainLoop/Providers/AddressBook.php b/rainloop/v/0.0.0/app/libraries/RainLoop/Providers/AddressBook.php index 42ac2c3a3..a088c8bba 100644 --- a/rainloop/v/0.0.0/app/libraries/RainLoop/Providers/AddressBook.php +++ b/rainloop/v/0.0.0/app/libraries/RainLoop/Providers/AddressBook.php @@ -252,14 +252,12 @@ class AddressBook extends \RainLoop\Providers\AbstractProvider public function ImportCsvArray($sEmail, $aCsvData) { $iCount = 0; - $iResetTimer = 0; - if ($this->IsActive() && \is_array($aCsvData) && 0 < \count($aCsvData)) { $oContact = new \RainLoop\Providers\AddressBook\Classes\Contact(); foreach ($aCsvData as $aItem) { - \MailSo\Base\Utils::ResetTimeLimit($iResetTimer); + \MailSo\Base\Utils::ResetTimeLimit(); foreach ($aItem as $sItemName => $sItemValue) { @@ -309,8 +307,6 @@ class AddressBook extends \RainLoop\Providers\AbstractProvider public function ImportVcfFile($sEmail, $sVcfData) { $iCount = 0; - $iResetTimer = 0; - if ($this->IsActive() && \is_string($sVcfData)) { $sVcfData = \trim($sVcfData); @@ -339,7 +335,7 @@ class AddressBook extends \RainLoop\Providers\AbstractProvider { if ($oVCard instanceof \Sabre\VObject\Component\VCard) { - \MailSo\Base\Utils::ResetTimeLimit($iResetTimer); + \MailSo\Base\Utils::ResetTimeLimit(); if (empty($oVCard->UID)) { diff --git a/rainloop/v/0.0.0/app/libraries/RainLoop/Providers/AddressBook/PdoAddressBook.php b/rainloop/v/0.0.0/app/libraries/RainLoop/Providers/AddressBook/PdoAddressBook.php index 9376bfecb..8ca30617b 100644 --- a/rainloop/v/0.0.0/app/libraries/RainLoop/Providers/AddressBook/PdoAddressBook.php +++ b/rainloop/v/0.0.0/app/libraries/RainLoop/Providers/AddressBook/PdoAddressBook.php @@ -158,7 +158,7 @@ class PdoAddressBook private function davClientRequest($oClient, $sCmd, $sUrl, $mData = null) { - \MailSo\Base\Utils::ResetTimeLimit($this->iResetTimer); + \MailSo\Base\Utils::ResetTimeLimit(); $this->oLogger->Write($sCmd.' '.$sUrl.('PUT' === $sCmd && null !== $mData ? ' ('.\strlen($mData).')' : ''), \MailSo\Log\Enumerations\Type::INFO, 'DAV'); diff --git a/rainloop/v/0.0.0/app/libraries/RainLoop/Utils.php b/rainloop/v/0.0.0/app/libraries/RainLoop/Utils.php index b012a4c87..680c82f2f 100644 --- a/rainloop/v/0.0.0/app/libraries/RainLoop/Utils.php +++ b/rainloop/v/0.0.0/app/libraries/RainLoop/Utils.php @@ -320,7 +320,7 @@ class Utils 'facebook.com' => 'facebook.png', 'facebookmail.com' => 'facebook.png', - 'cnet.online.com' => 'cnet.jpg', + 'cnet.online.com' => 'cnet.jpg', 'github.com' => 'github.png', 'steampowered.com' => 'steam.png', 'myspace.com' => 'myspace.png', @@ -328,7 +328,6 @@ class Utils 'youtube.com' => 'youtube.gif', 'amazon.com' => 'amazon.png', 'ted.com' => 'ted.png', - 'icloud.com' => 'icloud.jpg', 'google.com' => 'google.png', 'plus.google.com' => 'google-plus.png', diff --git a/rainloop/v/0.0.0/app/templates/Views/MailMessageList.html b/rainloop/v/0.0.0/app/templates/Views/MailMessageList.html index 4d2a25bf0..211c2d453 100644 --- a/rainloop/v/0.0.0/app/templates/Views/MailMessageList.html +++ b/rainloop/v/0.0.0/app/templates/Views/MailMessageList.html @@ -11,7 +11,8 @@