From 936556b4ace6fc47566473147588966cec79a96e Mon Sep 17 00:00:00 2001 From: David Anderson Date: Thu, 3 Apr 2014 12:14:37 -0700 Subject: [PATCH] Admin web: don't use project banner; use stylesheets It doesn't make sense to show the project banner in admin pages; the banner typically has (broken) links to non-admin pages. Also, include basic stylesheets in admin pages. --- html/inc/util_ops.inc | 18 +- html/ops/main.css | 435 ++++++++++++++++++++++++++++++++++++++ py/Boinc/setup_project.py | 2 +- 3 files changed, 446 insertions(+), 9 deletions(-) create mode 100644 html/ops/main.css diff --git a/html/inc/util_ops.inc b/html/inc/util_ops.inc index ae0ee68db1..36063d1f4d 100644 --- a/html/inc/util_ops.inc +++ b/html/inc/util_ops.inc @@ -20,15 +20,17 @@ require_once("../inc/db_ops.inc"); require_once("../inc/util.inc"); require_once("../project/project.inc"); -// TODO: get rid of the following. use style sheets -define("TD", ""); -define("TD2", ""); -define("TD3", ""); -define("TABLE", ""); -define("TABLE2", "
"); - function admin_page_head($title) { - return page_head($title); + echo ""; + echo "$title + + + + + +

".PROJECT.": $title

