1
0
Fork 0
discourse-custom-wizard-unl.../assets/stylesheets/common/wizard-admin.scss
Angus McLeod af3e61fe75
Add custom field improvements (#115)
* Add custom field improvements

This PR does a few things to improve our support of custom fields
1. Adds custom fields added by other plugins to the list in admin/wizards/custom-fields and the custom field list in the mapper selector
2. Adds support for json custom fields in the wizard actions

* Make eslint happy

* Make prettier happy

* Make rubocop happy

* Make ember template lint happy

* Don't assume we have the context in the selector

* Ensure custom fields don't require optional attributes (with tests)
2021-06-08 17:09:49 +05:30

713 Zeilen
10 KiB
SCSS

@import "wizard-mapper";
@import "wizard-manager";
@import "wizard-api";
@import "common/components/buttons";
.admin-wizard-controls {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 20px;
& + .wizard-message + div {
margin-top: 20px;
}
}
.wizard-message {
background-color: $primary-low;
width: 100%;
padding: 10px;
box-sizing: border-box;
display: flex;
justify-content: space-between;
align-items: flex-start;
.message-block {
.d-icon {
margin-right: 4px;
}
.d-icon-check-circle {
color: var(--success);
}
.d-icon-times-circle {
color: var(--danger);
}
a + a {
border-left: 1px solid $primary-medium;
padding-left: 5px;
margin-left: 5px;
}
.message {
white-space: nowrap;
}
.list-colon {
margin-right: 5px;
}
ul {
list-style: none;
margin: 0;
span.action {
margin-left: 5px;
}
}
}
& + div {
margin-top: 30px;
}
}
.wizard-submissions {
overflow: scroll;
table td {
min-width: 150px;
}
}
.admin-wizards-logs {
.admin-wizard-controls {
h3 {
margin: 0 7px;
}
}
.wizard-logs {
.date {
width: 100px;
}
}
}
.wizard-settings-parent {
padding: 20px;
border: 1px solid $primary-low;
}
.wizard-settings-group {
display: flex;
justify-content: space-between;
flex-flow: wrap;
width: 100%;
box-sizing: border-box;
}
.wizard-settings,
.wizard-custom-step,
.wizard-custom-action {
@extend .wizard-settings-parent;
@extend .wizard-settings-group;
}
.wizard-basic-details,
.wizard-custom-field,
.advanced-settings {
@extend .wizard-settings-group;
}
.wizard-custom-field {
background: transparent;
background-color: dark-light-diff($primary, $secondary, 96%, -65%);
padding: 20px;
}
.wizard-custom-field,
.wizard-custom-action {
position: relative;
display: none;
&.visible {
display: flex;
}
.undo-changes {
position: absolute;
top: 0;
right: 0;
}
}
.admin-wizard-container.settings .wizard-basic-details {
justify-content: initial;
.setting {
width: auto;
margin-right: 20px;
.setting-label {
width: initial;
min-width: initial;
}
}
}
.wizard-header {
margin-bottom: 20px;
&.large {
font-size: 1.5em;
min-height: 31px;
margin-bottom: 20px;
display: flex;
justify-content: space-between;
align-items: flex-start;
input {
margin-bottom: 0;
width: 400px;
}
label {
margin-bottom: 0;
}
.download-link {
font-size: 1rem;
line-height: 20px;
}
.wizard-url {
display: inline-flex;
margin-left: 20px;
max-width: 50%;
a {
padding: 6px 12px;
font-size: 1rem;
background-color: $primary-low;
}
button {
font-size: 1rem;
}
}
}
&.medium {
font-size: 1.3em;
}
&.small {
font-size: 1em;
margin-bottom: 5px;
}
&.underline {
text-decoration: underline;
}
}
.admin-wizard-buttons {
margin-top: 20px;
display: flex;
.btn {
margin-right: 1em;
}
}
.admin-wizard-container.settings {
[class~="setting"] {
display: inline-flex;
align-items: flex-start;
width: 48%;
margin-bottom: 30px;
padding-bottom: 0;
position: relative;
&:last-of-type {
margin-bottom: 0;
}
.setting-label {
width: 80px;
min-width: 80px;
}
.setting-value {
flex: 1;
overflow: initial;
float: initial;
width: initial;
padding: 0;
label {
font-size: 0.85em;
}
span {
font-size: 0.929em;
}
button {
display: block;
}
input[type="text"],
textarea {
width: 100%;
box-sizing: border-box;
margin-bottom: 0;
}
input[type="number"] {
margin-bottom: 0;
}
input[disabled] {
background-color: $primary-low;
cursor: not-allowed;
}
input.medium {
width: 200px;
}
input.small {
width: 100px;
}
.uploaded-image-preview {
width: 100%;
max-height: 100px;
margin-bottom: 0;
}
.image-upload-controls {
label {
font-size: 1em;
margin: 0 5px 0 0;
}
}
> textarea {
min-height: 100px;
resize: vertical;
}
input[type="checkbox"] {
float: left;
margin: 5px 7px 0 0;
}
.input .select-kit,
> .select-kit {
max-width: 250px !important;
min-width: 250px !important;
}
&.force-final {
padding: 1em;
background-color: var(--primary-very-low);
label,
span {
font-size: 1em;
}
}
}
&.full,
&.full-inline {
width: 100%;
.setting-value {
width: initial;
float: none;
&.editor {
.d-editor {
margin-bottom: 5px;
}
}
.uploaded-image-preview {
max-height: 200px;
}
}
}
&.full-inline {
.setting-value {
display: flex;
align-items: center;
input {
margin: 0 7px 0 0;
}
button {
margin: 0 0 0 20px;
}
}
}
&.field-mapper-setting {
.setting-value {
max-width: calc(100% - 80px);
.mapper-input {
max-width: 100%;
box-sizing: border-box;
}
}
}
label {
margin: 3px 0;
}
.setting-gutter {
margin-top: 5px;
}
}
.advanced-settings {
width: 100%;
margin-top: 30px;
[class~="setting"]:first-of-type {
border-top: none;
}
}
.wizard-custom-action > [class~="setting"]:first-of-type {
margin-bottom: 0;
}
.select-box-kit-header {
height: initial;
}
.buttons .error {
color: var(--danger);
.fa {
margin-right: 5px;
}
}
.buttons .remove {
float: right;
}
.custom-category {
margin-top: 5px;
padding: 5px;
}
}
.btn-after-time {
margin-top: 7px;
}
.wizard-text-editor {
.d-editor {
width: 100%;
.d-editor-input {
min-height: 150px;
}
.d-editor-container {
display: block;
}
.d-editor-textarea-wrapper {
display: grid;
margin-bottom: 10px;
textarea {
resize: vertical;
}
}
.d-editor-preview-wrapper {
display: none;
margin: 0 0 10px 0;
padding: 10px;
background-color: $secondary;
border: 1px solid $primary-medium;
max-width: 100%;
&.force-preview {
display: block;
}
}
button {
margin: 0;
}
}
.wizard-editor-gutter {
position: relative;
display: flex;
.btn {
margin-right: 10px;
color: $primary;
&:hover {
color: $secondary;
}
}
.wizard-editor-gutter-popover {
position: absolute;
padding: 10px;
background-color: $secondary;
box-shadow: shadow("card");
z-index: 200;
top: 40px;
}
}
}
.wizard-links {
margin: 40px 0 20px 0;
display: inline-block;
width: 100%;
.link-list {
margin: 0;
padding: 0;
list-style: none;
display: inline-flex;
align-items: flex-start;
flex-flow: wrap;
> div {
display: flex;
align-items: center;
margin-bottom: 10px;
margin-right: 10px;
}
.btn {
height: 32px;
}
}
.sortable-placeholder {
height: 30px;
width: 100px;
display: inline-block;
vertical-align: top;
background-color: $primary-low;
margin-right: 10px;
margin-left: 3px;
}
}
.wizard-column-contents {
position: relative;
}
.required-data-message {
display: inline-block;
margin-top: 20px;
.label {
margin-bottom: 5px;
}
input {
margin-bottom: 0;
}
}
.wizard-field-composer textarea {
width: 100%;
min-height: 150px;
}
.modal .modal-body.next-session-time-modal {
overflow: visible;
.picker-container {
position: absolute;
top: 30px;
}
}
.post-builder-editor {
min-height: 220px;
}
.text-divider {
display: block;
text-align: center;
overflow: hidden;
white-space: nowrap;
margin: 5px 0;
> span {
position: relative;
display: inline-block;
}
> span:before,
> span:after {
content: "";
position: absolute;
top: 50%;
width: 9999px;
height: 1px;
background: var(--tertiary);
}
> span:before {
right: 100%;
margin-right: 15px;
}
> span:after {
left: 100%;
margin-left: 15px;
}
}
.wizard-step-contents {
height: unset !important;
}
.wizard-advanced-toggle {
width: 100%;
}
.add-mapper-input .btn,
.btn-after-time,
.wizard-editor-gutter .btn {
background-color: $secondary;
border: 1px solid $primary-medium;
}
.admin-wizards-custom-fields {
.admin-wizard-controls {
.buttons {
display: flex;
align-items: center;
button.btn {
margin-left: 10px;
}
}
}
.btn.save:enabled {
@extend .btn-primary;
}
.btn.destroy {
@extend .btn-danger;
}
h3 {
margin-bottom: 0;
}
.select-kit {
width: 150px;
}
.select-kit.multi-select {
width: 300px;
.choices .choice,
.select-kit-filter .filter-input {
height: 25px;
min-height: 25px;
}
}
input[type="text"] {
margin: 0;
}
table {
td {
vertical-align: top;
label {
margin: 0;
line-height: 30px;
display: inline-block;
margin-right: 10px;
}
}
td {
min-width: 170px;
width: 170px;
}
td.multi-select {
min-width: 300px;
}
td.input {
min-width: 210px;
width: 210px;
}
td.actions {
min-width: 100px;
text-align: right;
button.btn {
margin-left: 5px !important;
}
}
td.external {
font-style: italic;
}
}
}
.realtime-validations > ul {
list-style: none;
margin: 0;
> li {
background-color: var(--primary-low);
padding: 1em;
margin: 0 0 1em 0;
input {
margin-bottom: 0;
}
}
}
.validation-container {
display: flex;
padding: 1em 0;
.validation-section {
width: 250px;
}
}
.wizard.category-selector {
width: 200px !important;
}
.time-n-value {
width: 70px;
vertical-align: middle;
}
.select-kit.time-unit-selector {
width: 80px;
vertical-align: middle;
}