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

View file

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

View file

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

View file

@ -1566,7 +1566,7 @@ class Actions
if ($this->GetCapa(false, \RainLoop\Enumerations\Capa::THEMES, $oAccount)) if ($this->GetCapa(false, \RainLoop\Enumerations\Capa::THEMES, $oAccount))
{ {
$sTheme = $oSettings->GetConf('Theme', $sTheme); $sTheme = $oSettingsLocal->GetConf('Theme', $sTheme);
} }
$aResult['SentFolder'] = $oSettingsLocal->GetConf('SentFolder', ''); $aResult['SentFolder'] = $oSettingsLocal->GetConf('SentFolder', '');
@ -4095,16 +4095,38 @@ class Actions
$sVersion = empty($aData['version']) ? '' : $aData['version']; $sVersion = empty($aData['version']) ? '' : $aData['version'];
$sType = empty($aData['channel']) ? 'stable' : $aData['channel']; $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( return $this->DefaultResponse(__FUNCTION__, array(
'Real' => $bReal, 'Real' => $bReal,
'Access' => $bRainLoopAccess, 'Access' => $bRainLoopAccess,
'Updatable' => $bRainLoopUpdatable, 'Updatable' => $bRainLoopUpdatable,
'Warning' => $bShowWarning,
'Channel' => $this->getCoreChannel(), 'Channel' => $this->getCoreChannel(),
'Type' => $sType, 'Type' => $sType,
'Version' => APP_VERSION, 'Version' => $sCurrentVersion,
'RemoteVersion' => $sVersion, 'RemoteVersion' => $sVersion,
'RemoteRelease' => empty($aData['release']) ? '' : $aData['release'], '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)) 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); return $self->ValidateTheme($sTheme);
}); });
} }
else 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) { $this->setSettingsFromParams($oSettings, 'MPP', 'int', function ($iValue) {
@ -8620,11 +8642,19 @@ class Actions
$sLanguage = $this->Config()->Get('webmail', 'language', 'en'); $sLanguage = $this->Config()->Get('webmail', 'language', 'en');
$sTheme = $this->Config()->Get('webmail', 'theme', 'Default'); $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) if ($oSettings instanceof \RainLoop\Settings)
{ {
$sLanguage = $oSettings->GetConf('Language', $sLanguage); $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); $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> <a class="g-ui-link" href="http://rainloop.net/" target="_blank">http://rainloop.net/</a>
</div> </div>
</div> </div>
<div class="span6 rl-desc"> <div class="span8 rl-desc">
<h1 style="margin-bottom: 0;">RainLoop</h1> <h1 style="margin-bottom: 0;">RainLoop</h1>
<h4 style="margin-top: 0;"> <h4 style="margin-top: 0;">
<span data-bind="text: version"></span> <span data-bind="text: version"></span>
@ -37,6 +37,15 @@
(<span data-bind="text: coreRemoteRelease"></span>) (<span data-bind="text: coreRemoteRelease"></span>)
</span> </span>
<br /> <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 /> <br />
<span data-bind="visible: coreUpdatable() && coreAccess()"> <span data-bind="visible: coreUpdatable() && coreAccess()">
<a class="btn" data-bind="click: updateCoreData"> <a class="btn" data-bind="click: updateCoreData">