Update signature award order & position
parent
41c5f3dc6e
commit
3b30ea8521
|
@ -126,30 +126,78 @@ let addDecorationsAndSave = (userId, loadedImage, res, next) => {
|
||||||
let ribbonPx = 598;
|
let ribbonPx = 598;
|
||||||
let ribbonPy = 95;
|
let ribbonPy = 95;
|
||||||
|
|
||||||
AwardingModel.find({'userId': userId, 'confirmed': 1}, ['decorationId', 'date'],
|
AwardingModel.find({
|
||||||
{sort: {date: 'asc'}}).populate('decorationId', ['isMedal'])
|
'userId': userId,
|
||||||
|
'confirmed': 1
|
||||||
|
}, ['decorationId', 'date']).populate('decorationId', ['isMedal', 'fraction'])
|
||||||
.exec((err, awardings) => {
|
.exec((err, awardings) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
return next(err);
|
return next(err);
|
||||||
}
|
}
|
||||||
if (awardings.length > 0) {
|
if (awardings.length > 0) {
|
||||||
|
|
||||||
|
//TODO: simplify this sorting hell
|
||||||
|
awardings.sort((a1, a2) => {
|
||||||
|
if (!a1.decorationId.isMedal && !a2.decorationId.isMedal) {
|
||||||
|
if (a1.decorationId.fraction === 'GLOBAL' && a2.decorationId.fraction === 'GLOBAL') {
|
||||||
|
if (a1.date !== a2.date) {
|
||||||
|
if (a1.date < a2.date) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
if (a1.date > a2.date) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
} else {
|
||||||
|
if (a1.decorationId.fraction === 'GLOBAL' && a2.decorationId.fraction !== 'GLOBAL') {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
if (a2.decorationId.fraction === 'GLOBAL' && a1.decorationId.fraction !== 'GLOBAL') {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (a1.decorationId.isMedal !== a2.decorationId.isMedal) {
|
||||||
|
if (a1.decorationId.isMedal && !a2.decorationId.isMedal) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
if (!a1.decorationId.isMedal && a2.decorationId.isMedal) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (a1.decorationId.isMedal && a2.decorationId.isMedal) {
|
||||||
|
if (a1.date !== a2.date) {
|
||||||
|
if (a1.date < a2.date) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
if (a1.date > a2.date) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
// use synchronized call to keep correct order of decorations
|
// use synchronized call to keep correct order of decorations
|
||||||
async.eachSeries(awardings, (award, callback) => {
|
async.eachSeries(awardings, (award, callback) => {
|
||||||
jimp.read(resourceDir + 'decoration/' + award.decorationId._id + fileExt).then((decorationImage) => {
|
jimp.read(resourceDir + 'decoration/' + award.decorationId._id + fileExt).then((decorationImage) => {
|
||||||
|
|
||||||
if (award.decorationId.isMedal) {
|
if (award.decorationId.isMedal) {
|
||||||
decorationImage.resize(medalW, medalH);
|
decorationImage.resize(medalW, medalH);
|
||||||
loadedImage.composite(decorationImage, medalPx, medalPy);
|
loadedImage.composite(decorationImage, medalPx, medalPy);
|
||||||
|
if (medalPy === 5) {
|
||||||
medalPx = medalPx - 1 - medalW;
|
medalPx = medalPx - 1 - medalW;
|
||||||
|
} else {
|
||||||
|
medalPx = medalPx + 1 + medalW;
|
||||||
|
}
|
||||||
if (medalPx <= 300) {
|
if (medalPx <= 300) {
|
||||||
medalPy = medalPy + 3 + medalH;
|
medalPy = medalPy + 3 + medalH;
|
||||||
medalPx = 621;
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
decorationImage.resize(ribbonW, ribbonH);
|
decorationImage.resize(ribbonW, ribbonH);
|
||||||
loadedImage.composite(decorationImage, ribbonPx, ribbonPy);
|
loadedImage.composite(decorationImage, ribbonPx, ribbonPy);
|
||||||
ribbonPx = ribbonPx - 2 - ribbonW;
|
ribbonPx = ribbonPx - 2 - ribbonW;
|
||||||
if (ribbonPx <= 174) {
|
if (ribbonPx <= 154) {
|
||||||
ribbonPy = ribbonPy - 3 - ribbonH;
|
ribbonPy = ribbonPy - 3 - ribbonH;
|
||||||
ribbonPx = 598;
|
ribbonPx = 598;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue