462 lines
No EOL
10 KiB
SCSS
462 lines
No EOL
10 KiB
SCSS
@import "../../../../css/static/mixin";
|
|
@import "../../../../css/static/properties";
|
|
|
|
html:root {
|
|
--modal-permission-loading: #666;
|
|
--modal-permission-error: #666161;
|
|
}
|
|
|
|
.containerMenuBar {
|
|
padding-top: .5em;
|
|
padding-left: .5em;
|
|
padding-right: .5em;
|
|
|
|
flex-shrink: 0;
|
|
flex-grow: 0;
|
|
|
|
height: 3em;
|
|
box-sizing: content-box;
|
|
|
|
display: flex;
|
|
flex-direction: row;
|
|
justify-content: stretch;
|
|
|
|
.clients {
|
|
width: 12em;
|
|
min-width: 3em;
|
|
|
|
flex-shrink: 1;
|
|
flex-grow: 0;
|
|
|
|
margin-right: 1em;
|
|
align-self: center;
|
|
|
|
&.hidden {
|
|
display: none;
|
|
}
|
|
}
|
|
|
|
.filter {
|
|
flex-grow: 1;
|
|
flex-shrink: 1;
|
|
|
|
min-width: 4em;
|
|
|
|
align-self: center;
|
|
|
|
padding-top: 0 !important;
|
|
margin-bottom: 0 !important;
|
|
|
|
.label {
|
|
top: 0.5em;
|
|
}
|
|
|
|
&:focus-within .label, .labelFloating {
|
|
top: -0.4em !important;
|
|
}
|
|
}
|
|
|
|
.options {
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: center;
|
|
|
|
margin-left: .5em;
|
|
font-size: .9em;
|
|
padding-top: .8em; /* since we've only one switch currently */
|
|
}
|
|
|
|
.containerIconSelect {
|
|
position: relative;
|
|
|
|
height: 2.5em;
|
|
|
|
border-radius: .2em;
|
|
margin-left: 1em;
|
|
|
|
display: flex;
|
|
flex-direction: row;
|
|
justify-content: flex-end;
|
|
|
|
cursor: pointer;
|
|
background-color: var(--modal-permissions-icon-select);
|
|
border: 1px solid var(--modal-permissions-icon-select-border);
|
|
|
|
.preview {
|
|
height: 100%;
|
|
width: 3em;
|
|
|
|
border: none;
|
|
border-right: 1px solid var(--modal-permissions-icon-select-border);
|
|
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: space-around;
|
|
|
|
> div {
|
|
align-self: center;
|
|
}
|
|
|
|
> img {
|
|
align-self: center;
|
|
|
|
width: 1em;
|
|
height: 1em;
|
|
}
|
|
|
|
@include transition(border-color $button_hover_animation_time ease-in-out);
|
|
}
|
|
|
|
.containerDropdown {
|
|
position: relative;
|
|
cursor: pointer;
|
|
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: space-around;
|
|
|
|
height: 100%;
|
|
width: 1.5em;
|
|
|
|
.button {
|
|
text-align: center;
|
|
|
|
:global(.arrow) {
|
|
border-color: var(--text);
|
|
}
|
|
}
|
|
|
|
.dropdown {
|
|
display: none;
|
|
position: absolute;
|
|
width: max-content;
|
|
|
|
top: calc(2.5em - 2px);
|
|
|
|
flex-direction: column;
|
|
justify-content: flex-start;
|
|
|
|
background-color: var(--modal-permissions-icon-select);
|
|
border: 1px solid var(--modal-permissions-icon-select-border);
|
|
border-radius: .2em 0 .2em .2em;
|
|
|
|
right: -1px;
|
|
|
|
z-index: 10;
|
|
|
|
.entry {
|
|
padding: .5em;
|
|
|
|
&:not(:last-of-type) {
|
|
border: none;
|
|
border-bottom: 1px solid var(--modal-permissions-icon-select-border);
|
|
}
|
|
|
|
&:hover {
|
|
background-color: var(--modal-permissions-icon-select-hover);
|
|
}
|
|
}
|
|
}
|
|
|
|
&:hover {
|
|
border-bottom-right-radius: 0;
|
|
|
|
.dropdown {
|
|
display: flex;
|
|
}
|
|
}
|
|
}
|
|
|
|
&:hover {
|
|
background-color: var(--modal-permissions-icon-select-hover);
|
|
border-color: var(--modal-permissions-icon-select-hover-border);
|
|
|
|
.preview {
|
|
border-color: var(--modal-permissions-icon-select-hover-border);
|
|
}
|
|
}
|
|
|
|
@include transition(border-color $button_hover_animation_time ease-in-out);
|
|
}
|
|
}
|
|
|
|
.permissionTable {
|
|
@include user-select(none);
|
|
|
|
position: relative;
|
|
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: stretch;
|
|
|
|
min-height: 6em;
|
|
height: 50em;
|
|
|
|
flex-shrink: 1;
|
|
flex-grow: 1;
|
|
|
|
padding-left: .5em;
|
|
padding-right: .5em;
|
|
|
|
.row {
|
|
display: flex;
|
|
flex-direction: row;
|
|
justify-content: stretch;
|
|
|
|
flex-grow: 0;
|
|
flex-shrink: 0;
|
|
|
|
width: 100%;
|
|
height: 2em;
|
|
|
|
border: none;
|
|
|
|
border-bottom: 1px solid var(--modal-permissions-table-border);
|
|
|
|
@mixin fixed-column($name, $width) {
|
|
.column#{$name} {
|
|
display: flex;
|
|
flex-direction: row;
|
|
justify-content: stretch;
|
|
|
|
flex-grow: 0;
|
|
flex-shrink: 0;
|
|
|
|
width: $width;
|
|
|
|
align-items: center;
|
|
|
|
padding-left: 1em;
|
|
|
|
border: none;
|
|
border-right: 1px solid var(--modal-permissions-table-border);
|
|
|
|
overflow: hidden;
|
|
|
|
a {
|
|
max-width: 100%;
|
|
|
|
overflow: hidden;
|
|
white-space: nowrap;
|
|
text-overflow: ellipsis;
|
|
}
|
|
}
|
|
}
|
|
|
|
@include fixed-column(Name, 6em);
|
|
@include fixed-column(Value, 6em);
|
|
@include fixed-column(Skip, 5em);
|
|
@include fixed-column(Negate, 5em);
|
|
@include fixed-column(Granted, 6em);
|
|
|
|
.columnName {
|
|
flex-grow: 1;
|
|
flex-shrink: 1;
|
|
|
|
.groupName {
|
|
margin-left: .5em;
|
|
}
|
|
}
|
|
|
|
.columnGranted {
|
|
border-right: none;
|
|
}
|
|
|
|
|
|
&.active {
|
|
color: var(--modal-permissions-table-entry-active-text) !important;
|
|
}
|
|
|
|
&.group {
|
|
color: var(--modal-permissions-table-entry-group-text) !important;
|
|
font-weight: bold;
|
|
|
|
:global(.arrow) {
|
|
cursor: pointer;
|
|
border-color: var(--modal-permissions-table-entry-active-text);
|
|
}
|
|
}
|
|
|
|
&.permission {
|
|
}
|
|
}
|
|
|
|
.header {
|
|
.row {
|
|
background-color: var(--modal-permissions-table-header);
|
|
color: var(--modal-permissions-table-header-text);
|
|
|
|
font-weight: bold;
|
|
|
|
.columnGranted {
|
|
margin-right: .5em;
|
|
}
|
|
}
|
|
}
|
|
|
|
.body {
|
|
flex-grow: 1;
|
|
flex-shrink: 1;
|
|
|
|
position: relative;
|
|
min-height: 6em; /* TODO: Width */
|
|
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: stretch;
|
|
|
|
overflow-y: scroll;
|
|
overflow-x: auto;
|
|
|
|
@include chat-scrollbar-vertical();
|
|
@include chat-scrollbar-horizontal();
|
|
|
|
.row {
|
|
position: absolute;
|
|
|
|
left: 0;
|
|
right: 0;
|
|
|
|
color: var(--modal-permissions-table-row-text);
|
|
background-color: var(--modal-permissions-table-row-odd);
|
|
|
|
&.even {
|
|
background-color: var(--modal-permissions-table-row-even);
|
|
}
|
|
|
|
&:hover {
|
|
background-color: var(--modal-permissions-table-row-hover);
|
|
}
|
|
|
|
input[type="number"] {
|
|
color: var(--modal-permissions-table-input);
|
|
|
|
outline: none;
|
|
background: transparent;
|
|
border: none;
|
|
|
|
height: 1.5em;
|
|
width: 5em; /* the column width minus one */
|
|
|
|
/* fix the column padding */
|
|
padding-left: 1em;
|
|
margin-left: -.5em; /* have a bit of space on both sides */
|
|
|
|
border-bottom: 2px solid transparent;
|
|
|
|
@include transition(border-bottom-color $button_hover_animation_time ease-in-out);
|
|
|
|
&:not(.applying):focus {
|
|
border-bottom-color: var(--modal-permissions-table-input-focus);
|
|
}
|
|
|
|
|
|
&.applying {
|
|
padding-left: 0;
|
|
}
|
|
}
|
|
|
|
/* We cant use this effect here because the odd/even effect would be a bit crazy then */
|
|
//@include transition(background-color $button_hover_animation_time ease-in-out);
|
|
}
|
|
|
|
.spaceAllocator {
|
|
width: 100%;
|
|
flex-shrink: 0;
|
|
flex-grow: 0;
|
|
}
|
|
|
|
.overlay {
|
|
position: absolute;
|
|
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
bottom: 0;
|
|
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: flex-start;
|
|
|
|
z-index: 1;
|
|
background-color: var(--modal-permission-right);
|
|
|
|
padding-top: 2em;
|
|
|
|
a {
|
|
text-align: center;
|
|
font-size: 1.6em;
|
|
|
|
color: var(--modal-permission-loading);
|
|
}
|
|
|
|
&.hidden {
|
|
opacity: 0;
|
|
pointer-events: none;
|
|
}
|
|
|
|
&.error {
|
|
a {
|
|
color: var(--modal-permission-error);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
.overlay {
|
|
position: absolute;
|
|
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
bottom: 0;
|
|
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: center;
|
|
|
|
z-index: 1;
|
|
background: var(--modal-permission-right);
|
|
|
|
&.hidden {
|
|
display: none;
|
|
}
|
|
|
|
&.unset {
|
|
}
|
|
|
|
&.noPermissions {
|
|
justify-content: flex-start;
|
|
padding-top: 2em;
|
|
font-size: 1em;
|
|
|
|
a {
|
|
text-align: center;
|
|
font-size: 1.5em;
|
|
color: var(--modal-permission-no-permnissions);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
.containerFooter {
|
|
display: flex;
|
|
flex-direction: row;
|
|
justify-content: flex-end;
|
|
|
|
padding: .5em;
|
|
|
|
button {
|
|
display: flex;
|
|
flex-direction: row;
|
|
justify-content: center;
|
|
|
|
* {
|
|
align-self: center;
|
|
}
|
|
|
|
div {
|
|
margin-right: .5em;
|
|
}
|
|
}
|
|
} |