Release fixes

This commit is contained in:
RainLoop Team 2015-04-17 17:56:29 +04:00
parent b00959b2d0
commit c73eb76816
9 changed files with 67 additions and 54 deletions

View file

@ -261,7 +261,7 @@
} }
oConfig.enterMode = window.CKEDITOR.ENTER_BR; oConfig.enterMode = window.CKEDITOR.ENTER_BR;
oConfig.shiftEnterMode = window.CKEDITOR.ENTER_BR; oConfig.shiftEnterMode = window.CKEDITOR.ENTER_P;
oConfig.language = Globals.oHtmlEditorLangsMap[sLanguage] || 'en'; oConfig.language = Globals.oHtmlEditorLangsMap[sLanguage] || 'en';
if (window.CKEDITOR.env) if (window.CKEDITOR.env)
@ -269,17 +269,6 @@
window.CKEDITOR.env.isCompatible = true; window.CKEDITOR.env.isCompatible = true;
} }
// oConfig.allowedContent = {
// $1: {
// elements: window.CKEDITOR.dtd,
// attributes: true,
// styles: true,
// classes: true
// }
// };
//
// oConfig.disallowedContent = 'script; style; iframe; frame; *[on*]';
window.CKEDITOR.dtd.$removeEmpty['p'] = 1; window.CKEDITOR.dtd.$removeEmpty['p'] = 1;
self.editor = window.CKEDITOR.appendTo(self.$element[0], oConfig); self.editor = window.CKEDITOR.appendTo(self.$element[0], oConfig);

View file

@ -333,19 +333,23 @@
* @param {number=} iLimit = 20 * @param {number=} iLimit = 20
* @param {string=} sSearch = '' * @param {string=} sSearch = ''
* @param {boolean=} bSilent = false * @param {boolean=} bSilent = false
* @param {string=} sThreadUid = ''
*/ */
RemoteUserAjax.prototype.messageList = function (fCallback, sFolderFullNameRaw, iOffset, iLimit, sSearch, bSilent) RemoteUserAjax.prototype.messageList = function (fCallback, sFolderFullNameRaw, iOffset, iLimit, sSearch, bSilent, sThreadUid)
{ {
sFolderFullNameRaw = Utils.pString(sFolderFullNameRaw); sFolderFullNameRaw = Utils.pString(sFolderFullNameRaw);
var var
sFolderHash = Cache.getFolderHash(sFolderFullNameRaw) sFolderHash = Cache.getFolderHash(sFolderFullNameRaw),
bUseThreads = AppStore.threadsAllowed() && SettingsStore.useThreads(),
sInboxUidNext = Cache.getFolderInboxName() === sFolderFullNameRaw ? Cache.getFolderUidNext(sFolderFullNameRaw) : ''
; ;
bSilent = Utils.isUnd(bSilent) ? false : !!bSilent; bSilent = Utils.isUnd(bSilent) ? false : !!bSilent;
iOffset = Utils.isUnd(iOffset) ? 0 : Utils.pInt(iOffset); iOffset = Utils.isUnd(iOffset) ? 0 : Utils.pInt(iOffset);
iLimit = Utils.isUnd(iOffset) ? 20 : Utils.pInt(iLimit); iLimit = Utils.isUnd(iOffset) ? 20 : Utils.pInt(iLimit);
sSearch = Utils.pString(sSearch); sSearch = Utils.pString(sSearch);
sThreadUid = Utils.pString(sThreadUid);
if ('' !== sFolderHash && ('' === sSearch || -1 === sSearch.indexOf('is:'))) if ('' !== sFolderHash && ('' === sSearch || -1 === sSearch.indexOf('is:')))
{ {
@ -358,9 +362,9 @@
sSearch, sSearch,
AppStore.projectHash(), AppStore.projectHash(),
sFolderHash, sFolderHash,
Cache.getFolderInboxName() === sFolderFullNameRaw ? Cache.getFolderUidNext(sFolderFullNameRaw) : '', sInboxUidNext,
AppStore.threadsAllowed() && SettingsStore.useThreads() ? '1' : '0', bUseThreads ? '1' : '0',
'' bUseThreads ? sThreadUid : ''
].join(String.fromCharCode(0))), bSilent ? [] : ['MessageList']); ].join(String.fromCharCode(0))), bSilent ? [] : ['MessageList']);
} }
else else
@ -370,9 +374,11 @@
'Offset': iOffset, 'Offset': iOffset,
'Limit': iLimit, 'Limit': iLimit,
'Search': sSearch, 'Search': sSearch,
'UidNext': Cache.getFolderInboxName() === sFolderFullNameRaw ? Cache.getFolderUidNext(sFolderFullNameRaw) : '', 'UidNext': sInboxUidNext,
'UseThreads': AppStore.threadsAllowed() && SettingsStore.useThreads() ? '1' : '0' 'UseThreads': bUseThreads ? '1' : '0',
}, '' === sSearch ? Consts.Defaults.DefaultAjaxTimeout : Consts.Defaults.SearchAjaxTimeout, '', bSilent ? [] : ['MessageList']); 'ThreadUid': bUseThreads ? sThreadUid : ''
}, '' === sSearch ? Consts.Defaults.DefaultAjaxTimeout : Consts.Defaults.SearchAjaxTimeout,
'', bSilent ? [] : ['MessageList']);
} }
}; };

View file

@ -144,29 +144,27 @@
}, 50); }, 50);
} }
else
{
_.delay(function () {
var _.delay(function () {
f1 = Utils.settingsSaveHelperSimpleFunction(self.title.trigger, self),
f2 = Utils.settingsSaveHelperSimpleFunction(self.loadingDesc.trigger, self)
;
self.title.subscribe(function (sValue) { var
Remote.saveAdminConfig(f1, { f1 = Utils.settingsSaveHelperSimpleFunction(self.title.trigger, self),
'Title': Utils.trim(sValue) f2 = Utils.settingsSaveHelperSimpleFunction(self.loadingDesc.trigger, self)
}); ;
self.title.subscribe(function (sValue) {
Remote.saveAdminConfig(f1, {
'Title': Utils.trim(sValue)
}); });
});
self.loadingDesc.subscribe(function (sValue) { self.loadingDesc.subscribe(function (sValue) {
Remote.saveAdminConfig(f2, { Remote.saveAdminConfig(f2, {
'LoadingDescription': Utils.trim(sValue) 'LoadingDescription': Utils.trim(sValue)
});
}); });
});
}, 50); }, 50);
}
}; };
module.exports = BrandingAdminSettings; module.exports = BrandingAdminSettings;

View file

@ -22,14 +22,11 @@
this.language = ko.observable('') this.language = ko.observable('')
.extend({'limitedList': this.languages}); .extend({'limitedList': this.languages});
this.userLanguage = ko.observable('')
.extend({'limitedList': this.languages});
this.languageAdmin = ko.observable('') this.languageAdmin = ko.observable('')
.extend({'limitedList': this.languagesAdmin}); .extend({'limitedList': this.languagesAdmin});
this.userLanguageAdmin = ko.observable('') this.userLanguage = ko.observable('');
.extend({'limitedList': this.languagesAdmin}); this.userLanguageAdmin = ko.observable('');
} }
LanguageStore.prototype.populate = function () LanguageStore.prototype.populate = function ()

View file

@ -1099,6 +1099,26 @@
oText.find('.rlBlockquoteSwitcher').off('.rlBlockquoteSwitcher').remove(); oText.find('.rlBlockquoteSwitcher').off('.rlBlockquoteSwitcher').remove();
oText.find('[data-html-editor-font-wrapper]').removeAttr('data-html-editor-font-wrapper'); oText.find('[data-html-editor-font-wrapper]').removeAttr('data-html-editor-font-wrapper');
(function () {
var oTmp = null, iLimit = 0;
while (true)
{
iLimit++;
oTmp = oText.children();
if (10 > iLimit && oTmp.is('div') && 1 === oTmp.length)
{
oTmp.children().unwrap();
continue;
}
break;
}
}());
sText = oText.html(); sText = oText.html();
} }

View file

