(function () { 'use strict'; app.directive('clipChat', ClipChat); function ClipChat() {// var chatTemplate = '
' + '
    ' + '
  1. {{message.date | amDateFormat:"YYYY.MM.DD HH:mm:ss"}}
  2. ' + '
  3. ' + '
    ' + '
    {{ message.user }}
    ' + '
    {{ message.content }}
    ' + '
    ' + '
    ' + '
  4. ' + '
'; var directive = { restrict: 'EA', template: chatTemplate, replace: true, scope: { messages: "=", idSelf: "=", idOther: "=" }, link: function ($scope, $element, $attrs) { $scope.newChatArray = function () { var filtered = []; for (var i = 0; i < $scope.messages.length; i++) { var item = $scope.messages[i]; if ((item.idUser == $scope.idSelf || item.idOther == $scope.idSelf) && (item.idUser == $scope.idOther || item.idOther == $scope.idOther)) { filtered.push(item); } } return filtered; }; $scope.displayDate = function (i) { var prevDate, nextDate, diffMs, diffMins; var messages = $scope.newChatArray(); if (i === 0) { if (messages.length > 1) { prevDate = new Date(messages[i].date); nextDate = new Date(messages[i + 1].date); diffMs = (nextDate - prevDate); diffMins = Math.round(((diffMs % 86400000) % 3600000) / 60000); } else { return true } } else { prevDate = new Date(messages[i - 1].date); nextDate = new Date(messages[i].date); diffMs = (nextDate - prevDate); diffMins = Math.round(((diffMs % 86400000) % 3600000) / 60000); } if (diffMins > 1) { return true; } else { return false; } }; $scope.nextDate = function (i) { var prevDate, nextDate, diffMs, diffMins; var messages = $scope.newChatArray(); if (i < messages.length - 1) { prevDate = new Date(messages[i].date); nextDate = new Date(messages[i + 1].date); diffMs = (nextDate - prevDate); diffMins = Math.round(((diffMs % 86400000) % 3600000) / 60000); } if (diffMins > 1) { return true; } else { return false; } }; } }; return directive; } app.directive('chatSubmit', SubmitChat); function SubmitChat() { var submitTemplate = '
' + '
' + '
' + '' + '
' + 'Send' + '
' + '
' + '
' + '
'; var directive = { restrict: 'EA', template: submitTemplate, replace: true, scope: { submitFunction: "=", ngModel: "=" }, link: function ($scope, $element, $attrs) { $scope.submitChat = function () { $scope.submitFunction(); if (typeof $attrs.scrollElement !== "undefined") { var scrlEl = angular.element($attrs.scrollElement); var lastElement = scrlEl.find('.discussion > li:last'); if (lastElement.length) scrlEl.scrollToElementAnimated(lastElement); } }; } }; return directive; } })();