mirror of
https://github.com/jwinterm/modoboa.git
synced 2026-10-17 05:41:25 +02:00
@@ -629,10 +629,13 @@ template but need javascript stuff.
|
||||
|
||||
*Callback prototype*::
|
||||
|
||||
def callback(caller, user): pass
|
||||
def callback(caller, st_type, user): pass
|
||||
|
||||
* ``caller`` is name of the application (or the location) responsible
|
||||
for the call
|
||||
|
||||
* ``st_type`` is the expected static content type (``css`` or ``js``)
|
||||
|
||||
* ``user`` is a ``User`` instance corresponding to the currently
|
||||
logged in user
|
||||
|
||||
|
||||
@@ -1,10 +1,15 @@
|
||||
{% extends "twocols.html" %}
|
||||
{% load i18n lib_tags core_tags %}
|
||||
{% load static %}
|
||||
|
||||
{% block pagetitle %}{% trans "Modoboa settings" %}{% endblock %}
|
||||
{% block html_head %}
|
||||
|
||||
{% block extra_css %}
|
||||
<link rel="stylesheet" type="text/css" href="{% static 'admin/css/settings.css' %}" />
|
||||
<link rel="stylesheet" type="text/css" href="{% static 'css/jquery.sortable.css' %}" />
|
||||
{% endblock %}
|
||||
|
||||
{% block extra_js %}
|
||||
<script type="text/javascript" src="{% static 'js/jquery.infinitescroll.js' %}"></script>
|
||||
<script type="text/javascript" src="{% static 'js/history.js' %}"></script>
|
||||
<script type="text/javascript" src="{% static 'js/listing.js' %}"></script>
|
||||
@@ -23,5 +28,7 @@ $(document).ready(function() {
|
||||
});
|
||||
</script>
|
||||
{% endblock %}
|
||||
|
||||
{% block leftcol %}{% admin_menu left_selection user %}{% endblock %}
|
||||
|
||||
{% block apparea %}<div id="settings_content"></div>{% endblock %}
|
||||
|
||||
@@ -1,8 +1,13 @@
|
||||
{% extends "twocols.html" %}{% load i18n core_tags lib_tags %}
|
||||
{% load static %}
|
||||
|
||||
{% block pagetitle %}{% trans "Settings" %}{% endblock %}
|
||||
{% block html_head %}
|
||||
|
||||
{% block extra_css %}
|
||||
<link rel="stylesheet" type="text/css" href="{% static 'core/css/userprefs.css' %}" />
|
||||
{% endblock %}
|
||||
|
||||
{% block extra_js %}
|
||||
<script type="text/javascript" src="{% static 'js/history.js' %}"></script>
|
||||
<script type="text/javascript" src="{% static 'js/listing.js' %}"></script>
|
||||
<script type="text/javascript" src="{% static 'js/twocols_nav.js' %}"></script>
|
||||
@@ -18,5 +23,7 @@ $(document).ready(function() {
|
||||
});
|
||||
</script>
|
||||
{% endblock %}
|
||||
|
||||
{% block leftcol %}{% uprefs_menu left_selection user %}{% endblock %}
|
||||
|
||||
{% block apparea %}<div id="uprefs_content"></div>{% endblock %}
|
||||
|
||||
@@ -43,8 +43,8 @@ def password_change(user):
|
||||
|
||||
|
||||
@events.observe("GetStaticContent")
|
||||
def get_static_content(caller, user):
|
||||
if caller != 'top' and not user.mailbox_set.count():
|
||||
def get_static_content(caller, st_type, user):
|
||||
if caller != 'top' or st_type != 'js' or not user.mailbox_set.count():
|
||||
return []
|
||||
|
||||
return ["""<script type="text/javascript">
|
||||
|
||||
@@ -1,6 +1,12 @@
|
||||
{% extends "admin/listing.html" %}{% load i18n admin_tags lib_tags %}
|
||||
|
||||
{% block pagetitle %}{% trans "Domains" %}{% endblock %}
|
||||
{% block html_head %}
|
||||
|
||||
{% block extra_css %}
|
||||
{% extra_static_content "domains" "css" user %}
|
||||
{% endblock %}
|
||||
|
||||
{% block extra_js %}
|
||||
{{ block.super }}
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
@@ -9,8 +15,9 @@ $(document).ready(function() {
|
||||
});
|
||||
});
|
||||
</script>
|
||||
{% extra_static_content "domains" user %}
|
||||
{% extra_static_content "domains" "js" user %}
|
||||
{% endblock %}
|
||||
|
||||
{% block actions %}{% domains_menu "domains" user %}{% endblock %}
|
||||
|
||||
{% block table_header %}
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
{% extends "twocols.html" %}
|
||||
{% load static %}
|
||||
{% block html_head %}
|
||||
|
||||
{% block extra_css %}
|
||||
<link rel="stylesheet" type="text/css" href="{% static 'admin/css/admin.css' %}" />
|
||||
{% endblock %}
|
||||
|
||||
{% block extra_js %}
|
||||
<script type="text/javascript" src="{% static 'js/history.js' %}"></script>
|
||||
<script type="text/javascript" src="{% static 'js/listing.js' %}"></script>
|
||||
<script type="text/javascript" src="{% static 'admin/js/admin.js' %}"></script>
|
||||
|
||||
@@ -1,7 +1,13 @@
|
||||
{% extends "admin/listing.html" %}{% load admin_tags lib_tags i18n %}{% load url from future %}
|
||||
{% load static %}
|
||||
|
||||
{% block pagetitle %}{% trans "Identities" %}{% endblock %}
|
||||
{% block html_head %}
|
||||
|
||||
{% block extra_css %}
|
||||
{% extra_static_content "identities" "css" user %}
|
||||
{% endblock %}
|
||||
|
||||
{% block extra_js %}
|
||||
{{ block.super }}
|
||||
<script type="text/javascript" src="{% static 'js/autocompleter.js' %}"></script>
|
||||
<script type="text/javascript">
|
||||
@@ -12,6 +18,7 @@ $(document).ready(function() {
|
||||
});
|
||||
});
|
||||
</script>
|
||||
{% extra_static_content "identities" user %}
|
||||
{% extra_static_content "identities" "js" user %}
|
||||
{% endblock %}
|
||||
|
||||
{% block actions %}{% identities_menu user "identities" %}{% endblock %}
|
||||
|
||||
@@ -1,8 +1,13 @@
|
||||
{% extends "admin/header.html" %}{% load i18n admin_tags %}
|
||||
{% load static %}
|
||||
{% block html_head %}
|
||||
|
||||
{% block extra_css %}
|
||||
{{ block.super }}
|
||||
<link rel="stylesheet" type="text/css" href="{% static 'css/jquery.sortable.css' %}" />
|
||||
{% endblock %}
|
||||
|
||||
{% block extra_js %}
|
||||
{{ block.super }}
|
||||
<script type="text/javascript" src="{% static 'js/creation_wizard.js' %}"></script>
|
||||
<script type="text/javascript" src="{% static 'js/dynamic_input.js' %}"></script>
|
||||
<script type="text/javascript" src="{% static 'js/jquery.sortable.js' %}"></script>
|
||||
@@ -11,6 +16,7 @@
|
||||
var admin;
|
||||
</script>
|
||||
{% endblock %}
|
||||
|
||||
{% block leftcol %}
|
||||
<ul class="nav nav-sidebar">
|
||||
{% block actions %}{% endblock %}
|
||||
@@ -18,6 +24,7 @@ var admin;
|
||||
|
||||
{% get_extra_admin_content user "leftcol" selection %}
|
||||
{% endblock %}
|
||||
|
||||
{% block apparea %}
|
||||
<div class="row">
|
||||
<div class="col-sm-5">
|
||||
|
||||
@@ -50,8 +50,8 @@ def on_domain_alias_deleted(domainaliases):
|
||||
|
||||
|
||||
@events.observe("GetStaticContent")
|
||||
def extra_static_content(caller, user):
|
||||
if user.group == "SimpleUsers":
|
||||
def extra_static_content(caller, st_type, user):
|
||||
if user.group == "SimpleUsers" or st_type != "js":
|
||||
return []
|
||||
|
||||
if caller == 'domains':
|
||||
|
||||
@@ -1,9 +1,14 @@
|
||||
{% extends "fluid.html" %}{% load i18n amavis_tags %}
|
||||
{% load static %}
|
||||
|
||||
{% block pagetitle %}{% trans "Quarantine management" %}{% endblock %}
|
||||
{% block html_head %}
|
||||
|
||||
{% block extra_css %}
|
||||
<link rel="stylesheet" type="text/css" href="{% static 'amavis/css/quarantine.css' %}" />
|
||||
<link rel="stylesheet" type="text/css" href="{% static 'css/jquery.sortable.css' %}" />
|
||||
{% endblock %}
|
||||
|
||||
{% block extra_js %}
|
||||
<script type="text/javascript" src="{% static 'js/jquery.htmltable.js' %}"></script>
|
||||
<script type="text/javascript" src="{% static 'js/jquery.infinitescroll.js' %}"></script>
|
||||
<script type="text/javascript" src="{% static 'js/jquery.sortable.js' %}"></script>
|
||||
|
||||
@@ -71,12 +71,13 @@ def fill_account_instances(user, account, instances):
|
||||
|
||||
|
||||
@events.observe("GetStaticContent")
|
||||
def get_static_content(caller, user):
|
||||
def get_static_content(caller, st_type, user):
|
||||
if caller not in ['domains', 'identities']:
|
||||
return []
|
||||
if user.group == "SimpleUsers":
|
||||
return []
|
||||
return ["""<style>
|
||||
if st_type == "css":
|
||||
return ["""<style>
|
||||
.resource {
|
||||
margin: 5px 0;
|
||||
}
|
||||
@@ -89,6 +90,8 @@ def get_static_content(caller, user):
|
||||
color: #000000;
|
||||
}
|
||||
</style>
|
||||
"""]
|
||||
return ["""
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
$(".progress").tooltip();
|
||||
|
||||
@@ -8,8 +8,8 @@ from .models import RelayDomain, RelayDomainAlias
|
||||
|
||||
|
||||
@events.observe('GetStaticContent')
|
||||
def static_content(caller, user):
|
||||
if caller != 'domains':
|
||||
def static_content(caller, st_type, user):
|
||||
if caller != 'domains' or st_type != 'js':
|
||||
return []
|
||||
|
||||
t = Template("""<script src="{{ STATIC_URL }}postfix_relay_domains/js/relay_domains.js" type="text/javascript"></script>
|
||||
|
||||
@@ -1,9 +1,13 @@
|
||||
{% extends "twocols.html" %}
|
||||
{% load i18n radicale_tags %}
|
||||
{% load static %}
|
||||
{% block html_head %}
|
||||
|
||||
{% block extra_css %}
|
||||
<link rel="stylesheet" type="text/css" href="{% static 'css/jquery.sortable.css' %}" />
|
||||
<link rel="stylesheet" type="text/css" href="{% static 'radicale/css/radicale.css' %}" />
|
||||
{% endblock %}
|
||||
|
||||
{% block extra_js %}
|
||||
<script type="text/javascript" src="{% static 'js/jquery.sortable.js' %}"></script>
|
||||
<script type="text/javascript" src="{% static 'js/jquery.infinitescroll.js' %}"></script>
|
||||
<script type="text/javascript" src="{% static 'js/history.js' %}"></script>
|
||||
@@ -21,11 +25,13 @@ $(document).ready(function() {
|
||||
});
|
||||
</script>
|
||||
{% endblock %}
|
||||
|
||||
{% block leftcol %}
|
||||
<ul class="nav nav-sidebar">
|
||||
{% radicale_left_menu user %}
|
||||
</ul>
|
||||
{% endblock %}
|
||||
|
||||
{% block apparea %}
|
||||
<div class="row">
|
||||
<div class="col-sm-5">
|
||||
|
||||
@@ -1,8 +1,13 @@
|
||||
{% extends "twocols.html" %}{% load i18n sfilters_tags %}{% load url from future %}
|
||||
{% load static %}
|
||||
|
||||
{% block pagetitle %}{% trans "Message filters" %}{% endblock %}
|
||||
{% block html_head %}
|
||||
|
||||
{% block extra_css %}
|
||||
<link rel="stylesheet" type="text/css" href="{% static 'sievefilters/css/style.css' %}" />
|
||||
{% endblock %}
|
||||
|
||||
{% block extra_js %}
|
||||
<script type="text/javascript" src="{% static 'js/history.js' %}"></script>
|
||||
<script type="text/javascript" src="{% static 'sievefilters/js/lib.js' %}"></script>
|
||||
<script type="text/javascript" src="{% static 'js/dynamic_input.js' %}"></script>
|
||||
@@ -71,6 +76,7 @@ $(document).ready(function() {
|
||||
});
|
||||
</script>
|
||||
{% endblock %}
|
||||
|
||||
{% block leftcol %}
|
||||
<ul id="menu" class="nav nav-sidebar">
|
||||
<li class="nav-header">{% trans "Filter sets" %}</li>
|
||||
@@ -88,6 +94,7 @@ $(document).ready(function() {
|
||||
{% sfilters_menu user %}
|
||||
</ul>
|
||||
{% endblock %}
|
||||
|
||||
{% block apparea %}
|
||||
<div id="set_content">
|
||||
{% if not active_script and not scripts %}
|
||||
|
||||
@@ -1,8 +1,13 @@
|
||||
{% extends "twocols.html" %}{% load i18n %}{% load url from future %}
|
||||
{% load static %}
|
||||
|
||||
{% block pagetitle %}{% trans "Graphical statistics" %}{% endblock %}
|
||||
{% block html_head %}
|
||||
|
||||
{% block extra_css %}
|
||||
<link rel="stylesheet" type="text/css" href="{% static 'stats/css/stats.css' %}" />
|
||||
{% endblock %}
|
||||
|
||||
{% block extra_js %}
|
||||
<script type="text/javascript" src="{% static 'js/history.js' %}"></script>
|
||||
<script type="text/javascript" src="{% static 'js/autocompleter.js' %}"></script>
|
||||
<script type="text/javascript" src="{% static 'd3/d3.min.js' %}"></script>
|
||||
@@ -20,6 +25,7 @@ $(document).ready(function() {
|
||||
});
|
||||
</script>
|
||||
{% endblock %}
|
||||
|
||||
{% block leftcol %}
|
||||
<ul class="nav nav-sidebar">
|
||||
{% for id, gset in graph_sets.items %}
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
{% extends "twocols.html" %}{% load i18n lib_tags webmail_tags %}{% load url from future %}
|
||||
{% load static %}
|
||||
{% block pagetitle %}Webmail{% endblock %}
|
||||
{% block html_head %}
|
||||
{% block extra_css %}
|
||||
<link rel="stylesheet" type="text/css" href="{% static 'jquery-ui/themes/base/all.css' %}" />
|
||||
<link rel="stylesheet" type="text/css" href="{% static 'webmail/css/webmail.css' %}" />
|
||||
{% endblock %}
|
||||
|
||||
{% block extra_js %}
|
||||
<script type="text/javascript" src="{% static 'jquery-ui/jquery-ui.min.js' %}"></script>
|
||||
<script type="text/javascript" src="{% static 'js/ckeditor/ckeditor.js' %}"></script>
|
||||
<script type="text/javascript" src="{% static 'js/history.js' %}"></script>
|
||||
|
||||
@@ -73,10 +73,11 @@ def render_tags(tags):
|
||||
|
||||
|
||||
@register.simple_tag
|
||||
def extra_static_content(caller, user):
|
||||
def extra_static_content(caller, st_type, user):
|
||||
"""Get extra static content from extensions.
|
||||
|
||||
:param str caller: the application (location) responsible for the call
|
||||
:param str st_type: content type (css or js)
|
||||
:param ``User`` user: connected user
|
||||
"""
|
||||
tpl = template.Template(
|
||||
@@ -84,6 +85,7 @@ def extra_static_content(caller, user):
|
||||
)
|
||||
return tpl.render(
|
||||
template.Context({
|
||||
'static_content': events.raiseQueryEvent("GetStaticContent", caller, user)
|
||||
'static_content': events.raiseQueryEvent(
|
||||
"GetStaticContent", caller, st_type, user)
|
||||
})
|
||||
)
|
||||
|
||||
@@ -13,7 +13,42 @@
|
||||
<link rel="stylesheet" href="{% static 'eonasdan-bootstrap-datetimepicker/build/css/bootstrap-datetimepicker.min.css' %}" />
|
||||
<link rel="stylesheet" href="{% static 'bootstrap-select/bootstrap-select.min.css' %}" />
|
||||
<link rel="stylesheet" type="text/css" href="{% static 'css/custom.css' %}" />
|
||||
{% block extra_css %}{% endblock %}
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
|
||||
<div class="container-fluid">
|
||||
<div class="navbar-header">
|
||||
<button class="navbar-toggle collapsed" data-target=".navbar-collapse" data-toggle="collapse" type="button">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div id="navigate-navbar-collapse" class="navbar-collapse collapse">
|
||||
<ul class="nav navbar-nav">
|
||||
{% if selection %}
|
||||
{% extensions_menu selection user %}{% core_menu selection user %}
|
||||
{% else %}
|
||||
{% extensions_menu "" user %}{% core_menu "" user %}
|
||||
{% endif %}
|
||||
{% load_optionalmenu user %}
|
||||
<li class="divider"></li>
|
||||
</ul>
|
||||
<ul class="nav navbar-nav navbar-right">
|
||||
{% if selection %}{% user_menu user selection %}{% else %}{% user_menu user "" %}{% endif %}
|
||||
</ul>
|
||||
{% include "common/top_notifications.html" %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% block content %}{% endblock %}
|
||||
|
||||
<!-- Javascript -->
|
||||
<script src="{% static 'jquery/jquery.js' %}" type="text/javascript"></script>
|
||||
<script src="{% static 'bootstrap/dist/js/bootstrap.min.js' %}" type="text/javascript"></script>
|
||||
<script type="text/javascript" src="{% static 'moment/min/moment.min.js' %}"></script>
|
||||
@@ -42,73 +77,7 @@
|
||||
});
|
||||
});
|
||||
</script>
|
||||
{% extra_static_content "top" user %}
|
||||
{% block html_head %}{% endblock %}
|
||||
</head>
|
||||
<body>
|
||||
<div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
|
||||
<div class="container-fluid">
|
||||
<div class="navbar-header">
|
||||
<button class="navbar-toggle collapsed" data-target=".navbar-collapse" data-toggle="collapse" type="button">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div id="navigate-navbar-collapse" class="navbar-collapse collapse">
|
||||
|
||||
<!--<ul class="nav navbar-nav display-less-1198">
|
||||
<li class="droppable active ui-droppable" name="INBOX">
|
||||
<a class="block" name="loadfolder" href="INBOX">
|
||||
<i class="fa fa-inbox"></i>
|
||||
INBOX
|
||||
</a>
|
||||
</li>
|
||||
<li class="droppable ui-droppable" name="Drafts">
|
||||
<a class="block" name="loadfolder" href="Drafts">
|
||||
<i class="fa fa-file"></i>
|
||||
Drafts
|
||||
</a>
|
||||
</li>
|
||||
<li class="droppable ui-droppable" name="Junk">
|
||||
<a class="block" name="loadfolder" href="Junk">
|
||||
<i class="fa fa-fire"></i>
|
||||
Junk
|
||||
</a>
|
||||
</li>
|
||||
<li class="droppable ui-droppable" name="Sent">
|
||||
<a class="block" name="loadfolder" href="Sent">
|
||||
<i class="fa fa-envelope"></i>
|
||||
Sent
|
||||
</a>
|
||||
</li>
|
||||
<li class="droppable ui-droppable" name="Trash">
|
||||
<a class="block" name="loadfolder" href="Trash">
|
||||
<i class="fa fa-trash"></i>
|
||||
Trash
|
||||
</a>
|
||||
</li>
|
||||
</ul> -->
|
||||
|
||||
<ul class="nav navbar-nav">
|
||||
{% if selection %}
|
||||
{% extensions_menu selection user %}{% core_menu selection user %}
|
||||
{% else %}
|
||||
{% extensions_menu "" user %}{% core_menu "" user %}
|
||||
{% endif %}
|
||||
{% load_optionalmenu user %}
|
||||
<li class="divider"></li>
|
||||
</ul>
|
||||
<ul class="nav navbar-nav navbar-right">
|
||||
{% if selection %}{% user_menu user selection %}{% else %}{% user_menu user "" %}{% endif %}
|
||||
</ul>
|
||||
{% include "common/top_notifications.html" %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% block content %}{% endblock %}
|
||||
|
||||
{% extra_static_content "top" "js" user %}
|
||||
{% block extra_js %}{% endblock %}
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user