mirror of
https://github.com/grafana/grafana.git
synced 2025-02-15 01:53:33 -06:00
* admin: user page to react WIP * admin user page: basic view * admin user page: refactor, extract orgs and permissions components * admin user: change sessions actions styles * admin user: add disable button * user admin: add change grafana admin action * user admin: able to change org role and remove org * user admin: confirm force logout * user admin: change org button style * user admin: add confirm modals for critical actions * user admin: lock down ldap user info * user admin: align with latest design changes * user admin: add LDAP sync * admin user: confirm button * user admin: add to org modal * user admin: fix ConfirmButton story * admin user: handle grafana admin change * ConfirmButton: make styled component * ConfirmButton: completely styled component * User Admin: permissions section refactor * admin user: refactor (orgs and sessions) * ConfirmButton: able to set confirm variant * admin user: inline org removal * admin user: show ldap sync info only for ldap users * admin user: edit profile * ConfirmButton: some fixes after review * Chore: fix storybook build * admin user: rename handlers * admin user: remove LdapUserPage import from routes * Chore: fix ConfirmButton tests * Chore: fix user api endpoint tests * Chore: update failed test snapshots * admin user: redux actions WIP * admin user: use new ConfirmModal component for user profile * admin user: use new ConfirmModal component for sessions * admin user: use lockMessage * ConfirmButton: use primary button as default * admin user: fix ActionButton color * UI: use Icon component for Modal * UI: refactor ConfirmModal after Modal changes * UI: add link button variant * UI: able to use custom ConfirmButton * Chore: fix type errors after ConfirmButton refactor * Chore: revert Graph component changes (works with TS 3.7) * Chore: use Forms.Button instead of ActionButton * admin user: align items * admin user: align add to org modal * UI: organization picker component * admin user: use org picker for AddToOrgModal * admin user: org actions * admin user: connect sessions actions * admin user: updateUserPermissions action * admin user: enable delete user action * admin user: sync ldap user * Chore: refactor, remove unused code * Chore: refactor, move api calls to actions * admin user: set user password action * Chore: refactor, remove unused components * admin user: set input focus on edit * admin user: pass user into debug LDAP mapping * UserAdminPage: Ux changes * UserAdminPage: align buttons to the left * UserAdminPage: align delete user button * UserAdminPage: swap add to org modal buttons * UserAdminPage: set password field to empty when editing * UserAdminPage: fix tests * Updated button border * Chore: fix ConfirmButton after changes introduced in #21092 Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
170 lines
2.6 KiB
SCSS
170 lines
2.6 KiB
SCSS
.grafana-app {
|
|
display: flex;
|
|
align-items: stretch;
|
|
position: absolute;
|
|
width: 100%;
|
|
height: 100%;
|
|
top: 0;
|
|
left: 0;
|
|
}
|
|
|
|
.main-view {
|
|
position: relative;
|
|
flex-grow: 1;
|
|
background: $page-gradient;
|
|
}
|
|
|
|
.panel-in-fullscreen {
|
|
.main-view {
|
|
background: $edit-gradient;
|
|
}
|
|
}
|
|
|
|
.page-scrollbar-wrapper {
|
|
position: absolute;
|
|
top: 0;
|
|
bottom: 0;
|
|
width: 100%;
|
|
}
|
|
|
|
.page-scrollbar-content {
|
|
display: flex;
|
|
min-height: 100%;
|
|
flex-direction: column;
|
|
width: 100%;
|
|
}
|
|
|
|
.page-container {
|
|
flex-grow: 1;
|
|
width: 100%;
|
|
margin-left: auto;
|
|
margin-right: auto;
|
|
padding-left: $spacer * 2;
|
|
padding-right: $spacer * 2;
|
|
max-width: 980px;
|
|
@include clearfix();
|
|
}
|
|
|
|
.page-full {
|
|
margin-left: $page-sidebar-margin;
|
|
padding-left: $spacer;
|
|
padding-right: $spacer;
|
|
@include clearfix();
|
|
}
|
|
|
|
.scroll-canvas {
|
|
position: absolute;
|
|
width: 100%;
|
|
overflow: auto;
|
|
height: 100%;
|
|
-webkit-overflow-scrolling: touch;
|
|
display: flex;
|
|
flex-direction: column;
|
|
|
|
&--dashboard {
|
|
height: calc(100% - 56px);
|
|
}
|
|
|
|
> div {
|
|
flex-grow: 1;
|
|
}
|
|
|
|
> .footer {
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
// Render in correct position even ng-view div is not rendered yet
|
|
> .footer:first-child {
|
|
flex-grow: 1;
|
|
display: flex;
|
|
|
|
> * {
|
|
width: 100%;
|
|
align-self: flex-end;
|
|
}
|
|
}
|
|
}
|
|
|
|
// fix for phantomjs
|
|
.body--phantomjs {
|
|
.scroll-canvas {
|
|
overflow: hidden;
|
|
}
|
|
}
|
|
|
|
.page-body {
|
|
padding-top: $spacer * 2;
|
|
padding-bottom: $spacer * 4;
|
|
}
|
|
|
|
.page-heading {
|
|
font-size: $font-size-h4;
|
|
margin-top: 0;
|
|
margin-bottom: $spacer;
|
|
}
|
|
|
|
.page-action-bar {
|
|
margin-bottom: $spacer * 2;
|
|
display: flex;
|
|
align-items: flex-start;
|
|
|
|
> a,
|
|
> button {
|
|
margin-left: $spacer;
|
|
}
|
|
}
|
|
|
|
.page-action-bar--narrow {
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
.page-action-bar__spacer {
|
|
width: $spacer * 2;
|
|
flex-grow: 1;
|
|
}
|
|
|
|
.sidebar-content {
|
|
width: calc(100% - #{$page-sidebar-width + $page-sidebar-margin}); // sidebar width + margin
|
|
}
|
|
|
|
.sidebar-container {
|
|
@include media-breakpoint-up(md) {
|
|
display: flex;
|
|
flex-direction: row;
|
|
flex-wrap: wrap;
|
|
}
|
|
}
|
|
|
|
.page-sidebar {
|
|
@include media-breakpoint-up(md) {
|
|
width: $page-sidebar-width;
|
|
margin-left: $page-sidebar-margin;
|
|
}
|
|
}
|
|
|
|
.page-sub-heading {
|
|
margin-bottom: $spacer;
|
|
}
|
|
|
|
.page-sub-heading-icon {
|
|
margin-left: $spacer;
|
|
vertical-align: 6px;
|
|
font-size: 13px;
|
|
}
|
|
|
|
.page-sidebar {
|
|
color: $text-color-weak;
|
|
h4 {
|
|
font-size: $font-size-base;
|
|
font-weight: $font-weight-semi-bold;
|
|
}
|
|
h5 {
|
|
font-size: $font-size-base;
|
|
font-weight: $font-weight-semi-bold;
|
|
}
|
|
}
|
|
|
|
.page-sidebar-section {
|
|
margin-bottom: $spacer * 2;
|
|
}
|