//FIXME: ES6 template literal을 ES5에 맞게 변경 var messageTemplate = ` bgcolor="#CC6600" <%} else if(msgType == 'national') {%> bgcolor="#336600" <%} else /*$msgType == 'public'*/ {%> bgcolor="#000055" <%} %> style="font-size:13px;table-layout:fixed;word-break:break-all;" id="msg_<%id%>" >
<%if(src.icon) { %> <%} else {%> <%}%> <%if(msgType == 'private') {%> [ <%e(src.name)%>:<%e(src.nation)%><%e(dest.name)%>:<%e(dest.nation)%> ] <%} else if(msgType == 'national' && src.nation_id == dest.nation_id){%> [ <%e(src.name)%>:<%e(src.nation)%> ] <%} else if(msgType == 'national' || msgType == 'diplomacy'){%> [ <%e(src.name)%>:<%e(src.nation)%><%e(dest.nation)%> ] <%} else {%> [ <%e(src.name)%>:<%e(src.nation)%> ] <%} %> <<%e(time)%>>
<%e(text)%> <%if(this.option){ console.log('HasOption!!'); %>
<%} %>
`; 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 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(printTemplate); }; })(); jQuery(function($){ refreshMsg(); });