Code refactoring

Fixed languages popup
Release commit
This commit is contained in:
RainLoop Team 2014-09-02 04:15:31 +04:00
parent fa795947cf
commit ccbf04cb67
123 changed files with 1375 additions and 5128 deletions

View file

@ -1,21 +1,18 @@
/* 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'),
hasher = require('hasher'),
crossroads = require('crossroads'),
Globals = require('Globals'),
Plugins = require('Plugins'),
Utils = require('Utils'),
KnoinAbstractViewModel = require('Knoin:AbstractViewModel')
Utils = require('Utils')
;
/**
@ -49,22 +46,23 @@
};
/**
* @param {string} sName
* @param {string|Array} mName
* @param {Function} ViewModelClass
* @param {Function=} AbstractViewModel = KnoinAbstractViewModel
*/
Knoin.prototype.extendAsViewModel = function (sName, ViewModelClass, AbstractViewModel)
Knoin.prototype.extendAsViewModel = function (mName, ViewModelClass)
{
if (ViewModelClass)
{
if (!AbstractViewModel)
if (Utils.isArray(mName))
{
AbstractViewModel = KnoinAbstractViewModel;
ViewModelClass.__names = mName;
}
else
{
ViewModelClass.__names = [mName];
}
ViewModelClass.__name = sName;
Plugins.regViewModelHook(sName, ViewModelClass);
_.extend(ViewModelClass.prototype, AbstractViewModel.prototype);
ViewModelClass.__name = ViewModelClass.__names[0];
}
};
@ -142,6 +140,7 @@
ViewModelClass.__vm = oViewModel;
oViewModel.viewModelName = ViewModelClass.__name;
oViewModel.viewModelNames = ViewModelClass.__names;
if (oViewModelPlace && 1 === oViewModelPlace.length)
{
@ -175,6 +174,10 @@
Utils.delegateRun(this, 'onHide');
this.restoreKeyScope();
_.each(this.viewModelNames, function (sName) {
Plugins.runHook('view-model-on-hide', [sName, self]);
});
Globals.popupVisibilityNames.remove(this.viewModelName);
oViewModel.viewModelDom.css('z-index', 2000);
@ -188,7 +191,9 @@
}, oViewModel);
}
Plugins.runHook('view-model-pre-build', [ViewModelClass.__name, oViewModel, oViewModelDom]);
_.each(ViewModelClass.__names, function (sName) {
Plugins.runHook('view-model-pre-build', [sName, oViewModel, oViewModelDom]);
});
ko.applyBindingAccessorsToNode(oViewModelDom[0], {
'i18nInit': true,
@ -201,14 +206,16 @@
oViewModel.registerPopupKeyDown();
}
Plugins.runHook('view-model-post-build', [ViewModelClass.__name, oViewModel, oViewModelDom]);
_.each(ViewModelClass.__names, function (sName) {
Plugins.runHook('view-model-post-build', [sName, oViewModel, oViewModelDom]);
});
}
else
{
Utils.log('Cannot find view model position: ' + sPosition);
}
}
return ViewModelClass ? ViewModelClass.__vm : null;
};
@ -220,7 +227,6 @@
if (ViewModelClassToHide && ViewModelClassToHide.__vm && ViewModelClassToHide.__dom)
{
ViewModelClassToHide.__vm.modalVisibility(false);
Plugins.runHook('view-model-on-hide', [ViewModelClassToHide.__name, ViewModelClassToHide.__vm]);
}
};
@ -238,7 +244,10 @@
{
ViewModelClassToShow.__vm.modalVisibility(true);
Utils.delegateRun(ViewModelClassToShow.__vm, 'onShow', aParameters || []);
Plugins.runHook('view-model-on-show', [ViewModelClassToShow.__name, ViewModelClassToShow.__vm, aParameters || []]);
_.each(ViewModelClassToShow.__names, function (sName) {
Plugins.runHook('view-model-on-show', [sName, ViewModelClassToShow.__vm, aParameters || []]);
});
}
}
};
@ -340,10 +349,13 @@
{
ViewModelClass.__dom.show();
ViewModelClass.__vm.viewModelVisibility(true);
Utils.delegateRun(ViewModelClass.__vm, 'onShow');
Utils.delegateRun(ViewModelClass.__vm, 'onFocus', [], 200);
Plugins.runHook('view-model-on-show', [ViewModelClass.__name, ViewModelClass.__vm]);
_.each(ViewModelClass.__names, function (sName) {
Plugins.runHook('view-model-on-show', [sName, ViewModelClass.__vm]);
});
}
}, self);

View file

@ -1,7 +1,6 @@
/* RainLoop Webmail (c) RainLoop Team | Licensed under CC BY-NC-SA 3.0 */
(function (module) {
'use strict';
/**

View file

@ -1,11 +1,12 @@
/* RainLoop Webmail (c) RainLoop Team | Licensed under CC BY-NC-SA 3.0 */
(function (module, require) {
'use strict';
var
_ = require('_'),
crossroads = require('crossroads'),
Utils = require('Utils')
;

View file

@ -1,4 +1,3 @@
/* RainLoop Webmail (c) RainLoop Team | Licensed under CC BY-NC-SA 3.0 */
(function (module, require) {
@ -8,14 +7,14 @@
ko = require('ko'),
Enums = require('Enums'),
Globals = require('Globals'),
Utils = require('Utils')
Utils = require('Utils'),
Globals = require('Globals')
;
/**
* @constructor
* @param {string=} sPosition = ''
* @param {string=} sTemplate = ''
* @constructor
*/
function KnoinAbstractViewModel(sPosition, sTemplate)
{
@ -26,13 +25,19 @@
this.sDefaultKeyScope = Enums.KeyState.None;
this.sCurrentKeyScope = this.sDefaultKeyScope;
this.viewModelName = '';
this.viewModelVisibility = ko.observable(false);
this.modalVisibility = ko.observable(false).extend({'rateLimit': 0});
this.viewModelName = '';
this.viewModelNames = [];
this.viewModelDom = null;
}
/**
* @type {boolean}
*/
KnoinAbstractViewModel.prototype.bDisabeCloseOnEsc = false;
/**
* @type {string}
*/
@ -43,11 +48,26 @@
*/
KnoinAbstractViewModel.prototype.sTemplate = '';
/**
* @type {string}
*/
KnoinAbstractViewModel.prototype.sDefaultKeyScope = Enums.KeyState.None;
/**
* @type {string}
*/
KnoinAbstractViewModel.prototype.sCurrentKeyScope = Enums.KeyState.None;
/**
* @type {string}
*/
KnoinAbstractViewModel.prototype.viewModelName = '';
/**
* @type {Array}
*/
KnoinAbstractViewModel.prototype.viewModelNames = [];
/**
* @type {?}
*/