Sha256: f3b5490887ad31652f0ca3d539bf53326d22e76ccf2675fa777bc687d699c592

Contents?: true

Size: 1.68 KB

Versions: 12

Compression:

Stored size: 1.68 KB

Contents

class ModelForm extends BaseForm {

  render() {
    const { modelTitle, modelName, modelUrl, modelsUrl, children, authenticityToken } = this.props;
    const errors = this.renderErrors();

    return(
      <form action={modelUrl ? modelUrl : modelsUrl} acceptCharset="UTF-8" method="POST" data-shopify-app-submit="ea.save">
        <input type="hidden" name="utf8" value="✓"/>
        <input type="hidden" name="_method" value={modelUrl ? 'patch' : 'post'} />
        <input type="hidden" name="authenticity_token" value={authenticityToken}/>

        {(() => {
          if (!errors) return false;
          return (
            {errors}
          );
        })()}

        {children}

        <ModelFormEmbeddedAppBar modelTitle={modelTitle} modelsUrl={modelsUrl} />
        <ModelFormPageActions modelName={modelName} modelUrl={modelUrl} modelsUrl={modelsUrl} />
      </form>
    )
  }
}

const ModelFormEmbeddedAppBar = ({ modelTitle, modelsUrl }) => {
  const buttons = {
    primary: {
      label: "Save",
      message: "ea.save"
    },
    secondary: [{
      label: "Cancel",
      href: modelsUrl
    }]
  };

  return (
    <EmbeddedAppBar title={modelTitle} buttons={buttons} />
  );
};

const ModelFormPageActions = ({ modelName, modelUrl, modelsUrl }) => {
  const primary = [
    <a href={modelsUrl} className="btn">Cancel</a>,
    <Button type="submit" primary={true}>{'Save' + (modelUrl ? '' : ' ' + modelName)}</Button>
  ];

  const secondary = modelUrl ? [
    <ModelDestroyButton
      label={'Delete ' + modelName}
      modelName={modelName}
      modelUrl={modelUrl}
      modelsUrl={modelsUrl}
    />
  ] : [];

  return (
    <UIPageActions primary={primary} secondary={secondary} />
  );
};

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
disco_app-0.11.0 app/assets/components/disco_app/forms/model-form.es6.jsx
disco_app-0.11.1 app/assets/components/disco_app/forms/model-form.es6.jsx
disco_app-0.12.0 app/assets/components/disco_app/forms/model-form.es6.jsx
disco_app-0.12.1 app/assets/components/disco_app/forms/model-form.es6.jsx
disco_app-0.12.5 app/assets/components/disco_app/forms/model-form.es6.jsx
disco_app-0.12.6 app/assets/components/disco_app/forms/model-form.es6.jsx
disco_app-0.12.7 app/assets/components/disco_app/forms/model-form.es6.jsx
disco_app-0.13.0 app/assets/components/disco_app/forms/model-form.es6.jsx
disco_app-0.13.1 app/assets/components/disco_app/forms/model-form.es6.jsx
disco_app-0.13.2 app/assets/components/disco_app/forms/model-form.es6.jsx
disco_app-0.13.3 app/assets/components/disco_app/forms/model-form.es6.jsx
disco_app-0.12.7.pre.puma.pre.3 app/assets/components/disco_app/forms/model-form.es6.jsx