Sha256: b2e587dc69bf05f9d94b96d642e2e2a4288a5da5ff009c46f0026655296b37a1

Contents?: true

Size: 1.76 KB

Versions: 13

Compression:

Stored size: 1.76 KB

Contents

import React from 'react';
import PropTypes from 'prop-types';
import { translate as __ } from 'foremanReact/common/I18n';

import { formatValue } from './AnsibleVariableOverridesTableHelper';

import {
  TextAreaField,
  TextInputField,
  SelectField,
} from './EditableValueHelper';

const EditableValue = props => {
  if (!props.editing) {
    return formatValue(props.variable);
  }

  const type = props.variable.parameterType;

  if (['json', 'yaml', 'array', 'hash'].includes(type)) {
    return (
      <TextAreaField
        aria-label="Edit override field"
        onChange={props.onChange}
        value={
          typeof props.value === 'object'
            ? JSON.stringify(props.value)
            : props.value
        }
        validation={props.validation}
        isDisabled={props.working}
      />
    );
  }

  if (type === 'boolean') {
    return (
      <SelectField
        aria-label="Edit override field"
        selectItems={[
          { id: 'trueSelectOpt', value: true, name: __('true') },
          { id: 'falseSelectOpt', value: false, name: __('false') },
        ]}
        onChange={props.onChange}
        validation={props.validation}
        isDisabled={props.working}
        value={props.value}
      />
    );
  }

  return (
    <TextInputField
      onChange={props.onChange}
      value={props.value}
      validation={props.validation}
      isDisabled={props.working}
      aria-label="Edit override field"
    />
  );
};

EditableValue.propTypes = {
  editing: PropTypes.bool.isRequired,
  variable: PropTypes.object.isRequired,
  onChange: PropTypes.func.isRequired,
  value: PropTypes.any,
  validation: PropTypes.object.isRequired,
  working: PropTypes.bool.isRequired,
};

EditableValue.defaultProps = {
  value: '',
};

export default EditableValue;

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
foreman_ansible-15.0.2 webpack/components/AnsibleHostDetail/components/AnsibleVariableOverrides/EditableValue.js
foreman_ansible-15.0.1 webpack/components/AnsibleHostDetail/components/AnsibleVariableOverrides/EditableValue.js
foreman_ansible-15.0.0 webpack/components/AnsibleHostDetail/components/AnsibleVariableOverrides/EditableValue.js
foreman_ansible-14.2.2 webpack/components/AnsibleHostDetail/components/AnsibleVariableOverrides/EditableValue.js
foreman_ansible-14.2.1 webpack/components/AnsibleHostDetail/components/AnsibleVariableOverrides/EditableValue.js
foreman_ansible-13.0.7 webpack/components/AnsibleHostDetail/components/AnsibleVariableOverrides/EditableValue.js
foreman_ansible-14.2.0 webpack/components/AnsibleHostDetail/components/AnsibleVariableOverrides/EditableValue.js
foreman_ansible-14.1.1 webpack/components/AnsibleHostDetail/components/AnsibleVariableOverrides/EditableValue.js
foreman_ansible-14.1.0 webpack/components/AnsibleHostDetail/components/AnsibleVariableOverrides/EditableValue.js
foreman_ansible-13.0.5 webpack/components/AnsibleHostDetail/components/AnsibleVariableOverrides/EditableValue.js
foreman_ansible-14.0.0 webpack/components/AnsibleHostDetail/components/AnsibleVariableOverrides/EditableValue.js
foreman_ansible-13.0.4 webpack/components/AnsibleHostDetail/components/AnsibleVariableOverrides/EditableValue.js
foreman_ansible-13.0.3 webpack/components/AnsibleHostDetail/components/AnsibleVariableOverrides/EditableValue.js