BuildFeed/BuildFeed/Views/shared/_default.cshtml

344 lines
16 KiB
Plaintext

@using System.Globalization
@using BuildFeed.Code.Options
@using BuildFeed.Controllers
@{
bool isRtl = CultureInfo.CurrentUICulture.TextInfo.IsRightToLeft;
Response.PushPromise("/res/css/default.css?20170517");
Response.PushPromise(VirtualPathUtility.ToAbsolute(((Theme)ViewBag.Theme).CssPath) + "?20170517");
if (isRtl)
{
Response.PushPromise("/res/css/rtl.css");
}
Response.PushPromise("/res/ts/bfs.js");
}<!DOCTYPE html>
<html dir="@(isRtl
? "rtl"
: "ltr")" lang="@CultureInfo.CurrentUICulture.IetfLanguageTag">
<head prefix="og: http://ogp.me/ns#">
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="format-detection" content="telephone=no" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>@ViewBag.Title</title>
<link href="/res/css/default.css?180211" rel="stylesheet" type="text/css" />
<link href="@(VirtualPathUtility.ToAbsolute(((Theme)ViewBag.Theme).CssPath))" rel="stylesheet" type="text/css" />
@if (isRtl)
{
<link href="/res/css/rtl.css" rel="stylesheet" type="text/css" />
}
@switch (CultureInfo.CurrentUICulture.TwoLetterISOLanguageName)
{
case "ru":
case "uk":
<link href="https://fonts.googleapis.com/css?family=Fira+Sans:300,400,700&amp;subset=cyrillic" rel="stylesheet" type="text/css" />
break;
case "el":
<link href="https://fonts.googleapis.com/css?family=Fira+Sans:300,400,700&amp;subset=greek" rel="stylesheet" type="text/css" />
break;
case "vi":
<link href="https://fonts.googleapis.com/css?family=Fira+Sans:300,400,700&amp;subset=vietnamese" rel="stylesheet" type="text/css" />
break;
default:
<link href="https://fonts.googleapis.com/css?family=Fira+Sans:300,400,700" rel="stylesheet" type="text/css" />
break;
}
<link href="~/res/ext/css/font-awesome.min.css" rel="stylesheet" type="text/css" integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN" crossorigin="anonymous" />
<link rel="manifest" href="~/manifest.json" />
<link rel="shortcut icon" href="~/favicon.ico" />
<link rel="icon" href="~/favicon.ico" />
<link rel="canonical" href="@ViewBag.CanonicalBase@Url.Action()" />
<meta property="og:type" content="website" />
<meta property="og:site_name" content="@InvariantTerms.SiteName" />
<meta property="og:url" content="@ViewBag.CanonicalBase@Url.Action()" />
<meta name="theme-color" content="#3B4252" />
<meta name="application-name" content="@InvariantTerms.SiteName" />
<meta name="twitter:site" content="@("@")buildfeed" />
@RenderSection("head", false)
<script src="https://cdn.onesignal.com/sdks/OneSignalSDK.js" async="async"></script>
<script>
var OneSignal = window.OneSignal || [];
OneSignal.push([
"init", {
appId: "94384f83-dced-4d66-a88c-c2b6e3cdfbaa",
safari_web_id: "web.onesignal.auto.4cc30974-98f9-47ba-8e02-4635d2d477f2",
persistNotification: false,
allowLocalhostAsSecureOrigin: true,
autoRegister: true,
notifyButton: {
enable: false
}
}
]);
</script>
</head>
<body>
<script>
(function (i, s, o, g, r, a, m) {
i['GoogleAnalyticsObject'] = r; i[r] = i[r] || function () {
(i[r].q = i[r].q || []).push(arguments);
}, i[r].l = 1 * new Date(); a = s.createElement(o),
m = s.getElementsByTagName(o)[0]; a.async = 1; a.src = g; m.parentNode.insertBefore(a, m);
})(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga');
ga('create', 'UA-55417692-1', 'auto');
ga('require', 'displayfeatures');
ga('require', 'linkid', 'linkid.js');
ga('send', 'pageview');
</script>
<header id="page-header">
<div class="container">
<h1>
@Html.ActionLink(InvariantTerms.SiteName, nameof(FrontController.Index), new
{
controller = "Front",
area = ""
})
</h1>
</div>
</header>
<nav id="page-navigation" role="navigation">
<div class="container">
<button id="page-navigation-toggle">
<i class="fa fa-bars"></i>&ensp;@VariantTerms.Common_ToggleNavigation
</button>
<ul id="page-navigation-links">
<li>
<a href="#" id="page-navigation-search" title="@VariantTerms.Search_Title">
<i class="fa fa-fw fa-search"></i> @VariantTerms.Search_Title
</a>
</li>
<li>
<a href="@Url.Action(nameof(SupportController.Rss), new
{
controller = "Support",
area = ""
})" title="@VariantTerms.Common_RssFeeds">
<i class="fa fa-fw fa-rss"></i> @VariantTerms.Common_RssFeeds
</a>
</li>
<li>
<a href="https://blog.buildfeed.net/" title="@VariantTerms.Common_Blog" target="_blank" rel="noopener">
<i class="fa fa-fw fa-book"></i> @VariantTerms.Common_Blog
</a>
</li>
<li>
<a href="https://twitter.com/buildfeed" title="@VariantTerms.Common_Twitter" target="_blank" rel="noopener">
<i class="fa fa-fw fa-twitter"></i> @VariantTerms.Common_Twitter
</a>
</li>
<li class="dropdown-parent">
<a href="#" title="@VariantTerms.Support_Login">
<i class="fa fa-fw fa-user"></i>
</a>
<ul class="dropdown-menu">
<li id="user-action-menu" class="dropdown-menu-block">
<ul>
@if (!User.Identity.IsAuthenticated)
{
<li>
<a href="@Url.Action(nameof(AccountController.Login), new
{
controller = "Account",
area = ""
})" title="@VariantTerms.Common_LogIn">
<i class="fa fa-fw fa-user"></i> @VariantTerms.Common_LogIn
</a>
</li>
}
else
{
if (Roles.IsUserInRole("Administrators"))
{
<li>
<a href="@Url.Action("Index", new
{
controller = "Root",
area = "admin"
})" title="@VariantTerms.Common_Admin">
<i class="fa fa-fw fa-cogs"></i> @VariantTerms.Common_Admin
</a>
</li>
}
if (Roles.IsUserInRole("Administrators") || Roles.IsUserInRole("Editors"))
{
<li>
<a href="@Url.Action(nameof(FrontController.AddBuild), new
{
controller = "Front",
area = ""
})" title="@VariantTerms.Common_AddBuild">
<i class="fa fa-fw fa-plus-square"></i> @VariantTerms.Common_AddBuild
</a>
</li>
<li>
<a href="@Url.Action(nameof(FrontController.AddBulk), new
{
controller = "Front",
area = ""
})" title="@VariantTerms.Common_AddBulk">
<i class="fa fa-fw fa-database"></i> @VariantTerms.Common_AddBulk
</a>
</li>
}
<li>
<a href="@Url.Action(nameof(AccountController.Logout), new
{
controller = "Account",
area = ""
})" title="@VariantTerms.Common_LogOut">
<i class="fa fa-fw fa-user"></i> @VariantTerms.Common_LogOut
</a>
</li>
<li>
<a href="@Url.Action(nameof(AccountController.Password), new
{
controller = "Account",
area = ""
})" title="@VariantTerms.Common_ChangePassword">
<i class="fa fa-fw fa-key"></i> @VariantTerms.Common_ChangePassword
</a>
</li>
}
</ul>
</li>
</ul>
</li>
<li class="dropdown-parent">
<a href="#" title="@VariantTerms.Common_NavigationTheme / @VariantTerms.Common_NavigationLanguage">
<i class="fa fa-gear fa-fw"></i>
</a>
<ul class="dropdown-menu">
<li id="settings-theme-menu" class="dropdown-menu-block">
<h4>@VariantTerms.Common_NavigationTheme</h4>
<ul>
@foreach (Theme item in Theme.AvailableThemes)
{
<li>
<a href="#" data-theme="@item.CookieValue">@item.DisplayName</a>
</li>
}
</ul>
</li>
<li id="settings-lang-menu" class="dropdown-menu-block">
<h4>@VariantTerms.Common_NavigationLanguage</h4>
<ul>
@foreach (Locale locale in Locale.AvailableLocales)
{
<li>
<a href="#" data-lang="@locale.LocaleId" dir="@(locale.Info.TextInfo.IsRightToLeft
? "rtl"
: "ltr")">
@locale.DisplayName
</a>
</li>
}
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</nav>
<article id="page-content">
<div class="container">
@RenderBody()
</div>
</article>
<footer id="page-footer">
<div class="container">
<div class="footer-flex">
<div class="footer-flex-item">
<p>
<a href="@Url.Action(nameof(SupportController.Sitemap), new
{
controller = "Support",
area = ""
})">
@VariantTerms.Common_Sitemap
</a>
</p>
<p>
<a href="@Url.Action(nameof(SupportController.Credits), new
{
controller = "Support",
area = ""
})">
@VariantTerms.Common_Credits
</a>
</p>
<p>
<i class="fa fa-language"></i>&ensp;
@CultureInfo.CurrentUICulture.NativeName
</p>
</div>
<div class="footer-flex-item">
<p>
<span dir="ltr">@InvariantTerms.SiteName @($"v{ViewBag.Version}")</span>
</p>
<p>
&copy; 2013 - @DateTime.Now.Year.ToString(), @Html.Raw(string.Format(VariantTerms.Common_DevelopedBy, $"<a href=\"https://twitter.com/buildfeed\" target=\"_blank\" dir=\"ltr\" rel=\"noopener\">{InvariantTerms.DeveloperName}</a>"))
</p>
<p>
@Html.Raw(string.Format(VariantTerms.Common_ContributeOn, "<a href=\"https://gitlab.com/buildfeed/BuildFeed\" target=\"_blank\" dir=\"ltr\" rel=\"noopener\"><i class=\"fa fa-gitlab\"></i>&ensp;GitLab</a>"))
</p>
</div>
</div>
</div>
</footer>
<div id="modal-search-overlay">
<div id="modal-search">
<h3>@VariantTerms.Search_BuildFeed</h3>
<div id="modal-search-box">
<input id="modal-search-input" type="text" placeholder="@VariantTerms.Search_TypePlaceholder" />
<button id="modal-search-button">
<i class="fa fa-search"></i>
</button>
</div>
<div id="modal-search-result"></div>
</div>
</div>
<div id="menu-open-overlay"></div>
<script type="text/javascript" src="~/res/ext/jsrender.min.js" integrity="sha256-21dXJfiOXB1D/8kEXbDI0NB5qcUVUnkS3qgyOya/M6k=" crossorigin="anonymous"></script>
<script type="text/javascript" src="~/res/ts/bfs.js" async="async"></script>
@if (((Theme)ViewBag.Theme).Value == SiteTheme.Winter)
{
<script type="text/javascript" src="~/res/ts/christmas.js" async="async"></script>
}
@RenderSection("scripts", false)
<script id="result-template" type="text/x-jsrender">
<a href="{{:Url}}" class="search-result-item" title="{{:Title}}">
<h4 class="search-result-heading no-wrapping">{{:Label}}</h4>
<p class="search-result-text">{{:Group}}</p>
</a>
</script>
<script type="text/javascript" src="https://s7.addthis.com/js/300/addthis_widget.js#pubid=ra-5431719a661cbfd0" async="async"></script>
<script type="text/javascript">
if (navigator.serviceWorker.controller)
{
console.log('[PWA Builder] active service worker found, no need to register');
}
else
{
navigator.serviceWorker.register('pwabuilder-sw.js',
{
scope: "/"
})
.then(function(reg)
{
console.log("Service worker has been registered for scope: " + reg.scope);
});
}
</script>
</body>
</html>