Gmail style selection (UNSTABLE)

This commit is contained in:
RainLoop Team 2014-04-09 20:01:41 +04:00
parent deffb81888
commit da88e0d2b5
19 changed files with 561 additions and 572 deletions

View file

@ -14,23 +14,17 @@ function AdminPackages()
this.packagesReal = oData.packagesReal; this.packagesReal = oData.packagesReal;
this.packagesMainUpdatable = oData.packagesMainUpdatable; this.packagesMainUpdatable = oData.packagesMainUpdatable;
this.packagesCurrent = ko.computed(function () { this.packagesCurrent = this.packages.filter(function (oItem) {
return _.filter(this.packages(), function (oItem) { return oItem && '' !== oItem['installed'] && !oItem['compare'];
return oItem && '' !== oItem['installed'] && !oItem['compare']; });
});
}, this); this.packagesAvailableForUpdate = this.packages.filter(function (oItem) {
return oItem && '' !== oItem['installed'] && !!oItem['compare'];
this.packagesAvailableForUpdate = ko.computed(function () { });
return _.filter(this.packages(), function (oItem) {
return oItem && '' !== oItem['installed'] && !!oItem['compare']; this.packagesAvailableForInstallation = this.packages.filter(function (oItem) {
}); return oItem && '' === oItem['installed'];
}, this); });
this.packagesAvailableForInstallation = ko.computed(function () {
return _.filter(this.packages(), function (oItem) {
return oItem && '' === oItem['installed'];
});
}, this);
this.visibility = ko.computed(function () { this.visibility = ko.computed(function () {
return oData.packagesLoading() ? 'visible' : 'hidden'; return oData.packagesLoading() ? 'visible' : 'hidden';

View file

@ -3,34 +3,60 @@
/** /**
* @constructor * @constructor
* @param {koProperty} oKoList * @param {koProperty} oKoList
* @param {koProperty} oKoFocusedItem
* @param {koProperty} oKoSelectedItem * @param {koProperty} oKoSelectedItem
* @param {string} sItemSelector * @param {string} sItemSelector
* @param {string} sItemSelectedSelector * @param {string} sItemSelectedSelector
* @param {string} sItemCheckedSelector * @param {string} sItemCheckedSelector
* @param {string} sItemFocusedSelector * @param {string} sItemFocusedSelector
*/ */
function Selector(oKoList, oKoFocusedItem, oKoSelectedItem, function Selector(oKoList, oKoSelectedItem,
sItemSelector, sItemSelectedSelector, sItemCheckedSelector, sItemFocusedSelector) sItemSelector, sItemSelectedSelector, sItemCheckedSelector, sItemFocusedSelector)
{ {
this.list = oKoList; this.list = oKoList;
this.focusedItem = oKoFocusedItem; this.listChecked = ko.computed(function () {
return _.filter(this.list(), function (oItem) {
return oItem.checked();
});
}, this);
this.isListChecked = ko.computed(function () {
return 0 < this.listChecked().length;
}, this);
this.lastSelectedItem = ko.observable(null);
this.focusedItem = ko.observable(null);
this.selectedItem = oKoSelectedItem; this.selectedItem = oKoSelectedItem;
this.focusedItem.extend({'toggleSubscribe': [null, this.listChecked.subscribe(function (aItems) {
function (oPrev) { if (0 < aItems.length)
if (oPrev) {
this.selectedItem(null);
}
else if (this.bAutoSelect && this.lastSelectedItem())
{
this.selectedItem(this.lastSelectedItem());
}
}, this);
this.selectedItem.subscribe(function (oItem) {
if (oItem)
{
if (this.bAutoSelect)
{ {
oPrev.focused(false); this.lastSelectedItem(oItem);
} }
}, function (oNext) {
if (oNext) if (this.isListChecked())
{ {
oNext.focused(true); _.each(this.listChecked(), function (oSubItem) {
oSubItem.checked(false);
});
} }
} }
]});
}, this);
this.selectedItem.extend({'toggleSubscribe': [null, this.selectedItem.extend({'toggleSubscribe': [null,
function (oPrev) { function (oPrev) {
@ -46,6 +72,20 @@ function Selector(oKoList, oKoFocusedItem, oKoSelectedItem,
} }
]}); ]});
this.focusedItem.extend({'toggleSubscribe': [null,
function (oPrev) {
if (oPrev)
{
oPrev.focused(false);
}
}, function (oNext) {
if (oNext)
{
oNext.focused(true);
}
}
]});
this.oContentVisible = null; this.oContentVisible = null;
this.oContentScrollable = null; this.oContentScrollable = null;
@ -77,8 +117,7 @@ function Selector(oKoList, oKoFocusedItem, oKoSelectedItem,
{ {
if (oItem) if (oItem)
{ {
this.selectItemCallbacks(oItem, !!oItem.__clicked); this.selectItemCallbacks(oItem);
oItem.__clicked = false;
} }
else else
{ {
@ -96,25 +135,33 @@ function Selector(oKoList, oKoFocusedItem, oKoSelectedItem,
}, this); }, this);
var var
self = this,
aCheckedCache = [], aCheckedCache = [],
mFocused = null,
mSelected = null mSelected = null
; ;
this.list.subscribe(function () { this.list.subscribe(function () {
var self = this, aItems = this.list(); var self = this, aItems = this.list();
if (Utils.isArray(aItems)) if (Utils.isArray(aItems))
{ {
_.each(aItems, function (oItem) { _.each(aItems, function (oItem) {
if (oItem.checked()) if (oItem.checked())
{ {
aCheckedCache.push(self.getItemUid(oItem)); aCheckedCache.push(self.getItemUid(oItem));
} }
if (null === mFocused && oItem.focused())
{
mFocused = self.getItemUid(oItem);
}
if (null === mSelected && oItem.selected()) if (null === mSelected && oItem.selected())
{ {
mSelected = self.getItemUid(oItem); mSelected = self.getItemUid(oItem);
} }
}); });
} }
}, this, 'beforeChange'); }, this, 'beforeChange');
@ -125,12 +172,12 @@ function Selector(oKoList, oKoFocusedItem, oKoSelectedItem,
var var
self = this, self = this,
iLen = 0, bChecked = false,
sFocusedUid = this.focusedItem() ? this.getItemUid(this.focusedItem()) : '' iLen = 0
; ;
this.selectedItem(null);
this.focusedItem(null); this.focusedItem(null);
this.selectedItem(null);
if (Utils.isArray(aItems)) if (Utils.isArray(aItems))
{ {
@ -139,25 +186,23 @@ function Selector(oKoList, oKoFocusedItem, oKoSelectedItem,
_.each(aItems, function (oItem) { _.each(aItems, function (oItem) {
var sUid = self.getItemUid(oItem); var sUid = self.getItemUid(oItem);
if (0 < iLen && -1 < Utils.inArray(sUid, aCheckedCache)) if (0 < iLen && -1 < Utils.inArray(sUid, aCheckedCache))
{ {
bChecked = true;
oItem.checked(true); oItem.checked(true);
iLen--; iLen--;
} }
if ('' !== sFocusedUid && sUid === sFocusedUid) if (null !== mFocused && mFocused === sUid)
{ {
self.focusedItem(oItem); self.focusedItem(oItem);
mFocused = null;
} }
if (null !== mSelected && mSelected === self.getItemUid(oItem)) if (!bChecked && null !== mSelected && mSelected === sUid)
{ {
if (!oItem.selected()) self.selectedItem(oItem);
{
self.selectedItem(oItem);
}
mSelected = null; mSelected = null;
} }
}); });
@ -166,20 +211,17 @@ function Selector(oKoList, oKoFocusedItem, oKoSelectedItem,
this.useItemSelectCallback = true; this.useItemSelectCallback = true;
aCheckedCache = []; aCheckedCache = [];
mFocused = null;
mSelected = null; mSelected = null;
}, this); }, this);
this.list.setSelectedByUid = function (sUid) {
self.selectByUid(sUid, false);
};
this.selectItemCallbacksThrottle = _.debounce(this.selectItemCallbacks, 300); this.selectItemCallbacksThrottle = _.debounce(this.selectItemCallbacks, 300);
} }
Selector.prototype.selectItemCallbacks = function (oItem, bClick) Selector.prototype.selectItemCallbacks = function (oItem)
{ {
(this.oCallbacks['onItemSelect'] || this.emptyFunction)(oItem, bClick); (this.oCallbacks['onItemSelect'] || this.emptyFunction)(oItem);
}; };
Selector.prototype.goDown = function (bForceSelect) Selector.prototype.goDown = function (bForceSelect)
@ -214,7 +256,6 @@ Selector.prototype.init = function (oContentVisible, oContentScrollable, sKeySco
}) })
.on('click', this.sItemSelector, function (oEvent) { .on('click', this.sItemSelector, function (oEvent) {
self.actionClick(ko.dataFor(this), oEvent, true); self.actionClick(ko.dataFor(this), oEvent, true);
return false;
}) })
.on('click', this.sItemCheckedSelector, function (oEvent) { .on('click', this.sItemCheckedSelector, function (oEvent) {
var oItem = ko.dataFor(this); var oItem = ko.dataFor(this);
@ -227,15 +268,7 @@ Selector.prototype.init = function (oContentVisible, oContentScrollable, sKeySco
else else
{ {
self.sLastUid = self.getItemUid(oItem); self.sLastUid = self.getItemUid(oItem);
if (oItem.selected()) oItem.checked(!oItem.checked());
{
oItem.checked(false);
self.selectedItem(null);
}
else
{
oItem.checked(!oItem.checked());
}
} }
} }
}) })
@ -302,25 +335,6 @@ Selector.prototype.init = function (oContentVisible, oContentScrollable, sKeySco
} }
}; };
Selector.prototype.selectByUid = function (mUid, bUseCallback)
{
bUseCallback = Utils.isUnd(bUseCallback) ? true : !!bUseCallback;
this.useItemSelectCallback = bUseCallback;
var
oItem = _.find(this.list(), function (oItem) {
return mUid === this.getItemUid(oItem);
}, this)
;
if (oItem)
{
this.selectedItem(oItem);
}
this.useItemSelectCallback = true;
};
Selector.prototype.useKeyboard = function (bValue) Selector.prototype.useKeyboard = function (bValue)
{ {
this.bUseKeyboard = !!bValue; this.bUseKeyboard = !!bValue;
@ -402,7 +416,7 @@ Selector.prototype.newSelectPosition = function (iEventKeyCode, bShiftKey, bForc
break; break;
case Enums.EventKeyCode.Down: case Enums.EventKeyCode.Down:
case Enums.EventKeyCode.Insert: case Enums.EventKeyCode.Insert:
case Enums.EventKeyCode.Space: // case Enums.EventKeyCode.Space:
if (bNext) if (bNext)
{ {
oResult = oItem; oResult = oItem;
@ -476,7 +490,7 @@ Selector.prototype.newSelectPosition = function (iEventKeyCode, bShiftKey, bForc
this.focusedItem(oResult); this.focusedItem(oResult);
if ((this.bAutoSelect || !!bForceSelect) && Enums.EventKeyCode.Space !== iEventKeyCode) if ((this.bAutoSelect || !!bForceSelect) && !this.isListChecked() && Enums.EventKeyCode.Space !== iEventKeyCode)
{ {
window.clearTimeout(this.iSelectTimer); window.clearTimeout(this.iSelectTimer);
this.iSelectTimer = window.setTimeout(function () { this.iSelectTimer = window.setTimeout(function () {
@ -586,9 +600,8 @@ Selector.prototype.eventClickFunction = function (oItem, oEvent)
/** /**
* @param {Object} oItem * @param {Object} oItem
* @param {Object=} oEvent * @param {Object=} oEvent
* @param {boolean=} bRealClick
*/ */
Selector.prototype.actionClick = function (oItem, oEvent, bRealClick) Selector.prototype.actionClick = function (oItem, oEvent)
{ {
if (oItem) if (oItem)
{ {
@ -608,7 +621,6 @@ Selector.prototype.actionClick = function (oItem, oEvent, bRealClick)
} }
oItem.checked(!oItem.checked()); oItem.checked(!oItem.checked());
this.eventClickFunction(oItem, oEvent); this.eventClickFunction(oItem, oEvent);
} }
else if (oEvent.ctrlKey) else if (oEvent.ctrlKey)
@ -622,11 +634,6 @@ Selector.prototype.actionClick = function (oItem, oEvent, bRealClick)
if (bClick) if (bClick)
{ {
if (bRealClick)
{
oItem.__clicked = true;
}
this.selectedItem(oItem); this.selectedItem(oItem);
} }
} }

View file

@ -1184,3 +1184,12 @@ MessageModel.prototype.replacePlaneTextBody = function (sPlain)
this.body.html(sPlain).addClass('b-text-part plain'); this.body.html(sPlain).addClass('b-text-part plain');
} }
}; };
/**
* @return {string}
*/
MessageModel.prototype.flagHash = function ()
{
return [this.deleted(), this.unseen(), this.flagged(), this.answered(), this.forwarded(),
this.isReadReceipt()].join('');
};

View file

@ -298,18 +298,10 @@ function WebMailDataStorage()
}, this); }, this);
this.currentMessage = ko.observable(null); this.currentMessage = ko.observable(null);
this.currentFocusedMessage = ko.observable(null);
this.message.subscribe(function (oMessage) {
if (null === oMessage)
{
this.currentMessage(null);
}
}, this);
this.messageListChecked = ko.computed(function () { this.messageListChecked = ko.computed(function () {
return _.filter(this.messageList(), function (oMessage) { return _.filter(this.messageList(), function (oItem) {
return oMessage.checked(); return oItem.checked();
}); });
}, this); }, this);
@ -324,21 +316,6 @@ function WebMailDataStorage()
}, this); }, this);
this.messageListCheckedUids = ko.computed(function () {
var aList = [];
_.each(this.messageListChecked(), function (oMessage) {
if (oMessage)
{
aList.push(oMessage.uid);
if (0 < oMessage.threadsLen() && 0 === oMessage.parentUid() && oMessage.lastInCollapsedThread())
{
aList = _.union(aList, oMessage.threads());
}
}
});
return aList;
}, this);
this.messageListCheckedOrSelectedUidsWithSubMails = ko.computed(function () { this.messageListCheckedOrSelectedUidsWithSubMails = ko.computed(function () {
var aList = []; var aList = [];
_.each(this.messageListCheckedOrSelected(), function (oMessage) { _.each(this.messageListCheckedOrSelected(), function (oMessage) {
@ -375,17 +352,13 @@ function WebMailDataStorage()
this.openpgpkeys = ko.observableArray([]); this.openpgpkeys = ko.observableArray([]);
this.openpgpKeyring = null; this.openpgpKeyring = null;
this.openpgpkeysPublic = ko.computed(function () { this.openpgpkeysPublic = this.openpgpkeys.filter(function (oItem) {
return _.filter(this.openpgpkeys(), function (oItem) { return !!(oItem && !oItem.isPrivate);
return !!(oItem && !oItem.isPrivate); });
});
}, this);
this.openpgpkeysPrivate = ko.computed(function () { this.openpgpkeysPrivate = this.openpgpkeys.filter(function (oItem) {
return _.filter(this.openpgpkeys(), function (oItem) { return !!(oItem && oItem.isPrivate);
return !!(oItem && oItem.isPrivate); });
});
}, this);
// google // google
this.googleActions = ko.observable(false); this.googleActions = ko.observable(false);
@ -837,28 +810,28 @@ WebMailDataStorage.prototype.removeMessagesFromList = function (
} }
else else
{ {
// select next message // select next message // TODO
if (bMoveSelected) // if (bMoveSelected)
{ // {
_.each(aMessageList, function (oMessage) { // _.each(aMessageList, function (oMessage) {
if (!oNextMessage && oMessage) // if (!oNextMessage && oMessage)
{ // {
if (bGetNext && !oMessage.checked() && !oMessage.deleted() && !oMessage.selected()) // if (bGetNext && !oMessage.checked() && !oMessage.deleted() && !oMessage.selected())
{ // {
oNextMessage = oMessage; // oNextMessage = oMessage;
} // }
else if (!bGetNext && oMessage.selected()) // else if (!bGetNext && oMessage.selected())
{ // {
bGetNext = true; // bGetNext = true;
} // }
} // }
}); // });
//
if (oNextMessage) // if (oNextMessage)
{ // {
this.currentMessage(oNextMessage); // this.currentMessage(oNextMessage);
} // }
} // }
oData.messageListIsNotCompleted(true); oData.messageListIsNotCompleted(true);
@ -1049,6 +1022,17 @@ WebMailDataStorage.prototype.setMessage = function (oData, bCached)
} }
}; };
/**
* @param {Array} aList
* @returns {string}
*/
WebMailDataStorage.prototype.calculateMessageListHash = function (aList)
{
return _.map(aList, function (oMessage) {
return '' + oMessage.hash + '_' + oMessage.threadsLen() + '_' + oMessage.flagHash();
}).join('|');
};
WebMailDataStorage.prototype.setMessageList = function (oData, bCached) WebMailDataStorage.prototype.setMessageList = function (oData, bCached)
{ {
if (oData && oData.Result && 'Collection/MessageCollection' === oData.Result['@Object'] && if (oData && oData.Result && 'Collection/MessageCollection' === oData.Result['@Object'] &&
@ -1062,6 +1046,7 @@ WebMailDataStorage.prototype.setMessageList = function (oData, bCached)
iLen = 0, iLen = 0,
iCount = 0, iCount = 0,
iOffset = 0, iOffset = 0,
aPrevList = [],
aList = [], aList = [],
iUtc = moment().unix(), iUtc = moment().unix(),
aStaticList = oRainLoopData.staticMessageList, aStaticList = oRainLoopData.staticMessageList,
@ -1155,14 +1140,25 @@ WebMailDataStorage.prototype.setMessageList = function (oData, bCached)
oRainLoopData.messageListEndFolder(Utils.isNormal(oData.Result.Folder) ? oData.Result.Folder : ''); oRainLoopData.messageListEndFolder(Utils.isNormal(oData.Result.Folder) ? oData.Result.Folder : '');
oRainLoopData.messageListPage(Math.ceil((iOffset / oRainLoopData.messagesPerPage()) + 1)); oRainLoopData.messageListPage(Math.ceil((iOffset / oRainLoopData.messagesPerPage()) + 1));
oRainLoopData.messageList(aList); aPrevList = oRainLoopData.messageList();
if (aPrevList.length !== aList.length)
{
oRainLoopData.messageList(aList);
}
else if (this.calculateMessageListHash(aPrevList) !== this.calculateMessageListHash(aList))
{
oRainLoopData.messageList(aList);
}
aPrevList = [];
oRainLoopData.messageListIsNotCompleted(false); oRainLoopData.messageListIsNotCompleted(false);
oMessage = oRainLoopData.message(); oMessage = oRainLoopData.message();
if (oMessage && oRainLoopData.messageList.setSelectedByUid) // TODO
{ // if (oMessage && oRainLoopData.messageList.setSelectedByUid)
oRainLoopData.messageList.setSelectedByUid(oMessage.generateUid()); // {
} // oRainLoopData.messageList.setSelectedByUid(oMessage.generateUid());
// }
if (aStaticList.length < aList.length) if (aStaticList.length < aList.length)
{ {

View file

@ -162,7 +162,7 @@
} }
&.focused .sidebarParent { &.focused .sidebarParent {
background-color: #aaa; background-color: #bbb;
} }
&.deleted { &.deleted {

View file

@ -230,7 +230,7 @@ html.rl-no-preview-pane {
} }
&.focused .sidebarParent { &.focused .sidebarParent {
background-color: #aaa !important; background-color: #bbb !important;
} }
&.e-single-line { &.e-single-line {
@ -516,7 +516,7 @@ html.rl-no-preview-pane {
} }
&.hideMessageListCheckbox { &.hideMessageListCheckbox {
.checkedParent, .checkboxCkeckAll { .checkedParent {
display: none !important; display: none !important;
} }
.sidebarParent { .sidebarParent {

View file

@ -19,7 +19,6 @@ function MailBoxMessageListViewModel()
this.message = oData.message; this.message = oData.message;
this.messageList = oData.messageList; this.messageList = oData.messageList;
this.currentMessage = oData.currentMessage; this.currentMessage = oData.currentMessage;
this.currentFocusedMessage = oData.currentFocusedMessage;
this.isMessageSelected = oData.isMessageSelected; this.isMessageSelected = oData.isMessageSelected;
this.messageListSearch = oData.messageListSearch; this.messageListSearch = oData.messageListSearch;
this.messageListError = oData.messageListError; this.messageListError = oData.messageListError;
@ -63,7 +62,7 @@ function MailBoxMessageListViewModel()
this.checkAll = ko.computed({ this.checkAll = ko.computed({
'read': function () { 'read': function () {
return 0 < RL.data().messageListCheckedOrSelected().length; return 0 < RL.data().messageListChecked().length;
}, },
'write': function (bValue) { 'write': function (bValue) {
@ -71,11 +70,6 @@ function MailBoxMessageListViewModel()
_.each(RL.data().messageList(), function (oMessage) { _.each(RL.data().messageList(), function (oMessage) {
oMessage.checked(bValue); oMessage.checked(bValue);
}); });
if (!bValue)
{
RL.data().message(null);
}
} }
}); });
@ -93,7 +87,7 @@ function MailBoxMessageListViewModel()
this.isIncompleteChecked = ko.computed(function () { this.isIncompleteChecked = ko.computed(function () {
var var
iM = RL.data().messageList().length, iM = RL.data().messageList().length,
iC = RL.data().messageListCheckedOrSelected().length iC = RL.data().messageListChecked().length
; ;
return 0 < iM && 0 < iC && iM > iC; return 0 < iM && 0 < iC && iM > iC;
}, this); }, this);
@ -102,10 +96,6 @@ function MailBoxMessageListViewModel()
return 0 < this.messageList().length; return 0 < this.messageList().length;
}, this); }, this);
this.hasCheckedLines = ko.computed(function () {
return 0 < this.messageListChecked().length;
}, this);
this.hasCheckedOrSelectedLines = ko.computed(function () { this.hasCheckedOrSelectedLines = ko.computed(function () {
return 0 < this.messageListCheckedOrSelected().length; return 0 < this.messageListCheckedOrSelected().length;
}, this); }, this);
@ -179,10 +169,6 @@ function MailBoxMessageListViewModel()
this.moveCommand = Utils.createCommand(this, Utils.emptyFunction, this.canBeMoved); this.moveCommand = Utils.createCommand(this, Utils.emptyFunction, this.canBeMoved);
this.setCommand = Utils.createCommand(this, Utils.emptyFunction, this.hasCheckedLines);
this.checkCommand = Utils.createCommand(this, Utils.emptyFunction, this.hasCheckedLines);
this.reloadCommand = Utils.createCommand(this, function () { this.reloadCommand = Utils.createCommand(this, function () {
if (!RL.data().messageListCompleteLoadingThrottle()) if (!RL.data().messageListCompleteLoadingThrottle())
{ {
@ -192,11 +178,11 @@ function MailBoxMessageListViewModel()
this.quotaTooltip = _.bind(this.quotaTooltip, this); this.quotaTooltip = _.bind(this.quotaTooltip, this);
this.selector = new Selector(this.messageList, this.currentFocusedMessage, this.currentMessage, this.selector = new Selector(this.messageList, this.currentMessage,
'.messageListItem .actionHandle', '.messageListItem.selected', '.messageListItem .checkboxMessage', '.messageListItem .actionHandle', '.messageListItem.selected', '.messageListItem .checkboxMessage',
'.messageListItem.focused'); '.messageListItem.focused');
this.selector.on('onItemSelect', _.bind(function (oMessage, bClick) { this.selector.on('onItemSelect', _.bind(function (oMessage) {
if (oMessage) if (oMessage)
{ {
oData.message(oData.staticMessageList.populateByMessageListItem(oMessage)); oData.message(oData.staticMessageList.populateByMessageListItem(oMessage));
@ -207,10 +193,6 @@ function MailBoxMessageListViewModel()
kn.setHash(RL.link().messagePreview(), true); kn.setHash(RL.link().messagePreview(), true);
oData.message.focused(true); oData.message.focused(true);
} }
else if (bClick)
{
oData.message.focused(false);
}
} }
else else
{ {

View file

@ -23,6 +23,7 @@ function MailBoxMessageViewViewModel()
this.keyScope = oData.keyScope; this.keyScope = oData.keyScope;
this.message = oData.message; this.message = oData.message;
this.currentMessage = oData.currentMessage;
this.messageLoading = oData.messageLoading; this.messageLoading = oData.messageLoading;
this.messageLoadingThrottle = oData.messageLoadingThrottle; this.messageLoadingThrottle = oData.messageLoadingThrottle;
this.messagesBodiesDom = oData.messagesBodiesDom; this.messagesBodiesDom = oData.messagesBodiesDom;
@ -42,6 +43,13 @@ function MailBoxMessageViewViewModel()
this.messageVisibility = ko.computed(function () { this.messageVisibility = ko.computed(function () {
return !this.messageLoadingThrottle() && !!this.message(); return !this.messageLoadingThrottle() && !!this.message();
}, this); }, this);
this.message.subscribe(function (oMessage) {
if (!oMessage && this.currentMessage())
{
this.currentMessage(null);
}
}, this);
this.canBeRepliedOrForwarded = this.messageVisibility; this.canBeRepliedOrForwarded = this.messageVisibility;

View file

@ -35,7 +35,6 @@ function PopupsContactsViewModel()
this.contacts.importing = ko.observable(false).extend({'throttle': 200}); this.contacts.importing = ko.observable(false).extend({'throttle': 200});
this.currentContact = ko.observable(null); this.currentContact = ko.observable(null);
this.currentFocusedContact = ko.observable(null);
this.importUploaderButton = ko.observable(null); this.importUploaderButton = ko.observable(null);
@ -162,7 +161,7 @@ function PopupsContactsViewModel()
}); });
}, this); }, this);
this.selector = new Selector(this.contacts, this.currentFocusedContact, this.currentContact, this.selector = new Selector(this.contacts, this.currentContact,
'.e-contact-item .actionHandle', '.e-contact-item.selected', '.e-contact-item .checkboxItem', '.e-contact-item .actionHandle', '.e-contact-item.selected', '.e-contact-item .checkboxItem',
'.e-contact-item.focused'); '.e-contact-item.focused');
@ -565,10 +564,10 @@ PopupsContactsViewModel.prototype.reloadContactList = function (bDropPagePositio
self.viewClearSearch('' !== self.search()); self.viewClearSearch('' !== self.search());
self.contacts.loading(false); self.contacts.loading(false);
if ('' !== self.viewID() && !self.currentContact() && self.contacts.setSelectedByUid) // if ('' !== self.viewID() && !self.currentContact() && self.contacts.setSelectedByUid)
{ // {
self.contacts.setSelectedByUid('' + self.viewID()); // self.contacts.setSelectedByUid('' + self.viewID());
} // }
}, iOffset, Consts.Defaults.ContactsPerPage, this.search()); }, iOffset, Consts.Defaults.ContactsPerPage, this.search());
}; };

View file

@ -19,7 +19,7 @@
<span class="date" data-bind="text: momentShortDate, title: fullFormatDateValue"></span> <span class="date" data-bind="text: momentShortDate, title: fullFormatDateValue"></span>
</div> </div>
<div class="checkedParent"> <div class="checkedParent">
<i class="checkboxMessage" data-bind="css: checked() || selected() ? 'checkboxMessage icon-checkbox-checked' : 'checkboxMessage icon-checkbox-unchecked'"></i> <i class="checkboxMessage" data-bind="css: checked() ? 'checkboxMessage icon-checkbox-checked' : 'checkboxMessage icon-checkbox-unchecked'"></i>
</div> </div>
<div class="senderParent actionHandle dragHandle"> <div class="senderParent actionHandle dragHandle">
<span class="threadsCountParent fullThreadHandle" data-bind="visible: '' !== threadsLenResult(), css: { 'lastSelected': !lastInCollapsedThread() }"> <span class="threadsCountParent fullThreadHandle" data-bind="visible: '' !== threadsLenResult(), css: { 'lastSelected': !lastInCollapsedThread() }">

View file

@ -8,7 +8,7 @@
<span class="date" data-bind="text: momentShortDate, title: fullFormatDateValue"></span> <span class="date" data-bind="text: momentShortDate, title: fullFormatDateValue"></span>
</div> </div>
<div class="checkedParent"> <div class="checkedParent">
<i class="checkboxMessage" data-bind="css: checked() || selected() ? 'checkboxMessage icon-checkbox-checked' : 'checkboxMessage icon-checkbox-unchecked'"></i> <i class="checkboxMessage" data-bind="css: checked() ? 'checkboxMessage icon-checkbox-checked' : 'checkboxMessage icon-checkbox-unchecked'"></i>
</div> </div>
<div class="flagParent"> <div class="flagParent">
<span class="flagOn"> <span class="flagOn">

View file

@ -68,7 +68,7 @@
<div class="delimiter"></div> <div class="delimiter"></div>
<div class="wrapper"> <div class="wrapper">
<div class="checkedParent"> <div class="checkedParent">
<i class="checkboxItem" data-bind="css: checked() || selected() ? 'checkboxMessage icon-checkbox-checked' : 'checkboxMessage icon-checkbox-unchecked'"></i> <i class="checkboxItem" data-bind="css: checked() ? 'checkboxMessage icon-checkbox-checked' : 'checkboxMessage icon-checkbox-unchecked'"></i>
</div> </div>
<div class="shareParent actionHandle"> <div class="shareParent actionHandle">
<i class="icon-share"></i> <i class="icon-share"></i>

View file

@ -637,7 +637,7 @@
border-radius: 8px; border-radius: 8px;
} }
/*! normalize.css 2012-03-11T12:53 UTC - http://github.com/necolas/normalize.css */ /*! normalize.css 2012-03-11T12:53 UTC - http://github.com/necolas/normalize.css */
/* ============================================================================= /* =============================================================================
@ -1142,7 +1142,7 @@ table {
border-collapse: collapse; border-collapse: collapse;
border-spacing: 0; border-spacing: 0;
} }
@charset "UTF-8"; @charset "UTF-8";
@font-face { @font-face {
@ -1483,7 +1483,7 @@ table {
.icon-filter:before { .icon-filter:before {
content: "\e063"; content: "\e063";
} }
/** initial setup **/ /** initial setup **/
.nano { .nano {
/* /*
@ -1600,7 +1600,7 @@ table {
.nano > .pane2:hover > .slider2, .nano > .pane2.active > .slider2 { .nano > .pane2:hover > .slider2, .nano > .pane2.active > .slider2 {
background-color: rgba(0, 0, 0, 0.4); background-color: rgba(0, 0, 0, 0.4);
} }
/* Magnific Popup CSS */ /* Magnific Popup CSS */
.mfp-bg { .mfp-bg {
top: 0; top: 0;
@ -1965,7 +1965,7 @@ img.mfp-img {
right: 0; right: 0;
padding-top: 0; } padding-top: 0; }
/* overlay at start */ /* overlay at start */
.mfp-fade.mfp-bg { .mfp-fade.mfp-bg {
@ -2011,7 +2011,7 @@ img.mfp-img {
-moz-transform: translateX(50px); -moz-transform: translateX(50px);
transform: translateX(50px); transform: translateX(50px);
} }
.simple-pace { .simple-pace {
-webkit-pointer-events: none; -webkit-pointer-events: none;
pointer-events: none; pointer-events: none;
@ -2082,7 +2082,7 @@ img.mfp-img {
@keyframes simple-pace-stripe-animation { @keyframes simple-pace-stripe-animation {
0% { transform: none; transform: none; } 0% { transform: none; transform: none; }
100% { transform: translate(-32px, 0); transform: translate(-32px, 0); } 100% { transform: translate(-32px, 0); transform: translate(-32px, 0); }
} }
.inputosaurus-container { .inputosaurus-container {
background-color:#fff; background-color:#fff;
border:1px solid #bcbec0; border:1px solid #bcbec0;
@ -2150,7 +2150,7 @@ img.mfp-img {
box-shadow:none; box-shadow:none;
} }
.inputosaurus-input-hidden { display:none; } .inputosaurus-input-hidden { display:none; }
.flag-wrapper { .flag-wrapper {
width: 24px; width: 24px;
height: 16px; height: 16px;
@ -2194,7 +2194,7 @@ img.mfp-img {
.flag.flag-pt-br {background-position: -192px -11px} .flag.flag-pt-br {background-position: -192px -11px}
.flag.flag-cn, .flag.flag-zh-tw, .flag.flag-zh-cn, .flag.flag-zh-hk {background-position: -208px -22px} .flag.flag-cn, .flag.flag-zh-tw, .flag.flag-zh-cn, .flag.flag-zh-hk {background-position: -208px -22px}
/* RainLoop Webmail (c) RainLoop Team | Licensed under CC BY-NC-SA 3.0 */ /* RainLoop Webmail (c) RainLoop Team | Licensed under CC BY-NC-SA 3.0 */
.clearfix { .clearfix {
*zoom: 1; *zoom: 1;
@ -6844,7 +6844,7 @@ html.rl-no-preview-pane .messageList.message-selected {
height: 100%; height: 100%;
} }
.messageList .b-content .messageListItem.focused .sidebarParent { .messageList .b-content .messageListItem.focused .sidebarParent {
background-color: #aaa !important; background-color: #bbb !important;
} }
.messageList .b-content .messageListItem.e-single-line { .messageList .b-content .messageListItem.e-single-line {
height: 35px; height: 35px;
@ -7079,8 +7079,7 @@ html.rl-no-preview-pane .messageList.message-selected {
opacity: 0.97; opacity: 0.97;
filter: alpha(opacity=97); filter: alpha(opacity=97);
} }
.messageList.hideMessageListCheckbox .checkedParent, .messageList.hideMessageListCheckbox .checkedParent {
.messageList.hideMessageListCheckbox .checkboxCkeckAll {
display: none !important; display: none !important;
} }
.messageList.hideMessageListCheckbox .sidebarParent { .messageList.hideMessageListCheckbox .sidebarParent {
@ -7617,7 +7616,7 @@ html.rl-message-fullscreen .messageView .b-content .buttonFull {
height: 100%; height: 100%;
} }
.b-contacts-content.modal .b-list-content .e-contact-item.focused .sidebarParent { .b-contacts-content.modal .b-list-content .e-contact-item.focused .sidebarParent {
background-color: #aaa; background-color: #bbb;
} }
.b-contacts-content.modal .b-list-content .e-contact-item.deleted { .b-contacts-content.modal .b-list-content .e-contact-item.deleted {
max-height: 0px; max-height: 0px;

File diff suppressed because one or more lines are too long

View file

@ -1,5 +1,5 @@
/*! RainLoop Webmail Admin Module (c) RainLoop Team | Licensed under CC BY-NC-SA 3.0 */ /*! RainLoop Webmail Admin Module (c) RainLoop Team | Licensed under CC BY-NC-SA 3.0 */
(function (window, $, ko, crossroads, hasher, _) { (function (window, $, ko, crossroads, hasher, _) {
'use strict'; 'use strict';
@ -70,14 +70,14 @@ var
$document = $(window.document), $document = $(window.document),
NotificationClass = window.Notification && window.Notification.requestPermission ? window.Notification : null NotificationClass = window.Notification && window.Notification.requestPermission ? window.Notification : null
; ;
/*jshint onevar: false*/ /*jshint onevar: false*/
/** /**
* @type {?AdminApp} * @type {?AdminApp}
*/ */
var RL = null; var RL = null;
/*jshint onevar: true*/ /*jshint onevar: true*/
/** /**
* @type {?} * @type {?}
*/ */
@ -221,7 +221,7 @@ if (Globals.bAllowPdfPreview && navigator && navigator.mimeTypes)
return oType && 'application/pdf' === oType.type; return oType && 'application/pdf' === oType.type;
}); });
} }
Consts.Defaults = {}; Consts.Defaults = {};
Consts.Values = {}; Consts.Values = {};
Consts.DataImages = {}; Consts.DataImages = {};
@ -339,7 +339,7 @@ Consts.DataImages.UserDotPic = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA
* @type {string} * @type {string}
*/ */
Consts.DataImages.TranspPic = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQIW2NkAAIAAAoAAggA9GkAAAAASUVORK5CYII='; Consts.DataImages.TranspPic = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQIW2NkAAIAAAoAAggA9GkAAAAASUVORK5CYII=';
/** /**
* @enum {string} * @enum {string}
*/ */
@ -714,7 +714,7 @@ Enums.Notification = {
'UnknownNotification': 999, 'UnknownNotification': 999,
'UnknownError': 999 'UnknownError': 999
}; };
Utils.trim = $.trim; Utils.trim = $.trim;
Utils.inArray = $.inArray; Utils.inArray = $.inArray;
Utils.isArray = _.isArray; Utils.isArray = _.isArray;
@ -2473,7 +2473,7 @@ Utils.restoreKeyFilter = function ()
}; };
} }
}; };
// Base64 encode / decode // Base64 encode / decode
// http://www.webtoolkit.info/ // http://www.webtoolkit.info/
@ -2636,7 +2636,7 @@ Base64 = {
} }
}; };
/*jslint bitwise: false*/ /*jslint bitwise: false*/
ko.bindingHandlers.tooltip = { ko.bindingHandlers.tooltip = {
'init': function (oElement, fValueAccessor) { 'init': function (oElement, fValueAccessor) {
if (!Globals.bMobileDevice) if (!Globals.bMobileDevice)
@ -3285,7 +3285,7 @@ ko.observable.fn.validateFunc = function (fFunc)
return this; return this;
}; };
/** /**
* @constructor * @constructor
*/ */
@ -3583,7 +3583,7 @@ LinkBuilder.prototype.socialFacebook = function ()
{ {
return this.sServer + 'SocialFacebook' + ('' !== this.sSpecSuffix ? '/' + this.sSpecSuffix + '/' : ''); return this.sServer + 'SocialFacebook' + ('' !== this.sSpecSuffix ? '/' + this.sSpecSuffix + '/' : '');
}; };
/** /**
* @type {Object} * @type {Object}
*/ */
@ -3677,7 +3677,7 @@ Plugins.settingsGet = function (sPluginSection, sName)
}; };
/** /**
* @constructor * @constructor
*/ */
@ -3751,7 +3751,7 @@ CookieDriver.prototype.get = function (sKey)
return mResult; return mResult;
}; };
/** /**
* @constructor * @constructor
*/ */
@ -3822,7 +3822,7 @@ LocalStorageDriver.prototype.get = function (sKey)
return mResult; return mResult;
}; };
/** /**
* @constructor * @constructor
*/ */
@ -3865,7 +3865,7 @@ LocalStorage.prototype.get = function (iKey)
{ {
return this.oDriver ? this.oDriver.get('p' + iKey) : null; return this.oDriver ? this.oDriver.get('p' + iKey) : null;
}; };
/** /**
* @constructor * @constructor
*/ */
@ -3878,7 +3878,7 @@ KnoinAbstractBoot.prototype.bootstart = function ()
{ {
}; };
/** /**
* @param {string=} sPosition = '' * @param {string=} sPosition = ''
* @param {string=} sTemplate = '' * @param {string=} sTemplate = ''
@ -3967,7 +3967,7 @@ KnoinAbstractViewModel.prototype.registerPopupEscapeKey = function ()
return true; return true;
}); });
}; };
/** /**
* @param {string} sScreenName * @param {string} sScreenName
* @param {?=} aViewModels = [] * @param {?=} aViewModels = []
@ -4043,7 +4043,7 @@ KnoinAbstractScreen.prototype.__start = function ()
this.oCross = oRoute; this.oCross = oRoute;
} }
}; };
/** /**
* @constructor * @constructor
*/ */
@ -4432,7 +4432,7 @@ Knoin.prototype.bootstart = function ()
}; };
kn = new Knoin(); kn = new Knoin();
/** /**
* @param {string=} sEmail * @param {string=} sEmail
* @param {string=} sName * @param {string=} sName
@ -4796,7 +4796,7 @@ EmailModel.prototype.inputoTagLine = function ()
{ {
return 0 < this.name.length ? this.name + ' (' + this.email + ')' : this.email; return 0 < this.name.length ? this.name + ' (' + this.email + ')' : this.email;
}; };
/** /**
* @constructor * @constructor
* @extends KnoinAbstractViewModel * @extends KnoinAbstractViewModel
@ -5014,7 +5014,7 @@ PopupsDomainViewModel.prototype.clearForm = function ()
this.smtpAuth(true); this.smtpAuth(true);
this.whiteList(''); this.whiteList('');
}; };
/** /**
* @constructor * @constructor
* @extends KnoinAbstractViewModel * @extends KnoinAbstractViewModel
@ -5151,7 +5151,7 @@ PopupsPluginViewModel.prototype.onBuild = function ()
} }
}, this)); }, this));
}; };
/** /**
* @constructor * @constructor
* @extends KnoinAbstractViewModel * @extends KnoinAbstractViewModel
@ -5267,7 +5267,7 @@ PopupsActivateViewModel.prototype.validateSubscriptionKey = function ()
{ {
var sValue = this.key(); var sValue = this.key();
return '' === sValue || !!/^RL[\d]+-[A-Z0-9\-]+Z$/.test(Utils.trim(sValue)); return '' === sValue || !!/^RL[\d]+-[A-Z0-9\-]+Z$/.test(Utils.trim(sValue));
}; };
/** /**
* @constructor * @constructor
* @extends KnoinAbstractViewModel * @extends KnoinAbstractViewModel
@ -5327,7 +5327,7 @@ PopupsLanguagesViewModel.prototype.changeLanguage = function (sLang)
RL.data().mainLanguage(sLang); RL.data().mainLanguage(sLang);
this.cancelCommand(); this.cancelCommand();
}; };
/** /**
* @constructor * @constructor
* @extends KnoinAbstractViewModel * @extends KnoinAbstractViewModel
@ -5435,7 +5435,7 @@ PopupsAskViewModel.prototype.onBuild = function ()
}, this)); }, this));
}; };
/** /**
* @constructor * @constructor
* @extends KnoinAbstractViewModel * @extends KnoinAbstractViewModel
@ -5522,7 +5522,7 @@ AdminLoginViewModel.prototype.onHide = function ()
{ {
this.loginFocus(false); this.loginFocus(false);
}; };
/** /**
* @param {?} oScreen * @param {?} oScreen
* *
@ -5544,7 +5544,7 @@ AdminMenuViewModel.prototype.link = function (sRoute)
{ {
return '#/' + sRoute; return '#/' + sRoute;
}; };
/** /**
* @constructor * @constructor
* @extends KnoinAbstractViewModel * @extends KnoinAbstractViewModel
@ -5566,7 +5566,7 @@ AdminPaneViewModel.prototype.logoutClick = function ()
RL.remote().adminLogout(function () { RL.remote().adminLogout(function () {
RL.loginAndLogoutReload(); RL.loginAndLogoutReload();
}); });
}; };
/** /**
* @constructor * @constructor
*/ */
@ -5666,7 +5666,7 @@ AdminGeneral.prototype.selectLanguage = function ()
{ {
kn.showScreenPopup(PopupsLanguagesViewModel); kn.showScreenPopup(PopupsLanguagesViewModel);
}; };
/** /**
* @constructor * @constructor
*/ */
@ -5718,7 +5718,7 @@ AdminLogin.prototype.onBuild = function ()
}, 50); }, 50);
}; };
/** /**
* @constructor * @constructor
*/ */
@ -5787,7 +5787,7 @@ AdminBranding.prototype.onBuild = function ()
}, 50); }, 50);
}; };
/** /**
* @constructor * @constructor
*/ */
@ -6007,7 +6007,7 @@ AdminContacts.prototype.onBuild = function ()
}, 50); }, 50);
}; };
/** /**
* @constructor * @constructor
*/ */
@ -6096,7 +6096,7 @@ AdminDomains.prototype.onDomainListChangeRequest = function ()
{ {
RL.reloadDomainList(); RL.reloadDomainList();
}; };
/** /**
* @constructor * @constructor
*/ */
@ -6191,7 +6191,7 @@ AdminSecurity.prototype.phpInfoLink = function ()
{ {
return RL.link().phpInfo(); return RL.link().phpInfo();
}; };
/** /**
* @constructor * @constructor
*/ */
@ -6307,7 +6307,7 @@ AdminSocial.prototype.onBuild = function ()
}, 50); }, 50);
}; };
/** /**
* @constructor * @constructor
*/ */
@ -6404,7 +6404,7 @@ AdminPlugins.prototype.onPluginDisableRequest = function (sResult, oData)
RL.reloadPluginList(); RL.reloadPluginList();
}; };
/** /**
* @constructor * @constructor
*/ */
@ -6419,23 +6419,17 @@ function AdminPackages()
this.packagesReal = oData.packagesReal; this.packagesReal = oData.packagesReal;
this.packagesMainUpdatable = oData.packagesMainUpdatable; this.packagesMainUpdatable = oData.packagesMainUpdatable;
this.packagesCurrent = ko.computed(function () { this.packagesCurrent = this.packages.filter(function (oItem) {
return _.filter(this.packages(), function (oItem) { return oItem && '' !== oItem['installed'] && !oItem['compare'];
return oItem && '' !== oItem['installed'] && !oItem['compare']; });
});
}, this); this.packagesAvailableForUpdate = this.packages.filter(function (oItem) {
return oItem && '' !== oItem['installed'] && !!oItem['compare'];
this.packagesAvailableForUpdate = ko.computed(function () { });
return _.filter(this.packages(), function (oItem) {
return oItem && '' !== oItem['installed'] && !!oItem['compare']; this.packagesAvailableForInstallation = this.packages.filter(function (oItem) {
}); return oItem && '' === oItem['installed'];
}, this); });
this.packagesAvailableForInstallation = ko.computed(function () {
return _.filter(this.packages(), function (oItem) {
return oItem && '' === oItem['installed'];
});
}, this);
this.visibility = ko.computed(function () { this.visibility = ko.computed(function () {
return oData.packagesLoading() ? 'visible' : 'hidden'; return oData.packagesLoading() ? 'visible' : 'hidden';
@ -6508,7 +6502,7 @@ AdminPackages.prototype.installPackage = function (oPackage)
RL.remote().packageInstall(this.requestHelper(oPackage, true), oPackage); RL.remote().packageInstall(this.requestHelper(oPackage, true), oPackage);
} }
}; };
/** /**
* @constructor * @constructor
*/ */
@ -6559,7 +6553,7 @@ AdminLicensing.prototype.licenseExpiredMomentValue = function ()
{ {
var oDate = moment.unix(this.licenseExpired()); var oDate = moment.unix(this.licenseExpired());
return oDate.format('LL') + ' (' + oDate.from(moment()) + ')'; return oDate.format('LL') + ' (' + oDate.from(moment()) + ')';
}; };
/** /**
* @constructor * @constructor
*/ */
@ -6650,7 +6644,7 @@ AbstractData.prototype.populateDataOnStart = function()
this.contactsIsAllowed(!!RL.settingsGet('ContactsIsAllowed')); this.contactsIsAllowed(!!RL.settingsGet('ContactsIsAllowed'));
}; };
/** /**
* @constructor * @constructor
* @extends AbstractData * @extends AbstractData
@ -6684,7 +6678,7 @@ _.extend(AdminDataStorage.prototype, AbstractData.prototype);
AdminDataStorage.prototype.populateDataOnStart = function() AdminDataStorage.prototype.populateDataOnStart = function()
{ {
AbstractData.prototype.populateDataOnStart.call(this); AbstractData.prototype.populateDataOnStart.call(this);
}; };
/** /**
* @constructor * @constructor
*/ */
@ -6958,7 +6952,7 @@ AbstractAjaxRemoteStorage.prototype.jsVersion = function (fCallback, sVersion)
'Version': sVersion 'Version': sVersion
}); });
}; };
/** /**
* @constructor * @constructor
* @extends AbstractAjaxRemoteStorage * @extends AbstractAjaxRemoteStorage
@ -7202,7 +7196,7 @@ AdminAjaxRemoteStorage.prototype.adminPing = function (fCallback)
{ {
this.defaultRequest(fCallback, 'AdminPing'); this.defaultRequest(fCallback, 'AdminPing');
}; };
/** /**
* @constructor * @constructor
*/ */
@ -7268,7 +7262,7 @@ AbstractCacheStorage.prototype.setEmailsPicsHashesData = function (oData)
{ {
this.oEmailsPicsHashes = oData; this.oEmailsPicsHashes = oData;
}; };
/** /**
* @constructor * @constructor
* @extends AbstractCacheStorage * @extends AbstractCacheStorage
@ -7279,7 +7273,7 @@ function AdminCacheStorage()
} }
_.extend(AdminCacheStorage.prototype, AbstractCacheStorage.prototype); _.extend(AdminCacheStorage.prototype, AbstractCacheStorage.prototype);
/** /**
* @param {Array} aViewModels * @param {Array} aViewModels
* @constructor * @constructor
@ -7457,7 +7451,7 @@ AbstractSettings.prototype.routes = function ()
['', oRules] ['', oRules]
]; ];
}; };
/** /**
* @constructor * @constructor
* @extends KnoinAbstractScreen * @extends KnoinAbstractScreen
@ -7472,7 +7466,7 @@ _.extend(AdminLoginScreen.prototype, KnoinAbstractScreen.prototype);
AdminLoginScreen.prototype.onShow = function () AdminLoginScreen.prototype.onShow = function ()
{ {
RL.setTitle(''); RL.setTitle('');
}; };
/** /**
* @constructor * @constructor
* @extends AbstractSettings * @extends AbstractSettings
@ -7492,7 +7486,7 @@ AdminSettingsScreen.prototype.onShow = function ()
// AbstractSettings.prototype.onShow.call(this); // AbstractSettings.prototype.onShow.call(this);
RL.setTitle(''); RL.setTitle('');
}; };
/** /**
* @constructor * @constructor
* @extends KnoinAbstractBoot * @extends KnoinAbstractBoot
@ -7812,7 +7806,7 @@ AbstractApp.prototype.bootstart = function ()
ssm.ready(); ssm.ready();
}; };
/** /**
* @constructor * @constructor
* @extends AbstractApp * @extends AbstractApp
@ -8051,7 +8045,7 @@ AdminApp.prototype.bootstart = function ()
* @type {AdminApp} * @type {AdminApp}
*/ */
RL = new AdminApp(); RL = new AdminApp();
$html.addClass(Globals.bMobileDevice ? 'mobile' : 'no-mobile'); $html.addClass(Globals.bMobileDevice ? 'mobile' : 'no-mobile');
$window.keydown(Utils.killCtrlAandS).keyup(Utils.killCtrlAandS); $window.keydown(Utils.killCtrlAandS).keyup(Utils.killCtrlAandS);
@ -8098,9 +8092,9 @@ window['__RLBOOT'] = function (fCall) {
window['__RLBOOT'] = null; window['__RLBOOT'] = null;
}); });
}; };
if (window.SimplePace) { if (window.SimplePace) {
window.SimplePace.add(10); window.SimplePace.add(10);
} }
}(window, jQuery, ko, crossroads, hasher, _)); }(window, jQuery, ko, crossroads, hasher, _));

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long