mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-07-09 06:28:28 +03:00
Code refactoring
Fixed languages popup Release commit
This commit is contained in:
parent
fa795947cf
commit
ccbf04cb67
123 changed files with 1375 additions and 5128 deletions
|
|
@ -1,12 +1,12 @@
|
|||
/* RainLoop Webmail (c) RainLoop Team | Licensed under CC BY-NC-SA 3.0 */
|
||||
|
||||
(function (module, require) {
|
||||
|
||||
'use strict';
|
||||
|
||||
|
||||
var
|
||||
_ = require('_'),
|
||||
ko = require('ko'),
|
||||
|
||||
|
||||
kn = require('App:Knoin'),
|
||||
Settings = require('Storage:Settings'),
|
||||
|
||||
|
|
@ -26,7 +26,8 @@
|
|||
kn.constructorEnd(this);
|
||||
}
|
||||
|
||||
kn.extendAsViewModel('AboutViewModel', AboutViewModel);
|
||||
kn.extendAsViewModel(['View:RainLoop:About', 'AboutViewModel'], AboutViewModel);
|
||||
_.extend(AboutViewModel.prototype, KnoinAbstractViewModel.prototype);
|
||||
|
||||
module.exports = AboutViewModel;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,13 +1,12 @@
|
|||
/* RainLoop Webmail (c) RainLoop Team | Licensed under CC BY-NC-SA 3.0 */
|
||||
|
||||
(function (module, require) {
|
||||
|
||||
|
||||
'use strict';
|
||||
|
||||
var
|
||||
window = require('window'),
|
||||
_ = require('_'),
|
||||
ko = require('ko'),
|
||||
window = require('window'),
|
||||
key = require('key'),
|
||||
|
||||
Enums = require('Enums'),
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
/* RainLoop Webmail (c) RainLoop Team | Licensed under CC BY-NC-SA 3.0 */
|
||||
|
||||
(function (module, require) {
|
||||
|
||||
|
|
@ -89,7 +88,8 @@
|
|||
kn.constructorEnd(this);
|
||||
}
|
||||
|
||||
kn.extendAsViewModel('AdminLoginViewModel', AdminLoginViewModel);
|
||||
kn.extendAsViewModel(['View:Admin:Login', 'AdminLoginViewModel'], AdminLoginViewModel);
|
||||
_.extend(AdminLoginViewModel.prototype, KnoinAbstractViewModel.prototype);
|
||||
|
||||
AdminLoginViewModel.prototype.onShow = function ()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,12 +1,14 @@
|
|||
/* RainLoop Webmail (c) RainLoop Team | Licensed under CC BY-NC-SA 3.0 */
|
||||
|
||||
(function (module, require) {
|
||||
|
||||
'use strict';
|
||||
|
||||
|
||||
var
|
||||
kn = require('App:Knoin'),
|
||||
_ = require('_'),
|
||||
|
||||
Globals = require('Globals'),
|
||||
|
||||
kn = require('App:Knoin'),
|
||||
KnoinAbstractViewModel = require('Knoin:AbstractViewModel')
|
||||
;
|
||||
|
||||
|
|
@ -16,7 +18,7 @@
|
|||
* @constructor
|
||||
* @extends KnoinAbstractViewModel
|
||||
*/
|
||||
function AdminMenuViewModel(oScreen)
|
||||
function AdminSettingsMenuViewModel(oScreen)
|
||||
{
|
||||
KnoinAbstractViewModel.call(this, 'Left', 'AdminMenu');
|
||||
|
||||
|
|
@ -27,13 +29,14 @@
|
|||
kn.constructorEnd(this);
|
||||
}
|
||||
|
||||
kn.extendAsViewModel('AdminMenuViewModel', AdminMenuViewModel);
|
||||
kn.extendAsViewModel(['View:Admin:SettingsMenu', 'AdminSettingsMenuViewModel'], AdminSettingsMenuViewModel);
|
||||
_.extend(AdminSettingsMenuViewModel.prototype, KnoinAbstractViewModel.prototype);
|
||||
|
||||
AdminMenuViewModel.prototype.link = function (sRoute)
|
||||
AdminSettingsMenuViewModel.prototype.link = function (sRoute)
|
||||
{
|
||||
return '#/' + sRoute;
|
||||
};
|
||||
|
||||
module.exports = AdminMenuViewModel;
|
||||
module.exports = AdminSettingsMenuViewModel;
|
||||
|
||||
}(module, require));
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
/* RainLoop Webmail (c) RainLoop Team | Licensed under CC BY-NC-SA 3.0 */
|
||||
|
||||
(function (module, require) {
|
||||
|
||||
'use strict';
|
||||
|
||||
var
|
||||
_ = require('_'),
|
||||
ko = require('ko'),
|
||||
|
||||
Settings = require('Storage:Settings'),
|
||||
|
|
@ -19,7 +19,7 @@
|
|||
* @constructor
|
||||
* @extends KnoinAbstractViewModel
|
||||
*/
|
||||
function AdminPaneViewModel()
|
||||
function AdminSettingsPaneViewModel()
|
||||
{
|
||||
KnoinAbstractViewModel.call(this, 'Right', 'AdminPane');
|
||||
|
||||
|
|
@ -31,15 +31,16 @@
|
|||
kn.constructorEnd(this);
|
||||
}
|
||||
|
||||
kn.extendAsViewModel('AdminPaneViewModel', AdminPaneViewModel);
|
||||
kn.extendAsViewModel(['View:Admin:SettingsPane', 'AdminSettingsPaneViewModel'], AdminSettingsPaneViewModel);
|
||||
_.extend(AdminSettingsPaneViewModel.prototype, KnoinAbstractViewModel.prototype);
|
||||
|
||||
AdminPaneViewModel.prototype.logoutClick = function ()
|
||||
AdminSettingsPaneViewModel.prototype.logoutClick = function ()
|
||||
{
|
||||
Remote.adminLogout(function () {
|
||||
require('App:Admin').loginAndLogoutReload();
|
||||
});
|
||||
};
|
||||
|
||||
module.exports = AdminPaneViewModel;
|
||||
module.exports = AdminSettingsPaneViewModel;
|
||||
|
||||
}(module, require));
|
||||
|
|
@ -1,17 +1,16 @@
|
|||
/* RainLoop Webmail (c) RainLoop Team | Licensed under CC BY-NC-SA 3.0 */
|
||||
|
||||
(function (module, require) {
|
||||
|
||||
'use strict';
|
||||
|
||||
|
||||
var
|
||||
window = require('window'),
|
||||
$ = require('$'),
|
||||
_ = require('_'),
|
||||
$ = require('$'),
|
||||
ko = require('ko'),
|
||||
|
||||
Utils = require('Utils'),
|
||||
Enums = require('Enums'),
|
||||
Utils = require('Utils'),
|
||||
LinkBuilder = require('LinkBuilder'),
|
||||
|
||||
Settings = require('Storage:Settings'),
|
||||
|
|
@ -250,7 +249,8 @@
|
|||
kn.constructorEnd(this);
|
||||
}
|
||||
|
||||
kn.extendAsViewModel('LoginViewModel', LoginViewModel);
|
||||
kn.extendAsViewModel(['View:RainLoop:Login', 'LoginViewModel'], LoginViewModel);
|
||||
_.extend(LoginViewModel.prototype, KnoinAbstractViewModel.prototype);
|
||||
|
||||
LoginViewModel.prototype.onShow = function ()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
/* RainLoop Webmail (c) RainLoop Team | Licensed under CC BY-NC-SA 3.0 */
|
||||
|
||||
(function (module, require) {
|
||||
|
||||
|
|
@ -6,6 +5,7 @@
|
|||
|
||||
var
|
||||
window = require('window'),
|
||||
_ = require('_'),
|
||||
$ = require('$'),
|
||||
ko = require('ko'),
|
||||
key = require('key'),
|
||||
|
|
@ -48,7 +48,8 @@
|
|||
kn.constructorEnd(this);
|
||||
}
|
||||
|
||||
kn.extendAsViewModel('MailBoxFolderListViewModel', MailBoxFolderListViewModel);
|
||||
kn.extendAsViewModel(['View:RainLoop:MailBoxFolderList', 'MailBoxFolderListViewModel'], MailBoxFolderListViewModel);
|
||||
_.extend(MailBoxFolderListViewModel.prototype, KnoinAbstractViewModel.prototype);
|
||||
|
||||
MailBoxFolderListViewModel.prototype.onBuild = function (oDom)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,16 +1,15 @@
|
|||
/* RainLoop Webmail (c) RainLoop Team | Licensed under CC BY-NC-SA 3.0 */
|
||||
|
||||
(function (module, require) {
|
||||
|
||||
'use strict';
|
||||
|
||||
|
||||
var
|
||||
$ = require('$'),
|
||||
_ = require('_'),
|
||||
$ = require('$'),
|
||||
ko = require('ko'),
|
||||
key = require('key'),
|
||||
ifvisible = require('ifvisible'),
|
||||
Jua = require('Jua'),
|
||||
ifvisible = require('ifvisible'),
|
||||
|
||||
Enums = require('Enums'),
|
||||
Consts = require('Consts'),
|
||||
|
|
@ -266,7 +265,8 @@
|
|||
kn.constructorEnd(this);
|
||||
}
|
||||
|
||||
kn.extendAsViewModel('MailBoxMessageListViewModel', MailBoxMessageListViewModel);
|
||||
kn.extendAsViewModel(['View:RainLoop:MailBoxMessageList', 'MailBoxMessageListViewModel'], MailBoxMessageListViewModel);
|
||||
_.extend(MailBoxMessageListViewModel.prototype, KnoinAbstractViewModel.prototype);
|
||||
|
||||
/**
|
||||
* @type {string}
|
||||
|
|
@ -799,7 +799,7 @@
|
|||
|
||||
// change focused state
|
||||
key('tab, shift+tab, left, right', Enums.KeyState.MessageList, function (event, handler) {
|
||||
if (event && handler && 'shift+tab' === handler.shortcut || 'left' === handler.shortcut)
|
||||
if (event && handler && ('shift+tab' === handler.shortcut || 'left' === handler.shortcut))
|
||||
{
|
||||
self.folderList.focused(true);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
/* RainLoop Webmail (c) RainLoop Team | Licensed under CC BY-NC-SA 3.0 */
|
||||
|
||||
(function (module, require) {
|
||||
|
||||
'use strict';
|
||||
|
||||
var
|
||||
_ = require('_'),
|
||||
$ = require('$'),
|
||||
ko = require('ko'),
|
||||
key = require('key'),
|
||||
|
|
@ -150,6 +150,7 @@
|
|||
this.viewCc = ko.observable('');
|
||||
this.viewBcc = ko.observable('');
|
||||
this.viewDate = ko.observable('');
|
||||
this.viewSize = ko.observable('');
|
||||
this.viewMoment = ko.observable('');
|
||||
this.viewLineAsCcc = ko.observable('');
|
||||
this.viewViewLink = ko.observable('');
|
||||
|
|
@ -188,6 +189,7 @@
|
|||
this.viewCc(oMessage.ccToLine(false));
|
||||
this.viewBcc(oMessage.bccToLine(false));
|
||||
this.viewDate(oMessage.fullFormatDateValue());
|
||||
this.viewSize(oMessage.friendlySize());
|
||||
this.viewMoment(oMessage.momentDate());
|
||||
this.viewLineAsCcc(oMessage.lineAsCcc());
|
||||
this.viewViewLink(oMessage.viewLink());
|
||||
|
|
@ -246,7 +248,8 @@
|
|||
kn.constructorEnd(this);
|
||||
}
|
||||
|
||||
kn.extendAsViewModel('MailBoxMessageViewViewModel', MailBoxMessageViewViewModel);
|
||||
kn.extendAsViewModel(['View:RainLoop:MailBoxMessageView', 'MailBoxMessageViewViewModel'], MailBoxMessageViewViewModel);
|
||||
_.extend(MailBoxMessageViewViewModel.prototype, KnoinAbstractViewModel.prototype);
|
||||
|
||||
MailBoxMessageViewViewModel.prototype.isPgpActionVisible = function ()
|
||||
{
|
||||
|
|
@ -290,23 +293,6 @@
|
|||
return sResult;
|
||||
};
|
||||
|
||||
MailBoxMessageViewViewModel.prototype.scrollToTop = function ()
|
||||
{
|
||||
var oCont = $('.messageItem.nano .content', this.viewModelDom);
|
||||
if (oCont && oCont[0])
|
||||
{
|
||||
// oCont.animate({'scrollTop': 0}, 300);
|
||||
oCont.scrollTop(0);
|
||||
}
|
||||
else
|
||||
{
|
||||
// $('.messageItem', this.viewModelDom).animate({'scrollTop': 0}, 300);
|
||||
$('.messageItem', this.viewModelDom).scrollTop(0);
|
||||
}
|
||||
|
||||
Utils.windowResize();
|
||||
};
|
||||
|
||||
MailBoxMessageViewViewModel.prototype.fullScreen = function ()
|
||||
{
|
||||
this.fullScreenMode(true);
|
||||
|
|
@ -366,15 +352,9 @@
|
|||
});
|
||||
|
||||
oDom
|
||||
.on('click', '.messageView .messageItem .messageItemHeader', function () {
|
||||
if (Globals.useKeyboardShortcuts() && self.message())
|
||||
{
|
||||
self.message.focused(true);
|
||||
}
|
||||
})
|
||||
.on('click', 'a', function (oEvent) {
|
||||
// setup maito protocol
|
||||
return !(!!oEvent && 3 !== oEvent['which'] && require('App:RainLoop').mailToHelper($(this).attr('href')));
|
||||
return !(!!oEvent && 3 !== oEvent['which'] && Utils.mailToHelper($(this).attr('href'), require('View:Popup:Compose')));
|
||||
})
|
||||
.on('click', '.attachmentsPlace .attachmentPreview', function (oEvent) {
|
||||
if (oEvent && oEvent.stopPropagation)
|
||||
|
|
@ -400,6 +380,8 @@
|
|||
this.messageDomFocused(true);
|
||||
} else {
|
||||
this.messageDomFocused(false);
|
||||
this.scrollMessageToTop();
|
||||
this.scrollMessageToLeft();
|
||||
}
|
||||
}, this);
|
||||
|
||||
|
|
@ -516,7 +498,7 @@
|
|||
key('b', [Enums.KeyState.MessageList, Enums.KeyState.MessageView], function () {
|
||||
if (Data.message() && Data.message().body)
|
||||
{
|
||||
Utils.toggleMessageBlockquote(Data.message().body);
|
||||
Data.message().body.find('.rlBlockquoteSwitcher').click();
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
|
@ -559,10 +541,26 @@
|
|||
});
|
||||
|
||||
// change focused state
|
||||
key('tab, shift+tab, left', Enums.KeyState.MessageView, function () {
|
||||
key('tab, shift+tab, left', Enums.KeyState.MessageView, function (event, handler) {
|
||||
if (!self.fullScreenMode() && self.message() && Enums.Layout.NoPreview !== Data.layout())
|
||||
{
|
||||
self.message.focused(false);
|
||||
if (event && handler && 'left' === handler.shortcut)
|
||||
{
|
||||
if (self.oMessageScrollerDom && 0 < self.oMessageScrollerDom.scrollLeft())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
self.message.focused(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
self.message.focused(false);
|
||||
}
|
||||
}
|
||||
else if (self.message() && Enums.Layout.NoPreview === Data.layout() && event && handler && 'left' === handler.shortcut)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
|
|
@ -643,6 +641,16 @@
|
|||
if (this.oMessageScrollerDom)
|
||||
{
|
||||
this.oMessageScrollerDom.scrollTop(0);
|
||||
Utils.windowResize();
|
||||
}
|
||||
};
|
||||
|
||||
MailBoxMessageViewViewModel.prototype.scrollMessageToLeft = function ()
|
||||
{
|
||||
if (this.oMessageScrollerDom)
|
||||
{
|
||||
this.oMessageScrollerDom.scrollLeft(0);
|
||||
Utils.windowResize();
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -1,10 +1,11 @@
|
|||
/* RainLoop Webmail (c) RainLoop Team | Licensed under CC BY-NC-SA 3.0 */
|
||||
|
||||
(function (module, require) {
|
||||
|
||||
|
||||
'use strict';
|
||||
|
||||
var
|
||||
_ = require('_'),
|
||||
|
||||
kn = require('App:Knoin'),
|
||||
AbstractSystemDropDownViewModel = require('View:RainLoop:AbstractSystemDropDown')
|
||||
;
|
||||
|
|
@ -19,7 +20,8 @@
|
|||
kn.constructorEnd(this);
|
||||
}
|
||||
|
||||
kn.extendAsViewModel('MailBoxSystemDropDownViewModel', MailBoxSystemDropDownViewModel, AbstractSystemDropDownViewModel);
|
||||
kn.extendAsViewModel(['View:RainLoop:MailBoxSystemDropDown', 'MailBoxSystemDropDownViewModel'], MailBoxSystemDropDownViewModel);
|
||||
_.extend(MailBoxSystemDropDownViewModel.prototype, AbstractSystemDropDownViewModel.prototype);
|
||||
|
||||
module.exports = MailBoxSystemDropDownViewModel;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
/* RainLoop Webmail (c) RainLoop Team | Licensed under CC BY-NC-SA 3.0 */
|
||||
|
||||
(function (module, require) {
|
||||
|
||||
'use strict';
|
||||
|
||||
var
|
||||
_ = require('_'),
|
||||
ko = require('ko'),
|
||||
|
||||
Enums = require('Enums'),
|
||||
|
|
@ -104,7 +104,8 @@
|
|||
kn.constructorEnd(this);
|
||||
}
|
||||
|
||||
kn.extendAsViewModel('PopupsActivateViewModel', PopupsActivateViewModel);
|
||||
kn.extendAsViewModel(['View:Popup:Activate', 'PopupsActivateViewModel'], PopupsActivateViewModel);
|
||||
_.extend(PopupsActivateViewModel.prototype, KnoinAbstractViewModel.prototype);
|
||||
|
||||
PopupsActivateViewModel.prototype.onShow = function ()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,9 +1,8 @@
|
|||
/* RainLoop Webmail (c) RainLoop Team | Licensed under CC BY-NC-SA 3.0 */
|
||||
|
||||
(function (module, require) {
|
||||
|
||||
'use strict';
|
||||
|
||||
|
||||
var
|
||||
_ = require('_'),
|
||||
ko = require('ko'),
|
||||
|
|
@ -87,7 +86,8 @@
|
|||
kn.constructorEnd(this);
|
||||
}
|
||||
|
||||
kn.extendAsViewModel('PopupsAddAccountViewModel', PopupsAddAccountViewModel);
|
||||
kn.extendAsViewModel(['View:Popup:AddAccount', 'PopupsAddAccountViewModel'], PopupsAddAccountViewModel);
|
||||
_.extend(PopupsAddAccountViewModel.prototype, KnoinAbstractViewModel.prototype);
|
||||
|
||||
PopupsAddAccountViewModel.prototype.clearPopup = function ()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
/* RainLoop Webmail (c) RainLoop Team | Licensed under CC BY-NC-SA 3.0 */
|
||||
|
||||
(function (module, require) {
|
||||
|
||||
'use strict';
|
||||
|
||||
var
|
||||
_ = require('_'),
|
||||
ko = require('ko'),
|
||||
|
||||
Utils = require('Utils'),
|
||||
|
|
@ -86,7 +86,8 @@
|
|||
kn.constructorEnd(this);
|
||||
}
|
||||
|
||||
kn.extendAsViewModel('PopupsAddOpenPgpKeyViewModel', PopupsAddOpenPgpKeyViewModel);
|
||||
kn.extendAsViewModel(['View:Popup:AddOpenPgpKey', 'PopupsAddOpenPgpKeyViewModel'], PopupsAddOpenPgpKeyViewModel);
|
||||
_.extend(PopupsAddOpenPgpKeyViewModel.prototype, KnoinAbstractViewModel.prototype);
|
||||
|
||||
PopupsAddOpenPgpKeyViewModel.prototype.clearPopup = function ()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
/* RainLoop Webmail (c) RainLoop Team | Licensed under CC BY-NC-SA 3.0 */
|
||||
|
||||
(function (module, require) {
|
||||
|
||||
'use strict';
|
||||
|
||||
|
||||
var
|
||||
_ = require('_'),
|
||||
ko = require('ko'),
|
||||
moment = require('moment'),
|
||||
|
||||
|
|
@ -50,7 +50,8 @@
|
|||
kn.constructorEnd(this);
|
||||
}
|
||||
|
||||
kn.extendAsViewModel('PopupsAdvancedSearchViewModel', PopupsAdvancedSearchViewModel);
|
||||
kn.extendAsViewModel(['View:Popup:AdvancedSearch', 'PopupsAdvancedSearchViewModel'], PopupsAdvancedSearchViewModel);
|
||||
_.extend(PopupsAdvancedSearchViewModel.prototype, KnoinAbstractViewModel.prototype);
|
||||
|
||||
PopupsAdvancedSearchViewModel.prototype.buildSearchStringValue = function (sValue)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
/* RainLoop Webmail (c) RainLoop Team | Licensed under CC BY-NC-SA 3.0 */
|
||||
|
||||
(function (module, require) {
|
||||
|
||||
'use strict';
|
||||
|
||||
|
||||
var
|
||||
_ = require('_'),
|
||||
ko = require('ko'),
|
||||
key = require('key'),
|
||||
|
||||
|
|
@ -39,7 +39,8 @@
|
|||
kn.constructorEnd(this);
|
||||
}
|
||||
|
||||
kn.extendAsViewModel('PopupsAskViewModel', PopupsAskViewModel);
|
||||
kn.extendAsViewModel(['View:Popup:Ask', 'PopupsAskViewModel'], PopupsAskViewModel);
|
||||
_.extend(PopupsAskViewModel.prototype, KnoinAbstractViewModel.prototype);
|
||||
|
||||
PopupsAskViewModel.prototype.clearPopup = function ()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,9 +1,8 @@
|
|||
/* RainLoop Webmail (c) RainLoop Team | Licensed under CC BY-NC-SA 3.0 */
|
||||
|
||||
(function (module, require) {
|
||||
|
||||
'use strict';
|
||||
|
||||
|
||||
var
|
||||
window = require('window'),
|
||||
_ = require('_'),
|
||||
|
|
@ -159,7 +158,8 @@
|
|||
kn.constructorEnd(this);
|
||||
}
|
||||
|
||||
kn.extendAsViewModel('PopupsComposeOpenPgpViewModel', PopupsComposeOpenPgpViewModel);
|
||||
kn.extendAsViewModel(['View:Popup:ComposeOpenPgp', 'PopupsComposeOpenPgpViewModel'], PopupsComposeOpenPgpViewModel);
|
||||
_.extend(PopupsComposeOpenPgpViewModel.prototype, KnoinAbstractViewModel.prototype);
|
||||
|
||||
PopupsComposeOpenPgpViewModel.prototype.clearPopup = function ()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
/* RainLoop Webmail (c) RainLoop Team | Licensed under CC BY-NC-SA 3.0 */
|
||||
|
||||
(function (module, require) {
|
||||
|
||||
|
|
@ -6,8 +5,8 @@
|
|||
|
||||
var
|
||||
window = require('window'),
|
||||
$ = require('$'),
|
||||
_ = require('_'),
|
||||
$ = require('$'),
|
||||
ko = require('ko'),
|
||||
moment = require('moment'),
|
||||
JSON = require('JSON'),
|
||||
|
|
@ -17,8 +16,8 @@
|
|||
Consts = require('Consts'),
|
||||
Utils = require('Utils'),
|
||||
Globals = require('Globals'),
|
||||
LinkBuilder = require('LinkBuilder'),
|
||||
Events = require('Events'),
|
||||
LinkBuilder = require('LinkBuilder'),
|
||||
HtmlEditor = require('HtmlEditor'),
|
||||
|
||||
Settings = require('Storage:Settings'),
|
||||
|
|
@ -404,7 +403,8 @@
|
|||
kn.constructorEnd(this);
|
||||
}
|
||||
|
||||
kn.extendAsViewModel('PopupsComposeViewModel', PopupsComposeViewModel);
|
||||
kn.extendAsViewModel(['View:Popup:Compose', 'PopupsComposeViewModel'], PopupsComposeViewModel);
|
||||
_.extend(PopupsComposeViewModel.prototype, KnoinAbstractViewModel.prototype);
|
||||
|
||||
PopupsComposeViewModel.prototype.emailsSource = function (oData, fResponse)
|
||||
{
|
||||
|
|
@ -794,7 +794,15 @@
|
|||
aDraftInfo = oMessage.aDraftInfo;
|
||||
|
||||
oText = $(oMessage.body).clone();
|
||||
Utils.removeBlockquoteSwitcher(oText);
|
||||
if (oText)
|
||||
{
|
||||
oText.find('blockquote.rl-bq-switcher').each(function () {
|
||||
$(this).removeClass('rl-bq-switcher hidden-bq');
|
||||
});
|
||||
oText.find('.rlBlockquoteSwitcher').each(function () {
|
||||
$(this).remove();
|
||||
});
|
||||
}
|
||||
|
||||
oText.find('[data-html-editor-font-wrapper]').removeAttr('data-html-editor-font-wrapper');
|
||||
sText = oText.html();
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
/* RainLoop Webmail (c) RainLoop Team | Licensed under CC BY-NC-SA 3.0 */
|
||||
|
||||
(function (module, require) {
|
||||
|
||||
|
|
@ -6,8 +5,8 @@
|
|||
|
||||
var
|
||||
window = require('window'),
|
||||
$ = require('$'),
|
||||
_ = require('_'),
|
||||
$ = require('$'),
|
||||
ko = require('ko'),
|
||||
key = require('key'),
|
||||
|
||||
|
|
@ -15,8 +14,8 @@
|
|||
Consts = require('Consts'),
|
||||
Globals = require('Globals'),
|
||||
Utils = require('Utils'),
|
||||
LinkBuilder = require('LinkBuilder'),
|
||||
Selector = require('Selector'),
|
||||
LinkBuilder = require('LinkBuilder'),
|
||||
|
||||
Data = require('Storage:RainLoop:Data'),
|
||||
Remote = require('Storage:RainLoop:Remote'),
|
||||
|
|
@ -391,7 +390,8 @@
|
|||
kn.constructorEnd(this);
|
||||
}
|
||||
|
||||
kn.extendAsViewModel('PopupsContactsViewModel', PopupsContactsViewModel);
|
||||
kn.extendAsViewModel(['View:Popup:Contacts', 'PopupsContactsViewModel'], PopupsContactsViewModel);
|
||||
_.extend(PopupsContactsViewModel.prototype, KnoinAbstractViewModel.prototype);
|
||||
|
||||
PopupsContactsViewModel.prototype.contactTagsSource = function (oData, fResponse)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
/* RainLoop Webmail (c) RainLoop Team | Licensed under CC BY-NC-SA 3.0 */
|
||||
|
||||
(function (module, require) {
|
||||
|
||||
|
||||
'use strict';
|
||||
|
||||
var
|
||||
|
|
@ -200,7 +199,8 @@
|
|||
kn.constructorEnd(this);
|
||||
}
|
||||
|
||||
kn.extendAsViewModel('PopupsDomainViewModel', PopupsDomainViewModel);
|
||||
kn.extendAsViewModel(['View:Popup:Domain', 'PopupsDomainViewModel'], PopupsDomainViewModel);
|
||||
_.extend(PopupsDomainViewModel.prototype, KnoinAbstractViewModel.prototype);
|
||||
|
||||
PopupsDomainViewModel.prototype.onTestConnectionResponse = function (sResult, oData)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
/* RainLoop Webmail (c) RainLoop Team | Licensed under CC BY-NC-SA 3.0 */
|
||||
|
||||
(function (module, require) {
|
||||
|
||||
'use strict';
|
||||
|
||||
var
|
||||
_ = require('_'),
|
||||
ko = require('ko'),
|
||||
|
||||
Consts = require('Consts'),
|
||||
|
|
@ -33,7 +33,8 @@
|
|||
kn.constructorEnd(this);
|
||||
}
|
||||
|
||||
kn.extendAsViewModel('PopupsFilterViewModel', PopupsFilterViewModel);
|
||||
kn.extendAsViewModel(['View:Popup:Filter', 'PopupsFilterViewModel'], PopupsFilterViewModel);
|
||||
_.extend(PopupsFilterViewModel.prototype, KnoinAbstractViewModel.prototype);
|
||||
|
||||
PopupsFilterViewModel.prototype.clearPopup = function ()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
/* RainLoop Webmail (c) RainLoop Team | Licensed under CC BY-NC-SA 3.0 */
|
||||
|
||||
(function (module, require) {
|
||||
|
||||
'use strict';
|
||||
|
||||
var
|
||||
_ = require('_'),
|
||||
ko = require('ko'),
|
||||
|
||||
Enums = require('Enums'),
|
||||
|
|
@ -64,7 +64,7 @@
|
|||
oFolderToClear.messageCountUnread(0);
|
||||
|
||||
Cache.setFolderHash(oFolderToClear.fullNameRaw, '');
|
||||
|
||||
|
||||
Remote.folderClear(function (sResult, oData) {
|
||||
|
||||
self.clearingProcess(false);
|
||||
|
|
@ -101,7 +101,8 @@
|
|||
kn.constructorEnd(this);
|
||||
}
|
||||
|
||||
kn.extendAsViewModel('PopupsFolderClearViewModel', PopupsFolderClearViewModel);
|
||||
kn.extendAsViewModel(['View:Popup:FolderClear', 'PopupsFolderClearViewModel'], PopupsFolderClearViewModel);
|
||||
_.extend(PopupsFolderClearViewModel.prototype, KnoinAbstractViewModel.prototype);
|
||||
|
||||
PopupsFolderClearViewModel.prototype.clearPopup = function ()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
/* RainLoop Webmail (c) RainLoop Team | Licensed under CC BY-NC-SA 3.0 */
|
||||
|
||||
(function (module, require) {
|
||||
|
||||
|
||||
'use strict';
|
||||
|
||||
var
|
||||
_ = require('_'),
|
||||
ko = require('ko'),
|
||||
|
||||
Enums = require('Enums'),
|
||||
|
|
@ -100,7 +100,8 @@
|
|||
kn.constructorEnd(this);
|
||||
}
|
||||
|
||||
kn.extendAsViewModel('PopupsFolderCreateViewModel', PopupsFolderCreateViewModel);
|
||||
kn.extendAsViewModel(['View:Popup:FolderCreate', 'PopupsFolderCreateViewModel'], PopupsFolderCreateViewModel);
|
||||
_.extend(PopupsFolderCreateViewModel.prototype, KnoinAbstractViewModel.prototype);
|
||||
|
||||
PopupsFolderCreateViewModel.prototype.sNoParentText = '';
|
||||
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
/* RainLoop Webmail (c) RainLoop Team | Licensed under CC BY-NC-SA 3.0 */
|
||||
|
||||
(function (module, require) {
|
||||
|
||||
|
||||
'use strict';
|
||||
|
||||
var
|
||||
_ = require('_'),
|
||||
ko = require('ko'),
|
||||
|
||||
Enums = require('Enums'),
|
||||
|
|
@ -94,7 +94,8 @@
|
|||
kn.constructorEnd(this);
|
||||
}
|
||||
|
||||
kn.extendAsViewModel('PopupsFolderSystemViewModel', PopupsFolderSystemViewModel);
|
||||
kn.extendAsViewModel(['View:Popup:FolderSystem', 'PopupsFolderSystemViewModel'], PopupsFolderSystemViewModel);
|
||||
_.extend(PopupsFolderSystemViewModel.prototype, KnoinAbstractViewModel.prototype);
|
||||
|
||||
PopupsFolderSystemViewModel.prototype.sChooseOnText = '';
|
||||
PopupsFolderSystemViewModel.prototype.sUnuseText = '';
|
||||
|
|
|
|||
|
|
@ -1,19 +1,19 @@
|
|||
/* RainLoop Webmail (c) RainLoop Team | Licensed under CC BY-NC-SA 3.0 */
|
||||
|
||||
(function (module, require) {
|
||||
|
||||
'use strict';
|
||||
|
||||
var
|
||||
_ = require('_'),
|
||||
ko = require('ko'),
|
||||
|
||||
Enums = require('Enums'),
|
||||
Utils = require('Utils'),
|
||||
kn = require('App:Knoin'),
|
||||
|
||||
Remote = require('Storage:RainLoop:Remote'),
|
||||
Data = require('Storage:RainLoop:Data'),
|
||||
|
||||
kn = require('App:Knoin'),
|
||||
KnoinAbstractViewModel = require('Knoin:AbstractViewModel')
|
||||
;
|
||||
|
||||
|
|
@ -115,7 +115,8 @@
|
|||
kn.constructorEnd(this);
|
||||
}
|
||||
|
||||
kn.extendAsViewModel('PopupsIdentityViewModel', PopupsIdentityViewModel);
|
||||
kn.extendAsViewModel(['View:Popup:Identity', 'PopupsIdentityViewModel'], PopupsIdentityViewModel);
|
||||
_.extend(PopupsIdentityViewModel.prototype, KnoinAbstractViewModel.prototype);
|
||||
|
||||
PopupsIdentityViewModel.prototype.clearPopup = function ()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
/* RainLoop Webmail (c) RainLoop Team | Licensed under CC BY-NC-SA 3.0 */
|
||||
|
||||
(function (module, require) {
|
||||
|
||||
|
|
@ -27,7 +26,8 @@
|
|||
kn.constructorEnd(this);
|
||||
}
|
||||
|
||||
kn.extendAsViewModel('PopupsKeyboardShortcutsHelpViewModel', PopupsKeyboardShortcutsHelpViewModel);
|
||||
kn.extendAsViewModel(['View:Popup:KeyboardShortcutsHelp', 'PopupsKeyboardShortcutsHelpViewModel'], PopupsKeyboardShortcutsHelpViewModel);
|
||||
_.extend(PopupsKeyboardShortcutsHelpViewModel.prototype, KnoinAbstractViewModel.prototype);
|
||||
|
||||
PopupsKeyboardShortcutsHelpViewModel.prototype.onBuild = function (oDom)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
/* RainLoop Webmail (c) RainLoop Team | Licensed under CC BY-NC-SA 3.0 */
|
||||
|
||||
(function (module, require) {
|
||||
|
||||
|
|
@ -9,8 +8,7 @@
|
|||
ko = require('ko'),
|
||||
|
||||
Utils = require('Utils'),
|
||||
|
||||
Data = require('Storage:RainLoop:Data'),
|
||||
Globals = require('Globals'),
|
||||
|
||||
kn = require('App:Knoin'),
|
||||
KnoinAbstractViewModel = require('Knoin:AbstractViewModel')
|
||||
|
|
@ -24,26 +22,29 @@
|
|||
{
|
||||
KnoinAbstractViewModel.call(this, 'Popups', 'PopupsLanguages');
|
||||
|
||||
this.Data = Globals.__APP.data(); // TODO
|
||||
|
||||
this.exp = ko.observable(false);
|
||||
|
||||
this.languages = ko.computed(function () {
|
||||
return _.map(Data.languages(), function (sLanguage) {
|
||||
return _.map(this.Data.languages(), function (sLanguage) {
|
||||
return {
|
||||
'key': sLanguage,
|
||||
'selected': ko.observable(false),
|
||||
'fullName': Utils.convertLangName(sLanguage)
|
||||
};
|
||||
});
|
||||
});
|
||||
}, this);
|
||||
|
||||
Data.mainLanguage.subscribe(function () {
|
||||
this.Data.mainLanguage.subscribe(function () {
|
||||
this.resetMainLanguage();
|
||||
}, this);
|
||||
|
||||
kn.constructorEnd(this);
|
||||
}
|
||||
|
||||
kn.extendAsViewModel('PopupsLanguagesViewModel', PopupsLanguagesViewModel);
|
||||
kn.extendAsViewModel(['View:Popup:Languages', 'PopupsLanguagesViewModel'], PopupsLanguagesViewModel);
|
||||
_.extend(PopupsLanguagesViewModel.prototype, KnoinAbstractViewModel.prototype);
|
||||
|
||||
PopupsLanguagesViewModel.prototype.languageEnName = function (sLanguage)
|
||||
{
|
||||
|
|
@ -52,7 +53,7 @@
|
|||
|
||||
PopupsLanguagesViewModel.prototype.resetMainLanguage = function ()
|
||||
{
|
||||
var sCurrent = Data.mainLanguage();
|
||||
var sCurrent = this.Data.mainLanguage();
|
||||
_.each(this.languages(), function (oItem) {
|
||||
oItem['selected'](oItem['key'] === sCurrent);
|
||||
});
|
||||
|
|
@ -72,7 +73,7 @@
|
|||
|
||||
PopupsLanguagesViewModel.prototype.changeLanguage = function (sLang)
|
||||
{
|
||||
Data.mainLanguage(sLang);
|
||||
this.Data.mainLanguage(sLang);
|
||||
this.cancelCommand();
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
/* RainLoop Webmail (c) RainLoop Team | Licensed under CC BY-NC-SA 3.0 */
|
||||
|
||||
(function (module, require) {
|
||||
|
||||
|
|
@ -89,7 +88,8 @@
|
|||
kn.constructorEnd(this);
|
||||
}
|
||||
|
||||
kn.extendAsViewModel('PopupsNewOpenPgpKeyViewModel', PopupsNewOpenPgpKeyViewModel);
|
||||
kn.extendAsViewModel(['View:Popup:NewOpenPgpKey', 'PopupsNewOpenPgpKeyViewModel'], PopupsNewOpenPgpKeyViewModel);
|
||||
_.extend(PopupsNewOpenPgpKeyViewModel.prototype, KnoinAbstractViewModel.prototype);
|
||||
|
||||
PopupsNewOpenPgpKeyViewModel.prototype.clearPopup = function ()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
/* RainLoop Webmail (c) RainLoop Team | Licensed under CC BY-NC-SA 3.0 */
|
||||
|
||||
(function (module, require) {
|
||||
|
||||
|
|
@ -85,7 +84,8 @@
|
|||
kn.constructorEnd(this);
|
||||
}
|
||||
|
||||
kn.extendAsViewModel('PopupsPluginViewModel', PopupsPluginViewModel);
|
||||
kn.extendAsViewModel(['View:Popup:Plugin', 'PopupsPluginViewModel'], PopupsPluginViewModel);
|
||||
_.extend(PopupsPluginViewModel.prototype, KnoinAbstractViewModel.prototype);
|
||||
|
||||
PopupsPluginViewModel.prototype.onPluginSettingsUpdateResponse = function (sResult, oData)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
/* RainLoop Webmail (c) RainLoop Team | Licensed under CC BY-NC-SA 3.0 */
|
||||
|
||||
(function (module, require) {
|
||||
|
||||
'use strict';
|
||||
|
||||
var
|
||||
_ = require('_'),
|
||||
ko = require('ko'),
|
||||
|
||||
Enums = require('Enums'),
|
||||
|
|
@ -50,7 +50,8 @@
|
|||
kn.constructorEnd(this);
|
||||
}
|
||||
|
||||
kn.extendAsViewModel('PopupsTwoFactorTestViewModel', PopupsTwoFactorTestViewModel);
|
||||
kn.extendAsViewModel(['View:Popup:TwoFactorTest', 'PopupsTwoFactorTestViewModel'], PopupsTwoFactorTestViewModel);
|
||||
_.extend(PopupsTwoFactorTestViewModel.prototype, KnoinAbstractViewModel.prototype);
|
||||
|
||||
PopupsTwoFactorTestViewModel.prototype.clearPopup = function ()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
/* RainLoop Webmail (c) RainLoop Team | Licensed under CC BY-NC-SA 3.0 */
|
||||
|
||||
(function (module, require) {
|
||||
|
||||
'use strict';
|
||||
|
||||
var
|
||||
_ = require('_'),
|
||||
ko = require('ko'),
|
||||
|
||||
Utils = require('Utils'),
|
||||
|
|
@ -27,7 +27,8 @@
|
|||
kn.constructorEnd(this);
|
||||
}
|
||||
|
||||
kn.extendAsViewModel('PopupsViewOpenPgpKeyViewModel', PopupsViewOpenPgpKeyViewModel);
|
||||
kn.extendAsViewModel(['View:Popup:ViewOpenPgpKey', 'PopupsViewOpenPgpKeyViewModel'], PopupsViewOpenPgpKeyViewModel);
|
||||
_.extend(PopupsViewOpenPgpKeyViewModel.prototype, KnoinAbstractViewModel.prototype);
|
||||
|
||||
PopupsViewOpenPgpKeyViewModel.prototype.clearPopup = function ()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,12 +1,13 @@
|
|||
/* RainLoop Webmail (c) RainLoop Team | Licensed under CC BY-NC-SA 3.0 */
|
||||
|
||||
(function (module, require) {
|
||||
|
||||
'use strict';
|
||||
|
||||
var
|
||||
LinkBuilder = require('LinkBuilder'),
|
||||
_ = require('_'),
|
||||
|
||||
Globals = require('Globals'),
|
||||
LinkBuilder = require('LinkBuilder'),
|
||||
|
||||
kn = require('App:Knoin'),
|
||||
KnoinAbstractViewModel = require('Knoin:AbstractViewModel')
|
||||
|
|
@ -29,7 +30,8 @@
|
|||
kn.constructorEnd(this);
|
||||
}
|
||||
|
||||
kn.extendAsViewModel('SettingsMenuViewModel', SettingsMenuViewModel);
|
||||
kn.extendAsViewModel(['View:RainLoop:SettingsMenu', 'SettingsMenuViewModel'], SettingsMenuViewModel);
|
||||
_.extend(SettingsMenuViewModel.prototype, KnoinAbstractViewModel.prototype);
|
||||
|
||||
SettingsMenuViewModel.prototype.link = function (sRoute)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
/* RainLoop Webmail (c) RainLoop Team | Licensed under CC BY-NC-SA 3.0 */
|
||||
|
||||
(function (module, require) {
|
||||
|
||||
'use strict';
|
||||
|
||||
var
|
||||
_ = require('_'),
|
||||
key = require('key'),
|
||||
|
||||
Enums = require('Enums'),
|
||||
|
|
@ -27,7 +27,8 @@
|
|||
kn.constructorEnd(this);
|
||||
}
|
||||
|
||||
kn.extendAsViewModel('SettingsPaneViewModel', SettingsPaneViewModel);
|
||||
kn.extendAsViewModel(['View:RainLoop:SettingsPane', 'SettingsPaneViewModel'], SettingsPaneViewModel);
|
||||
_.extend(SettingsPaneViewModel.prototype, KnoinAbstractViewModel.prototype);
|
||||
|
||||
SettingsPaneViewModel.prototype.onBuild = function ()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,10 +1,11 @@
|
|||
/* RainLoop Webmail (c) RainLoop Team | Licensed under CC BY-NC-SA 3.0 */
|
||||
|
||||
(function (module, require) {
|
||||
|
||||
'use strict';
|
||||
|
||||
var
|
||||
_ = require('_'),
|
||||
|
||||
kn = require('App:Knoin'),
|
||||
AbstractSystemDropDownViewModel = require('View:RainLoop:AbstractSystemDropDown')
|
||||
;
|
||||
|
|
@ -19,7 +20,8 @@
|
|||
kn.constructorEnd(this);
|
||||
}
|
||||
|
||||
kn.extendAsViewModel('SettingsSystemDropDownViewModel', SettingsSystemDropDownViewModel, AbstractSystemDropDownViewModel);
|
||||
kn.extendAsViewModel(['View:RainLoop:SettingsSystemDropDown', 'SettingsSystemDropDownViewModel'], SettingsSystemDropDownViewModel);
|
||||
_.extend(SettingsSystemDropDownViewModel.prototype, AbstractSystemDropDownViewModel.prototype);
|
||||
|
||||
module.exports = SettingsSystemDropDownViewModel;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue