mirror of https://github.com/tLDP/LDP
code cleanup
This commit is contained in:
parent
2e4e048e4e
commit
f3ee17a4f5
|
@ -13,6 +13,7 @@
|
|||
AllowOverride None
|
||||
SetHandler python-program
|
||||
PythonHandler ModPython
|
||||
PythonAutoReload On
|
||||
PythonDebug On
|
||||
Order allow,deny
|
||||
Allow from all
|
||||
|
|
|
@ -60,13 +60,21 @@ class Lampadas:
|
|||
self.docs = Docs()
|
||||
self.docs.load()
|
||||
self.licenses = Licenses()
|
||||
self.licenses.load()
|
||||
self.dtds = DTDs()
|
||||
self.dtds.load()
|
||||
self.formats = Formats()
|
||||
self.formats.load()
|
||||
self.languages = Languages()
|
||||
self.languages.load()
|
||||
self.pub_statuses = PubStatuses()
|
||||
self.pub_statuses.load()
|
||||
self.review_statuses = ReviewStatuses()
|
||||
self.review_statuses.load()
|
||||
self.topics = Topics()
|
||||
self.topics.load()
|
||||
self.subtopics = Subtopics()
|
||||
self.subtopics.load()
|
||||
self.users = Users()
|
||||
|
||||
def user(self, username):
|
||||
|
@ -87,7 +95,7 @@ class Types(LampadasCollection):
|
|||
row = cursor.fetchone()
|
||||
if row==None: break
|
||||
type = Type()
|
||||
type.load(row)
|
||||
type.load_row(row)
|
||||
self.data[type.code] = type
|
||||
|
||||
class Type:
|
||||
|
@ -102,7 +110,7 @@ class Type:
|
|||
if type_code==None: return
|
||||
self.code = type_code
|
||||
|
||||
def load(self, row):
|
||||
def load_row(self, row):
|
||||
self.code = trim(row[0])
|
||||
self.sort_order = row[1]
|
||||
|
||||
|
@ -175,14 +183,14 @@ class Doc:
|
|||
self.dtd_code = trim(row[4])
|
||||
self.dtd_version = trim(row[5])
|
||||
self.version = trim(row[6])
|
||||
self.last_update = date2str(row[7])
|
||||
self.last_update = date2str(row[7])
|
||||
self.url = trim(row[8])
|
||||
self.isbn = trim(row[9])
|
||||
self.pub_status_code = trim(row[10])
|
||||
self.pub_status_code = trim(row[10])
|
||||
self.review_status_code = trim(row[11])
|
||||
self.tickle_date = date2str(row[12])
|
||||
self.pub_date = date2str(row[13])
|
||||
self.home_url = trim(row[14])
|
||||
self.tickle_date = date2str(row[12])
|
||||
self.pub_date = date2str(row[13])
|
||||
self.home_url = trim(row[14])
|
||||
self.tech_review_status_code = trim(row[15])
|
||||
self.maintained = tf2bool(row[16])
|
||||
self.maintainer_wanted = tf2bool(row[17])
|
||||
|
@ -193,9 +201,9 @@ class Doc:
|
|||
self.sk_seriesid = trim(row[22])
|
||||
self.errs = DocErrs(self.id)
|
||||
self.files = DocFiles(self.id)
|
||||
self.versions = DocVersions(self.id)
|
||||
self.ratings = Docratings(self.id)
|
||||
self.ratings.parent = self
|
||||
self.versions = DocVersions(self.id)
|
||||
|
||||
def save(self):
|
||||
sql = "UPDATE document SET title=" + wsq(self.title) + ", type_code=" + wsq(self.type_code) + ", format_code=" + wsq(self.format_code) + ", dtd_code=" + wsq(self.dtd_code) + ", dtd_version=" + wsq(self.dtd_version) + ", version=" + wsq(self.version) + ", last_update=" + wsq(self.last_update) + ", url=" + wsq(self.url) + ", isbn=" + wsq(self.isbn) + ", pub_status=" + wsq(self.pub_status_code) + ", review_status=" + wsq(self.review_status_code) + ", tickle_date=" + wsq(self.tickle_date) + ", pub_date=" + wsq(self.pub_date) + ", ref_url=" + wsq(self.home_url) + ", tech_review_status=" + wsq(self.tech_review_status_code) + ", maintained=" + wsq(bool2tf(self.maintained)) + ', maintainer_wanted=' + wsq(bool2tf(self.maintainer_wanted)) + ", license_code=" + wsq(self.license_code) + ", abstract=" + wsq(self.abstract) + ", rating=" + dbint(self.rating) + ", lang=" + wsq(self.lang) + ", sk_seriesid=" + wsq(self.sk_seriesid) + " WHERE doc_id=" + str(self.id)
|
||||
|
@ -220,7 +228,7 @@ class DocErrs(LampadasCollection):
|
|||
row = cursor.fetchone()
|
||||
if row==None: break
|
||||
doc_err = DocErr()
|
||||
doc_err.load(doc_id, row)
|
||||
doc_err.load_row(row)
|
||||
self.data[doc_err.id] = doc_err
|
||||
|
||||
def clear(self):
|
||||
|
@ -246,7 +254,7 @@ class DocErr:
|
|||
An error filed against a document by the Lintadas subsystem.
|
||||
"""
|
||||
|
||||
def load(self, row):
|
||||
def load_row(self, row):
|
||||
self.doc_id = row[0]
|
||||
self.error_id = safeint(row[1])
|
||||
|
||||
|
@ -262,13 +270,13 @@ class DocFiles(LampadasCollection):
|
|||
self.data = {}
|
||||
assert not doc_id==None
|
||||
self.doc_id = doc_id
|
||||
sql = "SELECT filename, format_code FROM document_file WHERE doc_id=" + str(doc_id)
|
||||
sql = "SELECT doc_id, filename, format_code FROM document_file WHERE doc_id=" + str(doc_id)
|
||||
cursor = db.select(sql)
|
||||
while (1):
|
||||
row = cursor.fetchone()
|
||||
if row==None: break
|
||||
newDocFile = DocFile()
|
||||
newDocFile.load(doc_id, row)
|
||||
newDocFile.load_row(row)
|
||||
self.data[newDocFile.Filename] = newDocFile
|
||||
|
||||
def add(self, doc_id, Filename, format_code=None):
|
||||
|
@ -293,12 +301,10 @@ class DocFile:
|
|||
|
||||
import os.path
|
||||
|
||||
def load(self, doc_id, row):
|
||||
assert not doc_id==None
|
||||
assert not row==None
|
||||
self.doc_id = doc_id
|
||||
self.Filename = trim(row[0])
|
||||
self.format_code = trim(row[1])
|
||||
def load_row(self, row):
|
||||
self.doc_id = row[0]
|
||||
self.Filename = trim(row[1])
|
||||
self.format_code = trim(row[2])
|
||||
if self.Filename[:5]=='http:' or self.Filename[:4]=='ftp:':
|
||||
self.IsLocal = 0
|
||||
else:
|
||||
|
@ -339,7 +345,7 @@ class Docratings(LampadasCollection):
|
|||
row = cursor.fetchone()
|
||||
if row==None: break
|
||||
newDocrating = Docrating()
|
||||
newDocrating.load(row)
|
||||
newDocrating.load_row(row)
|
||||
self.data[newDocrating.username] = newDocrating
|
||||
self.calc_average()
|
||||
|
||||
|
@ -381,7 +387,7 @@ class Docrating:
|
|||
A rating of a document, assigned by a registered user.
|
||||
"""
|
||||
|
||||
def load(self, row):
|
||||
def load_row(self, row):
|
||||
assert not row==None
|
||||
self.doc_id = row[0]
|
||||
self.username = row[1]
|
||||
|
@ -407,13 +413,13 @@ class DocVersions(LampadasCollection):
|
|||
LampadasCollection.__init__(self)
|
||||
assert not doc_id==None
|
||||
self.doc_id = doc_id
|
||||
sql = "SELECT rev_id, version, pub_date, initials, notes FROM document_rev WHERE doc_id=" + str(doc_id)
|
||||
sql = "SELECT doc_id, rev_id, version, pub_date, initials, notes FROM document_rev WHERE doc_id=" + str(doc_id)
|
||||
cursor = db.select(sql)
|
||||
while (1):
|
||||
row = cursor.fetchone()
|
||||
if row==None: break
|
||||
doc_version = DocVersion()
|
||||
doc_version.load(doc_id, row)
|
||||
doc_version.load_row(row)
|
||||
self.data[doc_version.id] = doc_version
|
||||
|
||||
class DocVersion:
|
||||
|
@ -421,18 +427,18 @@ class DocVersion:
|
|||
A release of the document.
|
||||
"""
|
||||
|
||||
def load(self, doc_id, row):
|
||||
def load_row(self, row):
|
||||
assert not doc_id==None
|
||||
assert not row==None
|
||||
self.doc_id = doc_id
|
||||
self.id = row[0]
|
||||
self.version = trim(row[1])
|
||||
self.pub_date = date2str(row[2])
|
||||
self.Initials = trim(row[3])
|
||||
self.Notes = trim(row[4])
|
||||
self.doc_id = doc_id
|
||||
self.id = row[0]
|
||||
self.version = trim(row[1])
|
||||
self.pub_date = date2str(row[2])
|
||||
self.initials = trim(row[3])
|
||||
self.notes = trim(row[4])
|
||||
|
||||
def save(self):
|
||||
sql = "UPDATE document_rev SET version=" + wsq(self.version) + ", pub_date=" + wsq(self.pub_date) + ", initials=" + wsq(self.Initials) + ", notes=" + wsq(self.Notes) + "WHERE doc_id=" + str(self.doc_id) + " AND rev_id" + wsq(self.id)
|
||||
sql = "UPDATE document_rev SET version=" + wsq(self.version) + ", pub_date=" + wsq(self.pub_date) + ", initials=" + wsq(self.initials) + ", notes=" + wsq(self.notes) + "WHERE doc_id=" + str(self.doc_id) + " AND rev_id" + wsq(self.id)
|
||||
assert db.runsql(sql)==1
|
||||
db.commit()
|
||||
|
||||
|
@ -446,13 +452,15 @@ class Licenses(LampadasCollection):
|
|||
|
||||
def __init__(self):
|
||||
self.data = {}
|
||||
|
||||
def load(self):
|
||||
sql = "SELECT license_code, free, sort_order from license"
|
||||
cursor = db.select(sql)
|
||||
while (1):
|
||||
row = cursor.fetchone()
|
||||
if row==None: break
|
||||
newLicense = License()
|
||||
newLicense.load(row)
|
||||
newLicense.load_row(row)
|
||||
self.data[newLicense.license_code] = newLicense
|
||||
|
||||
|
||||
|
@ -469,7 +477,7 @@ class License:
|
|||
self.license_code = license_code
|
||||
self.free = free
|
||||
|
||||
def load(self, row):
|
||||
def load_row(self, row):
|
||||
self.license_code = trim(row[0])
|
||||
self.free = tf2bool(row[1])
|
||||
self.sort_order = row[2]
|
||||
|
@ -493,13 +501,15 @@ class DTDs(LampadasCollection):
|
|||
|
||||
def __init__(self):
|
||||
self.data = {}
|
||||
|
||||
def load(self):
|
||||
sql = "SELECT dtd_code from dtd"
|
||||
cursor = db.select(sql)
|
||||
while (1):
|
||||
row = cursor.fetchone()
|
||||
if row==None: break
|
||||
newDTD = DTD()
|
||||
newDTD.load(row)
|
||||
newDTD.load_row(row)
|
||||
self.data[newDTD.dtd_code] = newDTD
|
||||
|
||||
class DTD:
|
||||
|
@ -511,7 +521,7 @@ class DTD:
|
|||
if dtd_code==None: return
|
||||
self.dtd_code = dtd_code
|
||||
|
||||
def load(self, row):
|
||||
def load_row(self, row):
|
||||
self.dtd_code = trim(row[0])
|
||||
|
||||
|
||||
|
@ -529,29 +539,27 @@ class Errs(LampadasCollection):
|
|||
while (1):
|
||||
row = cursor.fetchone()
|
||||
if row==None: break
|
||||
newErr = Err()
|
||||
newErr.load(row)
|
||||
self.data[newErr.err_id] = newErr
|
||||
err = Err()
|
||||
err.load_row(row)
|
||||
self.data[err.id] = err
|
||||
|
||||
class Err:
|
||||
"""
|
||||
An error that can be filed against a document.
|
||||
"""
|
||||
|
||||
def __init__(self, err_id=None):
|
||||
def __init__(self):
|
||||
self.name = LampadasCollection()
|
||||
self.description = LampadasCollection()
|
||||
if Err==None: return
|
||||
self.err_id = err_id
|
||||
|
||||
def load(self, row):
|
||||
self.err_id = trim(row[0])
|
||||
def load_row(self, row):
|
||||
self.id = trim(row[0])
|
||||
sql = "SELECT lang, err_name, err_desc FROM error_i18n WHERE err_id=" + wsq(self.err_id)
|
||||
cursor = db.select(sql)
|
||||
while (1):
|
||||
row = cursor.fetchone()
|
||||
if row==None: break
|
||||
lang = row[0]
|
||||
lang = row[0]
|
||||
self.name[lang] = trim(row[1])
|
||||
self.description[lang] = trim(row[1])
|
||||
|
||||
|
@ -565,34 +573,34 @@ class Formats(LampadasCollection):
|
|||
|
||||
def __init__(self):
|
||||
self.data = {}
|
||||
sql = "SELECT format_code FROM format"
|
||||
|
||||
def load(self):
|
||||
sql = 'SELECT format_code FROM format'
|
||||
cursor = db.select(sql)
|
||||
while (1):
|
||||
row = cursor.fetchone()
|
||||
if row==None: break
|
||||
newFormat = Format()
|
||||
newFormat.load(row)
|
||||
self.data[newFormat.code] = newFormat
|
||||
format = Format()
|
||||
format.load_row(row)
|
||||
self.data[format.code] = format
|
||||
|
||||
class Format:
|
||||
"""
|
||||
A file format, for document source files.
|
||||
"""
|
||||
|
||||
def __init__(self, format_code=None):
|
||||
def __init__(self):
|
||||
self.name = LampadasCollection()
|
||||
self.description = LampadasCollection()
|
||||
if format_code==None: return
|
||||
self.code = format_code
|
||||
|
||||
def load(self, row):
|
||||
def load_row(self, row):
|
||||
self.code = trim(row[0])
|
||||
sql = "SELECT lang, format_name, format_desc FROM format_i18n WHERE format_code=" + wsq(self.code)
|
||||
cursor = db.select(sql)
|
||||
while (1):
|
||||
row = cursor.fetchone()
|
||||
if row==None: break
|
||||
lang = row[0]
|
||||
lang = row[0]
|
||||
self.name[lang] = trim(row[1])
|
||||
self.description[lang] = trim(row[2])
|
||||
|
||||
|
@ -607,14 +615,16 @@ class Languages(LampadasCollection):
|
|||
|
||||
def __init__(self):
|
||||
self.data = {}
|
||||
|
||||
def load(self):
|
||||
sql = "SELECT lang_code, supported FROM language"
|
||||
cursor = db.select(sql)
|
||||
while (1):
|
||||
row = cursor.fetchone()
|
||||
if row==None: break
|
||||
newLanguage = Language()
|
||||
newLanguage.load(row)
|
||||
self.data[newLanguage.code] = newLanguage
|
||||
language = Language()
|
||||
language.load_row(row)
|
||||
self.data[language.code] = language
|
||||
|
||||
class Language:
|
||||
"""
|
||||
|
@ -622,17 +632,12 @@ class Language:
|
|||
and Lampadas can be localized for, any language supported by ISO 639.
|
||||
"""
|
||||
|
||||
def __init__(self, lang_code=None):
|
||||
if lang_code==None: return
|
||||
self.code = lang_code
|
||||
sql = "SELECT lang_code, supported FROM language WHERE lang_code= " + wsq(lang_code)
|
||||
cursor = db.select(sql)
|
||||
self.load(sql)
|
||||
def __init__(self):
|
||||
self.name = LampadasCollection()
|
||||
|
||||
def load(self, row):
|
||||
def load_row(self, row):
|
||||
self.code = trim(row[0])
|
||||
self.supported = tf2bool(row[1])
|
||||
self.name = LampadasCollection()
|
||||
sql = "SELECT lang, lang_name FROM language_i18n WHERE lang_code=" + wsq(self.code)
|
||||
cursor = db.select(sql)
|
||||
while (1):
|
||||
|
@ -651,6 +656,8 @@ class PubStatuses(LampadasCollection):
|
|||
|
||||
def __init__(self):
|
||||
self.data = {}
|
||||
|
||||
def load(self):
|
||||
sql = "SELECT pub_status, sort_order FROM pub_status"
|
||||
cursor = db.select(sql)
|
||||
while (1):
|
||||
|
@ -694,6 +701,8 @@ class ReviewStatuses(LampadasCollection):
|
|||
|
||||
def __init__(self):
|
||||
self.data = {}
|
||||
|
||||
def load(self):
|
||||
sql = "SELECT review_status, sort_order FROM review_status"
|
||||
cursor = db.select(sql)
|
||||
while (1):
|
||||
|
@ -737,6 +746,8 @@ class Topics(LampadasCollection):
|
|||
|
||||
def __init__(self):
|
||||
self.data = {}
|
||||
|
||||
def load(self):
|
||||
sql = "SELECT topic_code, topic_num FROM topic"
|
||||
cursor = db.select(sql)
|
||||
while (1):
|
||||
|
@ -782,6 +793,8 @@ class Subtopics(LampadasCollection):
|
|||
|
||||
def __init__(self):
|
||||
self.data = {}
|
||||
|
||||
def load(self):
|
||||
sql = "SELECT subtopic_code, subtopic_num, topic_code FROM subtopic"
|
||||
cursor = db.select(sql)
|
||||
while (1):
|
||||
|
|
|
@ -682,7 +682,10 @@ class PageFactory:
|
|||
if token=='port':
|
||||
newstring = str(config.port)
|
||||
if token=='stylesheet':
|
||||
newstring='default'
|
||||
if build_user:
|
||||
newstring = build_user.stylesheet
|
||||
else:
|
||||
newstring='default'
|
||||
if token=='version':
|
||||
newstring = VERSION
|
||||
|
||||
|
@ -770,18 +773,20 @@ class PageFactory:
|
|||
page_factory = PageFactory()
|
||||
combo_factory = ComboFactory()
|
||||
|
||||
profile_reps = 100
|
||||
|
||||
def benchmark(url, reps):
|
||||
from DataLayer import Lampadas
|
||||
for x in range(0, reps):
|
||||
lampadas = DataLayer.Lampadas()
|
||||
page = page_factory.page(url)
|
||||
|
||||
def main():
|
||||
import profile
|
||||
import pstats
|
||||
|
||||
if len(sys.argv[1:]):
|
||||
profile_it = 0
|
||||
reps_flag = 0
|
||||
profile_reps = 100
|
||||
for arg in sys.argv[1:]:
|
||||
if reps_flag:
|
||||
profile_reps = int(arg)
|
||||
|
@ -793,7 +798,10 @@ def main():
|
|||
elif profile_it > 0:
|
||||
print 'Profiling, ' + str(profile_reps) + ' repetitions...'
|
||||
page = page_factory.page(arg)
|
||||
profile.run('benchmark("' + arg + '", ' + str(profile_reps) + ')')
|
||||
profile.run('benchmark("' + arg + '", ' + str(profile_reps) + ')', 'profile_stats')
|
||||
p = pstats.Stats('profile_stats')
|
||||
p.sort_stats('time').print_stats()
|
||||
|
||||
else:
|
||||
print page_factory.page(arg)
|
||||
else:
|
||||
|
@ -802,3 +810,4 @@ def main():
|
|||
|
||||
if __name__=="__main__":
|
||||
main()
|
||||
|
||||
|
|
|
@ -38,9 +38,6 @@ TABLE.box {
|
|||
font-size: 12pt;
|
||||
}
|
||||
|
||||
TABLE.form {
|
||||
}
|
||||
|
||||
TABLE.footer {
|
||||
width: 100%;
|
||||
border: solid brown;
|
||||
|
@ -184,17 +181,6 @@ HR {
|
|||
background: brown;
|
||||
}
|
||||
|
||||
DT {
|
||||
color: red;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
SUP {
|
||||
font-size: 8pt;
|
||||
font-family: helvetica;
|
||||
font-variant: normal;
|
||||
}
|
||||
|
||||
IMG {
|
||||
border-width: 0;
|
||||
}
|
||||
|
|
|
@ -3,179 +3,98 @@ BODY {
|
|||
background-color: #aaaaaa;
|
||||
font-family: helvetica;
|
||||
font-size: 12pt;
|
||||
margin: 1;
|
||||
margin: 5;
|
||||
}
|
||||
|
||||
H1 {
|
||||
color: black;
|
||||
background-color: transparent;
|
||||
font-size: 18pt;
|
||||
font-weight: bold;
|
||||
TABLE.layout {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
H2
|
||||
H2 SUP {
|
||||
font-size: 8pt;
|
||||
font-family: helvetica;
|
||||
font-variant: normal;
|
||||
}
|
||||
|
||||
xH3 {
|
||||
color: brown;
|
||||
font-family: times;
|
||||
font-size: 14pt;
|
||||
font-style: bold;
|
||||
letter-spacing: .05em;
|
||||
margin-top: 10;
|
||||
margin-bottom: 3;
|
||||
}
|
||||
|
||||
xH4 {
|
||||
color: brown;
|
||||
font-family: times;
|
||||
font-size: 13pt;
|
||||
font-weight: bold;
|
||||
letter-spacing: .05em;
|
||||
}
|
||||
|
||||
BLOCKQUOTE {
|
||||
color: black;
|
||||
font-size: 12pt;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
A {
|
||||
color: white;
|
||||
}
|
||||
|
||||
A:active {
|
||||
color: white;
|
||||
}
|
||||
|
||||
xHR {
|
||||
color: brown;
|
||||
border-top: solid brown;
|
||||
border-width: 3;
|
||||
}
|
||||
|
||||
TABLE {
|
||||
background-color: transparent;
|
||||
padding: 0;
|
||||
TABLE.header {
|
||||
width: 100%;
|
||||
margin-top: 0;
|
||||
background-color: transparent;
|
||||
font-size: 14pt;
|
||||
text-align: center;
|
||||
margin-bottom:5;
|
||||
}
|
||||
|
||||
TABLE.navbox {
|
||||
width: 100%;
|
||||
margin-bottom: 10;
|
||||
border: solid black;
|
||||
border-width: 2;
|
||||
background-color: #888888;
|
||||
font-size: 12pt;
|
||||
}
|
||||
|
||||
TABLE.box {
|
||||
width: 100%;
|
||||
margin-bottom: 10;
|
||||
border: solid black;
|
||||
border-width: 2;
|
||||
background-color: #888888;
|
||||
font-size: 12pt;
|
||||
}
|
||||
|
||||
TABLE.footer {
|
||||
width: 100%;
|
||||
border: solid black;
|
||||
border-width: 2;
|
||||
background-color: #888888;
|
||||
font-size: 14pt;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
TH {
|
||||
color: black;
|
||||
background-color: #BBCCEE;
|
||||
font-family: helvetica;
|
||||
padding: 0;
|
||||
font-size: 14pt;
|
||||
font-style: bold;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
TH A {
|
||||
color: white;
|
||||
}
|
||||
|
||||
TABLE.layout {
|
||||
border-width:0;
|
||||
}
|
||||
|
||||
TABLE.layout TD {
|
||||
padding: 3;
|
||||
}
|
||||
|
||||
TABLE.revhistory {
|
||||
.navbox .label {
|
||||
text-align: right;
|
||||
vertical-align: top;
|
||||
color: black;
|
||||
background-color: tan;
|
||||
border: solid brown;
|
||||
border-width: 1;
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
TABLE.revhistory TH {
|
||||
padding: 5;
|
||||
}
|
||||
|
||||
|
||||
TABLE.navbar {
|
||||
border: solid brown;
|
||||
border-width: 0;
|
||||
}
|
||||
|
||||
TABLE.navbar TH {
|
||||
padding: 5;
|
||||
}
|
||||
|
||||
TABLE.navbox {
|
||||
margin-top: 10;
|
||||
border: solid black;
|
||||
border-width: 1;
|
||||
background-color: #888888;
|
||||
width: 200;
|
||||
}
|
||||
|
||||
xTABLE.box {
|
||||
margin-top: 10;
|
||||
border: solid brown;
|
||||
background-color: tan;
|
||||
border-width: 2;
|
||||
}
|
||||
|
||||
TABLE.header {
|
||||
margin-top: 0;
|
||||
background-color: transparent;
|
||||
width: 100%;
|
||||
font-size: 14pt;
|
||||
}
|
||||
|
||||
TABLE.header TH {
|
||||
text-align: center;
|
||||
font-size: 20pt;
|
||||
}
|
||||
|
||||
TABLE.body {
|
||||
background-color: white;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
xTD.body {
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
TABLE.footer {
|
||||
margin-top: 0;
|
||||
border: solid black;
|
||||
border-width: 1;
|
||||
background-color: #888888;
|
||||
width: 100%;
|
||||
font-size: 14pt;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
TABLE.footer TD {
|
||||
border-width: 0;
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
TABLE.title {
|
||||
background-color: transparent;
|
||||
width: 100%;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
TABLE.title TD {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
TABLE.bargraph {
|
||||
border-width: 0;
|
||||
padding: 0;
|
||||
border-spacing: 2;
|
||||
.box .label {
|
||||
text-align: right;
|
||||
vertical-align: top;
|
||||
color: black;
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
TD {
|
||||
align: top;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
TD.logo {
|
||||
text-align: center;
|
||||
vertical-align: middle;
|
||||
font-weight: bold;
|
||||
font-size: 20;
|
||||
width: 200;
|
||||
margin : 0;
|
||||
padding; 0;
|
||||
padding-right: 10;
|
||||
}
|
||||
|
||||
TD.sidebar {
|
||||
width: 200;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.navbox TD {
|
||||
padding-left: 5;
|
||||
padding-right: 5;
|
||||
}
|
||||
|
||||
TD.body {
|
||||
padding-left: 10;
|
||||
padding-right: 10;
|
||||
}
|
||||
|
||||
TD.baron {
|
||||
|
@ -188,13 +107,57 @@ TD.baroff {
|
|||
padding: 0;
|
||||
}
|
||||
|
||||
DT {
|
||||
color: red;
|
||||
H1 {
|
||||
color: black;
|
||||
font-size: 18pt;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.header H1 {
|
||||
font-size: 22pt;
|
||||
}
|
||||
|
||||
H2 {
|
||||
color: black;
|
||||
font-size: 15pt;
|
||||
font-weight: bole;
|
||||
}
|
||||
|
||||
.header H2 {
|
||||
font-size: 18pt;
|
||||
}
|
||||
|
||||
H3 {
|
||||
color: black;
|
||||
font-size: 14pt;
|
||||
font-style: bold;
|
||||
}
|
||||
|
||||
LI {
|
||||
margin-left: 0;
|
||||
padding-left: 0;
|
||||
H4 {
|
||||
color: black;
|
||||
font-size: 13pt;
|
||||
font-style: bold;
|
||||
}
|
||||
|
||||
BLOCKQUOTE {
|
||||
color: black;
|
||||
font-size: 12pt;
|
||||
}
|
||||
|
||||
A:link { color: #aaaaaa }
|
||||
A:active { color: #aaaaaa }
|
||||
A:visited { color: #aaaaaa }
|
||||
A:hover { color: #aaaaaa }
|
||||
|
||||
HR {
|
||||
color: black;
|
||||
border-top: solid black;
|
||||
border-width: 3;
|
||||
}
|
||||
|
||||
|
||||
.navbox A:link { color: white }
|
||||
.navbox A:active { color: white }
|
||||
.navbox A:visited { color: white }
|
||||
.navbox A:hover { color: white }
|
||||
|
||||
|
|
Loading…
Reference in New Issue