fleet/frontend/components/Modal/_styles.scss
jacobshandling e25c1c3728
UI: Add ability to run a script on all hosts that match a set of supported filters; Add UI to view batch run summaries (#29025)
_Only merge to `main` after [back
end](https://github.com/fleetdm/fleet/pull/29149) and [back end
extension](https://github.com/fleetdm/fleet/pull/29312)_

## For #28699, #29143, #29281

- Run scripts by filter
- View batch script run summary via activity feed
- Code clean up

### Run scripts by filter:
<img width="1280" alt="Screenshot 2025-05-09 at 5 21 51 PM"
src="https://github.com/user-attachments/assets/bcf2e275-f229-461b-8411-0e99c34af5bf"
/>
<img width="1280" alt="Screenshot 2025-05-09 at 5 22 47 PM"
src="https://github.com/user-attachments/assets/d4882ed3-cfa6-4952-acbe-89c60d65d482"
/>

### View script run summary:

![ezgif-4ebaf9c57d6e57](https://github.com/user-attachments/assets/4201ff85-04e3-473f-8a82-969f85e59558)

- [x] Changes file added for user-visible changes in `changes/`
- [x] A detailed QA plan exists on the associated ticket (if it isn't
there, work with the product group's QA engineer to add it)
- [x] Manual QA for all new/changed functionality

---------

Co-authored-by: Jacob Shandling <jacob@fleetdm.com>
2025-05-22 16:45:43 -07:00

135 lines
2.8 KiB
SCSS

.modal {
&__background {
@include position(fixed, 0 0 0 0);
background-color: rgba($core-fleet-black, 0.4);
z-index: 101;
overflow: auto;
display: flex;
justify-content: center;
animation: fade-in 150ms ease-out;
visibility: visible;
opacity: 1; // Used for transitions between modals
transition: opacity 150ms ease-out, visibility 0s; // Used for transitions between modals
}
&__hidden {
visibility: hidden;
opacity: 0; // Used for transitions between modals
transition: opacity 150ms ease-out, visibility 0s 150ms; // Used for transitions between modals
.fleet-checkbox__tick:after {
visibility: hidden;
}
}
&__content-wrapper {
margin-top: $pad-large;
font-size: $x-small;
.input-field {
width: 100%;
}
form .modal-cta-wrap,
.form .modal-cta-wrap {
// compensate for form gap to maintain consistent 32px spacing on top of modal ctas
margin-top: $pad-small;
}
}
&__ex {
height: 32px;
}
&__header {
font-size: $large;
font-weight: $regular;
text-align: left;
padding-bottom: $pad-xsmall;
border-bottom: 1px solid $ui-fleet-black-10;
display: flex;
justify-content: space-between;
min-height: 37px;
span {
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
}
&__modal_container {
@include position(absolute, 22px null null null);
box-sizing: border-box;
background-color: $core-white;
padding: $pad-xxlarge;
border-radius: 8px;
animation: scale-up 150ms ease-out;
&__medium {
width: 650px;
}
&__large {
width: 800px;
}
&__xlarge {
width: 850px;
}
&__auto {
width: auto;
}
}
// these styles are for the modal content when it is disabled
&__content-wrapper-disabled {
position: relative;
}
&__content-disabled {
transition: opacity 150ms ease-in-out;
opacity: 0.5; // this adds a disabled effect to the modal content
}
&__disabled-overlay {
position: absolute;
height: 100%;
width: 100%;
z-index: 1000;
}
&__actions-footer {
display: flex;
justify-content: space-between;
padding-top: $pad-medium;
// Styles both primary-actions and secondary-actions
> * {
display: flex;
justify-content: space-between;
gap: $pad-medium;
align-items: center;
}
// Align primary actions right if no secondary actions
> :last-child {
margin-left: auto;
}
.button__text-icon {
padding: 11px;
}
}
}
.modal-scrollable-content {
overflow-y: auto;
max-height: 705px;
}
.modal-cta-wrap {
align-self: flex-end;
display: flex;
flex-direction: row-reverse;
margin-top: $pad-xlarge;
gap: $pad-medium;
}