| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182 |
- angular.module('appMessage').controller('MessageController', ['$scope', '$filter', '$location', '$anchorScroll', '$timeout', '$element', function($scope, $filter, $location, $anchorScroll, $timeout, $element) {
- lxtalkClient.Invoke('{15180DEF-D508-45F7-BAEB-6486CD8752C8}', '_Register', '', $scope);
- $scope.glued = true;
- $scope.count = true;
- $scope.appContent = {};
- $scope.sendMark = 0;
- $scope.receiveMark = 0;
- $scope.sMessageTime = [];
- $scope.rMessageTime = [];
- $scope.sendmessages = [];
- $scope.historymessages = [];
- $scope.initAppContent = function(appContentJson) {
- $scope.appContent = JSON.parse(appContentJson);
- };
- $scope.addMessage = function() {
- scroll(document.body);
- };
- $scope.voicePlay = function($event) {
- var audio = $($event.target.parentElement.nextElementSibling)[0];
- var unread = $($event.target.nextElementSibling);
- var audioAll = $('audio');
- console.log($($event.target));
- console.log(audioAll);
- if (audio !== null) {
- if (audio.paused) {
- for (var i = 0, len = audioAll.length; i < len; i++) {
- if (!audioAll[i].paused) {
- $(audioAll[i].previousElementSibling.firstElementChild).removeClass("app-voice-play");
- $(audioAll[i].previousElementSibling.firstElementChild).addClass("app-voice-pause");
- audioAll[i].load();
- }
- }
- unread.removeClass("app-voice-unread");
- $($event.target).removeClass("app-voice-pause");
- $($event.target).addClass("app-voice-play");
- $timeout(function() {
- $($event.target).removeClass("app-voice-play");
- $($event.target).addClass("app-voice-pause");
- }, 1000 * audio.duration);
- audio.play();
- } else {
- $($event.target).removeClass("app-voice-play");
- $($event.target).addClass("app-voice-pause");
- audio.pause();
- audio.load();
- }
- }
- };
- $scope.showMessage = function(jsonStr) {
- console.log(jsonStr);
- jsonStr = jsonStr.replace(/ /g, " ");
- jsonStr = jsonStr.replace(/\r\n/g, "<br>");
- jsonStr = jsonStr.replace(/\r/g, "\\r");
- jsonStr = jsonStr.replace(/\n/g, "\\n");
- jsonStr = jsonStr.replace(/\t/g, "\\t");
- jsonStr = jsonStr.replace(/\f/g, "\\f");
- var msg = JSON.parse(jsonStr);
- $scope.sendmessages.push(msg);
- $scope.scrollHide();
- };
- $scope.showHistoryMessage = function(jsonStr) {
- console.log(jsonStr);
- jsonStr = jsonStr.replace(/ /g, " ");
- jsonStr = jsonStr.replace(/\r\n/g, "<br>");
- jsonStr = jsonStr.replace(/\r/g, "\\r");
- jsonStr = jsonStr.replace(/\n/g, "\\n");
- jsonStr = jsonStr.replace(/\t/g, "\\t");
- jsonStr = jsonStr.replace(/\f/g, "\\f");
- var msg = JSON.parse(jsonStr);
- $scope.historymessages.push(msg);
- };
- $scope.getUserhead = function(item) {
- var arr = $scope.appContent.directory.user.split("\\");
- var userself = arr[arr.length - 2];
- if (item.sender.indexOf(userself) !== -1)
- return 'user-head user-head-rt';
- else
- return 'user-head user-head-lf';
- };
- $scope.getHisTime = function(item) {
- var myDate = new Date();
- var nowDate = $filter("date")(myDate.getTime(), "yyyy-MM-dd");
- var messageDate = $filter("date")(item.ts, "yyyy-MM-dd");
- if (messageDate == nowDate)
- return $filter("date")(item.ts, "HH:mm:ss");
- else
- return $filter("date")(item.ts, "yyyy-MM-dd HH:mm:ss");
- };
- $scope.getCurTime = function(item) {
- var arr = $scope.appContent.directory.user.split("\\");
- var userself = arr[arr.length - 2];
- var getUserID = item.sender.indexOf(userself);
- var myDate = new Date();
- var nowDate = $filter("date")(myDate.getTime(), "yyyy-MM-dd");
- var messageDate = $filter("date")(item.ts, "yyyy-MM-dd");
- if (getUserID !== -1) {
- $scope.sMessageTime[$scope.sendMark] = item.ts;
- $scope.sendMark = $scope.sendMark + 1;
- $scope.receiveMark = 0;
- $scope.rMessageTime = [];
- } else {
- $scope.rMessageTime[$scope.receiveMark] = item.ts;
- $scope.receiveMark = $scope.receiveMark + 1;
- $scope.sendMark = 0;
- $scope.sMessageTime = [];
- }
- if ($scope.sendMark == 1 || $scope.receiveMark == 1 || Math.abs($scope.sMessageTime[$scope.sendMark - 1] - $scope.sMessageTime[0]) == 0 || Math.abs($scope.rMessageTime[$scope.receiveMark - 1] - $scope.rMessageTime[0]) == 0) {
- return $filter("date")(item.ts, "HH:mm:ss");
- } else if ($scope.sendMark > 1 && Math.abs($scope.sMessageTime[$scope.sendMark - 1] - $scope.sMessageTime[0]) <= 60000) {
- return '';
- } else if ($scope.receiveMark > 1 && Math.abs($scope.rMessageTime[$scope.receiveMark - 1] - $scope.rMessageTime[0]) <= 60000) {
- return '';
- } else if ($scope.sendMark > 1 && Math.abs($scope.sMessageTime[$scope.sendMark - 1] - $scope.sMessageTime[0]) > 60000) {
- $scope.sMessageTime[0] = $scope.sMessageTime[$scope.sendMark - 1];
- $scope.sendMark = 1;
- return $filter("date")(item.ts, "HH:mm:ss");
- } else if ($scope.receiveMark > 1 && Math.abs($scope.rMessageTime[$scope.receiveMark - 1] - $scope.rMessageTime[0]) > 60000) {
- $scope.rMessageTime[0] = $scope.rMessageTime[$scope.receiveMark - 1];
- $scope.receiveMark = 1;
- return $filter("date")(item.ts, "HH:mm:ss");
- }
- };
- $scope.getMore = function() {
- if ($scope.count) {
- $scope.height = document.body.scrollHeight;
- lxtalkClient.Invoke('{15180DEF-D508-45F7-BAEB-6486CD8752C8}', 'LoadHistoryMessages', '', $scope);
- $scope.count = false;
- } else {
- angular.element(".i-More").addClass("hide");
- angular.element(".n-More").removeClass("hide");
- $scope.height = document.body.scrollHeight;
- lxtalkClient.Invoke('{15180DEF-D508-45F7-BAEB-6486CD8752C8}', 'LoadHistoryMessages', '', $scope);
- $scope.count = false;
- }
- };
- $scope.scrollWheel = function() {
- if (document.body.scrollTop == 0) {
- $scope.height = document.body.scrollHeight;
- lxtalkClient.Invoke('{15180DEF-D508-45F7-BAEB-6486CD8752C8}', 'LoadHistoryMessages', '', $scope);
- $scope.count = false;
- }
- };
- $scope.loadImages = function(data) {
- lxtalkClient.Invoke('{15180DEF-D508-45F7-BAEB-6486CD8752C8}', 'LoadImages', JSON.stringify(data), $scope);
- };
- $scope.scrollHide = function() {
- angular.element("#body").addClass("scrollGlue");
- };
- $scope.scrollShow = function() {
- if (angular.element("#body").hasClass("scrollGlue")) {
- angular.element("#body").removeClass("scrollGlue");
- gotoBottom();
- } else angular.element("#body").removeClass("scrollGlue");
- };
- var gotoBottom = function() {
- $location.hash("bottom");
- $anchorScroll();
- };
- }])
- .animation(".animate", function() {
- return {
- enter: function(element, done) {
- var height = element.height();
- element.css({ position: 'relative', bottom: 0, opacity: 0 });
- element.animate({ bottom: 0, opacity: 1 }, 500, done);
- }
- };
- });
|