| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 |
- angular.module('appMessage').controller('MessageController', ['$scope', '$filter', '$location', '$anchorScroll', '$element', function($scope, $filter, $location, $anchorScroll, $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.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.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) {
- 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 $filter("date")(item.ts, "yyyy HH:mm:ss");
- } 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);
- }
- };
- });
|