Advertisement
Guest User

Untitled

a guest
Sep 25th, 2017
399
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.46 KB | None | 0 0
  1. @model Ks.Sf.Web.Model.OpaHeaderController.OpaHeaderView
  2.  
  3. @using Telerik.Sitefinity.Services;
  4. @using Telerik.Sitefinity.Modules.Pages;
  5. @using Telerik.Sitefinity.Frontend.Mvc.Helpers;
  6. @using Ks.Sf.Web.Mvc.Controllers;
  7. @using ServiceStack
  8. @using Telerik.Sitefinity.Frontend.Navigation.Mvc.Models
  9.  
  10. @{
  11. var searchTextBoxId = Guid.NewGuid();
  12. var searchButtonId = Guid.NewGuid();
  13. var currentTopLevelNodeUrl = string.Empty;
  14. }
  15.  
  16. @Html.Script(ScriptRef.JQuery, "top", false)
  17. @Html.Script(Url.WidgetContent("Mvc/Scripts/Angular/angular.min.js"), "top")
  18.  
  19. <div ng-app="opaHeaderApp">
  20. <div ng-controller="opaHeaderCtrl">
  21. <nav class="navbar navbar-default">
  22. <div class=" container">
  23. <div class="navbar-header">
  24. <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
  25. <span class="sr-only">Toggle navigation</span>
  26. <span class="icon-bar"></span>
  27. <span class="icon-bar"></span>
  28. <span class="icon-bar"></span>
  29. </button>
  30. <a href="@Model.RootNodeUrl" class="navbar-brand"><img src="@Model.ImageUrl" class="img-responsive" /></a>
  31. </div>
  32. <div id="navbar" class="navbar-collapse collapse">
  33. <div class="navbar-form navbar-right">
  34. <form>
  35. <div class="inner-addon left-addon search-container">
  36. <span class="glyphicon glyphicon-search"></span>
  37. <input type="text" title="@Html.Resource("SearchInput")" class="form-control" placeholder="Search" value="@Html.Raw(ViewBag.SearchQuery)" id="@Html.Raw(searchTextBoxId)">
  38. <button style="display: none;" id="@Html.Raw(searchButtonId)"></button>
  39.  
  40. <input type="hidden" data-sf-role="resultsUrl" value="@Model.SearchResultsUrl" />
  41. <input type="hidden" data-sf-role="indexCatalogue" value="@Model.SearchIndex" />
  42. <input type="hidden" data-sf-role="wordsMode" value="AllWords" />
  43. <input type="hidden" data-sf-role="disableSuggestions" value='false' />
  44. <input type="hidden" data-sf-role="minSuggestionLength" value="3" />
  45. <input type="hidden" data-sf-role="suggestionFields" value="Title,Content" />
  46. <input type="hidden" data-sf-role="language" value="" />
  47. <input type="hidden" data-sf-role="suggestionsRoute" value="/restapi/search/suggestions" />
  48. <input type="hidden" data-sf-role="searchTextBoxId" value='@("#" + searchTextBoxId.ToString())' />
  49. <input type="hidden" data-sf-role="searchButtonId" value='@("#" + searchButtonId.ToString())' />
  50. </div>
  51. </form>
  52. </div>
  53. <ul class="nav navbar-nav navbar-right tk-proxima-nova">
  54. @foreach (var node in Model.Nodes)
  55. {
  56. if (node.IsCurrentlyOpened || node.HasChildOpen) { currentTopLevelNodeUrl = node.Url; }
  57. <li>
  58. <div>
  59. @if (node.ChildNodes.Count > 0)
  60. {
  61. <a href="@node.Url" class="@if(node.IsCurrentlyOpened || node.HasChildOpen) {<text>active</text>}">
  62. @node.Title
  63. </a>
  64. <span data-toggle="dropdown" class="glyphicon stage-arrow dropdown-toggle" ng-class="'@node.Url' === currentNodeUrl && subMenuExpanded ? 'glyphicon-menu-up' : 'glyphicon-menu-down'" ng-click="toggle('@node.Url')"></span>
  65. }
  66. else
  67. {
  68. <a class="@if(node.IsCurrentlyOpened || node.HasChildOpen) {<text>active</text>}" href="@node.Url">@node.Title</a>
  69. }
  70.  
  71. @if (node.ChildNodes.Count > 0)
  72. {
  73. <ul class="dropdown-menu">
  74. @foreach (var childNode in node.ChildNodes)
  75. {
  76. <li><a href="@childNode.Url" target="_self">@childNode.Title</a></li>
  77. }
  78. </ul>
  79. }
  80. </div>
  81. </li>
  82. }
  83. </ul>
  84. </div>
  85. </div>
  86. </nav>
  87.  
  88. @foreach (var node in Model.Nodes)
  89. {
  90. if (node.ChildNodes.Count > 0)
  91. {
  92. <div class="subNav tk-proxima-nova hidden-md hidden-sm hidden-xs" style="width: 100%;" ng-show="'@node.Url' === currentNodeUrl && subMenuExpanded">
  93. <div class="container">
  94. <ul>
  95. @foreach (var childNode in node.ChildNodes)
  96. {
  97. <li><a class="@if (childNode.IsCurrentlyOpened || childNode.HasChildOpen) {<text>active</text>}" href="@childNode.Url">@childNode.Title</a></li>
  98. }
  99. </ul>
  100. </div>
  101. </div>
  102. }
  103. }
  104. </div>
  105. </div>
  106.  
  107. <script>
  108. var myApp = angular.module('opaHeaderApp', []);
  109.  
  110. myApp.controller('opaHeaderCtrl', ['$scope', function ($scope) {
  111. $scope.subMenuExpanded = true;
  112. $scope.nodes = [];
  113. $scope.currentNodeUrl = '@currentTopLevelNodeUrl';
  114.  
  115. $scope.toggle = function (nodeUrl) {
  116. if (nodeUrl === $scope.currentNodeUrl) {
  117. $scope.subMenuExpanded = !$scope.subMenuExpanded;
  118. } else {
  119. $scope.subMenuExpanded = true;
  120. }
  121. $scope.currentNodeUrl = nodeUrl;
  122. }
  123.  
  124. }]);
  125. </script>
  126.  
  127. @Html.Script(Url.WidgetContent("Mvc/Scripts/SearchBox/Search-box.js"), "bottom", false)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement