templates/Context/Shop/RFQCategory/create.html.twig line 1

Open in your IDE?
  1. {% extends '@SyliusShop/layout.html.twig' %}
  2. {% form_theme form '@SyliusShop/Form/theme.html.twig' %}
  3. {% block content %}
  4.     <script>
  5.           window.crfqTranslations = {
  6.           categoryRequired: '{{ 'open_marketplace.crfq.validation.category_required'|trans }}',
  7.           categoryRequiredHeader: '{{ 'open_marketplace.crfq.validation.category_required_header'|trans }}',
  8.           firstNameRequired: '{{ 'open_marketplace.crfq.validation.first_name_required'|trans }}',
  9.           firstNameRequiredHeader: '{{ 'open_marketplace.crfq.validation.first_name_required_header'|trans }}',
  10.           lastNameRequired: '{{ 'open_marketplace.crfq.validation.last_name_required'|trans }}',
  11.           lastNameRequiredHeader: '{{ 'open_marketplace.crfq.validation.last_name_required_header'|trans }}',
  12.           emailRequired: '{{ 'open_marketplace.crfq.validation.email_required'|trans }}',
  13.           emailRequiredHeader: '{{ 'open_marketplace.crfq.validation.email_required_header'|trans }}',
  14.           emailInvalid: '{{ 'open_marketplace.crfq.validation.email_invalid'|trans }}',
  15.           emailInvalidHeader: '{{ 'open_marketplace.crfq.validation.email_invalid_header'|trans }}',
  16.           companyRequired: '{{ 'open_marketplace.crfq.validation.company_required'|trans }}',
  17.           companyRequiredHeader: '{{ 'open_marketplace.crfq.validation.company_required_header'|trans }}',
  18.           agreeTermsRequired: '{{ 'open_marketplace.crfq.validation.agree_terms_required'|trans }}',
  19.           agreeTermsRequiredHeader: '{{ 'open_marketplace.crfq.validation.agree_terms_required_header'|trans }}',
  20.           registrationSuccess: '{{ 'open_marketplace.crfq.validation.registration_success'|trans }}',
  21.           registrationSuccessHeader: '{{ 'open_marketplace.crfq.validation.registration_success_header'|trans }}',
  22.           registrationFailed: '{{ 'open_marketplace.crfq.validation.registration_failed'|trans }}',
  23.           registrationFailedHeader: '{{ 'open_marketplace.crfq.validation.registration_failed_header'|trans }}',
  24.           registrationError: '{{ 'open_marketplace.crfq.validation.registration_error'|trans }}',
  25.           registrationErrorHeader: '{{ 'open_marketplace.crfq.validation.registration_error_header'|trans }}',
  26.           verificationCodeRequired: '{{ 'open_marketplace.crfq.validation.verification_code_required'|trans }}',
  27.           verificationCodeRequiredHeader: '{{ 'open_marketplace.crfq.validation.verification_code_required_header'|trans }}',
  28.           emailNotFound: '{{ 'open_marketplace.crfq.validation.email_not_found'|trans }}',
  29.           emailNotFoundHeader: '{{ 'open_marketplace.crfq.validation.email_not_found_header'|trans }}',
  30.           verificationFailed: '{{ 'open_marketplace.crfq.validation.verification_failed'|trans }}',
  31.           verificationFailedHeader: '{{ 'open_marketplace.crfq.validation.verification_failed_header'|trans }}',
  32.           verificationError: '{{ 'open_marketplace.crfq.validation.verification_error'|trans }}',
  33.           verificationErrorHeader: '{{ 'open_marketplace.crfq.validation.verification_error_header'|trans }}',
  34.           requiredField: '{{ 'open_marketplace.crfq.validation.required_field'|trans }}',
  35.           sellersRequired: '{{ 'open_marketplace.crfq.validation.sellers_required'|trans }}',
  36.           detailsMinCharacters: '{{ 'open_marketplace.crfq.validation.details_min_characters'|trans }}',
  37.           selectCategoryFirst: '{{ 'open_marketplace.crfq.dropdown.select_category_first'|trans }}',
  38.           selectSubcategory: '{{ 'open_marketplace.crfq.dropdown.select_subcategory'|trans }}',
  39.           noSubcategories: '{{ 'open_marketplace.crfq.dropdown.no_subcategories'|trans }}',
  40.           errorLoading: '{{ 'open_marketplace.crfq.dropdown.error_loading'|trans }}',
  41.           suppliers: '{{ 'app.ui.header.suppliers'|trans }}'
  42.       };
  43.     </script>
  44.     {% if not is_granted('IS_AUTHENTICATED_FULLY') %}
  45.         <div class="ui grid stackable">
  46.             <div
  47.                 class="eight wide computer sixteen wide mobile column crfq-intro-column">
  48.                 <!-- Top badge -->
  49.                 <div class="ui blue basic label crfq-badge">
  50.                     <i class="check circle icon"></i>
  51.                     {{ 'open_marketplace.crfq.wizard.verified_suppliers_badge'|trans }}
  52.                 </div>
  53.                 <!-- Main heading -->
  54.                 <h1 class="ui huge header crfq-main-heading">
  55.                     {{ 'open_marketplace.crfq.wizard.main_heading'|trans|raw }}
  56.                 </h1>
  57.                 <!-- Description text -->
  58.                 <p class="crfq-description">
  59.                     {{ 'open_marketplace.crfq.wizard.description'|trans|raw }}
  60.                 </p>
  61.                 <!-- Checkmark feature -->
  62.                 <div class="ui basic segment crfq-feature">
  63.                     <i class="big shield icon blue"></i>
  64.                     <strong>{{ 'open_marketplace.crfq.wizard.feature_verified'|trans }}</strong>
  65.                 </div>
  66.             </div>
  67.             <div class="one wide computer only column"></div>
  68.             <div
  69.                 class="seven wide computer floated right column">
  70.                 <!-- Placeholder for world map image -->
  71.                 <div class="ui fluid image">
  72.                     <img src="{{ asset('build/shop/images/suppliers_map.svg', 'shop') }}" alt="{{ 'open_marketplace.crfq.wizard.map_alt'|trans }}" class="logo"/>
  73.                 </div>
  74.             </div>
  75.         </div>
  76.         <!-- Steps section -->
  77.         <div class="ui hidden divider"></div>
  78.         <div class="ui hidden divider"></div>
  79.         <!-- Message container for displaying errors/success messages -->
  80.         <div id="message-container" style="display: none;">
  81.             <div class="ui message" id="notification-message">
  82.                 <i class="close icon"></i>
  83.                 <div class="header" id="message-header"></div>
  84.                 <p id="message-content"></p>
  85.             </div>
  86.         </div>
  87.         <div
  88.             class="ui basic segment steps-wrapper" data-authenticated="{{ is_granted('IS_AUTHENTICATED_FULLY') ? 'true' : 'false' }}">
  89.             <!-- Step 1: Category Selection -->
  90.             <div class="step step-1 active" data-step="1">
  91.                 <div class="ui equal width stackable grid">
  92.                     <div class="stretched row">
  93.                         <div class="twelve wide column">
  94.                             <h2>{{ 'open_marketplace.crfq.wizard.step1_title'|trans }}</h2>
  95.                         </div>
  96.                         <div class="middle aligned column">
  97.                             <h5 class="right floated column">{{ 'open_marketplace.crfq.wizard.step1of3'|trans }}</h5>
  98.                         </div>
  99.                     </div>
  100.                     <div class="stretched row">
  101.                         <div class="column">
  102.                             <div class="ui segment center aligned taxon taxon-selector active" data-taxon-code="components">{{ 'open_marketplace.crfq.wizard.machine_components'|trans }}</div>
  103.                         </div>
  104.                         <div class="column">
  105.                             <div class="ui segment center aligned taxon taxon-selector" data-taxon-code="equipment">{{ 'open_marketplace.crfq.wizard.equipment_production'|trans }}</div>
  106.                         </div>
  107.                         <div class="column">
  108.                             <div class="ui segment center aligned taxon taxon-selector" data-taxon-code="systems">{{ 'open_marketplace.crfq.wizard.complete_systems'|trans }}</div>
  109.                         </div>
  110.                         <div class="column">
  111.                             <div class="ui segment center aligned taxon taxon-selector" data-taxon-code="materials">{{ 'open_marketplace.crfq.wizard.materials'|trans }}</div>
  112.                         </div>
  113.                     </div>
  114.                 </div>
  115.                 <div class="ui hidden divider"></div>
  116.                 <div id="taxon-dropdown-wrapper" data-taxon-leafs-url="{{ path('app_crfq_taxon_leafs') }}">
  117.                     <div class="ui fluid search selection dropdown" id="taxon-child-dropdown">
  118.                         <input type="hidden" name="taxon" id="selected-taxon">
  119.                         <i class="dropdown icon"></i>
  120.                         <div class="default text">{{ 'open_marketplace.crfq.wizard.select_category_first'|trans }}</div>
  121.                         <div class="menu"></div>
  122.                     </div>
  123.                 </div>
  124.                 <div class="ui hidden divider computer only"></div>
  125.                 <div class="step-navigation">
  126.                     {% if not is_mobile() %}
  127.                         <button type="button" class="ui labeled icon button primary next-step" data-next="2">
  128.                             <i class="arrow right icon"></i>
  129.                             {{ 'open_marketplace.crfq.wizard.next'|trans }}
  130.                         </button>
  131.                     {% else %}
  132.                         <button type="button" class="ui button primary next-step" title="{{ 'open_marketplace.crfq.wizard.next'|trans }}" data-next="2">
  133.                             {{ 'open_marketplace.crfq.wizard.next'|trans }}
  134.                         </button>
  135.                     {% endif %}
  136.                 </div>
  137.             </div>
  138.             <!-- Step 2: Contact Details -->
  139.             <div class="step step-2" data-step="2" style="display: none;">
  140.                 <div class="ui equal width stackable grid">
  141.                     <div class="stretched row">
  142.                         <div class="twelve wide column">
  143.                             <h2 class="step-info">{{ 'open_marketplace.crfq.wizard.step2_info'|trans({'%count%': '<span class="suppliers-count"></span>'})|raw }}</h2>
  144.                         </div>
  145.                         <div class="middle aligned column">
  146.                             <h5 class="right floated column">{{ 'open_marketplace.crfq.wizard.step2of3'|trans }}</h5>
  147.                         </div>
  148.                     </div>
  149.                 </div>
  150.                 <p class="step-title">{{ 'open_marketplace.crfq.wizard.step2_title'|trans }}</p>
  151.                 <div class="ui form large contact-form">
  152.                     <div class="two fields">
  153.                         <div class="field">
  154.                             <input type="text" name="firstName" id="contact-first-name" placeholder="{{ 'open_marketplace.crfq.wizard.first_name'|trans }}" required>
  155.                         </div>
  156.                         <div class="field">
  157.                             <input type="text" name="lastName" id="contact-last-name" placeholder="{{ 'open_marketplace.crfq.wizard.last_name'|trans }}" required>
  158.                         </div>
  159.                     </div>
  160.                     <div class="two fields">
  161.                         <div class="field">
  162.                             <input type="email" name="email" id="contact-email" placeholder="{{ 'open_marketplace.crfq.wizard.email'|trans }}" required>
  163.                         </div>
  164.                         <div class="field">
  165.                             <input type="text" name="companyName" id="contact-company" placeholder="{{ 'open_marketplace.crfq.wizard.company_name'|trans }}" required>
  166.                         </div>
  167.                     </div>
  168.                     <div class="ui equal width stackable grid middle aligned">
  169.                         <div class="row">
  170.                             <div class="column">
  171.                                 <div class="ui checkbox">
  172.                                     <input type="checkbox" name="agreeTerms" id="agree-terms" required>
  173.                                     <label>{{ 'open_marketplace.crfq.wizard.agree_terms'|trans({'%privacy_policy%': '<a href="#" target="_blank">' ~ 'open_marketplace.crfq.wizard.privacy_policy'|trans ~ '</a>', '%terms_of_use%': '<a href="#" target="_blank">' ~ 'open_marketplace.crfq.wizard.terms_of_use'|trans ~ '</a>'})|raw }}</label>
  174.                                 </div>
  175.                             </div>
  176.                             <div class="right aligned column">
  177.                                 <a href="{{ path('sylius_shop_login') }}">{{ 'open_marketplace.crfq.wizard.sign_in'|trans }}</a>
  178.                                 {{ 'open_marketplace.crfq.wizard.sign_in_details'|trans }}
  179.                             </div>
  180.                         </div>
  181.                     </div>
  182.                 </div>
  183.                 <div class="ui hidden divider"></div>
  184.                 <div class="step-navigation">
  185.                     <button type="button" class="ui button back-step" data-prev="1">
  186.                         {{ 'open_marketplace.crfq.wizard.back'|trans }}
  187.                     </button>
  188.                     {% if not is_mobile() %}
  189.                         <button type="button" class="ui labeled icon button primary right floated next-step" data-next="3">
  190.                             <i class="arrow right icon"></i>
  191.                             {{ 'open_marketplace.crfq.wizard.next'|trans }}
  192.                         </button>
  193.                     {% else %}
  194.                         <button type="button" class="ui button primary right floated next-step" title="{{ 'open_marketplace.crfq.wizard.next'|trans }}" data-next="3">
  195.                             {{ 'open_marketplace.crfq.wizard.next'|trans }}
  196.                         </button>
  197.                     {% endif %}
  198.                 </div>
  199.             </div>
  200.             <!-- Step 3: Placeholder for future implementation -->
  201.             <div class="step step-3" data-step="3" style="display: none;">
  202.                 <div class="ui equal width stackable grid">
  203.                     <div class="stretched row">
  204.                         <div class="twelve wide column">
  205.                             <h2 class="step-info">{{ 'open_marketplace.crfq.wizard.step3_title'|trans }}</h2>
  206.                         </div>
  207.                         <div class="middle aligned column">
  208.                             <h5 class="right floated column">{{ 'open_marketplace.crfq.wizard.step3of3'|trans }}</h5>
  209.                         </div>
  210.                     </div>
  211.                 </div>
  212.                 <div class="ui hidden divider"></div>
  213.                 <div class="ui large form">
  214.                     <div class="six wide field">
  215.                         <input type="text" id="verification-code" name="app_crfq[verificationCode]" placeholder="{{ 'open_marketplace.crfq.wizard.code_placeholder'|trans }}" maxlength="20" required>
  216.                     </div>
  217.                 </div>
  218.                 <div class="ui hidden divider"></div>
  219.                 <div class="step-navigation">
  220.                     <button type="button" class="ui button back-step" data-prev="2">
  221.                         {{ 'open_marketplace.crfq.wizard.back'|trans }}
  222.                     </button>
  223.                     {% if not is_mobile() %}
  224.                         <button type="submit" class="ui labeled icon button primary right floated">
  225.                             <i class="arrow right icon"></i>
  226.                             {{ 'open_marketplace.crfq.wizard.show_suppliers'|trans }}
  227.                         </button>
  228.                     {% else %}
  229.                         <button type="submit" class="ui button primary right floated" title="{{ 'open_marketplace.crfq.wizard.next'|trans }}">
  230.                             {{ 'open_marketplace.crfq.wizard.next'|trans }}
  231.                         </button>
  232.                     {% endif %}
  233.                 </div>
  234.             </div>
  235.         </div>
  236.         <div class="ui hidden divider"></div>
  237.         <div class="ui hidden divider"></div>
  238.     {% else %}
  239.         <div class="suppliers">
  240.             {% set organization = app.user.customer.organization|default(null) %}
  241.             {% if organization %}
  242.                 {% set buyerConfiguration = buyer_crfq_configuration(organization) %}
  243.                 {% if not buyerConfiguration.hasSubscription %}
  244.                     {% if buyerConfiguration.hasFreeQuota %}
  245.                         <div class="ui message info">
  246.                             {{ 'app.ui.crfq.free_quota_available_to_create'|trans({
  247.                             '%freeQuotaUsed%': buyerConfiguration.freeQuotaUsed,
  248.                             '%freeQuotaMaxQuantity%': buyerConfiguration.freeQuotaMaxQuantity,
  249.                             '%url%': path('open_marketplace_vendor_seller_plan_index')
  250.                         })|raw }}
  251.                         </div>
  252.                     {% else %}
  253.                         <div class="ui message warning">
  254.                             {{ 'app.ui.crfq.free_quota_reached_to_create'|trans({
  255.                             '%freeQuotaUsed%': buyerConfiguration.freeQuotaUsed,
  256.                             '%freeQuotaMaxQuantity%': buyerConfiguration.freeQuotaMaxQuantity,
  257.                             '%url%': path('open_marketplace_vendor_seller_plan_index')
  258.                         })|raw }}
  259.                         </div>
  260.                     {% endif %}
  261.                 {% endif %}
  262.             {% endif %}
  263.             {% if not buyerConfiguration is defined or (buyerConfiguration is defined and buyerConfiguration.canCRFQ) %}
  264.                 {{ form_start(form, {
  265.                 'action': path('app_crfq_create'),
  266.                 'attr': {
  267.                     'class': 'ui loadable crfq-create hyfindr-form form',
  268.                     'novalidate': 'novalidate',
  269.                     'data-get-organization-list-url': path('app_crfq_create_organization_list')
  270.                 }
  271.             }) }}
  272.                 {% include 'Context/Shop/RFQCategory/_form.html.twig' %}
  273.                 {{ form_end(form, {'render_rest': false}) }}
  274.             {% endif %}
  275.         </div>
  276.     {% endif %}
  277. {% endblock %}