src/Bidcoz/Bundle/CoreBundle/Resources/views/Layout/layout.html.twig line 1

Open in your IDE?
  1. {% extends '@BidcozCore/Layout/base.html.twig' %}
  2. {% block doctype %}<!DOCTYPE html>{% endblock %}
  3. {% if organization is defined %}
  4.     {% set theme = organization.theme %}
  5.     {% if campaign is defined and campaign is not null %}
  6.         {% set theme = campaign.theme %}
  7.     {% endif %}
  8. {% endif %}
  9. {% block theme %}
  10.     {{ parent() }}
  11.     {% set showBidcozImage = true %}
  12.     {% if organization is defined %}
  13.         {# Utilize primary, secondary, and tertiary styles #}
  14.         {% include '@BidcozManage/Theme/css.html.twig' %}
  15.         {# Utilize google fonts for theme #}
  16.         {% include '@BidcozCore/Layout/Fonts/index.html.twig' with { theme: theme } %}
  17.         {% if theme.logo is defined %}
  18.             {% set showBidcozImage = false %}
  19.             <link rel="shortcut icon" href="{{ vich_uploader_asset(theme.logo, 'file') }}" />
  20.         {% endif %}
  21.     {% else %}
  22.         {% block homepageStylesheets '' %}
  23.     {% endif %}
  24.     {% if showBidcozImage %}
  25.         <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
  26.         <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
  27.         <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
  28.         <link rel="manifest" href="/site.webmanifest">
  29.     {% endif %}
  30. {% endblock %}
  31. {% block bodyClass %}{{- theme is defined ? 'theme-' ~ theme.themeName ~ ' theme-' ~ (theme.backgroundColor ? theme.backgroundColor : 'cold') : 'bidcoz' }}{% block homepageClass '' %}{{ organization is defined or campaign is defined ? '' : ' no-campaign'}}{% endblock %}
  32. {% block body %}
  33.     <div class="bounds d-flex flex-column">
  34.         {% block homepagePreloader '' %}
  35.         {% set beforeAlertsContent = block('beforeAlerts')|trim %}
  36.         {% set alertsContent = block('alerts')|trim %}
  37.         {% set afterAlertsContent = block('afterAlerts')|trim %}
  38.         {% set beforeContentHTML = block('beforeContent')|trim %}
  39.         {% block header %}
  40.             {% include '@BidcozCore/Layout/Blocks/header.html.twig' with {
  41.                 hasSidebar: block('sidebar') is defined,
  42.                 isToolkit: false
  43.             } %}
  44.         {% endblock %}
  45.         <!-- This section is for notifications for the user to take action on. -->
  46.         <div class="notifications-container">
  47.             <div class="notifications-close">
  48.                 <i class="fas fa-times"></i>
  49.             </div>
  50.             <h4 class="mt-2">Notifications</h4>
  51.             {% if beforeAlertsContent or alertsContent or afterAlertsContent %}
  52.                 {% block beforeAlerts '' %}
  53.                 {% block alerts %}
  54.                     {% set route = app.request.get('_route') %}
  55.                     {% if route != 'account_campaign_purchases' and is_logged_in() and campaign is defined and campaign is not null %}
  56.                         {% set expiringPurchases = user_campaign_expiring_purchases(app.user, campaign) %}
  57.                         {% if expiringPurchases|length %}
  58.                             <div class="alert warning d-flex flex-column">
  59.                                 <div class="message flex-grow-1 mb-2">
  60.                                     You have <b>{{ expiringPurchases|length }}</b> item(s) expiring soon.
  61.                                 </div>
  62.                                 <a href="{{ path('account_campaign_purchases', campaignParams ) }}" class="btn btn-warning btn-sm w-100">Checkout</a>
  63.                             </div>
  64.                         {% endif %}
  65.                     {% endif %}
  66.                     {% if is_granted('IS_IMPERSONATOR') %}
  67.                         <div class="alert info exit-impersonation d-flex">
  68.                             <div class="message flex-grow-1">
  69.                                 <a href="{{ path('admin_index', {'_switch_user': '_exit'}) }}">Exit impersonation</a>
  70.                             </div>
  71.                         </div>
  72.                     {% endif %}
  73.                 {% endblock %}
  74.                 {% block afterAlerts '' %}
  75.             {% else %}
  76.                 You have no notifications at this time.
  77.             {% endif %}
  78.         </div>
  79.         <!-- This section is for help content for the user to read. -->
  80.         <div class="help-container">
  81.             <div class="help-container-close">
  82.                 <i class="fas fa-times"></i>
  83.             </div>
  84.             <h4 class="mt-2">Help</h4>
  85.             <div class="alert alert-warning">
  86.                 <h6 class="title mb-2"></h6>
  87.                 <div class="message flex-grow-1">
  88.                     No help article for this section.
  89.                 </div>
  90.             </div>
  91.         </div>
  92.         <!-- This section is for toast notifications to make users aware of a successful
  93.              or failed https request. -->
  94.         {% block toast %}
  95.             <div class="toast-container">
  96.                 {% set close = true %}
  97.                 {% include '@BidcozCore/Layout/Blocks/alerts.html.twig' %}
  98.             </div>
  99.         {% endblock %}
  100.         <!--
  101.         <div class="toast-container">
  102.             {# block toast %}
  103.                 {% if numMessages > 0 %}
  104.                     {% include '@BidcozCore/Layout/Blocks/alerts.html.twig' %}
  105.                 {% endif %}
  106.             {% endblock #}
  107.         </div>
  108.         -->
  109.         {% if beforeContentHTML %}
  110.             <div class="container pre-content">
  111.                 {% block beforeContent '' %}
  112.             </div>
  113.         {% endif %}
  114.         <div class="container homepage-intro">
  115.             {% block homepageIntro '' %}
  116.         </div>
  117.         <div class="layout-container d-flex flex-column flex-grow-1 content" role="main">
  118.             <div class="container" role="main">
  119.                 {% set _sidebar = block('sidebar') is defined ? block('sidebar')|trim : '' %}
  120.                 {% set _internal_sidebar = block('internal_sidebar') is defined ? block('internal_sidebar')|trim %}
  121.                 <div class="row{{ _sidebar ? ' sidebar-row' : '' }}">
  122.                     {% if _internal_sidebar %}
  123.                         <div class="col-sm-12 col-lg-3 col-xl-2 sidebar">
  124.                             {{ _internal_sidebar|raw }}
  125.                         </div>
  126.                     {% endif %}
  127.                     {% set content_class = '' %}
  128.                     {% if _sidebar %}
  129.                         {% set content_class = 'col-lg-8' %}
  130.                     {% endif %}
  131.                     {% if _internal_sidebar %}
  132.                         {% set content_class = 'col-lg-9 col-xl-10' %}
  133.                     {% endif %}
  134.                     <div class="col-sm-12 {{ content_class }} main-content">
  135.                         {% block content '' %}
  136.                         {% block homepageSponsorships '' %}
  137.                     </div>
  138.                     {% if _sidebar %}
  139.                         <div class="col-sm-12 col-lg-4 sidebar">
  140.                             {{ _sidebar|raw }}
  141.                         </div>
  142.                     {% endif %}
  143.                 </div>
  144.             </div>
  145.             {% if block('sponsorships')|trim %}
  146.                 <div class="container sponsorships-container">
  147.                     {% block sponsorships '' %}
  148.                 </div>
  149.             {% endif %}
  150.         </div>
  151.         <div id="primary-modal" class="modal">
  152.             <div class="modal-close">
  153.                 {% include '@BidcozCore/Components/icon.html.twig' with { icon: 'close' } %}
  154.             </div>
  155.             <div class="modal-content mx-auto">
  156.                 <!-- content to be populated via http request -->
  157.             </div>
  158.         </div>
  159.         {% if not is_logged_in() %}
  160.             {% set loginPath = campaign is defined ? path('campaign_login_user', { orgSlug: organization.slug, campaignSlug: campaign.slug }) : '/login' %}
  161.             <div id="login-modal" class="modal" data-url="{{ loginPath }}">
  162.                 <div class="modal-dialog">
  163.                     <div class="modal-content mx-auto">
  164.                         <div class="modal-close float-right">
  165.                             {% include '@BidcozCore/Components/icon.html.twig' with { icon: 'close' } %}
  166.                         </div>
  167.                         <div class="modal-html">
  168.                             <!-- Load login content here via http request -->
  169.                         </div>
  170.                     </div>
  171.                 </div>
  172.             </div>
  173.             {% set registerPath = campaign is defined ? path('campaign_register_user', { orgSlug: organization.slug, campaignSlug: campaign.slug }) : '/register' %}
  174.             {% set currentRoute = app.request.attributes.get('_route') %}
  175.             {% if currentRoute != 'campaign_register_user' %}
  176.                 <div id="register-modal" class="modal py-0 py-md-5" data-url="{{ registerPath }}">
  177.                     <div class="modal-dialog">
  178.                         <div class="modal-content mx-auto p-0 position-relative">
  179.                             <div class="modal-close position-absolute" style="right: 1rem; top: 1rem; z-index: 1;">
  180.                                 {% include '@BidcozCore/Components/icon.html.twig' with { icon: 'close' } %}
  181.                             </div>
  182.                             <div class="modal-html mx-n3">
  183.                                 <!-- Load registration content here via http request -->
  184.                             </div>
  185.                         </div>
  186.                     </div>
  187.                 </div>
  188.             {% endif %}
  189.         {% endif %}
  190.         {% block trial '' %}
  191.         {% block contentBottom '' %}
  192.         {% block tour '' %}
  193.         {% block shareButtons '' %}
  194.         {% block footer %}
  195.             {% include '@BidcozCore/Layout/Blocks/footer.html.twig' %}
  196.         {% endblock %}
  197.         {% include '@BidcozCore/Layout/Blocks/user.html.twig' %}
  198.     </div>
  199. {% endblock %}
  200. {% block stylesheets %}
  201.     {% if campaign is defined and campaign is not null %}
  202.         {% if item is defined and item is not null %}
  203.             {% set imageUrl = item.primaryImage is defined and item.primaryImage.image is defined and item.primaryImage.image ? vich_uploader_asset(item.primaryImage.image, 'file') : '' %}
  204.             {% set imageWidth = 400 %}
  205.         {% else %}
  206.             {% if campaign.logo is defined and campaign.logo is not null %}
  207.                 {% set imageUrl = vich_uploader_asset(campaign.logo, 'file') %}
  208.                 {% set imageWidth = 320 %}
  209.             {% else %}
  210.                 {% set imageUrl = 'img/default_logo_campaign.png' %}
  211.                 {% set imageWidth = 320 %}
  212.             {% endif %}
  213.         {% endif %}
  214.         {# Hack for St. Henry - Remove #}
  215.         {% if campaign.slug == 'walk-a-thon2018' and campaign.organization.slug == 'sainthenryschoolhs' %}
  216.             {% set imageUrl = 'https://s3.us-east-2.amazonaws.com/bidcoz-images/sainthenryschoolhs/st_henry.png' %}
  217.             {% set imageWidth = 533 %}
  218.         {% endif %}
  219.         {% set ogImageUrl = asset(imageUrl)|replace({' ': '%20'}) %}
  220.         {% if 'https' in ogImageUrl %}
  221.             <meta property="og:image:secure_url" content="{{ ogImageUrl }}" />
  222.         {% else %}
  223.             <meta property="og:image:url" content="{{ ogImageUrl }}" />
  224.         {% endif %}
  225.         <meta property="og:image" content="{{ ogImageUrl }}" />
  226.         <meta property="og:image:width" content="{{ imageWidth }}" />
  227.         <meta property="og:type" content="website" />
  228.         <meta property="og:title" content="{{ campaign.name }}" />
  229.         <meta property="og:description" content="{{ campaign.description }}" />
  230.         <meta property="og:url" content="{{ app.request.schemeAndHttpHost ~ app.request.requestUri }}" />
  231.     {% endif %}
  232.     <link rel="stylesheet" href="/components/jquery-ui/themes/base/all.css">
  233.     <link rel="stylesheet" href="/components/datetimepicker/jquery.datetimepicker.css">
  234.     <link rel="stylesheet" href="/components/datatables.net-bs/css/dataTables.bootstrap.min.css">
  235.     <link rel="stylesheet" href="/components/datatables.net-buttons-bs/css/buttons.bootstrap.min.css">
  236.     <link rel="stylesheet" href="/components/jReject/css/jquery.reject.css">
  237.     <link rel="stylesheet" href="/components/lightbox2/dist/css/lightbox.css">
  238.     <link rel="stylesheet" href="/components/colorpicker/jquery.colorpicker.css">
  239.     <link href="//fonts.googleapis.com/css?family=Lato:100,300,400,700,900,100italic,300italic,400italic,700italic,900italic" rel="stylesheet" type="text/css">
  240.     <link href="//fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800" rel="stylesheet" type="text/css">
  241.     <link rel="stylesheet" href="/components/hint.css/hint.min.css">
  242.     <link rel="stylesheet" href="/components/intl-tel-input/build/css/intlTelInput.min.css">
  243.     <style>
  244.         .iti{ width: 100%;}
  245.         .iti__flag { z-index: 4; }
  246.         .intl-tel-input {
  247.             display: table-cell;
  248.         }
  249.         .intl-tel-input .selected-flag {
  250.             z-index: 4;
  251.         }
  252.         .intl-tel-input .country-list {
  253.             z-index: 5;
  254.         }
  255.         .input-group .intl-tel-input .form-control {
  256.               border-radius: 4px 0 0 4px;
  257.         }
  258.         .iti .intl-phone { padding-left: 55px!important; }
  259.     </style>
  260.     {% if organization is defined or campaign is defined %}
  261.         <link rel="stylesheet" href="/css/admin.css?v={{ asset_version('') }}">
  262.     {% else %}
  263.         <link rel="stylesheet" href="/css/manage.css?v={{ asset_version('') }}">
  264.     {% endif %}
  265.     <!-- <link rel="stylesheet" href="/css/common.css?v={{ asset_version('') }}"> -->
  266. {% endblock %}
  267. {% block javascripts %}
  268.     <!--
  269.     <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
  270.     -->
  271.     <script src="/components/jquery/dist/jquery.js" type="text/javascript"></script>
  272.     <script src="/components/jquery-ui/jquery-ui.js" type="text/javascript"></script>
  273.     <script src="/components/bootstrap/dist/js/bootstrap.min.js" type="text/javascript"></script>
  274.     <script src="/components/tinymce/tinymce.min.js?v=1" type="text/javascript"></script>
  275.     <script src="/components/jquery.countdown/dist/jquery.countdown.js" type="text/javascript"></script>
  276.     <script src="/components/jcarousel/dist/jquery.jcarousel.min.js" type="text/javascript"></script>
  277.     <script src="/components/datetimepicker/jquery.datetimepicker.js" type="text/javascript"></script>
  278.     <script src="/components/devbridge-autocomplete/dist/jquery.autocomplete.min.js" type="text/javascript"></script>
  279.     <script src="/components/datatables.net/js/jquery.dataTables.min.js" type="text/javascript"></script>
  280.     <script src="/components/datatables.net-bs/js/dataTables.bootstrap.min.js" type="text/javascript"></script>
  281.     <script src="/components/datatables.net-buttons/js/dataTables.buttons.min.js" type="text/javascript"></script>
  282.     <script src="/components/datatables.net-buttons/js/buttons.print.min.js" type="text/javascript"></script>
  283.     <script src="/components/datatables.net-buttons/js/buttons.html5.min.js" type="text/javascript"></script>
  284.     <script src="/components/datatables.net-buttons-bs/js/buttons.bootstrap.min.js" type="text/javascript"></script>
  285.     <script src="/components/datatables.net-select/js/dataTables.select.min.js" type="text/javascript"></script>
  286.     <script src="/components/jReject/js/jquery.reject.js" type="text/javascript"></script>
  287.     <script src="/components/lightbox2/dist/js/lightbox.min.js" type="text/javascript"></script>
  288.     <script src="/components/colorpicker/jquery.colorpicker.js" type="text/javascript"></script>
  289.     <script src="/components/colorpicker/i18n/jquery.ui.colorpicker-nl.js"></script>
  290.     <script src="/components/colorpicker/parts/jquery.ui.colorpicker-rgbslider.js"></script>
  291.     <script src="/components/colorpicker/parts/jquery.ui.colorpicker-memory.js"></script>
  292.     <script src="/components/moment/min/moment.min.js"></script>
  293.     <script src="/components/moment-timezone/builds/moment-timezone-with-data.min.js"></script>
  294.     <script src="/components/responsive-bootstrap-toolkit/dist/bootstrap-toolkit.min.js"></script>
  295.     <script src="/components/intl-tel-input/build/js/intlTelInput.min.js"></script>
  296.     <script src="/js/plugins/jquery.browser.mobile.js" type="text/javascript"></script>
  297.     <script src="/js/main.js?v={{ asset_version('') }}" type="text/javascript"></script>
  298.     {% if stripe.publishable_key and not is_logged_in() %}
  299.         {% include '_credit_card_js.html.twig' with { doNotSubmit: true } %}
  300.     {% endif %}
  301. {% endblock %}