129 lines
3.5 KiB
JavaScript
129 lines
3.5 KiB
JavaScript
|
|
|
|
function hexToRgb(hex) {
|
|
var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
|
|
return result ? {
|
|
r: parseInt(result[1], 16),
|
|
g: parseInt(result[2], 16),
|
|
b: parseInt(result[3], 16)
|
|
} : null;
|
|
}
|
|
|
|
|
|
function isBrightColor(color){
|
|
color = hexToRgb(color);
|
|
if ((color.r*0.299 + color.g*0.587 + color.b*0.114) > 186){
|
|
return true;
|
|
}
|
|
else{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
var messageTemplate = '';
|
|
|
|
var refreshMsg = (function(){
|
|
var generalID=null;
|
|
var isChief = false;
|
|
var sequence =null;
|
|
|
|
return function(){
|
|
var deferred = $.ajax({
|
|
url: 'json_result.php',
|
|
type: 'post',
|
|
dataType:'json',
|
|
contentType: 'application/json',
|
|
data: JSON.stringify({
|
|
sequence:sequence
|
|
})
|
|
});
|
|
|
|
function registerGlobal(obj){
|
|
if(!obj.result){
|
|
deferred.reject();
|
|
return;
|
|
}
|
|
generalID = obj.generalID;
|
|
isChief = obj.isChief;
|
|
sequence = obj.sequence;
|
|
return obj;
|
|
}
|
|
|
|
function refineMessageObjs(obj){
|
|
var msgList = [obj.public, obj.private, obj.diplomacy, obj.national];
|
|
$.each(msgList, function(){
|
|
if(!this){
|
|
return true;
|
|
}
|
|
|
|
console.log(this);
|
|
|
|
$.each(this, function(){
|
|
var msg = this;
|
|
if(!msg.src.nation){
|
|
msg.src.nation = '재야';
|
|
msg.src.color = '#ffffff';
|
|
}
|
|
|
|
if(!msg.dest.nation){
|
|
msg.dest.nation = '재야';
|
|
msg.dest.color = '#ffffff';
|
|
}
|
|
|
|
msg.src.colorType = isBrightColor(msg.src.color)?'bright':'dark';
|
|
msg.dest.colorType = isBrightColor(msg.dest.color)?'bright':'dark';
|
|
});
|
|
});
|
|
return obj;
|
|
}
|
|
|
|
function printTemplate(obj){
|
|
var printList = [
|
|
[obj.public, $('#message_board .public_message'), 'public'],
|
|
[obj.private, $('#message_board .private_message'), 'private'],
|
|
[obj.diplomacy, $('#message_board .diplomacy_message'), 'diplomacy'],
|
|
[obj.national, $('#message_board .national_message'), 'national'],
|
|
];
|
|
|
|
$.each(printList, function(){
|
|
var msgSource = this[0];
|
|
var $msgBoard = this[1];
|
|
var msgType = this[2];
|
|
|
|
if(!msgSource || $msgBoard.length == 0){
|
|
console.log('No Items', msgSource, $msgBoard);
|
|
return true;
|
|
}
|
|
|
|
//list의 맨 앞이 가장 최신 메시지임.
|
|
var msgHtmls = msgSource.map(function(msg){
|
|
msg.msgType = msgType;
|
|
var msgHtml = TemplateEngine(messageTemplate, msg);
|
|
console.log(msgHtml);
|
|
return msgHtml;
|
|
});
|
|
|
|
var $items = $(msgHtmls.join(''));
|
|
console.log($items);
|
|
$msgBoard.prepend($items);
|
|
});
|
|
|
|
}
|
|
|
|
deferred
|
|
.then(registerGlobal)
|
|
.then(refineMessageObjs)
|
|
.then(printTemplate);
|
|
|
|
|
|
|
|
|
|
};
|
|
})();
|
|
|
|
jQuery(function($){
|
|
$.get('tmp_template.html',function(obj){
|
|
messageTemplate = obj;
|
|
}).then(refreshMsg);
|
|
//refreshMsg();
|
|
}); |