From b7f87be94ec3d61c4bb354a3ef78eee1a442b0ae Mon Sep 17 00:00:00 2001 From: OldHawk Date: Sun, 14 May 2017 18:42:26 +0800 Subject: [PATCH] add chat message font color style select function --- .../controllers/chat.client.controller.js | 59 ++++++++++++++++++- modules/chat/client/less/chat.less | 28 +++++++-- .../chat/client/views/chat.client.view.html | 29 ++++++++- modules/core/client/app/trans-string-en.js | 1 + modules/core/client/app/trans-string-zh.js | 1 + .../directives/mt-scale.client.directive.js | 11 ++-- modules/core/client/less/popover.less | 30 ---------- 7 files changed, 116 insertions(+), 43 deletions(-) delete mode 100644 modules/core/client/less/popover.less diff --git a/modules/chat/client/controllers/chat.client.controller.js b/modules/chat/client/controllers/chat.client.controller.js index 2ba51e43..a1ae4522 100644 --- a/modules/chat/client/controllers/chat.client.controller.js +++ b/modules/chat/client/controllers/chat.client.controller.js @@ -17,6 +17,27 @@ vm.messageText = ''; vm.scrollAtBottom = true; + vm.selectedFontColor = '#000'; + vm.fontColorPopover = { + templateUrl: 'fontColor.html', + isOpen: false + }; + + vm.colorList = [ + '#000000', + '#000080', + '#0000FF', + '#00CC00', + '#008000', + '#008080', + '#800000', + '#800080', + '#808000', + '#DC143C', + '#FF1493', + '#FF4500' + ]; + init(); /** @@ -144,7 +165,8 @@ vm.sendMessage = function () { // Create a new message object var message = { - text: sanitizeHTML(vm.messageText) + text: sanitizeHTML(vm.messageText), + fontColor: vm.selectedFontColor }; // Emit a 'chatMessage' message event @@ -298,6 +320,10 @@ newmsg = newmsg.replace(m, atulink); }); + if (msg.fontColor) { + newmsg = '' + newmsg + '' + } + return newmsg || ' '; }; @@ -387,5 +413,36 @@ Socket.emit('ban', message); }); }; + + /** + * onColorItemClicked + * @param c + */ + vm.onColorItemClicked = function (c) { + angular.element('#font-color-icon').css('color', c); + angular.element('#messageText').css('color', c); + + vm.fontColorPopover.isOpen = false; + vm.selectedFontColor = c; + angular.element('#messageText').trigger('focus'); + }; + + /** + * onColorItemMouseEnter + * @param c + */ + vm.onColorItemMouseEnter = function (c) { + angular.element('#font-color-icon').css('color', c); + angular.element('#messageText').css('color', c); + }; + + /** + * onColorItemMouseLeave + * @param c + */ + vm.onColorItemMouseLeave = function (c) { + angular.element('#font-color-icon').css('color', vm.selectedFontColor); + angular.element('#messageText').css('color', vm.selectedFontColor); + }; } }()); diff --git a/modules/chat/client/less/chat.less b/modules/chat/client/less/chat.less index a902f74b..8119c967 100644 --- a/modules/chat/client/less/chat.less +++ b/modules/chat/client/less/chat.less @@ -139,14 +139,14 @@ display: inline-block; .chat-message-item { position: relative; - border: 1px solid @chat-message-me-border; + border: 1px solid lighten(@chat-message-me-border, 15%); border-radius: 3px; &:after { content: ''; position: absolute; border-style: solid; border-width: 6px 0 6px 6px; - border-color: transparent @chat-message-me-background; + border-color: transparent lighten(@chat-message-me-background, 30%); display: block; width: 0; z-index: 1; @@ -158,7 +158,7 @@ position: absolute; border-style: solid; border-width: 6px 0 6px 6px; - border-color: transparent @chat-message-me-border; + border-color: transparent lighten(@chat-message-me-border, 15%); display: block; width: 0; z-index: 0; @@ -168,7 +168,7 @@ .chat-message-body { text-align: left; padding: 6px; - background-color: @chat-message-me-background; + background-color: lighten(@chat-message-me-background, 30%); border-radius: 3px; } } @@ -307,4 +307,22 @@ } } } -} \ No newline at end of file +} + +.font-color-popover { + max-width: 150px; + max-height: 130px; + width: auto; + height: auto; +} + +.color-list { + margin: 4px -14px -12px -7px; + .color-item { + cursor: pointer; + width: 30px; + height: 30px; + margin-top: -6px; + margin-right: 4px; + } +} diff --git a/modules/chat/client/views/chat.client.view.html b/modules/chat/client/views/chat.client.view.html index 5068957b..f6578f78 100644 --- a/modules/chat/client/views/chat.client.view.html +++ b/modules/chat/client/views/chat.client.view.html @@ -9,7 +9,8 @@