فهرست منبع

Cyan headers update

ryp 2 هفته پیش
والد
کامیت
3833a2a9f6

+ 9 - 12
web/app/controllers/contest_inside.php

@@ -122,9 +122,6 @@
 				$rating_vols = array();
 				if (!isset($contest['extra_config']['unrated'])) {
 					calcRatingGlicko2($standings, $ratings, $rating_rds, $rating_vols);
-					error_log("RATING");
-					error_log(print_r($standings, true));
-					error_log(print_r($ratings, true));
 				} else {
 					for ($i = 0; $i < count($standings); $i++) {
 						$ratings[$i] = $standings[$i][2][1];
@@ -421,8 +418,8 @@ EOD;
 		$time_str = UOJTime::$time_now_str;
 		$contest_ends_in = UOJLocale::get('contests::contest ends in');
 		echo <<<EOD
- 		<div class="card border-info">
- 			<div class="card-header bg-info">
+		<div class="card">
+			<div class="card-header">
  				<h3 class="card-title">$contest_ends_in</h3>
  			</div>
  			<div class="card-body text-center countdown" data-rest="$rest_second"></div>
@@ -445,8 +442,8 @@ EOD;
 			$title = UOJLocale::get('contests::contest final testing');
 		}
 		echo <<<EOD
- 		<div class="card border-info">
- 			<div class="card-header bg-info">
+		<div class="card">
+			<div class="card-header">
  				<h3 class="card-title">$title</h3>
  			</div>
  			<div class="card-body">
@@ -461,8 +458,8 @@ EOD;
 	function echoContestFinished() {
 		$title = UOJLocale::get('contests::contest ended');
 		echo <<<EOD
- 		<div class="card border-info">
- 			<div class="card-header bg-info">
+		<div class="card">
+			<div class="card-header">
  				<h3 class="card-title">$title</h3>
  			</div>
  		</div>
@@ -545,11 +542,11 @@ EOD;
 			<?php if ($cur_tab == 'standings'): ?>
 	</div>
 	<div class="col-sm-3">
-		<div class="card border-info">
+		<div class="card">
 		<?php else: ?>
-		<div class="card border-info top-buffer-lg">
+		<div class="card top-buffer-lg">
 		<?php endif ?>
-			<div class="card-header bg-info">
+			<div class="card-header">
 				<h3 class="card-title">比赛资料</h3>
 			</div>
 			<div class="list-group">

+ 6 - 6
web/app/controllers/datum.php

@@ -18,8 +18,8 @@
 <?php
 	echoDatumListOnlyOne($datum);
 
-	echo '<div class="card border-info mb-3">';
-	echo '<div class="card-header bg-info">';
+	echo '<div class="card mb-3">';
+	echo '<div class="card-header">';
 	echo '<h4 class="card-title">流</h4>';
 	echo '</div>';
 	echo '<div class="card-body"><pre><code class="sh_python hljs language-python">';
@@ -27,8 +27,8 @@
 	echo '</code></pre></div>';
 	echo '</div>';
 
-	echo '<div class="card border-info mb-3">';
-	echo '<div class="card-header bg-info">';
+	echo '<div class="card mb-3">';
+	echo '<div class="card-header">';
 	echo '<h4 class="card-title">gen.py</h4>';
 	echo '</div>';
 	echo '<div class="card-body"><pre><code class="sh_python hljs language-python">';
@@ -36,8 +36,8 @@
 	echo '</code></pre></div>';
 	echo '</div>';
 
-	echo '<div class="card border-info mb-3">';
-	echo '<div class="card-header bg-info">';
+	echo '<div class="card mb-3">';
+	echo '<div class="card-header">';
 	echo '<h4 class="card-title">std</h4>';
 	echo '</div>';
 	echo '<div class="card-body"><pre><code class="sh_cpp hljs language-cpp">';

+ 2 - 2
web/app/controllers/group_info.php

@@ -12,8 +12,8 @@
 	$problemquota = queryGroupProblemQuota($user);
 	$creator = $user['childgroup'];
 	?>
-	<div class="card border-info">
-		<h5 class="card-header bg-info">组信息</h5>
+	<div class="card">
+		<h5 class="card-header">组信息</h5>
 		<div class="card-body">
 			<div class="row mb-4">
 				<div class="col-md-4 order-md-9">

+ 2 - 2
web/app/controllers/hack.php

@@ -60,8 +60,8 @@
 
 <?php echoHackListOnlyOne($hack, array(), $myUser) ?>
 <?php if ($should_show_all_details): ?>
-	<div class="card border-info shadow my-4">
-		<div class="card-header bg-info">
+	<div class="card shadow my-4">
+		<div class="card-header">
 			<h4 class="card-title"><?= UOJLocale::get('details') ?></h4>
 		</div>
 		<div class="card-body">

+ 2 - 2
web/app/controllers/subdomain/blog/archive.php

@@ -41,8 +41,8 @@
 			<a href="<?=HTML::blog_url(UOJContext::userid(), '/slide/new/write')?>" class="btn btn-primary"><span class="glyphicon glyphicon-edit"></span> 写新幻灯片</a>
 		</div>
 		<?php endif ?>
-		<div class="card border-info top-buffer-sm">
-			<div class="card-header bg-info">标签</div>
+		<div class="card top-buffer-sm">
+			<div class="card-header">标签</div>
 			<div class="card-body">
 			<?php if ($all_tags): ?>
 			<?php foreach ($all_tags as $tag): ?>

+ 5 - 5
web/app/controllers/submission.php

@@ -163,8 +163,8 @@
 <?php echoSubmissionsListOnlyOne($submission, array(), $myUser) ?>
 
 <?php if ($should_show_captcha): ?>
-	<div class="card border-info mb-3">
-		<div class="card-header bg-info"><h4>需要验证码</h4></div>
+	<div class="card mb-3">
+		<div class="card-header"><h4>需要验证码</h4></div>
 		<div class="card-body">
 			<img id="captcha-img" />
 			<?php $captcha_form->printHTML() ?>
@@ -206,9 +206,9 @@
 <?php endif ?>
 
 <?php if ($should_show_all_details): ?>
-	<div class="card border-info mb-3">
-		<div class="card-header bg-info">
-			<h4 class="card-title"><?= UOJLocale::get('details') ?></h4>
+	<div class="card mb-3">
+		<div class="card-header">
+			<h4 class="card-title"><?= UOJLocale::get('judge details') ?></h4>
 		</div>
 		<div class="card-body">
 			<?php if (isset($submission_result['final_result'])): ?>

+ 0 - 4
web/app/controllers/super_manage.php

@@ -36,10 +36,6 @@
 			calcStandings($contest, $contest_data, $score, $standings, true);
 			calcRatingGlicko2($standings, $ratings, $rating_rds, $rating_vols);
 
-			error_log("SHABI RATING");
-			error_log(print_r($standings, true));
-			error_log(print_r($ratings, true));
-
 			for ($i = 0; $i < count($standings); ++$i) {
 				DB::update("update user_info set rating = {$ratings[$i]}, rating_rd = {$rating_rds[$i]}, rating_vol = {$rating_vols[$i]} where username = '{$standings[$i][2][0]}';");
 			}

+ 3 - 3
web/app/controllers/user_msg.php

@@ -116,8 +116,8 @@ EOD;
 </div>
 
 <div id="history" style="display:none">
-	<div class="card border-primary">
-		<div class="card-header bg-primary text-white">
+	<div class="card">
+		<div class="card-header">
 			<button type="button" id="goBack" class="btn btn-info btn-sm" style="position:absolute">返回</button>
 			<div id="conversation-name" class="text-center"></div>
 		</div>
@@ -177,7 +177,7 @@ function addButton(conversationName, send_time, type) {
 function addBubble(content, send_time, read_time, msgId, conversation, page, type) {
 	$("#history-list").append(
 			'<div style=' + (type ? "margin-left:40%;margin-right:0%;" : "margin-left:0%;margin-right:40%;") + '>' +
-				'<div class="card border-info mb-4">' +
+				'<div class="card mb-4">' +
 					'<div class="card-body" style="background:' + (type ? '#4d92d8' : '#beb7b7') + '; word-break: break-all">' +
 						'<div style="white-space:pre-wrap" ' + (type ? 'class="text-right"' : 'class="text-left"') + '>' +
 							htmlspecialchars(content) +

+ 8 - 41
web/app/libs/uoj-html-lib.php

@@ -628,8 +628,8 @@ HTML;
 			$sh_class = '';
 			break;
 	}
-	echo '<div class="card border-info mb-3">';
-	echo '<div class="card-header bg-info">';
+	echo '<div class="card mb-3">';
+	echo '<div class="card-header">';
 	echo '<h4 class="card-title">Paste!</h4>';
 	echo '</div>';
 	echo '<div class="card-body">';
@@ -684,9 +684,9 @@ function echoSubmissionContent($submission, $requirement, $options = array()) {
 					$sh_class = '';
 					break;
 			}
-			echo '<div class="card border-info mb-3">';
-			echo '<div class="card-header bg-info">';
-			echo '<h4 class="card-title">'.$req['name'].'</h4>';
+			echo '<div class="card mb-3">';
+			echo '<div class="card-header">';
+			echo '<h4 class="card-title">源代码</h4>';
 			echo '</div>';
 			echo '<div class="card-body">';
 			if ($collapsible) {
@@ -722,9 +722,9 @@ function echoSubmissionContent($submission, $requirement, $options = array()) {
 			$file_content = strOmit($file_content, 500);
 			$file_content = uojTextEncode($file_content, array('allow_CR' => true, 'html_escape' => true));
 			$footer_text = UOJLocale::get('problems::text file');
-			echo '<div class="card border-info mb-3">';
-			echo '<div class="card-header bg-info">';
-			echo '<h4 class="card-title">'.$req['file_name'].'</h4>';
+			echo '<div class="card mb-3">';
+			echo '<div class="card-header">';
+			echo '<h4 class="card-title">'.HTML::escape($req['file_name']).'</h4>';
 			echo '</div>';
 			echo '<div class="card-body">';
 			echo '<pre>'."\n".$file_content."\n".'</pre>';
@@ -1157,17 +1157,6 @@ class SubmissionDetailsStyler {
 	public $show_small_tip = true;
 	public $collapse_in = false;
 	public $fade_all_details = false;
-	public function getTestInfoClass($info) {
-		if ($info == 'Accepted' || $info == 'Extra Test Passed') {
-			return 'card-uoj-accepted';
-		} elseif ($info == 'Time Limit Exceeded') {
-			return 'card-uoj-tle';
-		} elseif ($info == 'Acceptable Answer') {
-			return 'card-uoj-acceptable-answer';
-		} else {
-			return 'card-uoj-wrong';
-		}
-	}
 	public function shouldFadeDetails($info) {
 		return $this->fade_all_details || $info == 'Extra Test Passed';
 	}
@@ -1178,17 +1167,6 @@ class CustomTestSubmissionDetailsStyler {
 	public $collapse_in = true;
 	public $fade_all_details = false;
 	public $ioi_contest_is_running = false;
-	public function getTestInfoClass($info) {
-		if ($info == 'Success') {
-			return 'card-uoj-accepted';
-		} elseif ($info == 'Time Limit Exceeded') {
-			return 'card-uoj-tle';
-		} elseif ($info == 'Acceptable Answer') {
-			return 'card-uoj-acceptable-answer';
-		} else {
-			return 'card-uoj-wrong';
-		}
-	}
 	public function shouldFadeDetails($info) {
 		return $this->fade_all_details;
 	}
@@ -1198,17 +1176,6 @@ class HackDetailsStyler {
 	public $show_small_tip = false;
 	public $collapse_in = true;
 	public $fade_all_details = false;
-	public function getTestInfoClass($info) {
-		if ($info == 'Accepted' || $info == 'Extra Test Passed') {
-			return 'card-uoj-accepted';
-		} elseif ($info == 'Time Limit Exceeded') {
-			return 'card-uoj-tle';
-		} elseif ($info == 'Acceptable Answer') {
-			return 'card-uoj-acceptable-answer';
-		} else {
-			return 'card-uoj-wrong';
-		}
-	}
 	public function shouldFadeDetails($info) {
 		return $this->fade_all_details;
 	}

+ 1 - 0
web/app/locale/basic/en.php

@@ -32,6 +32,7 @@ return [
 	'browse' => 'Browse',
 	'score range' => 'Score range',
 	'details' => 'Details',
+	'judge details' => 'Judge details',
 	'pretest' => 'Pretest',
 	'final test' => 'Final test',
 	'hours' => function($h) {

+ 1 - 0
web/app/locale/basic/zh-cn.php

@@ -32,6 +32,7 @@ return [
 	'browse' => '浏览',
 	'score range' => '分数范围',
 	'details' => '详细',
+	'judge details' => '测评详细',
 	'pretest' => '预测试',
 	'final test' => '最终测试',
 	'hours' => function($h) {

+ 36 - 103
web/css/uoj-theme.css

@@ -111,109 +111,6 @@ pre {
 	font-weight: 700;
 }
 
-.card-uoj-accepted {
-	border-color:#2bff4f;
-}
-.card-uoj-accepted>.card-header {
-	cursor:pointer;
-	color:#333;
-	background-color:#00ee00;
-	border-color:#2bff4f;
-}
-.card-uoj-accepted>.card-header:hover {
-	background-color:#2bff4f;
-}
-.card-uoj-accepted>.card-header+.card-collapse>.card-body {
-	border-top-color:#00ee00;
-}
-.card-uoj-accepted>.card-header .badge {
-	color:#00ee00;
-	background-color:#333;
-}
-.card-uoj-accepted>.card-header:hover .badge {
-	color:#2bff4f;
-}
-.card-uoj-accepted>.card-footer+.card-collapse>.card-body {
-	border-bottom-color:#2bff4f;
-}
-
-.card-uoj-wrong {
-	border-color:#ff0000;
-}
-.card-uoj-wrong>.card-header {
-	cursor:pointer;
-	color:#333;
-	background-color:#dd0000;
-	border-color:#ff0000;
-}
-.card-uoj-wrong>.card-header:hover {
-	background-color:#ff0000;
-}
-.card-uoj-wrong>.card-header+.card-collapse>.card-body {
-	border-top-color:#dd0000;
-}
-.card-uoj-wrong>.card-header .badge {
-	color:#dd0000;
-	background-color:#333;
-}
-.card-uoj-wrong>.card-header:hover .badge {
-	color:#ff0000;
-}
-.card-uoj-wrong>.card-footer+.card-collapse>.card-body {
-	border-bottom-color:#ff0000;
-}
-
-.card-uoj-acceptable-answer {
-	border-color:#ff7700;
-}
-.card-uoj-acceptable-answer>.card-header {
-	cursor:pointer;
-	color:#333;
-	background-color:#ee5500;
-	border-color:#ff0000;
-}
-.card-uoj-acceptable-answer>.card-header:hover {
-	background-color:#ff7700;
-}
-.card-uoj-acceptable-answer>.card-header+.card-collapse>.card-body {
-	border-top-color:#ee5500;
-}
-.card-uoj-acceptable-answer>.card-header .badge {
-	color:#ff7700;
-	background-color:#333;
-}
-.card-uoj-acceptable-answer>.card-header:hover .badge {
-	color:#ff7700;
-}
-.card-uoj-acceptable-answer>.card-footer+.card-collapse>.card-body {
-	border-bottom-color:#ff7700;
-}
-
-.card-uoj-tle {
-	border-color:#ffff2b;
-}
-.card-uoj-tle>.card-header {
-	cursor:pointer;
-	color:#333;
-	background-color:#e6e61e;
-	border-color:#ffff2b;
-}
-.card-uoj-tle>.card-header:hover {
-	background-color:#ffff2b;
-}
-.card-uoj-tle>.card-header+.card-collapse>.card-body {
-	border-top-color:#ffff2b;
-}
-.card-uoj-tle>.card-header .badge {
-	color:#e6e61e;
-	background-color:#333;
-}
-.card-uoj-tle>.card-header:hover .badge {
-	color:#ffff2b;
-}
-.card-uoj-tle>.card-footer+.card-collapse>.card-body {
-	border-bottom-color:#ffff2b;
-}
 
 .table-text-center>thead>tr>th {
 	text-align: center;
@@ -871,3 +768,39 @@ body.uoj-modal-open {
 		font-size: 9px;
 	}
 }
+
+
+/* ==========================================================================
+   Quiet section header
+   --------------------------------------------------------------------------
+   The card-header is a *label*, not a banner: light surface, hairline, dark
+   grey small type.  Colour on this site is reserved for meaning (red = rating,
+   green/red/yellow = verdict), so a saturated header competes with it.
+   This is the same treatment `.problem-meta-card .card-header` already used.
+   Judge-status headers (.card-uoj-*) and `bg-*` utility headers are more
+   specific, so they keep their own colours.
+   ========================================================================== */
+
+.card-header {
+	background: #f8f9fa;
+	border-bottom: 1px solid #e3e3e3;
+	color: #495057;
+	font-size: 0.95rem;
+	font-weight: 700;
+}
+
+/* the markup mixes <h4>/<h5>/<div> inside headers -- normalise them all */
+.card-header > h1, .card-header > h2, .card-header > h3,
+.card-header > h4, .card-header > h5, .card-header > h6,
+.card-header > .card-title {
+	color: inherit;
+	font-size: 0.95rem;
+	font-weight: 700;
+	line-height: 1.4;
+	margin: 0;
+}
+
+.card-header .card-title > small,
+.card-header > small {
+	font-weight: 400;
+}