112:f4a4878c99a3
Anton Shestakov <av6@dwimlabs.net>, Thu, 07 Apr 2016 22:56:16 +0800
index: check if roster has the item before removing it Sometimes we get events from contacts that are not in user's roster, trying to remove such contacts used to fail before this patch.

next change 118:f7022798c64a
previous change 110:82e44ab02b5a

css/tram-im.css

Permissions: -rw-r--r--

Other formats: Feeds:
.smart-container {
margin: 100px auto 0 auto;
max-width: 500px;
}
@media (min-width: 960px) {
.smart-container .uk-form-horizontal .uk-form-label {
width: 100px;
text-align: right;
}
.smart-container .uk-form-horizontal .uk-form-controls {
margin-left: 115px;
}
}
.uk-dropdown > ul {
padding-left: 0;
}
.has-sidebar {
padding-left: 200px;
transition: padding-left 0.1s ease-in-out;
}
.has-sidebar.mini {
padding-left: 42px;
}
.sidebar {
background: #333;
width: 200px;
position: fixed;
top: 0;
bottom: 0;
left: 0;
overflow-x: hidden;
overflow-y: auto;
transition: width 0.1s ease-in-out;
}
.sidebar .status-pip {
margin-right: 2px;
}
.sidebar .uk-panel {
color: #777;
margin: 20px 15px;
}
.sidebar.mini {
width: 42px;
}
.sidebar.mini .label,
.sidebar.mini .uk-panel {
display: none;
}
.main-grid {
margin: 0;
}
.uk-grid.main-grid > * {
padding: 0 15px;
}
.log {
height: 300px;
overflow: auto;
margin-top: 15px;
margin-bottom: 15px;
}
.input-group {
display: table;
}
.input-group > input {
display: table-cell;
width: 100%;
}
.input-group-button {
display: table-cell;
width: 1%;
vertical-align: middle;
}
.splitter {
border-top: 1px solid #ddd;
margin: 10px 0;
}
.message .presence {
color: darkmagenta;
}
.message .call {
color: darkgreen;
}
.message .chat {
color: midnightblue;
}
.message .self {
color: gray;
}
.message .info {
color: teal;
}
.column {
display: table-cell;
vertical-align: middle;
}
.avatar-column {
position: relative;
width: 56px;
}
.text-column {
width: 100%;
vertical-align: bottom;
}
.vignette {
border-radius: 50%;
overflow: hidden;
margin-right: 8px;
height: 48px;
width: 48px;
line-height: 48px;
text-align: center;
}
.avatar-column.uk-invisible .vignette {
max-height: 1px;
}
.avatar {
max-height: 48px;
max-width: 48px;
}
div.avatar {
height: 48px;
width: 48px;
font-size: 32px;
font-weight: 700;
}
.status-pip {
display: inline-block;
border-radius: 50%;
width: 11px;
height: 11px;
}
.avatar-column > .status-pip {
position: absolute;
right: 8px;
bottom: 0;
}
.contact-list-block {
border-right: 1px solid #ddd;
padding-right: 25px;
}
@media (min-width: 1220px) {
.contact-list-block {
padding-right: 35px;
}
}
.contact-list {
margin-top: 15px;
}
.contact-list > li:nth-child(n+2) {
border-top: 1px solid #ddd;
}
li.contact {
padding: 5px;
}
li.contact > .column {
vertical-align: middle;
}
.video-block {
position: relative;
max-width: 400px;
}
.video-block video {
display: block;
}
.video-block video.remote {
width: 100%;
background: dimgray;
}
.video-block video.local {
background: black;
position: absolute;
bottom: 0;
right: 0;
max-width: 30%;
max-height: 30%;
z-index: 1;
}
.video-block .buttons {
position: absolute;
bottom: 10px;
width: 100%;
z-index: 2;
}
.video-block .autofade {
transition: opacity 0.1s ease-in-out;
opacity: 0;
}
.video-block:hover .autofade {
opacity: 1;
}
@keyframes pulsation {
0% { opacity: 1; }
50% { opacity: 0; }
100% { opacity: 1; }
}
.calling-icon {
margin-right: 10px;
animation: pulsation 1s infinite;
}