ali.xwx.moe/templates/base.html
2024-07-17 18:44:33 -05:00

379 lines
25 KiB
HTML

{% load i18n %}
{% load static %}
{% load translations %}
{% load compress %}
{% load icons %}
{% load permissions %}
<!DOCTYPE html>
<html lang="{{ LANGUAGE_CODE }}" dir="{% if LANGUAGE_BIDI %}rtl{% else %}ltr{% endif %}">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="referrer" content="origin" />
<meta name="author" content="Michal Čihař" />
<meta name="copyright" content="Copyright &copy; Michal Čihař" />
{% if not allow_index %}<meta name="robots" content="noindex,nofollow" />{% endif %}
{% if interledger_payment_pointer %}<meta name="monetization" content="{{ interledger_payment_pointer }}" />{% endif %}
<title>{% include "snippets/title.html" %}</title>
<meta name="description" content="{{ description }}" />
<meta name="twitter:card" content="summary_large_image" />
{% if next_unit_url %}
<link rel="next" href="{{ next_unit_url }}" />
{% endif %}
{% if prev_unit_url %}
<link rel="prev" href="{{ prev_unit_url }}" />
{% endif %}
{% if object.get_url_path %}
<link rel="alternate" type="application/rss+xml" title="RSS feed" href="{% url 'rss' path=object.get_url_path %}" />
<meta property="og:image" content="{{ site_url }}{% url 'widget-image' path=object.get_url_path widget='open' color='graph' extension='png' %}" />
{% else %}
<link rel="alternate" type="application/rss+xml" title="RSS feed" href="{% url 'rss' %}" />
<meta property="og:image" content="{{ site_url }}{% url 'og-image' %}" />
{% endif %}
{% for domain in preconnect_list %}
<link rel="preconnect" href="https://{{ domain }}">
{% endfor %}
{% include "snippets/meta-css.html" %}
<script src="{% url 'js-catalog' %}" defer></script>
{% compress js %}
{% if rollbar_token %}
<script>
var _rollbarConfig = {
accessToken: "{{ rollbar_token }}",
captureUncaught: true,
captureUnhandledRejections: true,
payload: {
environment: "{{ rollbar_environment }}"
}
};
// Rollbar Snippet
!function(r){var e={};function o(n){if(e[n])return e[n].exports;var t=e[n]={i:n,l:!1,exports:{}};return r[n].call(t.exports,t,t.exports,o),t.l=!0,t.exports}o.m=r,o.c=e,o.d=function(r,e,n){o.o(r,e)||Object.defineProperty(r,e,{enumerable:!0,get:n})},o.r=function(r){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(r,"__esModule",{value:!0})},o.t=function(r,e){if(1&e&&(r=o(r)),8&e)return r;if(4&e&&"object"==typeof r&&r&&r.__esModule)return r;var n=Object.create(null);if(o.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:r}),2&e&&"string"!=typeof r)for(var t in r)o.d(n,t,function(e){return r[e]}.bind(null,t));return n},o.n=function(r){var e=r&&r.__esModule?function(){return r.default}:function(){return r};return o.d(e,"a",e),e},o.o=function(r,e){return Object.prototype.hasOwnProperty.call(r,e)},o.p="",o(o.s=0)}([function(r,e,o){"use strict";var n=o(1),t=o(4);_rollbarConfig=_rollbarConfig||{},_rollbarConfig.rollbarJsUrl=_rollbarConfig.rollbarJsUrl||"https://cdn.rollbar.com/rollbarjs/refs/tags/v2.18.0/rollbar.min.js",_rollbarConfig.async=void 0===_rollbarConfig.async||_rollbarConfig.async;var a=n.setupShim(window,_rollbarConfig),l=t(_rollbarConfig);window.rollbar=n.Rollbar,a.loadFull(window,document,!_rollbarConfig.async,_rollbarConfig,l)},function(r,e,o){"use strict";var n=o(2);function t(r){return function(){try{return r.apply(this,arguments)}catch(r){try{console.error("[Rollbar]: Internal error",r)}catch(r){}}}}var a=0;function l(r,e){this.options=r,this._rollbarOldOnError=null;var o=a++;this.shimId=function(){return o},"undefined"!=typeof window&&window._rollbarShims&&(window._rollbarShims[o]={handler:e,messages:[]})}var i=o(3),s=function(r,e){return new l(r,e)},d=function(r){return new i(s,r)};function c(r){return t((function(){var e=this,o=Array.prototype.slice.call(arguments,0),n={shim:e,method:r,args:o,ts:new Date};window._rollbarShims[this.shimId()].messages.push(n)}))}l.prototype.loadFull=function(r,e,o,n,a){var l=!1,i=e.createElement("script"),s=e.getElementsByTagName("script")[0],d=s.parentNode;i.crossOrigin="",i.src=n.rollbarJsUrl,o||(i.async=!0),i.onload=i.onreadystatechange=t((function(){if(!(l||this.readyState&&"loaded"!==this.readyState&&"complete"!==this.readyState)){i.onload=i.onreadystatechange=null;try{d.removeChild(i)}catch(r){}l=!0,function(){var e;if(void 0===r._rollbarDidLoad){e=new Error("rollbar.js did not load");for(var o,n,t,l,i=0;o=r._rollbarShims[i++];)for(o=o.messages||[];n=o.shift();)for(t=n.args||[],i=0;i<t.length;++i)if("function"==typeof(l=t[i])){l(e);break}}"function"==typeof a&&a(e)}()}})),d.insertBefore(i,s)},l.prototype.wrap=function(r,e,o){try{var n;if(n="function"==typeof e?e:function(){return e||{}},"function"!=typeof r)return r;if(r._isWrap)return r;if(!r._rollbar_wrapped&&(r._rollbar_wrapped=function(){o&&"function"==typeof o&&o.apply(this,arguments);try{return r.apply(this,arguments)}catch(o){var e=o;throw e&&("string"==typeof e&&(e=new String(e)),e._rollbarContext=n()||{},e._rollbarContext._wrappedSource=r.toString(),window._rollbarWrappedError=e),e}},r._rollbar_wrapped._isWrap=!0,r.hasOwnProperty))for(var t in r)r.hasOwnProperty(t)&&(r._rollbar_wrapped[t]=r[t]);return r._rollbar_wrapped}catch(e){return r}};for(var u="log,debug,info,warn,warning,error,critical,global,configure,handleUncaughtException,handleAnonymousErrors,handleUnhandledRejection,captureEvent,captureDomContentLoaded,captureLoad".split(","),p=0;p<u.length;++p)l.prototype[u[p]]=c(u[p]);r.exports={setupShim:function(r,e){if(r){var o=e.globalAlias||"Rollbar";if("object"==typeof r[o])return r[o];r._rollbarShims={},r._rollbarWrappedError=null;var a=new d(e);return t((function(){e.captureUncaught&&(a._rollbarOldOnError=r.onerror,n.captureUncaughtExceptions(r,a,!0),e.wrapGlobalEventHandlers&&n.wrapGlobals(r,a,!0)),e.captureUnhandledRejections&&n.captureUnhandledRejections(r,a,!0);var t=e.autoInstrument;return!1!==e.enabled&&(void 0===t||!0===t||"object"==typeof t&&t.network)&&r.addEventListener&&(r.addEventListener("load",a.captureLoad.bind(a)),r.addEventListener("DOMContentLoaded",a.captureDomContentLoaded.bind(a))),r[o]=a,a}))()}},Rollbar:d}},function(r,e,o){"use strict";function n(r,e,o,n){r._rollbarWrappedError&&(n[4]||(n[4]=r._rollbarWrappedError),n[5]||(n[5]=r._rollbarWrappedError._rollbarContext),r._rollbarWrappedError=null);var t=e.handleUncaughtException.apply(e,n);o&&o.apply(r,n),"anonymous"===t&&(e.anonymousErrorsPending+=1)}function t(r,e,o){if(e.hasOwnProperty&&e.hasOwnProperty("addEventListener")){for(var n=e.addEventListener;n._rollbarOldAdd&&n.belongsToShim;)n=n._rollbarOldAdd;var t=function(e,o,t){n.call(this,e,r.wrap(o),t)};t._rollbarOldAdd=n,t.belongsToShim=o,e.addEventListener=t;for(var a=e.removeEventListener;a._rollbarOldRemove&&a.belongsToShim;)a=a._rollbarOldRemove;var l=function(r,e,o){a.call(this,r,e&&e._rollbar_wrapped||e,o)};l._rollbarOldRemove=a,l.belongsToShim=o,e.removeEventListener=l}}r.exports={captureUncaughtExceptions:function(r,e,o){if(r){var t;if("function"==typeof e._rollbarOldOnError)t=e._rollbarOldOnError;else if(r.onerror){for(t=r.onerror;t._rollbarOldOnError;)t=t._rollbarOldOnError;e._rollbarOldOnError=t}e.handleAnonymousErrors();var a=function(){var o=Array.prototype.slice.call(arguments,0);n(r,e,t,o)};o&&(a._rollbarOldOnError=t),r.onerror=a}},captureUnhandledRejections:function(r,e,o){if(r){"function"==typeof r._rollbarURH&&r._rollbarURH.belongsToShim&&r.removeEventListener("unhandledrejection",r._rollbarURH);var n=function(r){var o,n,t;try{o=r.reason}catch(r){o=void 0}try{n=r.promise}catch(r){n="[unhandledrejection] error getting `promise` from event"}try{t=r.detail,!o&&t&&(o=t.reason,n=t.promise)}catch(r){}o||(o="[unhandledrejection] error getting `reason` from event"),e&&e.handleUnhandledRejection&&e.handleUnhandledRejection(o,n)};n.belongsToShim=o,r._rollbarURH=n,r.addEventListener("unhandledrejection",n)}},wrapGlobals:function(r,e,o){if(r){var n,a,l="EventTarget,Window,Node,ApplicationCache,AudioTrackList,ChannelMergerNode,CryptoOperation,EventSource,FileReader,HTMLUnknownElement,IDBDatabase,IDBRequest,IDBTransaction,KeyOperation,MediaController,MessagePort,ModalWindow,Notification,SVGElementInstance,Screen,TextTrack,TextTrackCue,TextTrackList,WebSocket,WebSocketWorker,Worker,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload".split(",");for(n=0;n<l.length;++n)r[a=l[n]]&&r[a].prototype&&t(e,r[a].prototype,o)}}}},function(r,e,o){"use strict";function n(r,e){this.impl=r(e,this),this.options=e,function(r){for(var e=function(r){return function(){var e=Array.prototype.slice.call(arguments,0);if(this.impl[r])return this.impl[r].apply(this.impl,e)}},o="log,debug,info,warn,warning,error,critical,global,configure,handleUncaughtException,handleAnonymousErrors,handleUnhandledRejection,_createItem,wrap,loadFull,shimId,captureEvent,captureDomContentLoaded,captureLoad".split(","),n=0;n<o.length;n++)r[o[n]]=e(o[n])}(n.prototype)}n.prototype._swapAndProcessMessages=function(r,e){var o,n,t;for(this.impl=r(this.options);o=e.shift();)n=o.method,t=o.args,this[n]&&"function"==typeof this[n]&&("captureDomContentLoaded"===n||"captureLoad"===n?this[n].apply(this,[t[0],o.ts]):this[n].apply(this,t));return this},r.exports=n},function(r,e,o){"use strict";r.exports=function(r){return function(e){if(!e&&!window._rollbarInitialized){for(var o,n,t=(r=r||{}).globalAlias||"Rollbar",a=window.rollbar,l=function(r){return new a(r)},i=0;o=window._rollbarShims[i++];)n||(n=o.handler),o.handler._swapAndProcessMessages(l,o.messages);window[t]=n,window._rollbarInitialized=!0}}}}]);
// End Rollbar Snippet
</script>
{% endif %}
<script defer data-cfasync="false" src="{% static 'vendor/jquery.js' %}{{ cache_param }}"></script>
<script defer data-cfasync="false" src="{% static 'vendor/js.cookie.js' %}{{ cache_param }}"></script>
<script defer data-cfasync="false" src="{% static 'vendor/autosize.js' %}{{ cache_param }}"></script>
<script defer data-cfasync="false" src="{% static 'vendor/multi.js' %}{{ cache_param }}"></script>
<script defer data-cfasync="false" src="{% static 'vendor/mousetrap.js' %}{{ cache_param }}"></script>
<script defer data-cfasync="false" src="{% static 'vendor/mousetrap-global-bind.js' %}{{ cache_param }}"></script>
<script defer data-cfasync="false" src="{% static 'vendor/bootstrap/js/bootstrap.js' %}{{ cache_param }}"></script>
<script defer data-cfasync="false" src="{% static 'vendor/slugify.js' %}{{ cache_param }}"></script>
<script defer data-cfasync="false" src="{% static 'vendor/tribute.js' %}{{ cache_param }}"></script>
<script defer data-cfasync="false" src="{% static 'vendor/autoComplete.js' %}{{ cache_param }}"></script>
<script defer data-cfasync="false" src="{% static 'vendor/prism/prism-core.js' %}{{ cache_param }}"></script>
<script defer data-cfasync="false" src="{% static 'vendor/prism/prism-markup.js' %}{{ cache_param }}"></script>
<script defer data-cfasync="false" src="{% static 'vendor/prism/prism-rest.js' %}{{ cache_param }}"></script>
<script defer data-cfasync="false" src="{% static 'vendor/prism/prism-markdown.js' %}{{ cache_param }}"></script>
<script defer data-cfasync="false" src="{% static 'vendor/prism/prism-icu-message-format.js' %}{{ cache_param }}"></script>
<script defer data-cfasync="false" src="{% static 'prism-weblatesearch.js' %}{{ cache_param }}"></script>
<script defer data-cfasync="false" src="{% static 'loader-bootstrap.js' %}{{ cache_param }}"></script>
<script defer data-cfasync="false" src="{% static 'vendor/moment.js' %}{{ cache_param }}"></script>
<script defer data-cfasync="false" src="{% static 'vendor/daterangepicker.js' %}{{ cache_param }}"></script>
{% endcompress %}
{% block extra_script %}
{% endblock %}
<link rel="image_src" type="image/png" href="{% static 'weblate-128.png' %}"/>
<link rel="icon" type="image/png" sizes="32x32" href="{% static 'logo-32.png' %}">
<link rel="icon" type="image/png" sizes="16x16" href="{% static 'logo-16.png' %}">
<link rel="icon" href="{% static 'favicon.png' %}" type="image/png">
<link rel="apple-touch-icon" sizes="180x180" href="{% static 'weblate-180.png' %}"/>
<link rel="mask-icon" href="{% static 'weblate-black.svg' %}" color="#144d3f">
<meta name="msapplication-TileColor" content="#144d3f">
<meta name="msapplication-config" content="/browserconfig.xml">
<link rel="manifest" href="/site.webmanifest">
{{ extra_html_head|safe }}
{% if matomo_url %}
<link rel="preconnect" href="{{ matomo_url }}">
{% endif %}
<meta name="theme-color" content="#144d3f">
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta property="og:site_name" content="{{ site_title }}" />
<meta property="og:title" content="{% if title %}{{ title }}{% elif object %}{{ object }}{% elif page_user %}{{ page_user }}{% else %}{{ site_title }}{% endif %}" />
<meta property="og:description" content="{{ description }}" />
{% block extra_meta %}
{% endblock %}
</head>
<body {% if LANGUAGE_BIDI %}class="dir-rtl"{% endif %}>
<div id="popup-alerts"></div>
<header>
<nav class="navbar navbar-default navbar-static-top navbar-inverse" role="navigation">
<div class="container-fluid">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#wl-navbar-main" id="navbar-toggle">
<span class="sr-only">{% trans "Toggle navigation" %}</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
{% include "snippets/branding.html" %}
</div>
<!-- Collect the nav links, forms, and other content for toggling -->
<div class="collapse navbar-collapse" id="wl-navbar-main">
<form class="navbar-form navbar-left">
<div class="form-group">
<input type="text" class="form-control" id="sitewide-search" placeholder="{% translate "Search" %}">
</div>
</form>
<ul class="nav navbar-nav">
<li><a href="{% url 'home' %}">{% trans "Dashboard" %}</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" id="projects-menu">{% trans "Projects" %} <b class="caret"></b></a>
<ul class="dropdown-menu">
{% if watched_projects %}
{% for project in watched_projects %}
<li><a href="{{ project.get_absolute_url }}">{{ project }}</a></li>
{% endfor %}
<li role="separator" class="divider"></li>
{% endif %}
{% if user.is_authenticated %}
<li><a href="{% url 'profile' %}#notifications">{% trans "Manage watched projects" %}</a></li>
<li role="separator" class="divider"></li>
{% endif %}
<li><a href="{% url 'projects' %}">{% trans "Browse all projects" %}</a></li>
</ul>
</li>
{% with languages=user.profile.all_languages.order_translated %}
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" id="languages-menu">{% trans "Languages" %} <b class="caret"></b></a>
<ul class="dropdown-menu">
{% if languages %}
{% for language in languages %}
<li><a href="{{ language.get_absolute_url }}">{{ language }}</a></li>
{% endfor %}
<li role="separator" class="divider"></li>
{% endif %}
{% if user.is_authenticated %}
<li><a href="{% url 'profile' %}#languages">{% trans "Manage translated languages" %}</a></li>
<li role="separator" class="divider"></li>
{% endif %}
<li><a href="{% url 'languages' %}">{% trans "Browse all languages" %}</a></li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" id="checks-menu">{% trans "Checks" %} <b class="caret"></b></a>
<ul class="dropdown-menu">
{% if watched_projects %}
{% if languages %}
{% for project in watched_projects %}
{% for language in languages %}
{% get_projectlanguage project language as projectlanguage %}
<li><a href="{% url 'checks' path=projectlanguage.get_url_path %}">{% blocktrans %}Failing checks in {{ project }} — {{ language }}{% endblocktrans %}</a></li>
{% endfor %}
{% if languages|length > 1 %}
<li role="separator" class="divider"></li>
{% endif %}
{% endfor %}
{% if languages|length == 1 %}
<li role="separator" class="divider"></li>
{% endif %}
{% endif %}
{% for project in watched_projects %}
<li><a href="{% url 'checks' path=project.get_url_path %}">{% blocktrans %}Failing checks in {{ project }}{% endblocktrans %}</a></li>
{% endfor %}
<li role="separator" class="divider"></li>
{% endif %}
{% if languages %}
{% for language in languages %}
<li><a href="{% url 'checks' path=language.get_url_path %}">{% blocktrans %}Failing checks in {{ language }}{% endblocktrans %}</a></li>
{% endfor %}
<li role="separator" class="divider"></li>
{% endif %}
<li><a href="{% url 'checks' %}">{% trans "Checks overview" %}</a></li>
</ul>
</li>
{% endwith %}
</ul>
<ul class="nav navbar-nav navbar-right flip">
{# Superuser link to admin #}
{% perm "management.use" user as user_can_manage %}
{% if user_can_manage %}
<li>
<a class="button" id="admin-button" href="{% url 'manage' %}" title="{% trans "Administration" %}">
<span class="hidden-xs">
{% icon "wrench.svg" %}
</span>
<span class="visible-xs-inline">{% trans "Administration" %}</span>
</a>
</li>
{% if configuration_errors.exists %}
<li>
<a class="button red" id="errors-button" href="{% url 'manage-performance' %}" title="{% trans "Configuration errors" %}">
<span class="hidden-xs">
{% icon "alert.svg" %}
</span>
<span class="visible-xs-inline">{% trans "Configuration errors" %}</span>
</a>
</li>
{% endif %}
{% endif %}
{# Login and register for not authenticated #}
{% if not user.is_authenticated %}
{% if registration_open %}
<li><a class="button" id="register-button" href="{% url 'register' %}">{% trans "Register" %}</a></li>
{% endif %}
<li><a class="button" id="login-button" href="{% url 'login' %}{% if not skip_next %}?next={{ login_redirect_url|urlencode }}{% endif %}">{% trans "Sign in" %}</a></li>
{% endif %}
{# Adding new translations #}
{% if user.is_authenticated %}
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
<span class="hidden-xs">{% icon "plus.svg" %}</span>
<span class="visible-xs-inline">{% trans "Add" %}</span>
<b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li><a href="{% url 'create-project' %}">{% trans "Add new translation project" %}</a></li>
<li><a href="{% url 'create-component' %}{% if project %}?project={{ project.id }}{% endif %}">{% trans "Add new translation component" %}</a></li>
{% if component %}
{% perm 'translation.add' component as user_can_add_translation %}
{% if user_can_add_translation %}
<li><a href="{% url "new-language" path=component.get_url_path %}">{% trans "Start new translation" %}</a></li>
{% endif %}
{% endif %}
{% if offer_hosting %}
<li role="separator" class="divider"></li>
{% if payment_enabled %}
<li><a href="{% url 'trial' %}">{% trans "Try Weblate for free" %}</a></li>
{% endif %}
<li><a href="{% url 'hosting' %}">{% trans "Ask for Libre hosting" %}</a></li>
{% endif %}
</ul>
</li>
{% endif %}
{# Profile and logout for authenticated #}
{% if user.is_authenticated %}
<li class="dropdown">
<a href="#" id="user-dropdown" class="dropdown-toggle" data-toggle="dropdown" title="{% trans "Your profile" %}">
{% if enable_avatars %}
<span class="hidden-xs">
<img class="avatar" alt="{% trans "User avatar" %}" src="{% url 'user_avatar' user=user.username size=24 %}" />
</span>
<span class="visible-xs-inline">{% trans "Your profile" %}</span>
{% else %}
{{ user.profile.get_user_name }}
{% endif %}
<b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li id="profile-name"><a class="button" id="profile-button" href="{% url 'user_page' user=user.username %}"><b>{{ user }}</b><br />@{{ user.username }}</a></li>
<li role="separator" class="divider"></li>
{% if has_billing %}
<li><a class="button" id="billing-button" href="{% url 'billing' %}">{% trans "Billing overview" %}</a></li>
{% endif %}
<li><a id="memory-button" href="{% url 'memory' %}">{% trans "Translation memory" %}</a></li>
<li><a class="button" id="settings-button" href="{% url 'profile' %}">{% trans "Settings" %}</a></li>
<li role="separator" class="divider"></li>
<li><a id="logout-button" href="" class="button link-post" data-href="{% url 'logout' %}">{% trans "Sign out" %}</a></li>
</ul>
</li>
{% endif %}
{# Support menu #}
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" title="{% trans "Help" %}">
<span class="hidden-xs">{% icon "dots.svg" %}</span>
<span class="visible-xs-inline">
{% trans "Help" %}
<b class="caret"></b>
</span>
</a>
<ul class="dropdown-menu">
{% if not support_status.has_support %}
<li><a href="https://weblate.org/support/">{% trans "Get support" %}</a></li>
{% endif %}
{% if get_help_url %}
<li><a href="{{ get_help_url }}">{% trans "Get help" %}</a></li>
{% endif %}
<li><a href="{% url 'contact' %}">{% trans "Contact" %}</a></li>
<li><a href="{% url 'about' %}">{% blocktrans %}About Weblate{% endblocktrans %}</a></li>
<li role="separator" class="divider"></li>
<li><a href="{% documentation 'index' %}">{% trans "Documentation" %}</a></li>
<li><a href="https://weblate.org/contribute/">{% trans "Contribute to Weblate" %}</a></li>
<li><a href="{% url 'donate' %}">{% trans "Donate to Weblate" %}</a></li>
</ul>
</li>
</ul>
</div>
</div>
</nav>
{% block breadcrumbs_container %}
<h1>
<ol class="breadcrumb">
<li class="bread-icon">
{% icon bread_image|default:"error.svg" %}
</li>
{% block breadcrumbs %}
<li><a href="{% url 'home' %}">{% trans "Dashboard" %}</a></li>
{% endblock %}
</ol>
<div class="clearfix"></div>
</h1>
{% endblock %}
</header>
<div class="main-content {% block content_class %}{% endblock %}">
{% if user.is_superuser and support_status.has_support and not support_status.in_limits %}
{% trans 'Your Weblate is exceeding service limits. Please upgrade the subscription.' as msg %}
{% show_message 'warning' msg %}
{% endif %}
{% if messages %}
{% for message in messages %}
{% show_message message.tags message %}
{% endfor %}
{% endif %}
{% if menu_items %}
{% include 'snippets/menu.html' %}
{% endif %}
{% block content %}
{% endblock %}
</div>
<form id="link-post" method="POST">
{% csrf_token %}
</form>
<!-- Creates the bootstrap modal where the image will appear -->
<div class="modal fade fullmodal" id="imagemodal" tabindex="-1" role="dialog" aria-labelledby="screenshotModal" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">{% trans "Close" %}</span></button>
<h4 class="modal-title" id="screenshotModal"></h4>
</div>
<div class="modal-body">
<img src="" id="imagepreview" class="img-responsive">
</div>
<div class="modal-footer">
<a class="btn btn-warning" id="modalDetailsLink" data-edit-text="{% trans 'Edit screenshot' %}">{% trans "Screenshot details" %}</a>
<button type="button" class="btn btn-primary" data-dismiss="modal">{% trans "Close" %}</button>
</div>
</div>
</div>
</div>
{% include 'footer.html' %}
</body>
</html>