var/cache/dev/twig/5c/5c81baca7459b031814648797edde961d78aa61f80d1ee7665a515034ccbc2c3.php line 34

Open in your IDE?
  1. <?php
  2. use Twig\Environment;
  3. use Twig\Error\LoaderError;
  4. use Twig\Error\RuntimeError;
  5. use Twig\Extension\CoreExtension;
  6. use Twig\Extension\SandboxExtension;
  7. use Twig\Markup;
  8. use Twig\Sandbox\SecurityError;
  9. use Twig\Sandbox\SecurityNotAllowedTagError;
  10. use Twig\Sandbox\SecurityNotAllowedFilterError;
  11. use Twig\Sandbox\SecurityNotAllowedFunctionError;
  12. use Twig\Source;
  13. use Twig\Template;
  14. /* @Application/framework/_cp_topstrip.html.twig */
  15. class __TwigTemplate_a62ccfc65b96bccae70ae5ad19bee77d6f0b727fd4cf96fa6b4cd71dfd8340f1 extends Template
  16. {
  17.     private $source;
  18.     private $macros = [];
  19.     public function __construct(Environment $env)
  20.     {
  21.         parent::__construct($env);
  22.         $this->source $this->getSourceContext();
  23.         $this->parent false;
  24.         $this->blocks = [
  25.         ];
  26.     }
  27.     protected function doDisplay(array $context, array $blocks = [])
  28.     {
  29.         $macros $this->macros;
  30.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  31.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""@Application/framework/_cp_topstrip.html.twig"));
  32.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  33.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""@Application/framework/_cp_topstrip.html.twig"));
  34.         // line 8
  35.         $context["_companyNames"] = $this->extensions['ApplicationBundle\Twig\GeneralExtension']->jsonDecode(((CoreExtension::getAttribute($this->env$this->source, ($context["session"] ?? null), CoreExtension::getAttribute($this->env$this->source, (isset($context["UserConstants"]) || array_key_exists("UserConstants"$context) ? $context["UserConstants"] : (function () { throw new RuntimeError('Variable "UserConstants" does not exist.'8$this->source); })()), "USER_COMPANY_NAME_LIST", [], "any"falsefalsefalse8), [], "array"truetruefalse8)) ? (Twig\Extension\CoreExtension::default(CoreExtension::getAttribute($this->env$this->source, ($context["session"] ?? null), CoreExtension::getAttribute($this->env$this->source, (isset($context["UserConstants"]) || array_key_exists("UserConstants"$context) ? $context["UserConstants"] : (function () { throw new RuntimeError('Variable "UserConstants" does not exist.'8$this->source); })()), "USER_COMPANY_NAME_LIST", [], "any"falsefalsefalse8), [], "array"falsefalsefalse8), "[]")) : ("[]")));
  36.         // line 9
  37.         $context["_curCompanyId"] = ((CoreExtension::getAttribute($this->env$this->source, ($context["session"] ?? null), CoreExtension::getAttribute($this->env$this->source, (isset($context["UserConstants"]) || array_key_exists("UserConstants"$context) ? $context["UserConstants"] : (function () { throw new RuntimeError('Variable "UserConstants" does not exist.'9$this->source); })()), "USER_COMPANY_ID", [], "any"falsefalsefalse9), [], "array"truetruefalse9)) ? (Twig\Extension\CoreExtension::default(CoreExtension::getAttribute($this->env$this->source, ($context["session"] ?? null), CoreExtension::getAttribute($this->env$this->source, (isset($context["UserConstants"]) || array_key_exists("UserConstants"$context) ? $context["UserConstants"] : (function () { throw new RuntimeError('Variable "UserConstants" does not exist.'9$this->source); })()), "USER_COMPANY_ID", [], "any"falsefalsefalse9), [], "array"falsefalsefalse9), 0)) : (0));
  38.         // line 10
  39.         $context["_userName"] = ((CoreExtension::getAttribute($this->env$this->source, ($context["session"] ?? null), CoreExtension::getAttribute($this->env$this->source, (isset($context["UserConstants"]) || array_key_exists("UserConstants"$context) ? $context["UserConstants"] : (function () { throw new RuntimeError('Variable "UserConstants" does not exist.'10$this->source); })()), "USER_NAME", [], "any"falsefalsefalse10), [], "array"truetruefalse10)) ? (Twig\Extension\CoreExtension::default(CoreExtension::getAttribute($this->env$this->source, ($context["session"] ?? null), CoreExtension::getAttribute($this->env$this->source, (isset($context["UserConstants"]) || array_key_exists("UserConstants"$context) ? $context["UserConstants"] : (function () { throw new RuntimeError('Variable "UserConstants" does not exist.'10$this->source); })()), "USER_NAME", [], "any"falsefalsefalse10), [], "array"falsefalsefalse10), "User")) : ("User"));
  40.         // line 11
  41.         $context["_userImg"] = ((CoreExtension::getAttribute($this->env$this->source, ($context["session"] ?? null), CoreExtension::getAttribute($this->env$this->source, (isset($context["UserConstants"]) || array_key_exists("UserConstants"$context) ? $context["UserConstants"] : (function () { throw new RuntimeError('Variable "UserConstants" does not exist.'11$this->source); })()), "USER_IMAGE", [], "any"falsefalsefalse11), [], "array"truetruefalse11)) ? (Twig\Extension\CoreExtension::default(CoreExtension::getAttribute($this->env$this->source, ($context["session"] ?? null), CoreExtension::getAttribute($this->env$this->source, (isset($context["UserConstants"]) || array_key_exists("UserConstants"$context) ? $context["UserConstants"] : (function () { throw new RuntimeError('Variable "UserConstants" does not exist.'11$this->source); })()), "USER_IMAGE", [], "any"falsefalsefalse11), [], "array"falsefalsefalse11), "")) : (""));
  42.         // line 12
  43.         yield "
  44. <style>
  45.   /* HoneyBee brand mark — top-left of the global top strip */
  46.   .cp-ts-brand{ display:flex; align-items:center; gap:9px; text-decoration:none; padding:2px 4px; margin-right:2px; flex-shrink:0; }
  47.   .cp-ts-brand:hover{ text-decoration:none; }
  48.   .cp-ts-brand-badge{ width:30px; height:30px; border-radius:9px; flex-shrink:0;
  49.     display:flex; align-items:center; justify-content:center;
  50.     background:linear-gradient(135deg,#c07d2e 0%,#8a561f 100%);
  51.     color:#fff; font-weight:800; font-size:var(--cp-fs-lg, 16px); line-height:1; letter-spacing:.01em;
  52.     box-shadow:0 1px 2px rgba(90,60,20,.35); font-family:var(--cp-font, inherit); }
  53.   .cp-ts-brand-tx{ display:flex; flex-direction:column; line-height:1.05; }
  54.   .cp-ts-brand-name{ font-size:14px; font-weight:700; color:var(--cp-text,#1f2733); letter-spacing:-.01em; }
  55.   .cp-ts-brand-sub{ font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.12em; color:var(--cp-text-faint,#9aa4b2); margin-top:1px; }
  56.   .cp-ts-brand-div{ width:1px; height:26px; background:var(--cp-outline,#e3e7ee); margin:0 10px 0 6px; flex-shrink:0; }
  57.   @media(max-width:860px){ .cp-ts-brand-tx{ display:none; } .cp-ts-brand-div{ display:none; } }
  58.   .cp-ts-create{ display:flex; align-items:center; gap:5px; padding:6px 12px; border-radius:var(--cp-radius-pill); background:var(--cp-accent); color:var(--cp-on-accent)!important; font-size:var(--cp-fs-sm, 12.5px); font-weight:600; text-decoration:none; cursor:pointer; }
  59.   .cp-ts-create:hover{ background:var(--cp-accent-hover); color:var(--cp-on-accent)!important; text-decoration:none; }
  60.   .cp-ts-create .material-icons{ font-size:17px; }
  61.   .cp-ts-menu li.cp-ts-menu-h{ margin-top:4px; }
  62.   .cp-ts-menu li > a .material-icons{ font-size:var(--cp-fs-lg, 16px); }
  63.   .cp-ts-hive{ display:flex; align-items:center; gap:7px; padding:5px 12px; border-radius:var(--cp-radius-pill); border:1px solid var(--cp-outline);
  64.     color:var(--cp-text-muted)!important; font-family:var(--cp-font-mono); font-size:12px; font-weight:600; letter-spacing:.08em; text-decoration:none; }
  65.   .cp-ts-hive:hover{ border-color:var(--cp-accent); color:var(--cp-accent)!important; text-decoration:none; }
  66.   .cp-hive-dot{ width:8px; height:8px; border-radius:50%; background:#2e7d32; box-shadow:0 0 0 0 rgba(46,125,50,.5); animation:cpHivePulse 1.7s ease-in-out infinite; }
  67.   @keyframes cpHivePulse{ 0%{ box-shadow:0 0 0 0 rgba(46,125,50,.5);} 70%{ box-shadow:0 0 0 6px rgba(46,125,50,0);} 100%{ box-shadow:0 0 0 0 rgba(46,125,50,0);} }
  68.   @media(max-width:720px){ .cp-ts-create span, .cp-ts-hive{ display:none; } }
  69. </style>
  70. <div class=\"cp-topstrip\">
  71.   <a href=\"";
  72.         // line 40
  73.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("dashboard");
  74.         yield "\" class=\"cp-ts-brand\" title=\"HoneyBee — Home\">
  75.     <span class=\"cp-ts-brand-badge\">H</span>
  76.     <span class=\"cp-ts-brand-tx\">
  77.       <span class=\"cp-ts-brand-name\">HoneyBee</span>
  78.       <span class=\"cp-ts-brand-sub\">Ecosystem</span>
  79.     </span>
  80.   </a>
  81.   <span class=\"cp-ts-brand-div\"></span>
  82.   <div class=\"cp-ts-search\" onclick=\"var s=document.getElementById('cpSpot'); if(s){s.classList.add('open'); var i=document.getElementById('cpSpotInput'); if(i){i.focus();}}\">
  83.     <i class=\"fa fa-search\"></i> <span>Search anything…</span> <kbd>Ctrl K</kbd>
  84.   </div>
  85.   <div class=\"cp-ts-right\">
  86.     ";
  87.         // line 54
  88.         yield "    <div class=\"dropdown cp-ts-dd\">
  89.       <a href=\"#\" data-toggle=\"dropdown\" class=\"cp-ts-create\"><i class=\"material-icons\">add</i> <span>Create</span></a>
  90.       <ul class=\"dropdown-menu dropdown-menu-right cp-ts-menu\" style=\"min-width:224px;\">
  91.         <li class=\"cp-ts-menu-h\">Sales</li>
  92.         <li><a href=\"";
  93.         // line 58
  94.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("create_sales_order");
  95.         yield "\"><i class=\"material-icons\">shopping_cart</i> Sales Order</a></li>
  96.         <li><a href=\"";
  97.         // line 59
  98.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("create_sales_proposal");
  99.         yield "\"><i class=\"material-icons\">description</i> Sales Proposal</a></li>
  100.         <li><a href=\"";
  101.         // line 60
  102.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("create_opportunity");
  103.         yield "\"><i class=\"material-icons\">trending_up</i> Opportunity</a></li>
  104.         <li><a href=\"";
  105.         // line 61
  106.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("create_lead");
  107.         yield "\"><i class=\"material-icons\">person_add</i> Lead</a></li>
  108.         <li><a href=\"";
  109.         // line 62
  110.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("create_client");
  111.         yield "\"><i class=\"material-icons\">supervisor_account</i> Client</a></li>
  112.         <li class=\"divider\"></li>
  113.         <li class=\"cp-ts-menu-h\">Finance & Purchasing</li>
  114.         <li><a href=\"";
  115.         // line 65
  116.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("create_sales_invoice");
  117.         yield "\"><i class=\"material-icons\">attach_money</i> Sales Invoice</a></li>
  118.         <li><a href=\"";
  119.         // line 66
  120.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("create_purchase_order");
  121.         yield "\"><i class=\"material-icons\">local_shipping</i> Purchase Order</a></li>
  122.         <li><a href=\"";
  123.         // line 67
  124.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("express_purchase_new");
  125.         yield "\"><i class=\"material-icons\">flash_on</i> Express Purchase</a></li>
  126.         <li><a href=\"";
  127.         // line 68
  128.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("create_expense_invoice", ["id" => 0]);
  129.         yield "\"><i class=\"material-icons\">receipt</i> Expense</a></li>
  130.         <li><a href=\"";
  131.         // line 69
  132.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("ai_import_index");
  133.         yield "\"><i class=\"material-icons\">move_to_inbox</i> Import Document</a></li>
  134.         <li><a href=\"";
  135.         // line 70
  136.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("create_payment_voucher");
  137.         yield "\"><i class=\"material-icons\">payment</i> Payment Voucher</a></li>
  138.         <li class=\"divider\"></li>
  139.         <li class=\"cp-ts-menu-h\">Projects</li>
  140.         <li><a href=\"";
  141.         // line 73
  142.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("create_new_project");
  143.         yield "\"><i class=\"material-icons\">work</i> New Project</a></li>
  144.       </ul>
  145.     </div>
  146.     ";
  147.         // line 78
  148.         yield "    <a href=\"";
  149.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("ai_hivemind");
  150.         yield "\" class=\"cp-ts-hive\" title=\"Hivemind — Generative Command Mode (Ctrl+`)\"
  151.        onclick=\"var p=document.getElementById('hm-widget-pill'); if(p){p.click(); return false;} return true;\">
  152.       <span class=\"cp-hive-dot\"></span> HIVEMIND
  153.     </a>
  154.     <a href=\"#\" class=\"cp-ts-ico\" title=\"All Apps\" onclick=\"cpToggleAppLauncher(true);return false;\">
  155.       <i class=\"material-icons\">apps</i>
  156.     </a>
  157.     ";
  158.         // line 91
  159.         yield "    ";
  160.         if ((>= CoreExtension::compare(Twig\Extension\CoreExtension::length($this->env->getCharset(), (isset($context["_companyNames"]) || array_key_exists("_companyNames"$context) ? $context["_companyNames"] : (function () { throw new RuntimeError('Variable "_companyNames" does not exist.'91$this->source); })())), 1))) {
  161.             // line 92
  162.             yield "      <span class=\"cp-ts-btn\" title=\"You are working in ";
  163.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(((CoreExtension::getAttribute($this->env$this->source, ($context["_companyNames"] ?? null), (isset($context["_curCompanyId"]) || array_key_exists("_curCompanyId"$context) ? $context["_curCompanyId"] : (function () { throw new RuntimeError('Variable "_curCompanyId" does not exist.'92$this->source); })()), [], "array"truetruefalse92)) ? (Twig\Extension\CoreExtension::default(CoreExtension::getAttribute($this->env$this->source, ($context["_companyNames"] ?? null), (isset($context["_curCompanyId"]) || array_key_exists("_curCompanyId"$context) ? $context["_curCompanyId"] : (function () { throw new RuntimeError('Variable "_curCompanyId" does not exist.'92$this->source); })()), [], "array"falsefalsefalse92), "this company")) : ("this company")), "html"nulltrue);
  164.             yield "\">
  165.         <i class=\"material-icons\">business</i>
  166.         <span class=\"cp-ts-lbl\">";
  167.             // line 94
  168.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(((CoreExtension::getAttribute($this->env$this->source, ($context["_companyNames"] ?? null), (isset($context["_curCompanyId"]) || array_key_exists("_curCompanyId"$context) ? $context["_curCompanyId"] : (function () { throw new RuntimeError('Variable "_curCompanyId" does not exist.'94$this->source); })()), [], "array"truetruefalse94)) ? (Twig\Extension\CoreExtension::default(CoreExtension::getAttribute($this->env$this->source, ($context["_companyNames"] ?? null), (isset($context["_curCompanyId"]) || array_key_exists("_curCompanyId"$context) ? $context["_curCompanyId"] : (function () { throw new RuntimeError('Variable "_curCompanyId" does not exist.'94$this->source); })()), [], "array"falsefalsefalse94), "Company")) : ("Company")), "html"nulltrue);
  169.             yield "</span>
  170.       </span>
  171.     ";
  172.         }
  173.         // line 97
  174.         yield "    ";
  175.         if ((=== CoreExtension::compare(Twig\Extension\CoreExtension::length($this->env->getCharset(), (isset($context["_companyNames"]) || array_key_exists("_companyNames"$context) ? $context["_companyNames"] : (function () { throw new RuntimeError('Variable "_companyNames" does not exist.'97$this->source); })())), 1))) {
  176.             // line 98
  177.             yield "      <div class=\"dropdown cp-ts-dd\">
  178.         <a href=\"#\" data-toggle=\"dropdown\" class=\"cp-ts-btn\"><i class=\"material-icons\">business</i>
  179.           <span class=\"cp-ts-lbl\">";
  180.             // line 100
  181.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(((CoreExtension::getAttribute($this->env$this->source, ($context["_companyNames"] ?? null), (isset($context["_curCompanyId"]) || array_key_exists("_curCompanyId"$context) ? $context["_curCompanyId"] : (function () { throw new RuntimeError('Variable "_curCompanyId" does not exist.'100$this->source); })()), [], "array"truetruefalse100)) ? (Twig\Extension\CoreExtension::default(CoreExtension::getAttribute($this->env$this->source, ($context["_companyNames"] ?? null), (isset($context["_curCompanyId"]) || array_key_exists("_curCompanyId"$context) ? $context["_curCompanyId"] : (function () { throw new RuntimeError('Variable "_curCompanyId" does not exist.'100$this->source); })()), [], "array"falsefalsefalse100), "Company")) : ("Company")), "html"nulltrue);
  182.             yield "</span>
  183.           <i class=\"material-icons cp-ts-caret\">arrow_drop_down</i></a>
  184.         <ul class=\"dropdown-menu dropdown-menu-right cp-ts-menu\">
  185.           <li class=\"cp-ts-menu-h\">Switch company</li>
  186.           ";
  187.             // line 104
  188.             $context['_parent'] = $context;
  189.             $context['_seq'] = CoreExtension::ensureTraversable((isset($context["_companyNames"]) || array_key_exists("_companyNames"$context) ? $context["_companyNames"] : (function () { throw new RuntimeError('Variable "_companyNames" does not exist.'104$this->source); })()));
  190.             foreach ($context['_seq'] as $context["cid"] => $context["cname"]) {
  191.                 // line 105
  192.                 yield "            <li><a href=\"";
  193.                 yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("change_company_dashboard");
  194.                 yield "/";
  195.                 yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($context["cid"], "html"nulltrue);
  196.                 yield "\" class=\"";
  197.                 yield (((=== CoreExtension::compare($context["cid"], (isset($context["_curCompanyId"]) || array_key_exists("_curCompanyId"$context) ? $context["_curCompanyId"] : (function () { throw new RuntimeError('Variable "_curCompanyId" does not exist.'105$this->source); })())))) ? ("cp-ts-active") : (""));
  198.                 yield "\">";
  199.                 yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($context["cname"], "html"nulltrue);
  200.                 yield "</a></li>
  201.           ";
  202.             }
  203.             $_parent $context['_parent'];
  204.             unset($context['_seq'], $context['_iterated'], $context['cid'], $context['cname'], $context['_parent'], $context['loop']);
  205.             $context array_intersect_key($context$_parent) + $_parent;
  206.             // line 107
  207.             yield "        </ul>
  208.       </div>
  209.     ";
  210.         }
  211.         // line 110
  212.         yield "
  213.     <a href=\"";
  214.         // line 111
  215.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("my_notification");
  216.         yield "\" class=\"cp-ts-ico\" title=\"Notifications\">
  217.       <i class=\"material-icons\">notifications_none</i>
  218.       <span class=\"cp-ts-badge\" id=\"notification_count_on_menu\"></span>
  219.     </a>
  220.     <div class=\"dropdown cp-ts-dd\">
  221.       <a href=\"#\" data-toggle=\"dropdown\" class=\"cp-ts-profile\">
  222.         ";
  223.         // line 118
  224.         if (((isset($context["_userImg"]) || array_key_exists("_userImg"$context) ? $context["_userImg"] : (function () { throw new RuntimeError('Variable "_userImg" does not exist.'118$this->source); })()) && CoreExtension::inFilter("https://", (isset($context["_userImg"]) || array_key_exists("_userImg"$context) ? $context["_userImg"] : (function () { throw new RuntimeError('Variable "_userImg" does not exist.'118$this->source); })())))) {
  225.             yield "<img src=\"";
  226.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape((isset($context["_userImg"]) || array_key_exists("_userImg"$context) ? $context["_userImg"] : (function () { throw new RuntimeError('Variable "_userImg" does not exist.'118$this->source); })()), "html"nulltrue);
  227.             yield "\" class=\"cp-ts-avatar\">
  228.         ";
  229.         } elseif (        // line 119
  230. (isset($context["_userImg"]) || array_key_exists("_userImg"$context) ? $context["_userImg"] : (function () { throw new RuntimeError('Variable "_userImg" does not exist.'119$this->source); })())) {
  231.             yield "<img src=\"";
  232.             yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("dashboard");
  233.             yield "/";
  234.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape((isset($context["_userImg"]) || array_key_exists("_userImg"$context) ? $context["_userImg"] : (function () { throw new RuntimeError('Variable "_userImg" does not exist.'119$this->source); })()), "html"nulltrue);
  235.             yield "\" class=\"cp-ts-avatar\">
  236.         ";
  237.         } else {
  238.             // line 120
  239.             yield "<span class=\"cp-ts-avatar cp-ts-avatar-i\">";
  240.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(Twig\Extension\CoreExtension::upper($this->env->getCharset(), Twig\Extension\CoreExtension::slice($this->env->getCharset(), (isset($context["_userName"]) || array_key_exists("_userName"$context) ? $context["_userName"] : (function () { throw new RuntimeError('Variable "_userName" does not exist.'120$this->source); })()), 01)), "html"nulltrue);
  241.             yield "</span>";
  242.         }
  243.         // line 121
  244.         yield "        <span class=\"cp-ts-name\">";
  245.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(Twig\Extension\CoreExtension::first($this->env->getCharset(), Twig\Extension\CoreExtension::split($this->env->getCharset(), (isset($context["_userName"]) || array_key_exists("_userName"$context) ? $context["_userName"] : (function () { throw new RuntimeError('Variable "_userName" does not exist.'121$this->source); })()), " ")), "html"nulltrue);
  246.         yield "</span>
  247.         <i class=\"material-icons cp-ts-caret\">arrow_drop_down</i>
  248.       </a>
  249.       <ul class=\"dropdown-menu dropdown-menu-right cp-ts-menu\">
  250.         <li class=\"cp-ts-menu-h\">";
  251.         // line 125
  252.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape((isset($context["_userName"]) || array_key_exists("_userName"$context) ? $context["_userName"] : (function () { throw new RuntimeError('Variable "_userName" does not exist.'125$this->source); })()), "html"nulltrue);
  253.         yield "</li>
  254.         <li><a href=\"";
  255.         // line 126
  256.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("dashboard");
  257.         yield "\"><i class=\"material-icons\">home</i> ERP Home</a></li>
  258.         <li><a href=\"";
  259.         // line 127
  260.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("my_notification");
  261.         yield "\"><i class=\"material-icons\">notifications</i> Notifications</a></li>
  262.         <li class=\"divider\"></li>
  263.         ";
  264.         // line 131
  265.         yield "        <li><a href=\"";
  266.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("user_logout");
  267.         yield "?endCurrentTask=0\"><i class=\"material-icons\">swap_horiz</i> Switch WorkSpace</a></li>
  268.         <li><a href=\"";
  269.         // line 132
  270.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("user_logout");
  271.         yield "\"><i class=\"material-icons\">exit_to_app</i> Logout</a></li>
  272.       </ul>
  273.     </div>
  274.   </div>
  275. </div>
  276. ";
  277.         // line 137
  278.         $__internal_compile_0 null;
  279.         try {
  280.             $__internal_compile_0 =             $this->loadTemplate("@Application/inc/menu/_spotlight_search.html.twig""@Application/framework/_cp_topstrip.html.twig"137);
  281.         } catch (LoaderError $e) {
  282.             // ignore missing template
  283.         }
  284.         if ($__internal_compile_0) {
  285.             yield from $__internal_compile_0->unwrap()->yield($context);
  286.         }
  287.         // line 138
  288.         yield from         $this->loadTemplate("@Application/framework/_cp_app_launcher.html.twig""@Application/framework/_cp_topstrip.html.twig"138)->unwrap()->yield($context);
  289.         // line 139
  290.         $__internal_compile_1 null;
  291.         try {
  292.             $__internal_compile_1 =             $this->loadTemplate("@Ai/hivemind_widget.html.twig""@Application/framework/_cp_topstrip.html.twig"139);
  293.         } catch (LoaderError $e) {
  294.             // ignore missing template
  295.         }
  296.         if ($__internal_compile_1) {
  297.             yield from $__internal_compile_1->unwrap()->yield($context);
  298.         }
  299.         
  300.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  301.         
  302.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  303.         return; yield '';
  304.     }
  305.     /**
  306.      * @codeCoverageIgnore
  307.      */
  308.     public function getTemplateName()
  309.     {
  310.         return "@Application/framework/_cp_topstrip.html.twig";
  311.     }
  312.     /**
  313.      * @codeCoverageIgnore
  314.      */
  315.     public function isTraitable()
  316.     {
  317.         return false;
  318.     }
  319.     /**
  320.      * @codeCoverageIgnore
  321.      */
  322.     public function getDebugInfo()
  323.     {
  324.         return array (  303 => 139,  301 => 138,  291 => 137,  283 => 132,  278 => 131,  273 => 127,  269 => 126,  265 => 125,  257 => 121,  252 => 120,  243 => 119,  237 => 118,  227 => 111,  224 => 110,  219 => 107,  204 => 105,  200 => 104,  193 => 100,  189 => 98,  186 => 97,  180 => 94,  174 => 92,  171 => 91,  159 => 78,  152 => 73,  146 => 70,  142 => 69,  138 => 68,  134 => 67,  130 => 66,  126 => 65,  120 => 62,  116 => 61,  112 => 60,  108 => 59,  104 => 58,  98 => 54,  82 => 40,  52 => 12,  50 => 11,  48 => 10,  46 => 9,  44 => 8,);
  325.     }
  326.     public function getSourceContext()
  327.     {
  328.         return new Source("{#
  329.   framework/_cp_topstrip.html.twig
  330.   Global top strip for cp-shell modules: spotlight Search (Ctrl+K), company switcher,
  331.   notifications, profile/logout. Reuses the EXISTING routes + the shared _spotlight_search
  332.   partial + the notification badge id (footer JS fills it) — nothing re-implemented.
  333.   Include inside a `.cp-app` column wrapper, ABOVE `.cp-shell`.
  334. #}
  335. {% set _companyNames  = session[UserConstants.USER_COMPANY_NAME_LIST]|default('[]')|jsonDecode %}
  336. {% set _curCompanyId  = session[UserConstants.USER_COMPANY_ID]|default(0) %}
  337. {% set _userName      = session[UserConstants.USER_NAME]|default('User') %}
  338. {% set _userImg       = session[UserConstants.USER_IMAGE]|default('') %}
  339. <style>
  340.   /* HoneyBee brand mark — top-left of the global top strip */
  341.   .cp-ts-brand{ display:flex; align-items:center; gap:9px; text-decoration:none; padding:2px 4px; margin-right:2px; flex-shrink:0; }
  342.   .cp-ts-brand:hover{ text-decoration:none; }
  343.   .cp-ts-brand-badge{ width:30px; height:30px; border-radius:9px; flex-shrink:0;
  344.     display:flex; align-items:center; justify-content:center;
  345.     background:linear-gradient(135deg,#c07d2e 0%,#8a561f 100%);
  346.     color:#fff; font-weight:800; font-size:var(--cp-fs-lg, 16px); line-height:1; letter-spacing:.01em;
  347.     box-shadow:0 1px 2px rgba(90,60,20,.35); font-family:var(--cp-font, inherit); }
  348.   .cp-ts-brand-tx{ display:flex; flex-direction:column; line-height:1.05; }
  349.   .cp-ts-brand-name{ font-size:14px; font-weight:700; color:var(--cp-text,#1f2733); letter-spacing:-.01em; }
  350.   .cp-ts-brand-sub{ font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.12em; color:var(--cp-text-faint,#9aa4b2); margin-top:1px; }
  351.   .cp-ts-brand-div{ width:1px; height:26px; background:var(--cp-outline,#e3e7ee); margin:0 10px 0 6px; flex-shrink:0; }
  352.   @media(max-width:860px){ .cp-ts-brand-tx{ display:none; } .cp-ts-brand-div{ display:none; } }
  353.   .cp-ts-create{ display:flex; align-items:center; gap:5px; padding:6px 12px; border-radius:var(--cp-radius-pill); background:var(--cp-accent); color:var(--cp-on-accent)!important; font-size:var(--cp-fs-sm, 12.5px); font-weight:600; text-decoration:none; cursor:pointer; }
  354.   .cp-ts-create:hover{ background:var(--cp-accent-hover); color:var(--cp-on-accent)!important; text-decoration:none; }
  355.   .cp-ts-create .material-icons{ font-size:17px; }
  356.   .cp-ts-menu li.cp-ts-menu-h{ margin-top:4px; }
  357.   .cp-ts-menu li > a .material-icons{ font-size:var(--cp-fs-lg, 16px); }
  358.   .cp-ts-hive{ display:flex; align-items:center; gap:7px; padding:5px 12px; border-radius:var(--cp-radius-pill); border:1px solid var(--cp-outline);
  359.     color:var(--cp-text-muted)!important; font-family:var(--cp-font-mono); font-size:12px; font-weight:600; letter-spacing:.08em; text-decoration:none; }
  360.   .cp-ts-hive:hover{ border-color:var(--cp-accent); color:var(--cp-accent)!important; text-decoration:none; }
  361.   .cp-hive-dot{ width:8px; height:8px; border-radius:50%; background:#2e7d32; box-shadow:0 0 0 0 rgba(46,125,50,.5); animation:cpHivePulse 1.7s ease-in-out infinite; }
  362.   @keyframes cpHivePulse{ 0%{ box-shadow:0 0 0 0 rgba(46,125,50,.5);} 70%{ box-shadow:0 0 0 6px rgba(46,125,50,0);} 100%{ box-shadow:0 0 0 0 rgba(46,125,50,0);} }
  363.   @media(max-width:720px){ .cp-ts-create span, .cp-ts-hive{ display:none; } }
  364. </style>
  365. <div class=\"cp-topstrip\">
  366.   <a href=\"{{ path('dashboard') }}\" class=\"cp-ts-brand\" title=\"HoneyBee — Home\">
  367.     <span class=\"cp-ts-brand-badge\">H</span>
  368.     <span class=\"cp-ts-brand-tx\">
  369.       <span class=\"cp-ts-brand-name\">HoneyBee</span>
  370.       <span class=\"cp-ts-brand-sub\">Ecosystem</span>
  371.     </span>
  372.   </a>
  373.   <span class=\"cp-ts-brand-div\"></span>
  374.   <div class=\"cp-ts-search\" onclick=\"var s=document.getElementById('cpSpot'); if(s){s.classList.add('open'); var i=document.getElementById('cpSpotInput'); if(i){i.focus();}}\">
  375.     <i class=\"fa fa-search\"></i> <span>Search anything…</span> <kbd>Ctrl K</kbd>
  376.   </div>
  377.   <div class=\"cp-ts-right\">
  378.     {# + Create — global quick-create #}
  379.     <div class=\"dropdown cp-ts-dd\">
  380.       <a href=\"#\" data-toggle=\"dropdown\" class=\"cp-ts-create\"><i class=\"material-icons\">add</i> <span>Create</span></a>
  381.       <ul class=\"dropdown-menu dropdown-menu-right cp-ts-menu\" style=\"min-width:224px;\">
  382.         <li class=\"cp-ts-menu-h\">Sales</li>
  383.         <li><a href=\"{{ path('create_sales_order') }}\"><i class=\"material-icons\">shopping_cart</i> Sales Order</a></li>
  384.         <li><a href=\"{{ path('create_sales_proposal') }}\"><i class=\"material-icons\">description</i> Sales Proposal</a></li>
  385.         <li><a href=\"{{ path('create_opportunity') }}\"><i class=\"material-icons\">trending_up</i> Opportunity</a></li>
  386.         <li><a href=\"{{ path('create_lead') }}\"><i class=\"material-icons\">person_add</i> Lead</a></li>
  387.         <li><a href=\"{{ path('create_client') }}\"><i class=\"material-icons\">supervisor_account</i> Client</a></li>
  388.         <li class=\"divider\"></li>
  389.         <li class=\"cp-ts-menu-h\">Finance & Purchasing</li>
  390.         <li><a href=\"{{ path('create_sales_invoice') }}\"><i class=\"material-icons\">attach_money</i> Sales Invoice</a></li>
  391.         <li><a href=\"{{ path('create_purchase_order') }}\"><i class=\"material-icons\">local_shipping</i> Purchase Order</a></li>
  392.         <li><a href=\"{{ path('express_purchase_new') }}\"><i class=\"material-icons\">flash_on</i> Express Purchase</a></li>
  393.         <li><a href=\"{{ path('create_expense_invoice', {id: 0}) }}\"><i class=\"material-icons\">receipt</i> Expense</a></li>
  394.         <li><a href=\"{{ path('ai_import_index') }}\"><i class=\"material-icons\">move_to_inbox</i> Import Document</a></li>
  395.         <li><a href=\"{{ path('create_payment_voucher') }}\"><i class=\"material-icons\">payment</i> Payment Voucher</a></li>
  396.         <li class=\"divider\"></li>
  397.         <li class=\"cp-ts-menu-h\">Projects</li>
  398.         <li><a href=\"{{ path('create_new_project') }}\"><i class=\"material-icons\">work</i> New Project</a></li>
  399.       </ul>
  400.     </div>
  401.     {# HIVEMIND — opens the inline terminal widget (falls back to the full page if absent) #}
  402.     <a href=\"{{ path('ai_hivemind') }}\" class=\"cp-ts-hive\" title=\"Hivemind — Generative Command Mode (Ctrl+`)\"
  403.        onclick=\"var p=document.getElementById('hm-widget-pill'); if(p){p.click(); return false;} return true;\">
  404.       <span class=\"cp-hive-dot\"></span> HIVEMIND
  405.     </a>
  406.     <a href=\"#\" class=\"cp-ts-ico\" title=\"All Apps\" onclick=\"cpToggleAppLauncher(true);return false;\">
  407.       <i class=\"material-icons\">apps</i>
  408.     </a>
  409.     {# WHICH COMPANY AM I IN — shown ALWAYS, not only when there are several to switch
  410.        between. The `> 1` gate below used to wrap this whole block, so a login with one
  411.        company saw no company name anywhere on the page and could not tell which tenant it
  412.        was looking at. That is the complaint, and it does not require a second company to
  413.        bite. main_layout.html.twig carries the same element off the same session keys. #}
  414.     {% if _companyNames|length <= 1 %}
  415.       <span class=\"cp-ts-btn\" title=\"You are working in {{ _companyNames[_curCompanyId]|default('this company') }}\">
  416.         <i class=\"material-icons\">business</i>
  417.         <span class=\"cp-ts-lbl\">{{ _companyNames[_curCompanyId]|default('Company') }}</span>
  418.       </span>
  419.     {% endif %}
  420.     {% if _companyNames|length > 1 %}
  421.       <div class=\"dropdown cp-ts-dd\">
  422.         <a href=\"#\" data-toggle=\"dropdown\" class=\"cp-ts-btn\"><i class=\"material-icons\">business</i>
  423.           <span class=\"cp-ts-lbl\">{{ _companyNames[_curCompanyId]|default('Company') }}</span>
  424.           <i class=\"material-icons cp-ts-caret\">arrow_drop_down</i></a>
  425.         <ul class=\"dropdown-menu dropdown-menu-right cp-ts-menu\">
  426.           <li class=\"cp-ts-menu-h\">Switch company</li>
  427.           {% for cid, cname in _companyNames %}
  428.             <li><a href=\"{{ url('change_company_dashboard') }}/{{ cid }}\" class=\"{{ cid == _curCompanyId ? 'cp-ts-active' : '' }}\">{{ cname }}</a></li>
  429.           {% endfor %}
  430.         </ul>
  431.       </div>
  432.     {% endif %}
  433.     <a href=\"{{ path('my_notification') }}\" class=\"cp-ts-ico\" title=\"Notifications\">
  434.       <i class=\"material-icons\">notifications_none</i>
  435.       <span class=\"cp-ts-badge\" id=\"notification_count_on_menu\"></span>
  436.     </a>
  437.     <div class=\"dropdown cp-ts-dd\">
  438.       <a href=\"#\" data-toggle=\"dropdown\" class=\"cp-ts-profile\">
  439.         {% if _userImg and 'https://' in _userImg %}<img src=\"{{ _userImg }}\" class=\"cp-ts-avatar\">
  440.         {% elseif _userImg %}<img src=\"{{ url('dashboard') }}/{{ _userImg }}\" class=\"cp-ts-avatar\">
  441.         {% else %}<span class=\"cp-ts-avatar cp-ts-avatar-i\">{{ _userName|slice(0,1)|upper }}</span>{% endif %}
  442.         <span class=\"cp-ts-name\">{{ _userName|split(' ')|first }}</span>
  443.         <i class=\"material-icons cp-ts-caret\">arrow_drop_down</i>
  444.       </a>
  445.       <ul class=\"dropdown-menu dropdown-menu-right cp-ts-menu\">
  446.         <li class=\"cp-ts-menu-h\">{{ _userName }}</li>
  447.         <li><a href=\"{{ path('dashboard') }}\"><i class=\"material-icons\">home</i> ERP Home</a></li>
  448.         <li><a href=\"{{ path('my_notification') }}\"><i class=\"material-icons\">notifications</i> Notifications</a></li>
  449.         <li class=\"divider\"></li>
  450.         {# Switch WorkSpace: same as the legacy menu — logs out keeping the current task
  451.            (endCurrentTask=0) so the user can pick another workspace/company. Logout ends it. #}
  452.         <li><a href=\"{{ url('user_logout') }}?endCurrentTask=0\"><i class=\"material-icons\">swap_horiz</i> Switch WorkSpace</a></li>
  453.         <li><a href=\"{{ path('user_logout') }}\"><i class=\"material-icons\">exit_to_app</i> Logout</a></li>
  454.       </ul>
  455.     </div>
  456.   </div>
  457. </div>
  458. {% include '@Application/inc/menu/_spotlight_search.html.twig' ignore missing %}
  459. {% include '@Application/framework/_cp_app_launcher.html.twig' %}
  460. {% include '@Ai/hivemind_widget.html.twig' ignore missing %}
  461. ""@Application/framework/_cp_topstrip.html.twig""/home/u405565514/domains/ourhoneybee.eu/public_html/honeybee_main/src/ApplicationBundle/Resources/views/framework/_cp_topstrip.html.twig");
  462.     }
  463. }