view default/static/ticket.css @ 84:b2ef34e602cf

base, js (websocket), css (main style): dynamic pages implementation, first draft: this patch introduces the browser part of dynamic pages. Dynamic pages work by establishing a websocket between server and the current page, if requested by server (which means that needed arguments are present in template). Once the connection is established, the server can, for now, reload the page, append HTML elements, or receive arbitrary data (without reloading the page, in opposition to data post). If connection can't be established, a popup will be displayed and connection will be retried many times after variable timeouts. The browser will finally give up and display an alert to client if the number of retries is too high (20 for now).
author Goffi <goffi@goffi.org>
date Wed, 03 Jan 2018 01:12:16 +0100
parents e99bd385774a
children 042530200fe4
line wrap: on
line source

@import 'blog.css'; /* needed as blog/articles.html is included */

.instructions {
    font-style: italic;
    text-align: center;
}

.instructions span {
    padding: 0.3em;
}

ul.xmlui_list {
    list-style: none;
    display: flex;
    flex-direction: column;
    padding: 0;
}

.xmlui_list li {
    display: inline-flex;
    background: #eee;
    padding: 0.5em;
    margin: 0.5em 0;
    border: 1px solid silver;
}

.xmlui_list li:hover {
    background: yellow;
}

.xmlui_list a {
    display: flex;
    width: 100%;
    text-decoration: none;
    color: inherit;
}

.xmlui_list a:visited {
    color: inherit;
}

.tickets a.status_closed {
    text-decoration: line-through;
    color: grey;
}

.xmlui_field__id {
    font-style: 1;
    padding-right: 1em;
}

.xmlui_field__title {
    padding-right: 1em;
}

.tickets a.severity_major .xmlui_field__title {
    font-weight: bold;
    color: red;
}

.tickets tbody tr.severity_major .td_title a::before {
    content: '⚠ ';
    color: red;
}

/* single ticket */

.ticket {
    padding: 20px;
    max-width: 500px;
    margin: 0 auto;
}

.view .xmlui_widget {
    width: auto;
}

.view div.xmlui_cont div.xmlui_cont {
    display: grid;
    grid-template-columns: min-content 1fr;
}

.view #label_wid_title,
.view #label_wid_body,
.view #label_wid_id,
.view #label_wid_comments_uri,
.view #wid_comments_uri {
    display: none
}

.view .xmlui_label {
    padding-right: 2em;
}

.view #wid_id {
    margin: 0;
    font-style: italic;
    grid-column-start: 1;
    grid-column-end: 3;
    text-align: right;
}

.view .xmlui_label {
    font-weight: bold;
    float: left;
    color: #808080cc;
}

.view #wid_title {
    font-weight: bold;
    display: block;
    text-align: center;
    grid-column-start: 1;
    grid-column-end: 3;
}
.view #wid_title::first-letter {
    text-transform: uppercase;
}

.view #wid_labels span, .xmlui_field__labels span {
    font-size: 0.8em;
    background: #eae3e3;
    font-variant: small-caps;
    border: 1px solid black;
    border-radius: 0.5em;
    padding: 0 2px;
    white-space: nowrap;
}

.view #wid_labels span.value_work_in_progress {
    background: yellow;
}

.view #wid_type {
    font-weight: bold;
}

.view #wid_type span.value_bug::after {
    content: ' 🐛';
    color: red;
}

.view #wid_severity span.value_major {
    font-weight: bold;
    color: red;
}

.view #wid_severity span.value_major::after {
    content: '⚠ ';
}

.view #wid_body {
    white-space: pre-wrap;
    max-height: 500px;
    overflow: auto;
    resize: both;
    background-color: white;
    padding: 5px;
    text-align: justify;
    border: 1px solid black;
    border-radius: 5px;
    grid-column-start: 1;
    grid-column-end: 3;
    display: block;
}

.comment_post {
    margin-top: 3em;
}

@media (min-width: 800px) {
    ul.xmlui_list {
        padding: 0 2em;
    }
    .xmlui_list li {
        border-radius: 0.3em;
    }
}