Added warning message to admin panel.

This commit is contained in:
RainLoop Team 2015-02-16 18:42:24 +04:00
parent 7807138b7b
commit f1b85dda13
5 changed files with 58 additions and 10 deletions

View file

@ -140,6 +140,7 @@
Remote.updateCoreData(function (sResult, oData) {
CoreStore.coreUpdating(false);
CoreStore.coreVersion('');
CoreStore.coreRemoteVersion('');
CoreStore.coreRemoteRelease('');
CoreStore.coreVersionCompare(-2);
@ -173,6 +174,8 @@
CoreStore.coreType(oData.Result.Type || 'stable');
CoreStore.coreUpdatable(!!oData.Result.Updatable);
CoreStore.coreAccess(!!oData.Result.Access);
CoreStore.coreWarning(!!oData.Result.Warning);
CoreStore.coreVersion(oData.Result.Version || '');
CoreStore.coreRemoteVersion(oData.Result.RemoteVersion || '');
CoreStore.coreRemoteRelease(oData.Result.RemoteRelease || '');
CoreStore.coreVersionCompare(Utils.pInt(oData.Result.VersionCompare));
@ -182,6 +185,8 @@
CoreStore.coreReal(false);
CoreStore.coreChannel('stable');
CoreStore.coreType('stable');
CoreStore.coreWarning(false);
CoreStore.coreVersion('');
CoreStore.coreRemoteVersion('');
CoreStore.coreRemoteRelease('');
CoreStore.coreVersionCompare(-2);

View file

@ -26,6 +26,8 @@
this.coreAccess = CoreStore.coreAccess;
this.coreChecking = CoreStore.coreChecking;
this.coreUpdating = CoreStore.coreUpdating;
this.coreWarning = CoreStore.coreWarning;
this.coreVersion = CoreStore.coreVersion;
this.coreRemoteVersion = CoreStore.coreRemoteVersion;
this.coreRemoteRelease = CoreStore.coreRemoteRelease;
this.coreVersionCompare = CoreStore.coreVersionCompare;

View file

@ -17,8 +17,10 @@
this.coreType = ko.observable('stable');
this.coreUpdatable = ko.observable(true);
this.coreAccess = ko.observable(true);
this.coreWarning = ko.observable(false);
this.coreChecking = ko.observable(false).extend({'throttle': 100});
this.coreUpdating = ko.observable(false).extend({'throttle': 100});
this.coreVersion = ko.observable('');
this.coreRemoteVersion = ko.observable('');
this.coreRemoteRelease = ko.observable('');
this.coreVersionCompare = ko.observable(-2);

View file

@ -1566,7 +1566,7 @@ class Actions
if ($this->GetCapa(false, \RainLoop\Enumerations\Capa::THEMES, $oAccount))
{
$sTheme = $oSettings->GetConf('Theme', $sTheme);
$sTheme = $oSettingsLocal->GetConf('Theme', $sTheme);
}
$aResult['SentFolder'] = $oSettingsLocal->GetConf('SentFolder', '');
@ -4095,16 +4095,38 @@ class Actions
$sVersion = empty($aData['version']) ? '' : $aData['version'];
$sType = empty($aData['channel']) ? 'stable' : $aData['channel'];
$sWarnings = empty($aData['warnings']) ? '' : $aData['warnings'];
$aWarnings = $sWarnings ? explode('|', $sWarnings) : array();
$sCurrentVersion = APP_VERSION;
$bShowWarning = false;
if ($sCurrentVersion !== APP_DEV_VERSION)
{
foreach ($aWarnings as $sWarningVersion)
{
$sWarningVersion = \trim($sWarningVersion);
if (\version_compare($sCurrentVersion, $sWarningVersion, '<') &&
\version_compare($sVersion, $sWarningVersion, '>='))
{
$bShowWarning = true;
break;
}
}
}
return $this->DefaultResponse(__FUNCTION__, array(
'Real' => $bReal,
'Access' => $bRainLoopAccess,
'Updatable' => $bRainLoopUpdatable,
'Warning' => $bShowWarning,
'Channel' => $this->getCoreChannel(),
'Type' => $sType,
'Version' => APP_VERSION,
'Version' => $sCurrentVersion,
'RemoteVersion' => $sVersion,
'RemoteRelease' => empty($aData['release']) ? '' : $aData['release'],
'VersionCompare' => \version_compare(APP_VERSION, $sVersion)
'VersionCompare' => \version_compare($sCurrentVersion, $sVersion)
));
}
@ -4634,13 +4656,13 @@ class Actions
if ($this->GetCapa(false, \RainLoop\Enumerations\Capa::THEMES, $oAccount))
{
$this->setSettingsFromParams($oSettings, 'Theme', 'string', function ($sTheme) use ($self) {
$this->setSettingsFromParams($oSettingsLocal, 'Theme', 'string', function ($sTheme) use ($self) {
return $self->ValidateTheme($sTheme);
});
}
else
{
$oSettings->SetConf('Theme', $this->ValidateLanguage($oConfig->Get('webmail', 'theme', 'Default')));
$oSettingsLocal->SetConf('Theme', $this->ValidateLanguage($oConfig->Get('webmail', 'theme', 'Default')));
}
$this->setSettingsFromParams($oSettings, 'MPP', 'int', function ($iValue) {
@ -8620,11 +8642,19 @@ class Actions
$sLanguage = $this->Config()->Get('webmail', 'language', 'en');
$sTheme = $this->Config()->Get('webmail', 'theme', 'Default');
$oSettings = $oAccount instanceof \RainLoop\Model\Account ? $this->SettingsProvider()->Load($oAccount) : null;
if ($oAccount instanceof \RainLoop\Model\Account)
{
$oSettings = $this->SettingsProvider()->Load($oAccount);
if ($oSettings instanceof \RainLoop\Settings)
{
$sLanguage = $oSettings->GetConf('Language', $sLanguage);
$sTheme = $oSettings->GetConf('Theme', $sTheme);
}
$oSettingsLocal = $this->SettingsProvider(true)->Load($oAccount);
if ($oSettingsLocal instanceof \RainLoop\Settings)
{
$sTheme = $oSettingsLocal->GetConf('Theme', $sTheme);
}
}
$sLanguage = $this->ValidateLanguage($sLanguage);

View file

@ -12,7 +12,7 @@
<a class="g-ui-link" href="http://rainloop.net/" target="_blank">http://rainloop.net/</a>
</div>
</div>
<div class="span6 rl-desc">
<div class="span8 rl-desc">
<h1 style="margin-bottom: 0;">RainLoop</h1>
<h4 style="margin-top: 0;">
<span data-bind="text: version"></span>
@ -37,6 +37,15 @@
(<span data-bind="text: coreRemoteRelease"></span>)
</span>
<br />
<span data-bind="if: coreWarning">
<br />
<i class="icon-warning" style="color: red"></i>
&nbsp;&nbsp;
<b>Warning!</b>
&nbsp;&nbsp;
Please read the change log before updating.
<br />
</span>
<br />
<span data-bind="visible: coreUpdatable() && coreAccess()">
<a class="btn" data-bind="click: updateCoreData">