Spit css and javascript blocks.

see #585
This commit is contained in:
Antoine Nguyen
2014-10-20 09:37:25 +02:00
parent 196ef6f6c0
commit f3dbae14e8
18 changed files with 135 additions and 92 deletions
+4 -1
View File
@@ -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 %}
+8 -1
View File
@@ -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 %}
+2 -2
View File
@@ -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>
+4 -2
View File
@@ -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)
})
)
+37 -68
View File
@@ -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>