You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

1419 lines
36 KiB

/** The message area **/
@mixin setSelectedContact() {
background-color: #4f94cd;
color: #fff;
border: none;
.information {
.lastmessage {
color: #fff;
}
}
.picture {
border: none;
}
}
.hidden {
display: none;
}
.messaging-area-container {
margin-bottom: 30px;
.status {
.online-text {
display: none;
color: #7d7;
}
.offline-text {
color: #ff6961;
}
&.online {
.online-text {
display: inherit;
}
.offline-text {
display: none;
}
}
}
a,
.btn.btn-link {
color: #4f94cd;
}
.messaging-area {
border: 1px solid #e3e3e3;
clear: both;
img {
max-width: 100%;
}
.contacts-area {
border-right: 1px solid #e3e3e3;
height: 600px;
@media (max-height: 670px) {
height: 500px;
}
width: 280px;
display: inline-block;
box-sizing: border-box;
&.searchfilter {
.searchtextarea {
height: 80px;
}
.searcharea {
height: 470px;
}
}
.searchtextarea {
padding: 5px;
text-align: center;
height: 50px;
box-sizing: border-box;
line-height: 50px;
background-color: #fff;
transition: background-color linear 0.2s;
input {
height: 28px;
line-height: 20px;
margin-bottom: 10px;
vertical-align: middle;
padding: 4px 6px;
background-color: #f5f5f5;
border: 0;
width: 90%;
box-shadow: none;
transition: background-color linear 0.2s;
&:focus {
box-shadow: none;
}
}
&.searching {
background-color: #f5f5f5;
transition: background-color linear 0.2s;
input {
background-color: #fff;
transition: background-color linear 0.2s;
}
}
.searchfilterarea {
line-height: 20px;
cursor: pointer;
.searchfilter {
float: left;
}
.searchfilterdelete {
float: left;
margin-left: 5px;
}
}
}
.searcharea {
.heading {
text-align: center;
border-top: 1px solid black;
border-bottom: 1px solid black;
font-size: 14px;
font-weight: bold;
}
.course {
text-align: center;
&:hover {
background-color: #4f94cd;
color: #fff;
border: none;
cursor: pointer;
}
}
.noresults {
padding-top: 20px;
text-align: center;
}
}
.contacts {
height: 500px;
@media (max-height: 670px) {
height: 400px;
}
overflow-y: auto;
-webkit-overflow-scrolling: touch;
.nocontacts {
padding-top: 20px;
text-align: center;
}
.contact {
height: 66px;
cursor: pointer;
border-bottom: 1px solid #e3e3e3;
box-sizing: border-box;
&.unread {
background-color: #f1f1f1;
.picture {
border-color: #f1f1f1;
}
.information {
width: 60%;
}
.unread-count-container {
display: inline-block;
width: 15%;
float: left;
}
}
&:hover {
@include setSelectedContact();
background-color: #79b5e6;
}
&.selected {
@include setSelectedContact();
}
.picture {
line-height: 66px;
text-align: center;
height: 66px;
border-bottom: 1px solid #fff;
width: 25%;
float: left;
display: inline-block;
box-sizing: border-box;
img {
border-radius: 50%;
height: 54px;
}
}
.information {
padding: 6px 0;
height: 66px;
width: 75%;
float: left;
display: inline-block;
box-sizing: border-box;
.name {
font-weight: bold;
img {
vertical-align: baseline;
}
}
.lastmessage {
word-wrap: break-word;
margin: 0;
height: 40px;
line-height: 17px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
color: #a1a1a1;
padding-right: 10px;
}
}
.unread-count-container {
display: none;
line-height: 66px;
text-align: center;
box-sizing: border-box;
}
}
}
@mixin setSelectedTab() {
color: #4f94cd;
}
.tabs {
border-top: 1px solid #e3e3e3;
height: 50px;
box-sizing: border-box;
.tab {
cursor: pointer;
height: 100%;
background-color: #f5f5f5;
margin: 0;
width: 50%;
text-align: center;
float: left;
&:hover {
@include setSelectedTab();
}
.tabimage {
height: 30px;
line-height: 30px;
img {
height: 20px;
}
}
}
.tab.selected {
@include setSelectedTab();
}
}
}
.messages-area {
width: calc(100% - 280px);
height: 600px;
@media (max-height: 670px) {
height: 500px;
}
box-sizing: border-box;
margin: 0;
position: relative;
float: right;
.btn-container {
position: absolute;
top: 0;
left: 0;
padding-left: 15px;
font-weight: normal;
&.view-toggle {
display: none;
}
&.delete-all {
display: none;
}
}
.profile-header {
height: 50px;
line-height: 50px;
display: none;
.btn-container {
display: block;
.btn-link {
padding: 0;
line-height: inherit;
}
}
}
.profile {
padding: 30px;
font-size: 16px;
height: 600px;
@media (max-height: 670px) {
height: 500px;
}
box-sizing: border-box;
overflow-y: auto;
-webkit-overflow-scrolling: touch;
.user-container {
height: 100px;
.profile-picture {
border-radius: 50%;
max-height: 100px;
display: inline-block;
}
.name-container {
display: inline-block;
vertical-align: top;
margin-top: 20px;
margin-left: 10px;
.name {
font-weight: bold;
display: block;
}
.status {
display: block;
font-size: 14px;
}
}
}
.information {
margin: 0;
display: inline-block;
float: right;
margin-top: 20px;
font-size: 14px;
list-style: none;
.name {
display: inline-block;
font-weight: bold;
text-align: right;
margin-right: 10px;
}
.value {
display: inline-block;
}
}
.actions {
padding-top: 80px;
.separator {
border-bottom: 1px solid #e3e3e3;
margin-bottom: 20px;
padding-bottom: 5px;
a {
&.danger {
color: #ff6961;
}
}
}
}
}
.messages-header {
height: 50px;
font-weight: bold;
line-height: 50px;
box-sizing: border-box;
border-bottom: 1px solid #e3e3e3;
text-align: center;
position: relative;
.btn-link {
padding: 0;
line-height: inherit;
}
.delete-instructions {
display: none;
}
.name-container {
padding-top: 9px;
display: inline-block;
.name {
line-height: 20px;
}
.status {
line-height: 12px;
font-size: 12px;
font-weight: normal;
}
}
.actions {
position: absolute;
top: 0;
right: 0;
padding-right: 15px;
font-weight: normal;
.cancel-messages-delete {
display: none;
}
}
}
.messages {
height: 500px;
@media (max-height: 670px) {
height: 400px;
}
overflow-y: auto;
overflow-x: hidden;
-webkit-overflow-scrolling: touch;
box-sizing: border-box;
padding: 20px;
.blocktime {
clear: both;
text-align: center;
color: #a1a1a1;
font-size: 12px;
margin: 5px 0;
}
.message {
.deletemessagecheckbox {
display: none;
text-align: center;
padding-top: 5px;
}
.content {
border: 1px solid #e3e3e3;
padding: 10px;
margin-bottom: 5px;
font-size: 12px;
word-wrap: break-word;
max-width: 55%;
position: relative;
.text {
display: block;
p {
margin: 0;
}
}
.timesent {
font-size: 10px;
color: #a1a1a1;
float: right;
}
}
.content.left {
margin-left: auto;
}
.content.right {
margin-right: auto;
}
}
}
.response {
display: table;
padding: 10px 10px 9px;
position: absolute;
bottom: 0;
left: 0;
width: 100%;
line-height: 28px;
text-align: center;
border-top: 1px solid #e3e3e3;
box-sizing: border-box;
background-color: #fff;
transition: background-color linear 0.2s;
.delete-confirmation {
display: none;
.btn.btn-link.confirm {
border: 1px solid #4f94cd;
height: 30px;
&:hover {
background-color: #4f94cd;
color: #fff;
text-shadow: none;
}
}
}
.message-box {
display: table-row;
.message-text-container {
display: table-cell;
textarea {
line-height: 20px;
padding: 4px 6px;
vertical-align: middle;
width: 100%;
margin: 0;
resize: none;
border: none;
box-shadow: none;
box-sizing: border-box;
background-color: #f5f5f5;
transition: background-color linear 0.2s;
&:focus {
box-shadow: none;
}
}
}
.send-button-container {
display: table-cell;
width: 1px;
button {
height: 30px;
}
}
}
&.messaging {
background-color: #f5f5f5;
transition: background-color linear 0.2s;
.message-box {
.message-text-container {
textarea {
background-color: #fff;
transition: background-color linear 0.2s;
}
}
}
}
}
&.editing {
.messages-header {
.btn-container {
&.view-all {
display: none;
}
&.delete-all {
display: block;
}
}
.delete-instructions {
display: block;
}
.name-container {
display: none;
}
.actions {
.messages-delete {
display: none;
}
.cancel-messages-delete {
display: block;
}
}
}
.messages {
.message {
cursor: pointer;
&[aria-checked="true"] {
.content {
background-color: #4f94cd;
border-color: #4f94cd;
color: #fff;
.timesent {
color: #fff;
}
}
}
&[aria-checked="false"] {
.content {
&:hover {
background-color: #79b5e6;
color: #fff;
.timesent {
color: #fff;
}
}
}
}
}
}
.response {
.delete-confirmation {
display: block;
}
.message-box {
display: none;
}
}
}
}
}
}
.preferences-container {
.container-fluid {
padding: 0;
.span6 {
min-height: 20px;
}
}
.align-bottom {
vertical-align: bottom;
}
.preference-table {
border: 1px solid #ddd;
thead {
th {
text-align: center;
.config-warning {
display: none;
}
&.unconfigured {
.config-warning {
display: inline-block;
}
}
}
}
tr {
td {
&:not(:first-child) {
width: 150px;
text-align: center;
}
&:nth-child(even) {
background-color: #f7f7f7;
}
}
th:nth-child(even) {
background-color: #f7f7f7;
}
}
.preference-row {
.hover-tooltip-container {
display: inline-block;
}
.preference-name {
vertical-align: middle;
}
.disabled-message {
text-align: center;
height: 30px;
line-height: 30px;
}
.preference-state {
margin: 0;
padding: 0;
display: inline-block;
vertical-align: middle;
input[type="checkbox"]:checked + .preference-state-status-container {
background-color: #5cb85c;
.on-text {
display: inline-block;
}
.off-text {
display: none;
}
}
.preference-state-status-container {
width: 30px;
height: 30px;
line-height: 30px;
text-align: center;
border-radius: 4px;
background-color: #d9534f;
color: #fff;
cursor: pointer;
.loading-icon {
display: none;
}
.on-text {
display: none;
}
.off-text {
display: inline-block;
}
}
&.loading {
input[type="checkbox"]:checked + .preference-state-status-container {
.on-text,
.off-text {
display: none;
}
}
.preference-state-status-container {
.on-text,
.off-text {
display: none;
}
.loading-icon {
display: block;
}
}
}
}
&.loading {
.preference-name {
.loading-icon {
display: block;
}
}
}
}
}
}
.disabled-message {
display: none;
}
.disabled {
.disabled-message {
display: block;
+ form {
display: none;
}
}
}
.general-settings-container {
.loading-icon {
display: none;
}
.loading {
.loading-icon {
display: inline-block;
}
}
label {
display: inline-block;
}
}
.processor-container {
position: relative;
.loading-container {
display: none;
position: absolute;
width: 100%;
height: 100%;
text-align: center;
background-color: rgba(255, 255, 255, 0.5);
.vertical-align {
height: 100%;
width: 0%;
display: inline-block;
vertical-align: middle;
}
}
&.loading {
.loading-container {
display: block;
}
}
}
.preferences-page-container {
.checkbox-container {
margin: 30px 5px;
line-height: 20px;
input {
line-height: 20px;
margin: 0;
}
.loading-icon {
display: none;
}
&.loading {
.loading-icon {
display: inline-block;
}
}
}
}
.notification-area {
height: 600px;
@media (max-height: 670px) {
height: 500px;
}
box-sizing: border-box;
border-radius: 4px;
margin-bottom: 30px;
border: 1px solid #e3e3e3;
.control-area {
box-sizing: border-box;
display: inline-block;
width: 300px;
height: 100%;
overflow: auto;
-webkit-overflow-scrolling: touch;
border-right: 1px solid #e3e3e3;
.content {
position: relative;
.content-item-container {
cursor: pointer;
}
&:empty + .empty-text {
display: block;
}
}
.loading-icon {
display: none;
}
.empty-text {
display: none;
text-align: center;
padding-top: 20px;
}
&.loading {
.loading-icon {
display: block;
text-align: center;
box-sizing: border-box;
padding: 5px;
}
.content:empty + .empty-text {
display: none;
}
}
}
.content-area {
box-sizing: border-box;
display: inline-block;
width: calc(100% - 300px);
float: right;
.toggle-mode {
display: none;
}
.header {
height: 50px;
box-sizing: border-box;
border-bottom: 1px solid #e3e3e3;
padding: 5px;
.image-container {
display: inline-block;
height: 25px;
width: 24px;
float: left;
}
.subject-container {
display: inline-block;
max-width: calc(100% - 24px);
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
height: 25px;
padding-left: 5px;
box-sizing: border-box;
}
.timestamp {
font-size: 10px;
line-height: 10px;
margin: 0;
color: #666;
margin-left: 30px;
}
&:empty {
display: none;
}
}
> .content {
height: 500px;
@media (max-height: 670px) {
height: 400px;
}
box-sizing: border-box;
overflow: auto;
-webkit-overflow-scrolling: touch;
padding: 15px;
&:empty {
display: none;
& + .empty-text {
display: block;
text-align: center;
padding-top: 100px;
}
}
}
.empty-text {
display: none;
}
.footer {
height: 50px;
box-sizing: border-box;
text-align: center;
a {
line-height: 50px;
}
&:empty {
display: none;
}
}
}
}
@media (max-width: 979px) {
.messaging-area-container {
.messaging-area {
position: relative;
overflow: hidden;
height: 600px;
@media (max-height: 670px) {
height: 500px;
}
.messages-area {
.messages-header {
.btn-container {
&.view-toggle {
display: block;
}
&.delete-all {
display: none;
}
}
}
.profile-header {
display: block;
}
.profile {
height: 550px;
}
&.editing {
.messages-header {
.btn-container {
&.view-toggle {
display: none;
}
&.delete-all {
display: block;
}
}
}
}
}
.contacts-area {
width: 100%;
border-right: none;
position: absolute;
top: 0;
left: 0;
right: auto;
bottom: auto;
}
.messages-area {
width: 100%;
position: absolute;
top: 0;
left: auto;
right: 0;
bottom: auto;
}
&.show-messages {
.contacts-area {
left: -100%;
opacity: 0;
visibility: hidden;
transition: left 0.25s, opacity 0.25s, visibility 0.25s;
}
.messages-area {
right: 0;
opacity: 1;
visibility: visible;
transition: right 0.25s, opacity 0.25s, visibility 0.25s;
}
}
&.hide-messages {
.contacts-area {
left: 0;
opacity: 1;
visibility: visible;
transition: left 0.25s, opacity 0.25s, visibility 0.25s;
.contact {
&.selected {
background-color: inherit;
color: inherit;
border-bottom: 1px solid #e3e3e3;
&:hover {
@include setSelectedContact();
background-color: #79b5e6;
}
.picture {
border-bottom: 1px solid #fff;
}
.information {
.lastmessage {
color: #a1a1a1;
}
}
}
}
}
.messages-area {
right: -100%;
opacity: 0;
visibility: hidden;
transition: right 0.25s, opacity 0.25s, visibility 0.25s;
}
}
}
}
.notification-area {
position: relative;
overflow: hidden;
.control-area {
border-right: none;
width: 100%;
position: absolute;
top: 0;
left: 0;
opacity: 1;
visibility: visible;
transition: left 0.25s;
}
.content-area {
width: 100%;
position: absolute;
top: 0;
right: -100%;
opacity: 0;
visibility: hidden;
transition: right 0.25s, opacity 0.25s, visibility 0.25s;
.toggle-mode {
display: inline-block;
float: left;
width: 70px;
height: 50px;
line-height: 50px;
box-sizing: border-box;
border-right: 1px solid #e3e3e3;
border-bottom: 1px solid #e3e3e3;
}
.header {
display: inline-block;
width: calc(100% - 70px);
}
}
&.show-content-area {
.control-area {
left: -100%;
opacity: 0;
visibility: hidden;
transition: left 0.25s, opacity 0.25s, visibility 0.25s;
}
.content-area {
right: 0;
opacity: 1;
visibility: visible;
transition: right 0.25s;
}
}
}
}
// New styles for the messaging UI. Once MDL-63303 is done all CSS above this line should be removed.
$message-drawer-width: 320px;
.message-drawer {
position: fixed;
top: $navbar-height;
right: 0;
height: calc(100% - #{$navbar-height});
width: $message-drawer-width;
z-index: $zindex-sticky;
box-shadow: -2px 2px 4px rgba(0, 0, 0, .08);
display: flex;
flex-direction: column;
@include transition();
&.hidden {
display: block;
right: $message-drawer-width * -1;
}
.header-container {
flex-shrink: 0;
}
.body-container {
flex: 1;
overflow: hidden;
& > * {
position: absolute;
right: 0;
left: 0;
top: 0;
bottom: 0;
}
}
.footer-container {
flex-shrink: 0;
overflow-x: hidden;
textarea {
direction: ltr;
}
}
.matchtext {
background-color: lighten($primary, 40%);
color: $body-color;
height: 1.5rem;
}
.contact-status {
position: absolute;
left: 39px;
top: 39px;
width: 10px;
height: 10px;
border-radius: 50%;
&.online {
border: 1px solid $body-bg;
background-color: $green;
}
}
.message {
p {
margin: 0;
}
}
.clickable {
cursor: pointer;
&:hover {
box-shadow: 2px 2px 10px 0 rgba(0, 0, 0, 0.05), 3px 3px 5px -2px rgba(0, 0, 0, .1), 1px 1px 5px 0 rgba(0, 0, 0, 0.03);
}
}
a,
.btn-link {
color: inherit;
}
.btn-link {
&:hover,
&:focus {
background-color: rgba($black, .035);
text-decoration: none;
}
}
.icon {
margin-right: 0;
}
.overview-section-toggle {
.collapsed-icon-container {
display: none;
}
.expanded-icon-container {
display: inline-block;
}
&.collapsed {
.collapsed-icon-container {
display: inline-block;
}
.expanded-icon-container {
display: none;
}
}
}
.btn.btn-link.btn-icon {
height: $icon-width;
width: $icon-width;
padding: 0;
border-radius: 50%;
flex-shrink: 0;
@include hover-focus {
background-color: $gray-200;
}
@each $size, $length in $iconsizes {
&.icon-size-#{$size} {
height: ($length + 20px) !important; /* stylelint-disable-line declaration-no-important */
width: ($length + 20px) !important; /* stylelint-disable-line declaration-no-important */
}
}
}
.view-overview-body {
.section {
display: block;
&.expanded {
display: flex;
}
}
}
.view-conversation {
.content-message-container {
img {
max-width: 100%;
}
}
}
.list-group .list-group-item {
border-left: 0;
border-right: 0;
&:first-child {
border-top: 0;
}
&:last-child {
border-bottom: 0;
}
}
.last-message {
min-height: 1.5rem;
}
.section {
.collapsing {
overflow: hidden;
}
}
.message {
.tail {
content: '';
bottom: 0;
width: 0;
height: 0;
border: 0.5rem solid transparent;
position: relative;
}
&.send .tail {
right: 0;
margin-right: -0.5rem;
border-bottom-color: map-get($theme-colors, 'secondary');
}
&.received .tail {
left: 0;
margin-left: -0.5rem;
border-bottom-color: $white;
}
}
.lazy-load-list {
overflow-y: auto;
}
}
.dir-rtl {
.message-drawer {
box-shadow: 2px 2px 4px rgba(0, 0, 0, .08);
}
}
// New styles for the messaging UI. Once MDL-63303 is done all CSS below this line should be removed.
@media (max-width: 480px) {
.messaging-area-container {
.messaging-area {
.messages-area {
&.editing {
.messages-header {
height: 80px;
.delete-all {
top: 30px;
}
.actions {
top: 30px;
}
}
.messages {
height: 470px;
}
}
}
}
}
}