ADD: container/message message viewer according to wss://...../chat
This commit is contained in:
parent
8b6e616a1f
commit
64d04d83b9
|
@ -0,0 +1,58 @@
|
||||||
|
/* Card container */
|
||||||
|
#CONTAINER.message{
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: flex-start;
|
||||||
|
flex-wrap: nowrap;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#CONTAINER.message div{ /* Message item */
|
||||||
|
display: inline-block;
|
||||||
|
position: relative;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
height: auto;
|
||||||
|
|
||||||
|
margin: 1em;
|
||||||
|
padding: 1em;
|
||||||
|
|
||||||
|
flex: 1 1 1;
|
||||||
|
align-self: flex-start;
|
||||||
|
|
||||||
|
border-radius: 3px;
|
||||||
|
|
||||||
|
background-color: #fff;
|
||||||
|
|
||||||
|
color: #222;
|
||||||
|
}
|
||||||
|
|
||||||
|
#CONTAINER.message div.me{ /* Message Item (self) */
|
||||||
|
background: #13d89d;
|
||||||
|
align-self: flex-end;
|
||||||
|
}
|
||||||
|
|
||||||
|
#CONTAINER.message div span.author{ /* Message author */
|
||||||
|
display: inline-block;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
padding: .2em .4em;
|
||||||
|
margin-right: 1em;
|
||||||
|
|
||||||
|
border: 1px solid #ddd;
|
||||||
|
|
||||||
|
border-radius: 3px;
|
||||||
|
|
||||||
|
background: #eee;
|
||||||
|
|
||||||
|
color: #666;
|
||||||
|
}
|
||||||
|
|
||||||
|
#CONTAINER.message div span.author:after{ /* Add 'dit' */
|
||||||
|
content: ' dit';
|
||||||
|
|
||||||
|
color: #333;
|
||||||
|
}
|
||||||
|
|
||||||
|
#CONTAINER.message div.me span.author{ /* Hide message author if self */
|
||||||
|
display: none;
|
||||||
|
}
|
|
@ -70,4 +70,25 @@ body{
|
||||||
flex-wrap: nowrap;
|
flex-wrap: nowrap;
|
||||||
|
|
||||||
transition: width .2s ease-in-out;
|
transition: width .2s ease-in-out;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Page container */
|
||||||
|
#CONTAINER{
|
||||||
|
display: flex;
|
||||||
|
position: absolute;
|
||||||
|
top: 3.5em;
|
||||||
|
left: 15em;
|
||||||
|
width: calc( 100% - 15em );
|
||||||
|
height: calc( 100% - 3.5em );
|
||||||
|
|
||||||
|
overflow: hidden;
|
||||||
|
overflow-y: auto;
|
||||||
|
|
||||||
|
transition: left .2s ease-in-out,
|
||||||
|
width .2s ease-in-out;
|
||||||
|
}
|
||||||
|
|
||||||
|
#WRAPPER.min #CONTAINER{
|
||||||
|
left: 3.5em;
|
||||||
|
width: calc( 100% - 3.5em );
|
||||||
}
|
}
|
|
@ -17,6 +17,7 @@
|
||||||
<link rel='stylesheet' type='text/css' href='/css/layout.css'>
|
<link rel='stylesheet' type='text/css' href='/css/layout.css'>
|
||||||
<link rel='stylesheet' type='text/css' href='/css/menu.css'>
|
<link rel='stylesheet' type='text/css' href='/css/menu.css'>
|
||||||
<link rel='stylesheet' type='text/css' href='/css/header.css'>
|
<link rel='stylesheet' type='text/css' href='/css/header.css'>
|
||||||
|
<link rel='stylesheet' type='text/css' href='/css/container.css'>
|
||||||
|
|
||||||
<!-- JS dependencies -->
|
<!-- JS dependencies -->
|
||||||
<script type='text/javascript' src='/js/_SERVER.js'></script>
|
<script type='text/javascript' src='/js/_SERVER.js'></script>
|
||||||
|
|
|
@ -10,10 +10,10 @@ window.gstore.add('info', {
|
||||||
message: 'Warning! blabla'
|
message: 'Warning! blabla'
|
||||||
});
|
});
|
||||||
window.gstore.add('notif', [
|
window.gstore.add('notif', [
|
||||||
{ class: 'bell', data: [] },
|
{ class: 'bell', link: 'notifications', data: [] },
|
||||||
{ class: 'message', data: [] },
|
{ class: 'message', link: 'inbox', data: [] },
|
||||||
{ class: 'search', data: [] },
|
{ class: 'search', link: 'search', data: [] },
|
||||||
{ class: 'menu', data: [] }
|
{ class: 'menu', link: 'menu', data: [] }
|
||||||
])
|
])
|
||||||
|
|
||||||
// Menu
|
// Menu
|
||||||
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
<template>
|
||||||
|
|
||||||
|
<div id='CONTAINER' class='message'>
|
||||||
|
|
||||||
|
<div v-for='msg in gstore.notif[1].data' :class="msg[0] == gstore.server.session.name ? 'me' : ''">
|
||||||
|
<span class='author'>{{ msg[0] }}</span>
|
||||||
|
<span class='content'>{{ msg[1] }}</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</template>
|
||||||
|
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: 'CONTAINER_MSG',
|
||||||
|
data(){ return { gstore: window.gstore.data }; },
|
||||||
|
}
|
||||||
|
</script>
|
|
@ -7,7 +7,8 @@
|
||||||
<!-- Menu -->
|
<!-- Menu -->
|
||||||
<menu-comp></menu-comp>
|
<menu-comp></menu-comp>
|
||||||
|
|
||||||
<span>message: {{ msg }}</span>
|
<!-- Container -->
|
||||||
|
<message-container></message-container>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
@ -18,19 +19,20 @@
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
import header_vue from './header.vue';
|
import header_vue from './header.vue';
|
||||||
import menu_vue from './menu.vue';
|
import menu_vue from './menu.vue';
|
||||||
|
import messageContainer_vue from './container/message.vue';
|
||||||
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'wrapper',
|
name: 'wrapper',
|
||||||
data(){ return {
|
data(){ return {
|
||||||
msg: 'Main vue component',
|
|
||||||
gstore: window.gstore.data
|
gstore: window.gstore.data
|
||||||
}; },
|
}; },
|
||||||
components: {
|
components: {
|
||||||
'HeaderComp': header_vue,
|
'HeaderComp': header_vue,
|
||||||
'MenuComp': menu_vue
|
'MenuComp': menu_vue,
|
||||||
|
'MessageContainer': messageContainer_vue
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
Loading…
Reference in New Issue