dees-appui-catalog/ts_web/elements/dees-appui-activitylog.ts

239 lines
6.7 KiB
TypeScript
Raw Normal View History

2024-01-17 12:08:10 +00:00
import * as plugins from './00plugins.js';
2021-03-06 18:59:00 +00:00
import {
DeesElement,
2023-09-06 22:18:00 +00:00
type TemplateResult,
2021-03-06 18:59:00 +00:00
property,
customElement,
html,
2022-01-31 13:07:15 +00:00
css,
cssManager,
2023-09-06 16:43:33 +00:00
} from '@design.estate/dees-element';
2021-03-05 16:01:54 +00:00
2023-09-06 16:43:33 +00:00
import * as domtools from '@design.estate/dees-domtools';
2021-03-05 16:01:54 +00:00
2023-12-08 17:26:19 +00:00
@customElement('dees-appui-activitylog')
export class DeesAppuiActivitylog extends DeesElement {
2022-01-31 13:07:15 +00:00
// STATIC
2023-12-08 17:26:19 +00:00
public static demo = () => html`<dees-appui-activitylog></dees-appui-activitylog>`;
2021-03-05 16:01:54 +00:00
// INSTANCE
2022-01-31 13:07:15 +00:00
public static styles = [
cssManager.defaultStyles,
css`
:host {
color: #fff;
position: relative;
display: block;
width: 100%;
max-width: 300px;
height: 100%;
2023-09-06 16:43:33 +00:00
background: #111c28;
font-family: 'Intel One Mono', sans-serif;
border-left: 1px solid #202020;
2024-01-17 12:08:10 +00:00
cursor: default;
2022-01-31 13:07:15 +00:00
}
.maincontainer {
position: absolute;
top: 0px;
left: 0px;
height: 100%;
width: 100%;
}
.topbar {
position: absolute;
2023-09-06 16:43:33 +00:00
top: 0px;
height: 32px;
width: 100%;
padding: 0px 12px 0px 12px;
background: #0e151f;
2022-01-31 13:07:15 +00:00
}
2021-03-05 16:01:54 +00:00
2022-01-31 13:07:15 +00:00
.topbar .heading {
2023-09-06 16:43:33 +00:00
text-align: left;
line-height: 24px;
padding-top: 8px;
2023-01-10 12:11:02 +00:00
font-weight: 500;
2022-01-31 13:07:15 +00:00
font-size: 14px;
2023-10-06 09:05:58 +00:00
font-family: 'Roboto', 'Inter', sans-serif;
2022-01-31 13:07:15 +00:00
}
2021-03-05 16:01:54 +00:00
2022-01-31 13:07:15 +00:00
.activityContainer {
position: absolute;
2023-09-06 16:43:33 +00:00
top: 32px;
bottom: 40px;
2022-01-31 13:07:15 +00:00
width: 100%;
2023-09-06 16:43:33 +00:00
padding: 8px 0px;
overflow-y: scroll;
}
.streamingIndicator {
font-size: 12px;
text-align: center;
padding-top: 16px;
color: #888
}
.streamingIndicator.bottom {
padding-top: 0px;
padding-bottom: 16px;
2022-01-31 13:07:15 +00:00
}
2021-03-06 18:59:00 +00:00
2022-01-31 13:07:15 +00:00
.activityentry {
min-height: 30px;
2023-09-06 16:43:33 +00:00
font-size: 12px;
padding: 8px 16px;
border-bottom: 1px dotted #ffffff20;
}
.activityentry:last-of-type {
border-bottom: 1px solid #ffffff00;
}
.activityentry:hover {
background: #00000080;
}
.timestamp {
color: #ff8787;
}
.searchbox {
position: absolute;
bottom: 0px;
width: 100%;
height: 40px;
background: #0e151f;
}
.searchbox input {
color: #fff;
background: none;
width: 100%;
height: 40px;
line-height: 32px;
border: none;
padding: 4px 12px;
font-family: 'Intel One Mono', sans-serif;
}
.searchbox input:focus {
outline: none;
}
.bottomShadow {
position: absolute;
width: 100%;
height: 32px;
bottom: 40px;
background: linear-gradient(180deg, #111c2800 0%, #0e151f 100%);
pointer-events: none;
}
.topShadow {
position: absolute;
width: 100%;
height: 32px;
top: 32px;
background: linear-gradient(0deg, #111c2800 0%, #0e151f 100%);
pointer-events: none;
2022-01-31 13:07:15 +00:00
}
`,
];
2021-03-06 18:59:00 +00:00
2022-01-31 13:07:15 +00:00
public render(): TemplateResult {
return html`
${domtools.elementBasic.styles}
<style></style>
2021-03-05 16:01:54 +00:00
<div class="maincontainer">
<div class="topbar">
<div class="heading">Activity Log</div>
</div>
2021-03-06 18:59:00 +00:00
<div class="activityContainer">
2023-09-06 16:43:33 +00:00
<div class="streamingIndicator">streaming...</div>
2024-01-17 12:08:10 +00:00
<div class="activityentry" @contextmenu=${async eventArg => {
plugins.deesCatalog.DeesContextmenu.openContextMenuWithOptions(eventArg, [
{
name: 'app settings',
action: async () => {},
},
{
name: 'account settings',
action: async () => {},
},
{
name: 'logout',
action: async () => {},
},
]);
}}>
2023-09-06 16:43:33 +00:00
<span class="timestamp">22:01:</span> Max Mustermann logged in
</div>
<div class="activityentry">
<span class="timestamp">22:02:</span> Max Mustermann viewed an invoice
</div>
<div class="activityentry">
<span class="timestamp">22:03:</span> Max Mustermann added a new contact
</div>
<div class="activityentry">
<span class="timestamp">22:04:</span> Max Mustermann updated account settings
</div>
<div class="activityentry">
<span class="timestamp">22:05:</span> Max Mustermann logged out
</div>
<div class="activityentry">
<span class="timestamp">22:06:</span> Max Mustermann logged in
</div>
<div class="activityentry">
<span class="timestamp">22:07:</span> Max Mustermann created a new invoice
</div>
<div class="activityentry">
<span class="timestamp">22:08:</span> Max Mustermann sent an invoice
</div>
<div class="activityentry">
<span class="timestamp">22:09:</span> Max Mustermann viewed reports
</div>
<div class="activityentry">
<span class="timestamp">22:10:</span> Max Mustermann logged out
</div>
<div class="activityentry">
<span class="timestamp">22:11:</span> Max Mustermann logged in
</div>
<div class="activityentry">
<span class="timestamp">22:12:</span> Max Mustermann deleted an invoice
</div>
<div class="activityentry">
<span class="timestamp">22:13:</span> Max Mustermann contacted support
</div>
<div class="activityentry">
<span class="timestamp">22:14:</span> Max Mustermann added a new user
</div>
<div class="activityentry">
<span class="timestamp">22:15:</span> Max Mustermann changed password
</div>
<div class="activityentry">
<span class="timestamp">22:16:</span> Max Mustermann logged out
</div>
<div class="activityentry">
<span class="timestamp">22:17:</span> Max Mustermann logged in
</div>
<div class="activityentry">
<span class="timestamp">22:18:</span> Max Mustermann archived an invoice
</div>
<div class="activityentry">
<span class="timestamp">22:19:</span> Max Mustermann approved a payment
</div>
<div class="activityentry">
<span class="timestamp">22:20:</span> Max Mustermann logged out
</div>
<div class="streamingIndicator bottom">loading more...</div>
</div>
<div class="searchbox">
<input type="text" placeholder="Search" />
2021-03-06 18:59:00 +00:00
</div>
2023-09-06 16:43:33 +00:00
<div class="topShadow"></div>
<div class="bottomShadow"></div>
2021-03-05 16:01:54 +00:00
</div>
`;
}
2021-03-06 18:59:00 +00:00
}