@ -18,499 +18,491 @@
@@ -18,499 +18,491 @@
* along with this program . If not , see < http : / / www . gnu . org / licenses / > .
*
* /
# chat {
position : absolute ;
bottom : 0 px ;
right : 260 px ;
width : 260 px ;
top : 0 px ;
pointer-events : none ;
z-index : 45 ;
-webkit-perspective : 1000 ;
-moz-perspective : 1000 ;
-o-perspective : 1000 ;
perspective : 1000 ;
bottom : 0 ;
perspective : 1000 ;
pointer-events : none ;
position : absolute ;
right : 260 px ;
top : 0 ;
width : 260 px ;
z-index : 45 ;
}
. withChat # chat . chatcontainer {
left : 0 px ;
left : 0 px ;
}
. withChat . withChatMaximized # chat {
left : 0 px ;
width : auto ;
. chatcontainer {
width : auto ;
}
}
. chatcontainer {
position : absolute ;
top : 0 px ;
left : 260 px ;
right : 0 px ;
bottom : 0 px ;
width : 260 px ;
overflow : hidden ;
-webkit-transition : left 200 ms ease-in-out ;
-moz-transition : left 200 ms ease-in-out ;
-ms-transition : left 200 ms ease-in-out ;
-o-transition : left 200 ms ease-in-out ;
transition : left 200 ms ease-in-out ;
background : #e7e7e7 ;
}
. chatlist {
position : absolute ;
top : 0 px ;
left : 100 % ;
bottom : 0 px ;
width : 100 % ;
background : #e7e7e7 ;
-webkit-transition : left 200 ms ease-in-out ;
-moz-transition : left 200 ms ease-in-out ;
-ms-transition : left 200 ms ease-in-out ;
-o-transition : left 200 ms ease-in-out ;
transition : left 200 ms ease-in-out ;
. list-group {
margin-top : - 1 px ;
margin-bottom : - 1 px ;
max-height : 100 % ;
overflow-x : hidden ;
overflow-y : auto ;
}
. list-group-item {
border-right : none ;
border-left : none ;
-webkit-border-radius : 0 px ;
-moz-border-radius : 0 px ;
border-radius : 0 px ;
position : relative ;
}
. list-group-item . fa-lg {
display : inline-block ;
width : 18 px ;
text-align : center ;
}
. list-group-item . badge {
background : #84b819 ;
border : 1 px solid white ;
font-size : .8 em ;
}
. list-group-item {
padding-right : 30 px ;
}
. list-group-item . disabled {
color : #aaa ;
}
. list-group-item > . item-btn {
position : absolute ;
right : 12 px ;
cursor : pointer ;
display : none ;
}
. list-group-item : hover > . item-btn {
display : inline ;
}
}
. chatpane {
position : absolute ;
top : 0 px ;
right : 0 px ;
bottom : 0 px ;
width : 100 % ;
-webkit-transition : 0 .3 s ;
-webkit-transform-style : preserve-3d ;
-moz-transition : 0 .3 s ;
-moz-transform-style : preserve-3d ;
-o-transition : 0 .3 s ;
-o-transform-style : preserve-3d ;
transition : 0 .3 s ;
transform-style : preserve-3d ;
-webkit-backface-visibility : hidden ;
-moz-backface-visibility : hidden ;
-o-backface-visibility : hidden ;
backface-visibility : hidden ;
}
. showchatlist . chatpane {
right : 100 % ;
}
. showchatlist . chatlist {
left : 0 px ;
}
. withChat . chatpane . flip {
-webkit-transform : rotateY ( 360 deg ) ;
-moz-transform : rotateY ( 360 deg ) ;
-o-transform : rotateY ( 360 deg ) ;
transform : rotateY ( 360 deg ) ;
}
. chat {
pointer-events : auto ;
position : absolute ;
top : 0 px ;
bottom : 0 px ;
right : 0 px ;
left : 0 px ;
background : #e7e7e7 ;
overflow : hidden ;
display : none ;
}
. chat . visible {
}
. chat . visible . active {
display : block ;
}
. chat . chatbody {
position : absolute ;
bottom : - 1 px ;
left : 0 px ;
right : 0 px ;
top : 36 px ;
border-right : 1 px solid $bordercolor ;
}
. chat . active . chatbody {
}
. chat . chatheader {
position : absolute ;
left : 0 px ;
right : 0 px ;
top : 0 px ;
background : $componentbg ;
padding : 0 px 4 px 0 px 8 px ;
border-top : 1 px solid $bordercolor ;
border-bottom : 1 px solid $bordercolor ;
border-right : 1 px solid $bordercolor ;
height : 36 px ;
line-height : 34 px ;
}
. chat . active . chatheader {
}
. chat . chatheader . chatstatusicon {
position : absolute ;
left : 0 px ;
top : 0 px ;
font-size : 1 .4 em ;
width : 36 px ;
height : 36 px ;
display : block ;
text-align : center ;
cursor : pointer ;
}
. chat . chatheader . chatheadertitle {
padding-left : 28 px ;
display : inline ;
}
. chat . chatheader . ctrl {
position : absolute ;
top : 0 px ;
right : 1 px ;
color : rgba ( 0 , 0 , 0 , 0 .3 ) ;
}
. chat . chatheader span {
display : inline-block ;
max-width : 60 % ;
text-overflow : ellipsis ;
white-space : nowrap ;
overflow : hidden ;
pointer-events : none ;
vertical-align : middle ;
}
. chat . chatheader . ctrl i {
padding : 6 px ;
cursor : pointer ;
}
. chat . outputbox {
position : absolute ;
left : 0 px ;
right : 0 px ;
top : 0 px ;
bottom : 75 px ;
}
. chat . output {
overflow-x : hidden ;
overflow-y : auto ;
padding : 0 .4 em 0 ;
height : 100 % ;
}
. chat . output > i {
font-size : 0 .8 em ;
color : #aaa ;
display : block ;
padding : 6 px 0 ;
text-align : center ;
clear : both ;
}
. chat . output > i . p2p {
padding : 6 px 0 ;
font-weight : bold ;
}
. chat . output . message {
background : #fff ;
border : 1 px solid #e5e5ef ;
border-radius : 6 px ;
margin-bottom : 2 px ;
position : relative ;
word-wrap : break-word ;
padding : 8 px ;
margin-left : 20 px ;
margin-right : 4 px ;
clear : both ;
display : block ;
}
. chat . output . message . timestamp {
font-size : 0 .8 em ;
color : #aaa ;
text-align : right ;
position : absolute ;
top : 8 px ;
right : 8 px ;
transform : rotateY ( 360 deg ) ;
}
. chat . with_pictures . output . message . is_self . timestamp {
right : 58 px ;
. withChat . withChatMaximized # chat {
left : 0 ;
width : auto ;
. chatcontainer {
width : auto ;
}
}
. chat . output . message > ul {
list-style-type : none ;
margin : 0 ;
padding-left : 0 ;
. chatcontainer {
background : $chat-background ;
bottom : 0 ;
left : 260 px ;
overflow : hidden ;
position : absolute ;
right : 0 ;
top : 0 ;
transition : left 200 ms ease-in-out ;
width : 260 px ;
}
. chat . output . message > ul > li {
line-height : 1 .1 em ;
margin : 4 px 0 ;
padding-left : 1 .2 em ;
position : relative ;
. showchatlist {
. chatpane {
right : 100 % ;
}
. chatlist {
left : 0 ;
}
}
. chat . message li : before {
font-family : ' FontAwesome ' ;
content : ' \f075 ' ;
color : #ccc ;
position : absolute ;
left : 0 px ;
width : 12 px ;
text-align : center ;
. chatlist {
position : absolute ;
top : 0 ;
left : 100 % ;
bottom : 0 ;
width : 100 % ;
background : $chat-background ;
transition : left 200 ms ease-in-out ;
. list-group {
overflow-x : hidden ;
overflow-y : auto ;
margin-top : - 1 px ;
margin-bottom : - 1 px ;
max-height : 100 % ;
}
. list-group-item {
border-right : none ;
border-left : none ;
border-radius : 0 ;
position : relative ;
}
. list-group-item . newmessage {
animation : newmessage 1 s ease - 0 .3 s infinite ;
}
. list-group-item . fa-lg {
display : inline-block ;
text-align : center ;
width : 18 px ;
}
. list-group-item . badge {
background : $chat-badge ;
border : 1 px solid white ;
font-size : .8 em ;
}
. list-group-item {
padding-right : 30 px ;
}
. list-group-item . disabled {
color : $chat-disabled ;
}
. list-group-item > . item-btn {
cursor : pointer ;
display : none ;
position : absolute ;
right : 12 px ;
}
. list-group-item : hover > . item-btn {
display : inline ;
}
}
. chat . message . is_self li : before {
moz-transform : scale ( - 1 , 1 ) ;
-webkit-transform : scale ( - 1 , 1 ) ;
transform : scale ( - 1 , 1 ) ;
color : #ccc ;
. chatpane {
backface-visibility : hidden ;
bottom : 0 ;
position : absolute ;
right : 0 ;
top : 0 ;
transition : 0 .3 s ;
transform-style : preserve-3d ;
width : 100 % ;
}
. chat . message li . unread : before {
content : ' \f0eb ' ;
color : #FE9A2E ;
. chat {
background : $chat-background ;
display : none ;
bottom : 0 ;
left : 0 ;
overflow : hidden ;
pointer-events : auto ;
position : absolute ;
right : 0 ;
top : 0 ;
}
. chat . message li . sending : before {
content : ' \f0ec ' ;
. chat {
& . active {
& . visible {
display : block ;
}
. chatbody {
/ / nothing
}
. chatheader {
/ / nothing
}
}
}
. chat . message li . sent : before {
content : ' \f003 ' ;
color : #5882FA ;
. chatbody {
border-right : 1 px solid $bordercolor ;
bottom : - 1 px ;
left : 0 ;
position : absolute ;
right : 0 ;
top : 36 px ;
}
. chat . message li . delivered : before {
content : ' \f019 ' ;
color : #5882FA ;
. chatheader {
background : $componentbg ;
border-top : 1 px solid $bordercolor ;
border-bottom : 1 px solid $bordercolor ;
border-right : 1 px solid $bordercolor ;
height : 36 px ;
left : 0 ;
line-height : 34 px ;
padding : 0 4 px 0 8 px ;
position : absolute ;
right : 0 ;
top : 0 ;
. chatstatusicon {
cursor : pointer ;
display : block ;
font-size : 1 .4 em ;
height : 36 px ;
left : 0 ;
position : absolute ;
text-align : center ;
top : 0 ;
width : 36 px ;
}
. chatheadertitle {
padding-left : 28 px ;
display : inline ;
}
. ctrl {
color : $chat-ctrl ;
position : absolute ;
right : 1 px ;
top : 0 ;
. #{ $fa-css-prefix } {
cursor : pointer ;
padding : 6 px ;
}
}
span {
display : inline-block ;
max-width : 60 % ;
overflow : hidden ;
pointer-events : none ;
text-overflow : ellipsis ;
vertical-align : middle ;
white-space : nowrap ;
}
}
. chat . message li . received : before {
content : ' \f06e ' ;
color : #84b819 ;
. chat . outputbox {
bottom : 75 px ;
left : 0 ;
position : absolute ;
right : 0 ;
top : 0 ;
}
. chat . message li . read : before {
content : ' \f00c ' ;
color : #ccc ;
. chat . output {
height : 100 % ;
overflow-x : hidden ;
overflow-y : auto ;
padding : 0 .4 em 0 ;
> i {
clear : both ;
color : #aaa ;
display : block ;
font-size : 0 .8 em ;
padding : 6 px 0 ;
text-align : center ;
& . p2p {
padding : 6 px 0 ;
font-weight : bold ;
}
}
}
. chat . output . message . buddyimage {
position : absolute ;
top : 4 px ;
width : 46 px ;
height : 46 px ;
left : 4 px ;
overflow : hidden ;
border-radius : 2 px ;
background : $actioncolor1 ;
text-align : center ;
}
. chat . output . message . is_self . buddyimage {
right : 4 px ;
left : auto ;
}
. chat . output . message . buddyimage > i {
line-height : 46 px ;
color : $actioncolor2 ;
}
. chat . output . message . buddyimage > img {
position : absolute ;
left : 0 px ;
right : 0 px ;
bottom : 0 px ;
top : 0 px ;
display : block ;
. chat . with_pictures . output . message . is_self . timestamp {
right : 58 px ;
}
. chat . with_pictures . output . message . is_remote {
padding-left : 58 px ;
}
. chat . output . message : before , . chat . output . message : after {
content : " " ;
position : absolute ;
border-style : solid ;
width : 0 ;
display : block ;
}
. chat . output . message . is_remote : before {
top : 4 px ;
bottom : auto ;
left : - 16 px ;
border-width : 10 px 17 px 10 px 0 ;
border-color : transparent #fff ;
padding-left : 58 px ;
}
. chat . output . message . is_remote : after {
top : 5 px ;
bottom : auto ;
left : - 15 px ;
border-width : 9 px 15 px 9 px 0 ;
border-color : transparent #fff ;
}
. chat . output . message . is_self : before {
top : 4 px ;
bottom : auto ;
right : - 16 px ;
border-width : 10 px 0 10 px 17 px ;
border-color : transparent #fff ;
}
. chat . output . message . is_self : after {
top : 5 px ;
bottom : auto ;
right : - 15 px ;
border-width : 9 px 0 9 px 15 px ;
border-color : transparent #fff ;
. chat . with_pictures . output . message . is_self {
padding-right : 54 px ;
}
. chat . output . message . with_name {
}
. chat . output . message . is_self {
background : #fff ;
margin-right : 20 px ;
margin-left : 4 px ;
padding-right : 0 px ;
}
. chat . with_pictures . output . message . is_self {
padding-right : 54 px ;
. chat . message {
background : #fff ;
border : 1 px solid #e5e5ef ;
border-radius : 6 px ;
clear : both ;
display : block ;
margin-bottom : 2 px ;
padding : 8 px ;
position : relative ;
margin-left : 20 px ;
margin-right : 4 px ;
word-wrap : break-word ;
ul {
list-style-type : none ;
margin : 0 ;
padding-left : 0 ;
}
li {
line-height : 1 .1 em ;
margin : 4 px 0 ;
padding-left : 1 .2 em ;
position : relative ;
& : before {
color : #ccc ;
content : ' \f075 ' ;
font-family : FontAwesome ;
left : 0 ;
text-align : center ;
position : absolute ;
width : 12 px ;
}
}
. timestamp {
color : $chat-timestamp ;
font-size : 0 .8 em ;
position : absolute ;
right : 8 px ;
text-align : right ;
top : 8 px ;
}
}
. chat . output . message strong {
display : block ;
padding-bottom : 2 px ;
margin-right : 40 px ;
white-space : nowrap ;
overflow : hidden ;
text-overflow : ellipsis ;
. chat . message {
& . is_self li : before {
color : #ccc ;
transform : scale ( - 1 , 1 ) ;
}
li {
& . unread : before {
content : ' \f0eb ' ;
color : #FE9A2E ;
}
& . sending : before {
content : ' \f0ec ' ;
}
& . sent : before {
content : ' \f003 ' ;
color : #5882FA ;
}
& . delivered : before {
content : ' \f019 ' ;
color : #5882FA ;
}
& . received : before {
content : ' \f06e ' ;
color : #84b819 ;
}
& . read : before {
content : ' \f00c ' ;
color : #ccc ;
}
}
}
. chat . chatbodybottom {
background : #e7e7e7 ;
position : absolute ;
left : 0 px ;
bottom : 1 px ;
right : 0 px ;
margin : 0 auto ;
. chat . message {
& . is_self . avatar {
right : 4 px ;
left : auto ;
}
. avatar {
position : absolute ;
top : 4 px ;
width : 46 px ;
height : 46 px ;
left : 4 px ;
overflow : hidden ;
border-radius : 2 px ;
background : $actioncolor1 ;
text-align : center ;
. #{ $fa-css-prefix } {
line-height : 46 px ;
color : $actioncolor2 ;
}
img {
position : absolute ;
left : 0 px ;
right : 0 px ;
bottom : 0 px ;
top : 0 px ;
display : block ;
}
}
}
. chat . typinghint {
padding : 2 px 6 px 0 6 px ;
white-space : nowrap ;
overflow : hidden ;
font-size : .8 em ;
color : #aaa ;
height : 14 px ;
}
. chat . inputbox {
position : relative ;
}
. chat . inputbox . btn {
position : absolute ;
right : 6 px ;
top : 1 px ;
padding : 0 .5 em 1 em ;
display : none ;
}
. chat . inputbox > div {
border-top : 1 px solid $bordercolor ;
}
. chat . input {
display : block ;
resize : none ;
width : 100 % ;
height : 54 px ;
max-height : 54 px ; /* FF hack */
margin : 0 px ;
-webkit-border-radius : 0 px ;
-moz-border-radius : 0 px ;
border-radius : 0 px ;
border-color : transparent ;
-webkit-box-shadow : none ;
-moz-box-shadow : none ;
box-shadow : none ;
}
. chat . input . active , . chat . input : active , . chat . input : focus {
border-color : #66afe9 ;
. chat . message {
& : before ,
& : after {
content : " " ;
position : absolute ;
border-style : solid ;
width : 0 ;
display : block ;
}
& . is_remote {
& : before {
top : 4 px ;
bottom : auto ;
left : - 16 px ;
border-width : 10 px 17 px 10 px 0 ;
border-color : transparent #fff ;
}
& : after {
top : 5 px ;
bottom : auto ;
left : - 15 px ;
border-width : 9 px 15 px 9 px 0 ;
border-color : transparent #fff ;
}
}
& . is_self {
background : #fff ;
margin-right : 20 px ;
margin-left : 4 px ;
padding-right : 0 px ;
& : before {
top : 4 px ;
bottom : auto ;
right : - 16 px ;
border-width : 10 px 0 10 px 17 px ;
border-color : transparent #fff ;
}
& : after {
top : 5 px ;
bottom : auto ;
right : - 15 px ;
border-width : 9 px 0 9 px 15 px ;
border-color : transparent #fff ;
}
}
& . with_name {
/ / none
}
}
@keyframes newmessage {
0 % { background-color : rgba ( 132 , 184 , 25 , 1 .0 ) ; }
50 % { background-color : $componentbg ; }
100 % { background-color : rgba ( 132 , 184 , 25 , 1 .0 ) ; }
. chat . output . message strong {
display : block ;
padding-bottom : 2 px ;
margin-right : 40 px ;
white-space : nowrap ;
overflow : hidden ;
text-overflow : ellipsis ;
}
@-webkit-keyframes newmessage {
0 % { background-color : rgba ( 132 , 184 , 25 , 1 .0 ) ; }
50 % { background-color : $componentbg ; }
100 % { background-color : rgba ( 132 , 184 , 25 , 1 .0 ) ; }
. chat {
. chatbodybottom {
background : #e7e7e7 ;
position : absolute ;
left : 0 px ;
bottom : 1 px ;
right : 0 px ;
margin : 0 auto ;
}
. typinghint {
padding : 2 px 6 px 0 6 px ;
white-space : nowrap ;
overflow : hidden ;
font-size : .8 em ;
color : #aaa ;
height : 14 px ;
}
. inputbox {
position : relative ;
. btn {
position : absolute ;
right : 6 px ;
top : 1 px ;
padding : 0 .5 em 1 em ;
display : none ;
}
> div {
border-top : 1 px solid $bordercolor ;
}
}
. input {
display : block ;
resize : none ;
width : 100 % ;
height : 54 px ;
max-height : 54 px ; /* FF hack */
margin : 0 px ;
-webkit-border-radius : 0 px ;
-moz-border-radius : 0 px ;
border-radius : 0 px ;
border-color : transparent ;
-webkit-box-shadow : none ;
-moz-box-shadow : none ;
box-shadow : none ;
& : active ,
& : focus {
border-color : #66afe9 ;
}
}
}
. chat . newmessage . chatheader , . chatlist . list-group-item . newmessage {
animation : newmessage 1 s ease - 0 .3 s infinite ;
-webkit-animation : newmessage 1 s ease - 0 .3 s infinite ;
@keyframes newmessage {
0 % { background-color : rgba ( 132 , 184 , 25 , 1 .0 ) ; }
50 % { background-color : $componentbg ; }
100 % { background-color : rgba ( 132 , 184 , 25 , 1 .0 ) ; }
}
. chat . newmessage . chatheadertitle : after {
content : " *** " ;
position : absolute ;
top : 2 px ;
right : 32 px ;
. chat . newmessage {
. chatheadertitle : after {
content : " *** " ;
position : absolute ;
right : 32 px ;
top : 2 px ;
}
. chatheader {
animation : newmessage 1 s ease - 0 .3 s infinite ;
}
}
@media all and ( max-height : 210 px ) {
. chat . inputbox {
height : auto ;
}
. chat . input {
max-height : 2 .5 em ;
}
. chat . outputbox {
bottom : 45 px ;
}
. chat . chatbodybottom {
height : auto ;
}
. chat . typinghint {
display : none ;
}
. chat . chatheader {
display : none ;
}
. chat . chatbody {
border-top : 1 px solid $bordercolor ;
top : 0 px ;
}
}
. chat . inputbox {
height : auto ;
}
. chat . input {
max-height : 2 .5 em ;
}
. chat . outputbox {
bottom : 45 px ;
}
. chat . chatbodybottom {
height : auto ;
}
. chat . typinghint {
display : none ;
}
. chat . chatheader {
display : none ;
}
. chat . chatbody {
border-top : 1 px solid $bordercolor ;
top : 0 px ;
}
}