Merge branch 'main' of https://github.com/sartography/spiff-arena
This commit is contained in:
commit
122db8b2b2
|
@ -176,6 +176,9 @@ export default function TaskShow() {
|
|||
if (disabled) {
|
||||
return;
|
||||
}
|
||||
if (!formObject) {
|
||||
navigate(`/tasks`);
|
||||
}
|
||||
let queryParams = '';
|
||||
if (submitType === FormSubmitType.Draft) {
|
||||
queryParams = '?save_as_draft=true';
|
||||
|
@ -347,20 +350,21 @@ export default function TaskShow() {
|
|||
|
||||
if (task.state === 'READY') {
|
||||
let submitButtonText = 'Submit';
|
||||
let saveAsDraftButton = null;
|
||||
let closeButton = null;
|
||||
if (task.typename === 'ManualTask') {
|
||||
submitButtonText = 'Continue';
|
||||
} else if (task.typename === 'UserTask') {
|
||||
saveAsDraftButton = (
|
||||
closeButton = (
|
||||
<Button
|
||||
id="save-as-draft-button"
|
||||
id="close-button"
|
||||
disabled={disabled}
|
||||
kind="secondary"
|
||||
title="Save changes without submitting."
|
||||
onClick={() =>
|
||||
handleFormSubmit(currentFormObject, null, FormSubmitType.Draft)
|
||||
}
|
||||
>
|
||||
Save as draft
|
||||
Close
|
||||
</Button>
|
||||
);
|
||||
}
|
||||
|
@ -369,7 +373,7 @@ export default function TaskShow() {
|
|||
<Button type="submit" id="submit-button" disabled={disabled}>
|
||||
{submitButtonText}
|
||||
</Button>
|
||||
{saveAsDraftButton}
|
||||
{closeButton}
|
||||
<>
|
||||
{task.signal_buttons.map((signal) => (
|
||||
<Button
|
||||
|
|
|
@ -19,7 +19,8 @@ function SelectWidget({
|
|||
placeholder,
|
||||
rawErrors = [],
|
||||
}: WidgetProps) {
|
||||
const { enumOptions, enumDisabled } = options;
|
||||
const { enumOptions } = options;
|
||||
let { enumDisabled } = options;
|
||||
|
||||
const emptyValue = multiple ? [] : '';
|
||||
|
||||
|
@ -56,6 +57,36 @@ function SelectWidget({
|
|||
errorMessageForField = rawErrors[0];
|
||||
}
|
||||
|
||||
// ok. so in safari, the select widget showed the first option, whereas in chrome it forced you to select an option.
|
||||
// this change causes causes safari to act a little bit more like chrome, but it's different because we are actually adding
|
||||
// an element to the dropdown.
|
||||
//
|
||||
// https://stackoverflow.com/a/7944490/6090676 safari detection
|
||||
let isSafari = false;
|
||||
const ua = navigator.userAgent.toLowerCase();
|
||||
if (ua.indexOf('safari') != -1) {
|
||||
if (ua.indexOf('chrome') === -1) {
|
||||
isSafari = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (isSafari) {
|
||||
if (enumOptions && enumOptions[0].value !== '') {
|
||||
enumOptions.unshift({
|
||||
value: '',
|
||||
label: '',
|
||||
});
|
||||
}
|
||||
// enumDisabled is a list of values for which the option should be disabled.
|
||||
// we don't really want users to select the fake empty option we are creating here.
|
||||
// they cannot select it in chrome, after all.
|
||||
// google is always right. https://news.ycombinator.com/item?id=35862041
|
||||
if (enumDisabled === undefined) {
|
||||
enumDisabled = [];
|
||||
}
|
||||
enumDisabled.push('');
|
||||
}
|
||||
|
||||
// maybe use placeholder somehow. it was previously jammed into the helperText field,
|
||||
// but allowing ui:help to grab that spot seems much more appropriate.
|
||||
|
||||
|
|
Loading…
Reference in New Issue