Plugins can now declare separate css and js files.

This commit is contained in:
tonio
2010-06-15 11:24:44 +02:00
parent 3ae122fe39
commit 5f51ee4412
29 changed files with 374 additions and 6573 deletions
+2 -2
View File
@@ -269,7 +269,7 @@ Then, edit your /etc/dovecot/dovecot-sql.conf and modify following lines::
driver = mysql
connect = host=<mysqld socket> dbname=<database> user=<user> password=<password>
default_pass_scheme = PLAIN-MD5
default_pass_scheme = CRYPT
password_query = SELECT full_address AS user, password FROM admin_mailbox WHERE full_address = '%u'
user_query = SELECT path AS home, uid, gid FROM admin_mailbox WHERE full_address = '%u'
@@ -279,7 +279,7 @@ Enable quotas with Dovecot
Put the following lines inside your dovecot.conf file::
protocol imap {
mail_plugins = quota quota_imap
mail_plugins = quota imap_quota
}
Before continuing, you need to know which quota backend must be user
@@ -0,0 +1,8 @@
thead tr {
position: relative;
z-index: 1;
}
tr.table-tr-selected {
background: #ffffcc;
}
@@ -1,14 +1,7 @@
{% extends "common/email_listing.html" %}
{% load i18n %}
{% block css %}
thead tr {
position: relative;
z-index: 1;
}
tr.table-tr-selected {
background: #ffffcc;
}
<link rel="stylesheet" type="text/css" href="/static/css/quarantine.css" />
{% endblock %}
{% block js %}
mysubmit = function(event, name) {
@@ -3,7 +3,7 @@
{% block html_head %}
<script src="/static/js/form.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css"
href="/static/stylesheets/calendar.css" />
href="/static/css/calendar.css" />
<script type="text/javascript" src="/static/js/calendar.js"></script>
<style type="text/css">
#id_subject {
+1 -1
View File
@@ -1,5 +1,5 @@
{% load i18n %}
<link rel="stylesheet" type="text/css" href="/static/stylesheets/calendar.css" />
<link rel="stylesheet" type="text/css" href="/static/css/calendar.css" />
<style type="text/css">
#selectors {
}
+161
View File
@@ -0,0 +1,161 @@
#listing {
position: absolute;
left: 155px;
right: 0px;
top: 130px;
height: expression(document.body.clientHeight - 35 + "px");
overflow: auto;
}
html > body #listing {
position: fixed;
bottom: 35px;
}
#folders {
float: left;
width: 150px;
}
/*thead tr {
position: relative;
top: expression(offsetParent.scrollTop); /*IE5+ only*/
z-index: 1;
padding: 0;
}*/
/*table#emails > tbody {
position: fixed;
bottom: 35px;
top: 155px;
left: 155px;
right: 0px;
overflow-x: hidden;
overflow-y: auto;
}*/
#emails th {
position: relative;
}
#emails tr {
width: 100%;
/*position: relative;*/
border-bottom: 1px solid #C8D6E8;
}
tr.selected {
background: #ffffcc;
}
.box h3 {
font-size: small;
margin: 2px 0px 2px 0px;
text-align: center;
}
.box ul {
list-style: none;
padding: 5px 5px;
margin: 0;
}
.box li {
clear: both;
margin-bottom: 4px;
}
.box li.selected {
background: #ffffcc;
position: relative;
}
.box a:link, .box a:visited {
background: transparent;
color: black;
/*font-weight: bold;*/
text-decoration: none;
}
.box a:hover {
color: #6AB0C5;
text-decoration: none;
}
.box img {
float: left;
margin-right: 2px;
border: 0;
}
th {
/*-moz-box-shadow: 0px -15px 10px -10px rgba(0,0,0,0.6) inset;
-webkit-box-shadow: 0px -15px 10px -10px rgba(0,0,0,0.6) inset;*/
}
th.selected {
background: #EEEEEE;
}
.draggable {
cursor: move;
}
.dragging {
background: #6AB0C5;
}
ul.hidden {
display: none;
}
ul.visible {
background: white;
display: block;
padding-bottom: 0;
padding-left: 10px;
}
/* Compose mail page */
#compose-container {
margin: 0 auto;
width: 100%;
}
div.row {
margin: 3px;
clear: both;
}
div.row label {
float: left;
width: 120px;
font-size: small;
padding: 3px 0;
}
textarea {
border: 1px solid #cccccc;
background-color: #eee;
width: 80%;
height: 30px;
font-size: medium;
}
textarea:hover {
background-color: #ffffcc;
}
#id_body {
background: white;
width: 98%;
}
input {
width: 80%;
padding: 0;
}
#mailheader {
padding-bottom: 5px;
}
-38
View File
@@ -1,42 +1,4 @@
{% load i18n %}
<style type="text/css">
#compose-container {
margin: 0 auto;
width: 100%;
}
div.row {
margin: 3px;
clear: both;
}
div.row label {
float: left;
width: 120px;
font-size: small;
padding: 3px 0;
}
textarea {
border: 1px solid #cccccc;
background-color: #eee;
width: 80%;
height: 30px;
font-size: medium;
}
textarea:hover {
background-color: #ffffcc;
}
#id_body {
background: white;
width: 98%;
}
input {
width: 80%;
padding: 0;
}
#mailheader {
padding-bottom: 5px;
}
</style>
<form method="POST" action="{{ posturl }}" id="composemail">
<div id="compose-container">
<div id="mailheader">
+1 -118
View File
@@ -1,124 +1,7 @@
{% extends "common/email_listing.html" %}
{% load i18n %}
{% block css %}
#listing {
position: absolute;
left: 155px;
right: 0px;
top: 130px;
height: expression(document.body.clientHeight - 35 + "px");
overflow: auto;
}
html > body #listing {
position: fixed;
bottom: 35px;
}
#folders {
float: left;
width: 150px;
}
/*thead tr {
position: relative;
top: expression(offsetParent.scrollTop); /*IE5+ only*/
z-index: 1;
padding: 0;
}*/
/*table#emails > tbody {
position: fixed;
bottom: 35px;
top: 155px;
left: 155px;
right: 0px;
overflow-x: hidden;
overflow-y: auto;
}*/
#emails th {
position: relative;
}
#emails tr {
width: 100%;
/*position: relative;*/
border-bottom: 1px solid #C8D6E8;
}
tr.selected {
background: #ffffcc;
}
.box h3 {
font-size: small;
margin: 2px 0px 2px 0px;
text-align: center;
}
.box ul {
list-style: none;
padding: 5px 5px;
margin: 0;
}
.box li {
clear: both;
margin-bottom: 4px;
}
.box li.selected {
background: #ffffcc;
position: relative;
}
.box a:link, .box a:visited {
background: transparent;
color: black;
/*font-weight: bold;*/
text-decoration: none;
}
.box a:hover {
color: #6AB0C5;
text-decoration: none;
}
.box img {
float: left;
margin-right: 2px;
border: 0;
}
th {
/*-moz-box-shadow: 0px -15px 10px -10px rgba(0,0,0,0.6) inset;
-webkit-box-shadow: 0px -15px 10px -10px rgba(0,0,0,0.6) inset;*/
}
th.selected {
background: #EEEEEE;
}
.draggable {
cursor: move;
}
.dragging {
background: #6AB0C5;
}
ul.hidden {
display: none;
}
ul.visible {
background: white;
display: block;
padding-bottom: 0;
padding-left: 10px;
}
<link rel="stylesheet" type="text/css" href="/static/css/webmail.css" />
{% endblock %}
{% block js %}
wm_updatelisting = function(resp) {
+13
View File
@@ -1,6 +1,7 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os, sys
import glob
from django.conf import settings
def usage():
@@ -16,6 +17,18 @@ def update_extension(name, extdir, state):
or "rm %s/%s" % (d, name)
os.system(cmd)
staticpath = "%s/%s" % (extdir, "static")
if os.path.isdir(staticpath):
for d in ['css', 'js']:
subpath = "%s/%s" % (staticpath, d)
if not os.path.isdir(subpath):
continue
for f in glob.glob("%s/*.%s" % (subpath, d)):
cmd = state == "on" \
and "ln -s %s static/%s" % (f, d) \
or "rm static/%s/%s" % (d, os.path.basename(f))
os.system(cmd)
if __name__ == "__main__":
if len(sys.argv) != 3:
usage()

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Before

Width:  |  Height:  |  Size: 495 B

After

Width:  |  Height:  |  Size: 495 B

Before

Width:  |  Height:  |  Size: 550 B

After

Width:  |  Height:  |  Size: 550 B

Before

Width:  |  Height:  |  Size: 6.6 KiB

After

Width:  |  Height:  |  Size: 6.6 KiB

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

+1 -1
View File
@@ -31,7 +31,7 @@ var InfoBox = new Class({
});
this.setProfile("gray");
this.spinner = new Element("img", {
"src" : "/static/stylesheets/spinner.gif"
"src" : "/static/css/spinner.gif"
});
this.spinner.setStyle("float", "left");
this.spinner.inject(this.box);
+39 -2061
View File
File diff suppressed because one or more lines are too long
+132 -4329
View File
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -2,7 +2,8 @@
{% load i18n %}
{% load libextras %}
{% block html_head %}
<link rel="stylesheet" type="text/css" href="/static/stylesheets/searchbar.css" />
<link rel="stylesheet" type="text/css" href="/static/css/searchbar.css" />
{% block css %}{% endblock %}
<style type="text/css">
#navbar {
float: right;
@@ -21,7 +22,6 @@
margin-top: 5px;
margin-right: 5px;
}
{% block css %}{% endblock %}
</style>
<script type="text/javascript">
+1 -1
View File
@@ -4,7 +4,7 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head profile="http://www.w3.org/2005/10/profile">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="/static/stylesheets/box.css" />
<link rel="stylesheet" type="text/css" href="/static/css/box.css" />
<style type="text/css">
body {
+3 -3
View File
@@ -3,9 +3,9 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head profile="http://www.w3.org/2005/10/profile">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="icon" type="image/png" href="/static/stylesheets/logo-icon.png" />
<link rel="stylesheet" type="text/css" href="/static/stylesheets/SqueezeBox.css" />
<link rel="stylesheet" type="text/css" href="/static/stylesheets/box.css" />
<link rel="icon" type="image/png" href="/static/css/logo-icon.png" />
<link rel="stylesheet" type="text/css" href="/static/css/SqueezeBox.css" />
<link rel="stylesheet" type="text/css" href="/static/css/box.css" />
<script src="/static/js/mootools.js" type="text/javascript"></script>
<script src="/static/js/mootools-more.js" type="text/javascript"></script>
<script src="/static/js/SqueezeBox.js" type="text/javascript"></script>
+4 -4
View File
@@ -6,9 +6,9 @@
<head profile="http://www.w3.org/2005/10/profile">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>MailNG - {%block pagetitle %}{% endblock %}</title>
<link rel="icon" type="image/png" href="/static/stylesheets/logo-icon.png" />
<link rel="stylesheet" type="text/css" href="/static/stylesheets/default.css" />
<link rel="stylesheet" type="text/css" href="/static/stylesheets/SqueezeBox.css" />
<link rel="icon" type="image/png" href="/static/css/logo-icon.png" />
<link rel="stylesheet" type="text/css" href="/static/css/default.css" />
<link rel="stylesheet" type="text/css" href="/static/css/SqueezeBox.css" />
<script src="/static/js/mootools.js" type="text/javascript"></script>
<script src="/static/js/mootools-more.js" type="text/javascript"></script>
<script src="/static/js/SqueezeBox.js" type="text/javascript"></script>
@@ -71,7 +71,7 @@
</div>
<div id="page">
<div id="header">
<img class="logo" src="/static/stylesheets/mailng.png" />
<img class="logo" src="/static/css/mailng.png" />
<h1>{% block middletitle %}{% endblock %}</h1>
<div id="menubar" class="menubar">
{% block menu %}{% endblock %}
+4 -4
View File
@@ -6,9 +6,9 @@
<head profile="http://www.w3.org/2005/10/profile">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>{% trans "Welcome to MailNG" %}</title>
<link rel="icon" type="image/png" href="/static/stylesheets/logo-icon.png" />
<link rel="stylesheet" type="text/css" href="/static/stylesheets/login.css" />
<link rel="stylesheet" type="text/css" href="/static/stylesheets/box.css" />
<link rel="icon" type="image/png" href="/static/css/logo-icon.png" />
<link rel="stylesheet" type="text/css" href="/static/css/login.css" />
<link rel="stylesheet" type="text/css" href="/static/css/box.css" />
<script src="/static/js/mootools.js" type="text/javascript"></script>
<script src="/static/js/mootools-more.js" type="text/javascript"></script>
{% url django.views.i18n.javascript_catalog as catalog_url %}
@@ -18,7 +18,7 @@
<body>
<div id="loginbox">
<div id="logo">
<img src="/static/stylesheets/mailng.png" />
<img src="/static/css/mailng.png" />
{% if error %}
<div class="error"><p>{{ error }}</p></div>
{% endif %}