Refactor editview/format

This commit is contained in:
simov
2014-09-08 11:06:59 +03:00
parent 957d0c707d
commit 4cd2e7604e
3 changed files with 42 additions and 48 deletions
+33 -45
View File
@@ -3,42 +3,46 @@ var moment = require('moment');
exports.value = function (column, value) {
if (value == '' && column.defaultValue)
if (value == '' && column.defaultValue) {
value = column.defaultValue;
switch (true) {
case column.control.date:
if (!value) return null;
if (moment(value).isValid())
return moment(value).format('YYYY-MM-DD');
return value;
case column.control.datetime:
if (!value) return null;
if (moment(value).isValid())
return moment(value).format('YYYY-MM-DD hh:mm:ss');
return value;
}
case column.control.binary:
return value ? 'data:image/jpeg;base64,'+value.toString('base64') : value;
if (column.control.date) {
if (!value) return null;
if (moment(value).isValid())
return moment(value).format('YYYY-MM-DD');
return value;
}
case column.control.multiple:
return setActiveMultiple(column, value);
case column.control.select && (column.control.options instanceof Array):
return setActiveStatic(column, value);
else if (column.control.datetime) {
if (!value) return null;
if (moment(value).isValid())
return moment(value).format('YYYY-MM-DD hh:mm:ss');
return value;
}
case column.control.select:
return setActiveSingle(column, value);
else if (column.control.binary) {
return value ? 'data:image/jpeg;base64,'+value.toString('base64') : value;
}
case column.control.radio:
return setActiveRadio(column, value);
else if (column.control.multiple) {
return this.setActiveMultiple(column, value);
}
default:
return value;
else if (column.control.select) {
return this.setActiveSingle(column, value);
}
else if (column.control.radio) {
return this.setActiveRadio(column, value);
}
else {
return value;
}
}
function setActiveSingle (column, value) {
exports.setActiveSingle = function (column, value) {
if (!column.value) return value;
var rows = column.value;
for (var i=0; i < rows.length; i++) {
@@ -50,7 +54,7 @@ function setActiveSingle (column, value) {
return rows;
}
function setActiveMultiple (column, value) {
exports.setActiveMultiple = function (column, value) {
if (!column.value) return value;
var rows = column.value;
for (var i=0; i < rows.length; i++) {
@@ -66,18 +70,7 @@ function setActiveMultiple (column, value) {
return rows;
}
function setActiveStatic (column, value) {
var rows = column.value;
for (var i=0; i < rows.length; i++) {
if (rows[i]['__pk'] === value) {
rows[i].selected = true;
return rows;
}
}
return rows;
}
function setActiveRadio (column, value) {
exports.setActiveRadio = function (column, value) {
if (value == 1)
column.value[0].active = true;
@@ -86,8 +79,3 @@ function setActiveRadio (column, value) {
return column.value;
}
exports._setActiveSingle = setActiveSingle;
exports._setActiveMultiple = setActiveMultiple;
exports._setActiveStatic = setActiveStatic;
exports._setActiveRadio = setActiveRadio;
+7 -1
View File
@@ -6,9 +6,11 @@ exports.value = function (column, value) {
if (/^(datetime|timestamp).*/i.test(column.type)) {
return value ? moment(value).format('ddd MMM DD YYYY hh:mm:ss') : '';
}
else if (/^date.*/i.test(column.type)) {
return value ? moment(value).format('ddd MMM DD YYYY') : '';
}
else if (column.control.radio) {
// mysql
if (typeof value === 'number') {
@@ -23,8 +25,12 @@ exports.value = function (column, value) {
: column.control.options[1];
}
}
else if (column.control.binary) {
return value ? 'data:image/jpeg;base64,'+value.toString('base64') : value;
}
return value
else {
return value
}
}
+2 -2
View File
@@ -16,7 +16,7 @@ describe('format (editview)', function () {
{ __pk: '2', __text: 'tea' }
]
};
format._setActiveSingle(column, 1);
format.setActiveSingle(column, 1);
column.value[2].selected.should.equal(true);
done();
});
@@ -32,7 +32,7 @@ describe('format (editview)', function () {
{ __pk: '2', __text: 'tea' }
]
};
format._setActiveMultiple(column, [5,2]);
format.setActiveMultiple(column, [5,2]);
column.value[1].selected.should.equal(true);
column.value[4].selected.should.equal(true);
done();