chat.js 2.2 KB

1
  1. !function(){"use strict";function e(){var e='<div><ol class="discussion"><li class="messages-date" ng-repeat-start="message in newChatArray()" ng-if="displayDate($index) || $index == 0">{{message.date | amDateFormat:"YYYY.MM.DD HH:mm:ss"}}</li><li ng-class="{\'self\' : message.idUser == idSelf, \'other\' : message.idUser !== idSelf, \'nextSame\': newChatArray()[$index+1].idUser == message.idUser && !nextDate($index)}" ng-repeat-end><div class="message"><div class="message-name" ng-if="newChatArray()[$index-1].idUser !== message.idUser || displayDate($index)">{{ message.user }}</div><div class="message-text" style="word-wrap: break-word;">{{ message.content }}</div><div class="message-avatar"><img ng-src="{{ message.avatar }}" alt=""></div></div></li></ol>',a={restrict:"EA",template:e,replace:!0,scope:{messages:"=",idSelf:"=",idOther:"="},link:function(e,a,s){e.newChatArray=function(){for(var a=[],s=0;s<e.messages.length;s++){var t=e.messages[s];t.idUser!=e.idSelf&&t.idOther!=e.idSelf||t.idUser!=e.idOther&&t.idOther!=e.idOther||a.push(t)}return a},e.displayDate=function(a){var s,t,i,n,r=e.newChatArray();if(0===a){if(!(r.length>1))return!0;s=new Date(r[a].date),t=new Date(r[a+1].date),i=t-s,n=Math.round(i%864e5%36e5/6e4)}else s=new Date(r[a-1].date),t=new Date(r[a].date),i=t-s,n=Math.round(i%864e5%36e5/6e4);return n>1},e.nextDate=function(a){var s,t,i,n,r=e.newChatArray();return a<r.length-1&&(s=new Date(r[a].date),t=new Date(r[a+1].date),i=t-s,n=Math.round(i%864e5%36e5/6e4)),n>1}}};return a}function a(){var e='<form ng-submit="submitChat()"><div class="message-bar"><div class="message-inner"><!--a href="#" class="link icon-only"><i class="fa fa-camera"></i></a--><div class="message-area"><input placeholder="消息" ng-model="ngModel" /></div><a translate="offsidebar.chat.SEND" href="#" class="link ng-scope" ng-click="submitChat()">Send</a></div></div></form></div>',a={restrict:"EA",template:e,replace:!0,scope:{submitFunction:"=",ngModel:"="},link:function(e,a,s){e.submitChat=function(){if(e.submitFunction(),"undefined"!=typeof s.scrollElement){var a=angular.element(s.scrollElement),t=a.find(".discussion > li:last");t.length&&a.scrollToElementAnimated(t)}}}};return a}app.directive("clipChat",e),app.directive("chatSubmit",a)}();