UI Cleanup - Updated Instrumentation, jQuery and Mixins subtrees.

This commit is contained in:
Taloth Saldono
2015-02-13 22:06:20 +01:00
parent 44928c8f64
commit 70bfad4e6a
24 changed files with 716 additions and 490 deletions

View File

@@ -1,17 +1,23 @@
var _ = require('underscore');
var Config = require('../Config');
module.exports = function(){
module.exports = function() {
var originalSetSorting = this.prototype.setSorting;
this.prototype.setSorting = function(sortKey, order, options){
this.prototype.setSorting = function(sortKey, order, options) {
var sortMapping = this._getSortMapping(sortKey);
options = _.defaults({sortValue : sortMapping.sortValue}, options || {});
options = _.defaults({ sortValue : sortMapping.sortValue }, options || {});
return originalSetSorting.call(this, sortMapping.sortKey, order, options);
};
this.prototype._getSortMappings = function(){
this.prototype._getSortMappings = function() {
var result = {};
if(this.sortMappings) {
_.each(this.sortMappings, function(values, key){
if (this.sortMappings) {
_.each(this.sortMappings, function(values, key) {
var item = {
name : key,
sortKey : values.sortKey || key,
@@ -21,80 +27,104 @@ module.exports = function(){
result[item.sortKey] = item;
});
}
return result;
};
this.prototype._getSortMapping = function(key){
this.prototype._getSortMapping = function(key) {
var sortMappings = this._getSortMappings();
return sortMappings[key] || {
name : key,
sortKey : key
};
};
this.prototype._getSecondarySorting = function(){
this.prototype._getSecondarySorting = function() {
var sortKey = this.state.secondarySortKey;
var sortOrder = this.state.secondarySortOrder || -1;
if(!sortKey || sortKey === this.state.sortKey) {
if (!sortKey || sortKey === this.state.sortKey) {
return null;
}
var sortMapping = this._getSortMapping(sortKey);
if(!sortMapping.sortValue) {
sortMapping.sortValue = function(model, attr){
if (!sortMapping.sortValue) {
sortMapping.sortValue = function(model, attr) {
return model.get(attr);
};
}
return {
key : sortKey,
order : sortOrder,
sortValue : sortMapping.sortValue
};
};
this.prototype._makeComparator = function(sortKey, order, sortValue){
this.prototype._makeComparator = function(sortKey, order, sortValue) {
var state = this.state;
var secondarySorting = this._getSecondarySorting();
sortKey = sortKey || state.sortKey;
order = order || state.order;
if(!sortKey || !order) {
if (!sortKey || !order) {
return;
}
if(!sortValue) {
sortValue = function(model, attr){
if (!sortValue) {
sortValue = function(model, attr) {
return model.get(attr);
};
}
return function(left, right){
return function(left, right) {
var l = sortValue(left, sortKey, order);
var r = sortValue(right, sortKey, order);
var t;
if(order === 1) {
if (order === 1) {
t = l;
l = r;
r = t;
}
if(l === r) {
if(secondarySorting) {
if (l === r) {
if (secondarySorting) {
var ls = secondarySorting.sortValue(left, secondarySorting.key, order);
var rs = secondarySorting.sortValue(right, secondarySorting.key, order);
var ts;
if(secondarySorting.order === 1) {
if (secondarySorting.order === 1) {
ts = ls;
ls = rs;
rs = ts;
}
if(ls === rs) {
if (ls === rs) {
return 0;
}
if(ls < rs) {
if (ls < rs) {
return -1;
}
return 1;
}
return 0;
}
else if(l < r) {
else if (l < r) {
return -1;
}
return 1;
};
};
return this;
};
};