Skip to content

Commit 8835804

Browse files
[gui] Unifi color gradient generation & make colors more readable
This change unifies the color gradient generation based on value and makes the values on the components more readable.
1 parent 1beb02b commit 8835804

7 files changed

Lines changed: 42 additions & 73 deletions

File tree

web/server/vue-cli/src/components/Report/ReportInfo/ReportInfo.vue

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,10 @@
3939

4040
<v-chip
4141
v-else-if="key === 'bugPathLength'"
42-
:color="bugPathLenColor.getBugPathLenColor(value[key])"
42+
class="text-black"
43+
:color="gradientColor.getGradientColor(value[key])"
44+
size="small"
45+
variant="flat"
4346
>
4447
<span v-if="value[key]">{{ value[key] }}</span>
4548
<span v-else>-</span>
@@ -60,7 +63,7 @@ import {
6063
ReviewStatusIcon,
6164
SeverityIcon
6265
} from "@/components/Icons";
63-
import { useBugPathLenColor } from "@/composables/useBugPathLenColor";
66+
import { useGradientColor } from "@/composables/useGradientColor";
6467
import { useDetectionStatus } from "@/composables/useDetectionStatus";
6568
import { useReviewStatus } from "@/composables/useReviewStatus";
6669
import { useSeverity } from "@/composables/useSeverity";
@@ -73,7 +76,7 @@ const props = defineProps({
7376
7477
const runName = ref(null);
7578
76-
const bugPathLenColor = useBugPathLenColor();
79+
const gradientColor = useGradientColor();
7780
const detectionStatus = useDetectionStatus();
7881
const reviewStatus = useReviewStatus();
7982
const severity = useSeverity();

web/server/vue-cli/src/components/Report/SelectSameReport.vue

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
</span>
3232
<v-chip
3333
class="text-black"
34-
:color="bugPathLenColor.getBugPathLenColor(item.raw.bugPathLength)"
34+
:color="gradientColor.getGradientColor(item.raw.bugPathLength)"
3535
label
3636
size="small"
3737
variant="flat"
@@ -64,7 +64,7 @@
6464
</span>
6565
<v-chip
6666
class="text-black"
67-
:color="bugPathLenColor.getBugPathLenColor(item.raw.bugPathLength)"
67+
:color="gradientColor.getGradientColor(item.raw.bugPathLength)"
6868
label
6969
size="small"
7070
variant="flat"
@@ -81,7 +81,7 @@ import { ccService } from "@cc-api";
8181
import { onMounted, ref, watch } from "vue";
8282
8383
import { DetectionStatusIcon, ReviewStatusIcon } from "@/components/Icons";
84-
import { useBugPathLenColor } from "@/composables/useBugPathLenColor";
84+
import { useGradientColor } from "@/composables/useGradientColor";
8585
8686
const props = defineProps({
8787
report: { type: Object, default: null }
@@ -91,7 +91,7 @@ const emit = defineEmits([ "update:report" ]);
9191
9292
const items = ref([]);
9393
const active = ref(null);
94-
const bugPathLenColor = useBugPathLenColor();
94+
const gradientColor = useGradientColor();
9595
9696
watch(() => props.report, () => {
9797
init();

web/server/vue-cli/src/components/Report/SelectSameReportItem.vue

Lines changed: 0 additions & 33 deletions
This file was deleted.

web/server/vue-cli/src/composables/useBugPathLenColor.js

Lines changed: 0 additions & 18 deletions
This file was deleted.
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
function generateRedGreenGradientColor(value, max, opacity) {
2+
const ratio = Math.min(value / max, 1);
3+
var red = Math.round(ratio * 220);
4+
var green = Math.round((1 - ratio) * 180 + 40);
5+
var blue = 40;
6+
return "rgba(" + parseInt(red) + "," + parseInt(green) + "," + blue
7+
+ "," + opacity + ")";
8+
}
9+
10+
export function useGradientColor() {
11+
const getGradientColor = (length, limit = 20) => {
12+
return generateRedGreenGradientColor(length, limit, 1);
13+
};
14+
15+
return { getGradientColor };
16+
}

web/server/vue-cli/src/views/Products.vue

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,10 @@
8989

9090
<template #item.runCount="{ item }">
9191
<v-chip
92-
:color="getRunCountColor(item.runCount)"
92+
class="text-black"
93+
:color="gradientColor.getGradientColor(item.runCount, 500)"
94+
size="small"
95+
variant="flat"
9396
>
9497
{{ item.runCount }}
9598
</v-chip>
@@ -137,13 +140,16 @@ import { computed, onMounted, ref, watch } from "vue";
137140
import { useRoute, useRouter } from "vue-router";
138141
139142
import { useDateUtils } from "@/composables/useDateUtils";
143+
import { useGradientColor } from "@/composables/useGradientColor";
140144
141145
import _ from "lodash";
142146
143147
const route = useRoute();
144148
const router = useRouter();
149+
const gradientColor = useGradientColor();
145150
const { prettifyDate } = useDateUtils();
146151
152+
147153
import { authService, handleThriftError, prodService } from "@cc-api";
148154
import { Permission } from "@cc/shared-types";
149155
@@ -330,16 +336,6 @@ function deleteProduct(product) {
330336
products.value = products.value.filter(p => p.id !== product.id);
331337
}
332338
333-
function getRunCountColor(runCount) {
334-
if (runCount > 500) {
335-
return "red";
336-
} else if (runCount > 200) {
337-
return "orange";
338-
} else {
339-
return "green";
340-
}
341-
}
342-
343339
function initializeComponent() {
344340
productNameSearch.value = route.query["name"] || null;
345341

web/server/vue-cli/src/views/Reports.vue

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,12 @@
162162
</template>
163163

164164
<template #item.bugPathLength="{ item }">
165-
<v-chip :color="getBugPathLenColor(item.bugPathLength)">
165+
<v-chip
166+
class="text-black"
167+
:color="getBugPathLenColor(item.bugPathLength)"
168+
size="small"
169+
variant="flat"
170+
>
166171
{{ item.bugPathLength }}
167172
</v-chip>
168173
</template>
@@ -288,7 +293,7 @@ import {
288293
} from "@cc/report-server-types";
289294
import { SET_REPORT_FILTER } from "@/store/mutations.type";
290295
291-
import { useBugPathLenColor } from "@/composables/useBugPathLenColor";
296+
import { useGradientColor } from "@/composables/useGradientColor";
292297
import { useDetectionStatus } from "@/composables/useDetectionStatus";
293298
import {
294299
DetectionStatusIcon,
@@ -306,7 +311,7 @@ const namespace = "report";
306311
const route = useRoute();
307312
const router = useRouter();
308313
const store = useStore();
309-
const bugPathLenColor = useBugPathLenColor();
314+
const gradientColor = useGradientColor();
310315
const detectionStatus = useDetectionStatus();
311316
312317
const itemsPerPageOptions = [
@@ -804,7 +809,7 @@ function prettifyDate(date) {
804809
}
805810
806811
function getBugPathLenColor(length) {
807-
return bugPathLenColor.getBugPathLenColor(length);
812+
return gradientColor.getGradientColor(length);
808813
}
809814
</script>
810815

0 commit comments

Comments
 (0)