+ "; + show_login_info(); } function admin_page_tail() { diff --git a/html/ops/main.css b/html/ops/main.css new file mode 100644 index 0000000000..d2324b5881 --- /dev/null +++ b/html/ops/main.css @@ -0,0 +1,435 @@ +/* +main.css - general stylesheet for BOINC web pages + +No colors are defined here. +Put colors in a separate stylesheet (e.g., white.css, style2.css) + +Use classes, not IDs. + +We use the following classes: + +table.bordered + a table with a border around it +td.bordered + bordered table cell (admin pages only) +td.heading + table cell acting as heading +td.fieldname +td.fieldvalue + table cells with name/value pairs +td.fieldname_error +td.fieldvalue_error + same, but colored to show error +td.row0, row1 + rows with alternating colors +td.highlighted_row0, highlighted_row1 + same, but highlighted + +... a bunch for message boards; see below + +In the home page: + +td.news +td.uotd +h2.headline +div.mainnav + +*/ + +a, a:link, a:visited, a:active { + text-decoration: none; +} + +a:hover { text-decoration: underline; } + +body { + font-family: Verdana, Arial, Sans Serif; + font-size: 13px; + margin: 5px 10px; +} + +h1 { + font-weight: normal; + margin: 10px; +} + +h2 { + font-weight: normal; + font-size: 20px; +} + +h3, h4 { font-weight: bold; } + +hr { + size: 0; + margin: 8px 2px; +} + +img { + border: none; +} + +table { + padding: 4px 6px; + margin: 2px; +} + +table.bordered { + border-width: 2px; + border-style: solid; + -moz-border-radius: 6px; + -webkit-border-radius: 6px; + -khtml-border-radius: 6px; + border-radius: 6px; +} + +th { + font-weight: bold; + vertical-align: top; +} + +td { + vertical-align: top; + padding: 4px; +} + +td.bordered { + border-width: 1px; + border-style: solid; +} + +td.heading { + font-weight: bold; + margin: 4px 0; + padding: 8px; +} + +td.fieldname { + text-align: right; + padding-right: 10px; + font-size: 14px; + margin: 2px 0; +} + +td.fieldvalue { + margin: 2px 0; + vertical-align: top; +} + +td.fieldname_error { + text-align: right; +} + +td.fieldvalue_error { + font-weight: bold; +} + +td.friend { + text-align: center; +} + +.row0, +.row1 , +.highlighted_row0, +.highlighted_row1 { + text-align: left; +} + +/* Buttons etc. */ + +input[type="button"], +input[type="submit"], +.btn { + padding: 4px 4px; + margin: 2px; + border-width: 1px; + border-style: solid; + font-size: 13px; + font-weight: normal; + cursor: pointer; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + -khtml-border-radius: 5px; + border-radius: 5px; +} + + /* IE6 doesn't understand [type=XXXX] so we use class "button" */ + +a.button { + line-height: 2.4em; + padding: 4px 4px; + margin: 0px 0px; + border-width: 1px; + border-style: solid; + font-size: 13px; + font-weight: normal; + white-space: nowrap; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + -khtml-border-radius: 5px; + border-radius: 5px; +} + +input[type="button"]:hover, +input[type="submit"]:hover, +input.btn:hover, +.button:hover , +.forum_toplinks a:hover { + text-decoration: none; +} + +input[type="text"], input[type="password"], select, textarea { + border-width: 1px; + border-style: solid; + margin: 2px 4px; + padding: 3px; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + -khtml-border-radius: 5px; + border-radius: 5px; +} + +/* Main Page */ + +td.news { + border-width: 2px; + border-style: solid; + padding: 10px; + margin: 4px; + -moz-border-radius: 10px; + -webkit-border-radius: 10px; + -khtml-border-radius: 10px; + border-radius: 10px; +} + +h2.headline { + margin-top: 0; +} + +td.uotd { + border-width: 2px; + border-style: solid; + padding: 10px; + margin: 4px; + -moz-border-radius: 10px; + -webkit-border-radius: 10px; + -khtml-border-radius: 10px; + border-radius: 10px; +} + +/* Forum */ + +#thread { + table-layout: fixed; + overflow: visible; +} + +td.category , tr.subtitle{ + border: none; + font-weight: bold; + margin: 6px 0; +} + +th { + font-weight: bold; + margin: 4px 2px; + padding: 4px; +} + +td.postheader { + font-size: 12px; + margin-left: 4px; + padding-left: 8px; + height: 28px; + -moz-border-radius: 0 10px 0 0; + -webkit-border-radius-topright: 10px; + -khtml-border-radius-topright: 10px; + border-radius-topright: 10px; +} + +td.postheader form { + padding: 4px; +} + +td.postbody { + line-height: 140%; + padding: 4px 12px; +} + +td.postfooter { + font-size: 12px; + height: 26px; + margin-left: 4px; + padding-left: 8px; + -moz-border-radius: 0 0 10px 0; + -khtml-border-radius-bottomright: 10px; + -webkit-border-radius-bottomright: 10px; + border-radius-bottomright: 10px; +} + +td.postheader .button, +td.postfooter .button { + font-size: 12px; +} + +tr.helpdeskseparator { + height: 10pt; +} + +tr.postseparator { + margin: 4px 0; +} + +td.threadline { + text-align: left; + vertical-align: middle; +} + +td.numbers { + vertical-align: middle; + text-align: center; +} + +td.lastpost, td.threadicon { + vertical-align: middle; +} + +.title { + font-size: 14px; + font-weight: bold; +} + +.description { + font-size: 80%; + font-weight: normal; +} + +td.leftcol { + -moz-border-radius: 10px 0 0 10px; + -khtml-border-radius-topleft: 10px; + -khtml-border-radius-bottomleft: 10px; + -webkit-border-radius-topleft: 10px; + -webkit-border-radius-bottomleft: 10px; + border-radius-topleft: 10px; + border-radius-bottomleft: 10px; +} + +.authorcol { + width: 136px; +} + +div.authorcol { + border-width: 1px; + border-style: solid; + padding: 8px 5px; + width: 120px; + margin: 2px 0 2px 2px; + overflow: hidden; + word-wrap: break-word; + -moz-border-radius: 10px; + -webkit-border-radius: 10px; + -khtml-border-radius: 10px; + border-radius: 10px; +} + +.authorinfo { + font-size: 11px; +} + +img.authorinfo { + border-width: 1px; + border-style: solid; + margin: 3px 9px; +} + +img.flag { + margin: 2px 1px; +} + +.authorcol .button { + font-size: 12px; + margin: 0 4px; + line-height: 2.6em; +} + +blockquote.postbody { + border-left-width: 2px; + border-left-style: solid; + padding: 2px 6px; + margin: 0 6px 0 10px; + font-style: italic; +} + +.forum_toplinks td { + vertical-align: middle; +} + +.page_title { + font-size: 24px; + margin: 20px; +} + +span.note { + font-weight: normal; + font-style: italic; + font-size: 0.9em; +} + +span.news_date { + font-size: 0.8em; +} + +span.news_title, +span.inboxunread { + font-weight: bold; +} + +.nobr{ + white-space: nowrap; +} + +.pre { + font-family: "Courier New", courier, monospace; + display: block; + white-space: pre; + overflow: auto; +} + +.code { + font-family: "Courier New", courier, monospace; + display: block; + margin-left: 5em; + border-left-width: 3px; + border-left-style: solid; + padding-left: 1em; + white-space: nowrap; + overflow: auto; +} + +.smalltext { + font-size: 0.8em; +} + +.error, +.notice { + font-weight: bold; + font-size: 1.1em; +} + +div.pm_preview { + border-width: 2px; + border-style: solid; + margin: 1em; + padding: 0.2em; + border-bottom-width: 1px; + border-bottom-style: solid; + + line-height: 140%; + padding: 4px 12px; +} + +/* IE hack */ + +* html body .code { + white-space: normal; +} diff --git a/py/Boinc/setup_project.py b/py/Boinc/setup_project.py index ac824afc29..9da06e0306 100644 --- a/py/Boinc/setup_project.py +++ b/py/Boinc/setup_project.py @@ -316,12 +316,12 @@ def install_boinc_files(dest_dir, install_web_files, install_server_files): # which is needed even for a server_only upgrade install_glob(srcdir('html/ops/*.php'), dir('html/ops/')) - install_glob(srcdir('html/ops/*.inc'), dir('html/ops/')) if install_web_files: install_glob(srcdir('html/inc/*.inc'), dir('html/inc/')) install_glob(srcdir('html/inc/*.php'), dir('html/inc/')) install_glob(srcdir('html/inc/*.dat'), dir('html/inc/')) + install_glob(srcdir('html/ops/*.css'), dir('html/ops/')) install_glob(srcdir('html/ops/ffmail/sample*'), dir('html/ops/ffmail/')) install_glob(srcdir('html/ops/mass_email/sample*'), dir('html/ops/mass_email/')) install_glob(srcdir('html/ops/remind_email/sample*'), dir('html/ops/remind_email/'))