@ -24,15 +24,16 @@
var self = this; var self = this;
this.fLang = null; this.fLang = null;
this.sUserLanguage = ''; this.userLanguage = ko.observable('');
this.langs = ko.observableArray([]); this.langs = ko.observableArray([]);
this.languages = ko.computed(function () { this.languages = ko.computed(function () {
var sUserLanguage = self.userLanguage();
return _.map(self.langs(), function (sLanguage) { return _.map(self.langs(), function (sLanguage) {
return { return {
'key': sLanguage, 'key': sLanguage,
'user': sLanguage === self.sUserLanguage, 'user': sLanguage === sUserLanguage,
'selected': ko.observable(false), 'selected': ko.observable(false),
'fullName': Utils.convertLangName(sLanguage) 'fullName': Utils.convertLangName(sLanguage)
}; };
@ -66,7 +67,7 @@
LanguagesPopupView.prototype.onShow = function (fLanguage, aLangs, sUserLanguage) LanguagesPopupView.prototype.onShow = function (fLanguage, aLangs, sUserLanguage)
{ {
this.fLang = fLanguage; this.fLang = fLanguage;
this.sUserLanguage = sUserLanguage || ''; this.userLanguage(sUserLanguage || '');
this.langs(aLangs); this.langs(aLangs);
}; };
@ -74,7 +75,7 @@
LanguagesPopupView.prototype.onHide = function () LanguagesPopupView.prototype.onHide = function ()
{ {
this.fLang = null; this.fLang = null;
this.sUserLanguage = ''; this.userLanguage('');
this.langs([]); this.langs([]);
}; };

View file

@ -2,7 +2,7 @@
"name": "RainLoop", "name": "RainLoop",
"title": "RainLoop Webmail", "title": "RainLoop Webmail",
"version": "1.8.3", "version": "1.8.3",
"release": "302", "release": "304",
"description": "Simple, modern & fast web-based email client", "description": "Simple, modern & fast web-based email client",
"homepage": "http://rainloop.net", "homepage": "http://rainloop.net",
"main": "gulpfile.js", "main": "gulpfile.js",

View file

@ -1709,8 +1709,9 @@ class Actions
$aResult['LanguageAdmin'] = $this->ValidateLanguage($sLanguageAdmin, '', true); $aResult['LanguageAdmin'] = $this->ValidateLanguage($sLanguageAdmin, '', true);
$aResult['UserLanguageRaw'] = $this->detectUserLanguage(); $aResult['UserLanguageRaw'] = $this->detectUserLanguage();
$aResult['UserLanguage'] = $this->ValidateLanguage($aResult['UserLanguageRaw'], $aResult['Language'], false);
$aResult['UserLanguageAdmin'] = $this->ValidateLanguage($aResult['UserLanguageRaw'], $aResult['LanguageAdmin'], true); $aResult['UserLanguage'] = $this->ValidateLanguage($aResult['UserLanguageRaw'], '', false, true, true);
$aResult['UserLanguageAdmin'] = $this->ValidateLanguage($aResult['UserLanguageRaw'], '', true, true, true);
$aResult['LangLink'] = './?/Lang/0/'.($bAdmin ? 'Admin' : 'App').'/'. $aResult['LangLink'] = './?/Lang/0/'.($bAdmin ? 'Admin' : 'App').'/'.
($bAdmin ? $aResult['LanguageAdmin'] : $aResult['Language']).'/'.$sStaticCache.'/'; ($bAdmin ? $aResult['LanguageAdmin'] : $aResult['Language']).'/'.$sStaticCache.'/';
@ -5525,7 +5526,7 @@ class Actions
if ($bUseThreads) if ($bUseThreads)
{ {
$sThreadUid = ''; // TODO $sThreadUid = isset($aValues[8]) ? (string) $aValues[8] : '';
} }
$this->verifyCacheByKey($sRawKey); $this->verifyCacheByKey($sRawKey);
@ -8380,10 +8381,11 @@ class Actions
* @param string $sDefault = '' * @param string $sDefault = ''
* @param bool $bAdmin = false * @param bool $bAdmin = false
* @param bool $bSearchShortName = false * @param bool $bSearchShortName = false
* @param bool $bAllowEmptyResult = false
* *
* @return string * @return string
*/ */
public function ValidateLanguage($sLanguage, $sDefault = '', $bAdmin = false, $bSearchShortName = false) public function ValidateLanguage($sLanguage, $sDefault = '', $bAdmin = false, $bSearchShortName = false, $bAllowEmptyResult = false)
{ {
$sResult = ''; $sResult = '';
$aLang = $this->GetLanguages($bAdmin); $aLang = $this->GetLanguages($bAdmin);
@ -8409,7 +8411,7 @@ class Actions
$sResult = $sDefault; $sResult = $sDefault;
} }
if (empty($sResult)) if (empty($sResult) && !$bAllowEmptyResult)
{ {
$sResult = $this->Config()->Get('webmail', $bAdmin ? 'language_admin' : 'language', 'en'); $sResult = $this->Config()->Get('webmail', $bAdmin ? 'language_admin' : 'language', 'en');
$sResult = \in_array($sResult, $aLang) ? $sResult : 'en'; $sResult = \in_array($sResult, $aLang) ? $sResult : 'en';

View file

@ -144,7 +144,7 @@
</div> </div>
</div> </div>
<div class="tab-pane active" id="branding-welcome-page-section-id"> <div class="tab-pane" id="branding-welcome-page-section-id">
<div class="form-horizontal" data-bind="css: {'disabled-form': !capa()}"> <div class="form-horizontal" data-bind="css: {'disabled-form': !capa()}">
<div class="control-group"> <div class="control-group">