This commit is contained in:
@@ -6,9 +6,7 @@ DASHBOARD / KPI / BIZ METRICS
|
|||||||
|
|
||||||
todo:
|
todo:
|
||||||
|
|
||||||
palette colors centralized
|
|
||||||
TODO: Move palette color stuff to it's own file that can be imported in here and in ops-metrics
|
|
||||||
todo: change palette colors to very muted choices as per guide book
|
|
||||||
lt titles of dash items properly
|
lt titles of dash items properly
|
||||||
List one goes to a list filter and sorted appropriately
|
List one goes to a list filter and sorted appropriately
|
||||||
todo: MORE link button click
|
todo: MORE link button click
|
||||||
@@ -37,7 +35,7 @@ todo: when showing a popup warning box error: Could not find one or more icon(s)
|
|||||||
Need to show a warning box to see it in action, maybe delete something and get the are you sure? or maybe it's only the warning type?
|
Need to show a warning box to see it in action, maybe delete something and get the are you sure? or maybe it's only the warning type?
|
||||||
TODO: shorten word "control" in my custom controls to ctl, why waste bytes?
|
TODO: shorten word "control" in my custom controls to ctl, why waste bytes?
|
||||||
TODO: gzErrorBox in widget form will not display if form is not ready and form may not be ready if there is an error? (or is that correct?)
|
TODO: gzErrorBox in widget form will not display if form is not ready and form may not be ready if there is an error? (or is that correct?)
|
||||||
|
todo: ops metrics not showing dates on charts that span more than one day (timeline)
|
||||||
|
|
||||||
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
||||||
@@@@@@@@@@@@@ ROADMAP STAGE 5 - FINALIZE ALL NON BIZ OBJECT SPECIFIC FUNCTIONALITY
|
@@@@@@@@@@@@@ ROADMAP STAGE 5 - FINALIZE ALL NON BIZ OBJECT SPECIFIC FUNCTIONALITY
|
||||||
|
|||||||
60
ayanova/src/api/palette.js
Normal file
60
ayanova/src/api/palette.js
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
//https://colorpalettes.net
|
||||||
|
export default {
|
||||||
|
color: {
|
||||||
|
blue: "#1f77b4",
|
||||||
|
red: "#d62728",
|
||||||
|
orange: "#fe7f0e",
|
||||||
|
green: "#2ca02c",
|
||||||
|
purple: "#9c27b0",
|
||||||
|
black: "#000000",
|
||||||
|
cyan: "#00BCD4",
|
||||||
|
teal: "#009688",
|
||||||
|
primary: "#00205B", //APP Canucks dark blue
|
||||||
|
secondary: "#00843D", //APP canucks green
|
||||||
|
accent: "#db7022", //APP lighter orangey red, more friendly looking though not as much clarity it seems
|
||||||
|
soft_sand: "#f1d3a1",
|
||||||
|
soft_sand_taupe: "#e3dbd9",
|
||||||
|
soft_pale_blue: "#e6eff6",
|
||||||
|
soft_deep_blue: "#89b4c4",
|
||||||
|
soft_green: "#ccdb86",
|
||||||
|
soft_brown: "#c8bcb1",
|
||||||
|
soft_brown_darker: "#8d7053",
|
||||||
|
soft_gray: "#d2d7db"
|
||||||
|
},
|
||||||
|
getBoldPaletteArray(size) {
|
||||||
|
let palette = [
|
||||||
|
this.color.blue,
|
||||||
|
this.color.red,
|
||||||
|
this.color.green,
|
||||||
|
this.color.orange,
|
||||||
|
this.color.purple,
|
||||||
|
this.color.cyan,
|
||||||
|
this.color.teal,
|
||||||
|
this.color.black
|
||||||
|
];
|
||||||
|
let paletteLength = palette.length;
|
||||||
|
let ret = [];
|
||||||
|
for (let i = 0; i < size; i++) {
|
||||||
|
ret.push(palette[i % paletteLength]);
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
},
|
||||||
|
getSoftPaletteArray(size) {
|
||||||
|
let palette = [
|
||||||
|
this.color.soft_sand,
|
||||||
|
this.color.soft_pale_blue,
|
||||||
|
this.color.soft_gray,
|
||||||
|
this.color.soft_green,
|
||||||
|
this.color.soft_brown,
|
||||||
|
this.color.soft_deep_blue,
|
||||||
|
this.color.soft_sand_taupe,
|
||||||
|
this.color.soft_brown_darker
|
||||||
|
];
|
||||||
|
let paletteLength = palette.length;
|
||||||
|
let ret = [];
|
||||||
|
for (let i = 0; i < size; i++) {
|
||||||
|
ret.push(palette[i % paletteLength]);
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -41,6 +41,7 @@
|
|||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import GzDash from "../components/dash-base.vue";
|
import GzDash from "../components/dash-base.vue";
|
||||||
|
import Palette from "../api/palette";
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
GzDash
|
GzDash
|
||||||
@@ -67,7 +68,7 @@ export default {
|
|||||||
{
|
{
|
||||||
label: "",
|
label: "",
|
||||||
data: [2, 4, 6, 8, 10],
|
data: [2, 4, 6, 8, 10],
|
||||||
backgroundColor: getPalette(5)
|
backgroundColor: Palette.getSoftPaletteArray(5)
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
//this is added for my use, not part of chart js, used to get special id value of bar since labels are localized and data is not unique
|
//this is added for my use, not part of chart js, used to get special id value of bar since labels are localized and data is not unique
|
||||||
@@ -101,39 +102,4 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const CHART_PALETTE = {
|
|
||||||
blue: "#1f77b4",
|
|
||||||
red: "#d62728",
|
|
||||||
orange: "#fe7f0e",
|
|
||||||
green: "#2ca02c",
|
|
||||||
purple: "#9c27b0",
|
|
||||||
black: "#000000",
|
|
||||||
cyan: "#00BCD4",
|
|
||||||
teal: "#009688",
|
|
||||||
primary: "#00205B", //APP Canucks dark blue
|
|
||||||
secondary: "#00843D", //APP canucks green
|
|
||||||
accent: "#db7022" //APP lighter orangey red, more friendly looking though not as much clarity it seems
|
|
||||||
};
|
|
||||||
|
|
||||||
///////////////////////
|
|
||||||
//
|
|
||||||
function getPalette(size) {
|
|
||||||
let palette = [
|
|
||||||
CHART_PALETTE.blue,
|
|
||||||
CHART_PALETTE.red,
|
|
||||||
CHART_PALETTE.green,
|
|
||||||
CHART_PALETTE.orange,
|
|
||||||
CHART_PALETTE.purple,
|
|
||||||
CHART_PALETTE.cyan,
|
|
||||||
CHART_PALETTE.teal,
|
|
||||||
CHART_PALETTE.black
|
|
||||||
];
|
|
||||||
let paletteLength = palette.length;
|
|
||||||
let ret = [];
|
|
||||||
for (let i = 0; i < size; i++) {
|
|
||||||
ret.push(palette[i % paletteLength]);
|
|
||||||
}
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -24,6 +24,7 @@
|
|||||||
</gz-dash>
|
</gz-dash>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
|
import Palette from "../api/palette";
|
||||||
import GzDash from "../components/dash-base.vue";
|
import GzDash from "../components/dash-base.vue";
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
@@ -51,8 +52,8 @@ export default {
|
|||||||
],
|
],
|
||||||
datasets: [
|
datasets: [
|
||||||
{
|
{
|
||||||
borderColor: CHART_PALETTE.teal,
|
borderColor: Palette.color.soft_deep_blue,
|
||||||
backgroundColor: CHART_PALETTE.teal,
|
backgroundColor: Palette.color.soft_deep_blue,
|
||||||
fill: false,
|
fill: false,
|
||||||
radius: 5,
|
radius: 5,
|
||||||
hoverRadius: 10,
|
hoverRadius: 10,
|
||||||
@@ -64,39 +65,4 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const CHART_PALETTE = {
|
|
||||||
blue: "#1f77b4",
|
|
||||||
red: "#d62728",
|
|
||||||
orange: "#fe7f0e",
|
|
||||||
green: "#2ca02c",
|
|
||||||
purple: "#9c27b0",
|
|
||||||
black: "#000000",
|
|
||||||
cyan: "#00BCD4",
|
|
||||||
teal: "#009688",
|
|
||||||
primary: "#00205B", //APP Canucks dark blue
|
|
||||||
secondary: "#00843D", //APP canucks green
|
|
||||||
accent: "#db7022" //APP lighter orangey red, more friendly looking though not as much clarity it seems
|
|
||||||
};
|
|
||||||
|
|
||||||
///////////////////////
|
|
||||||
//
|
|
||||||
function getPalette(size) {
|
|
||||||
let palette = [
|
|
||||||
CHART_PALETTE.blue,
|
|
||||||
CHART_PALETTE.red,
|
|
||||||
CHART_PALETTE.green,
|
|
||||||
CHART_PALETTE.orange,
|
|
||||||
CHART_PALETTE.purple,
|
|
||||||
CHART_PALETTE.cyan,
|
|
||||||
CHART_PALETTE.teal,
|
|
||||||
CHART_PALETTE.black
|
|
||||||
];
|
|
||||||
let paletteLength = palette.length;
|
|
||||||
let ret = [];
|
|
||||||
for (let i = 0; i < size; i++) {
|
|
||||||
ret.push(palette[i % paletteLength]);
|
|
||||||
}
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -87,22 +87,8 @@
|
|||||||
//https://blog.hubspot.com/marketing/types-of-graphs-for-data-visualization
|
//https://blog.hubspot.com/marketing/types-of-graphs-for-data-visualization
|
||||||
//https://medium.com/javascript-in-plain-english/exploring-chart-js-e3ba70b07aa4
|
//https://medium.com/javascript-in-plain-english/exploring-chart-js-e3ba70b07aa4
|
||||||
import relativeDatefilterCalculator from "../api/relative-date-filter-calculator.js";
|
import relativeDatefilterCalculator from "../api/relative-date-filter-calculator.js";
|
||||||
|
import Palette from "../api/palette";
|
||||||
const FORM_KEY = "ops-metrics";
|
const FORM_KEY = "ops-metrics";
|
||||||
//Pleasing combo of contrasting colors for lines
|
|
||||||
//from http://perceptualedge.com/articles/b-eye/choosing_colors.pdf
|
|
||||||
const CHART_PALETTE = {
|
|
||||||
blue: "#1f77b4",
|
|
||||||
red: "#d62728",
|
|
||||||
orange: "#fe7f0e",
|
|
||||||
green: "#2ca02c",
|
|
||||||
purple: "#9c27b0",
|
|
||||||
black: "#000000",
|
|
||||||
cyan: "#00BCD4",
|
|
||||||
teal: "#009688",
|
|
||||||
primary: "#00205B", //APP Canucks dark blue
|
|
||||||
secondary: "#00843D", //APP canucks green
|
|
||||||
accent: "#db7022" //APP lighter orangey red, more friendly looking though not as much clarity it seems
|
|
||||||
};
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
async created() {
|
async created() {
|
||||||
@@ -142,6 +128,9 @@ export default {
|
|||||||
{
|
{
|
||||||
gridLines: {
|
gridLines: {
|
||||||
drawOnChartArea: false
|
drawOnChartArea: false
|
||||||
|
},
|
||||||
|
ticks: {
|
||||||
|
beginAtZero: true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -281,7 +270,7 @@ export default {
|
|||||||
datasets: [
|
datasets: [
|
||||||
{
|
{
|
||||||
label: "CPU %",
|
label: "CPU %",
|
||||||
borderColor: CHART_PALETTE.teal,
|
borderColor: Palette.color.soft_sand,
|
||||||
fill: false,
|
fill: false,
|
||||||
radius: 0,
|
radius: 0,
|
||||||
hoverRadius: 10,
|
hoverRadius: 10,
|
||||||
@@ -296,7 +285,7 @@ export default {
|
|||||||
datasets: [
|
datasets: [
|
||||||
{
|
{
|
||||||
label: this.$ay.t("MetricDBSize"),
|
label: this.$ay.t("MetricDBSize"),
|
||||||
borderColor: CHART_PALETTE.blue,
|
borderColor: Palette.color.blue,
|
||||||
fill: false,
|
fill: false,
|
||||||
radius: 0,
|
radius: 0,
|
||||||
hoverRadius: 10,
|
hoverRadius: 10,
|
||||||
@@ -323,7 +312,7 @@ export default {
|
|||||||
//de-lodash
|
//de-lodash
|
||||||
// data: window.$gz. _.map(this.db.topTables, "value"),
|
// data: window.$gz. _.map(this.db.topTables, "value"),
|
||||||
data: this.db.topTables.map(z => z.value),
|
data: this.db.topTables.map(z => z.value),
|
||||||
backgroundColor: getPalette(
|
backgroundColor: Palette.getSoftPaletteArray(
|
||||||
this.db.topTables ? this.db.topTables.length : 3
|
this.db.topTables ? this.db.topTables.length : 3
|
||||||
),
|
),
|
||||||
minBarLength: 5
|
minBarLength: 5
|
||||||
@@ -336,7 +325,7 @@ export default {
|
|||||||
datasets: [
|
datasets: [
|
||||||
{
|
{
|
||||||
label: this.$ay.t("MetricAllocatedMemory"),
|
label: this.$ay.t("MetricAllocatedMemory"),
|
||||||
borderColor: CHART_PALETTE.purple,
|
borderColor: Palette.color.soft_brown_darker,
|
||||||
fill: false,
|
fill: false,
|
||||||
radius: 0,
|
radius: 0,
|
||||||
hoverRadius: 10,
|
hoverRadius: 10,
|
||||||
@@ -345,7 +334,7 @@ export default {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: this.$ay.t("MetricWorkingSet"),
|
label: this.$ay.t("MetricWorkingSet"),
|
||||||
borderColor: CHART_PALETTE.green,
|
borderColor: Palette.color.soft_green,
|
||||||
//borderWidth:4,
|
//borderWidth:4,
|
||||||
// pointStyle: "rectRot",
|
// pointStyle: "rectRot",
|
||||||
radius: 0,
|
radius: 0,
|
||||||
@@ -357,7 +346,7 @@ export default {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: this.$ay.t("MetricPrivateBytes"),
|
label: this.$ay.t("MetricPrivateBytes"),
|
||||||
borderColor: CHART_PALETTE.orange,
|
borderColor: Palette.color.soft_deep_blue,
|
||||||
fill: false,
|
fill: false,
|
||||||
radius: 0,
|
radius: 0,
|
||||||
hoverRadius: 10,
|
hoverRadius: 10,
|
||||||
@@ -372,7 +361,7 @@ export default {
|
|||||||
datasets: [
|
datasets: [
|
||||||
{
|
{
|
||||||
label: this.$ay.t("MetricAttachmentsMB"),
|
label: this.$ay.t("MetricAttachmentsMB"),
|
||||||
borderColor: CHART_PALETTE.purple,
|
borderColor: Palette.color.purple,
|
||||||
fill: false,
|
fill: false,
|
||||||
radius: 0,
|
radius: 0,
|
||||||
hoverRadius: 10,
|
hoverRadius: 10,
|
||||||
@@ -381,7 +370,7 @@ export default {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: this.$ay.t("MetricBackupMB"),
|
label: this.$ay.t("MetricBackupMB"),
|
||||||
borderColor: CHART_PALETTE.orange,
|
borderColor: Palette.color.orange,
|
||||||
fill: false,
|
fill: false,
|
||||||
radius: 0,
|
radius: 0,
|
||||||
hoverRadius: 10,
|
hoverRadius: 10,
|
||||||
@@ -390,7 +379,7 @@ export default {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: this.$ay.t("MetricAvailableDiskSpace"),
|
label: this.$ay.t("MetricAvailableDiskSpace"),
|
||||||
borderColor: CHART_PALETTE.green,
|
borderColor: Palette.color.green,
|
||||||
fill: false,
|
fill: false,
|
||||||
radius: 0,
|
radius: 0,
|
||||||
hoverRadius: 10,
|
hoverRadius: 10,
|
||||||
@@ -405,7 +394,7 @@ export default {
|
|||||||
datasets: [
|
datasets: [
|
||||||
{
|
{
|
||||||
label: this.$ay.t("MetricAttachmentsCount"),
|
label: this.$ay.t("MetricAttachmentsCount"),
|
||||||
borderColor: CHART_PALETTE.blue,
|
borderColor: Palette.color.blue,
|
||||||
fill: false,
|
fill: false,
|
||||||
radius: 0,
|
radius: 0,
|
||||||
hoverRadius: 10,
|
hoverRadius: 10,
|
||||||
@@ -418,27 +407,6 @@ export default {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
///////////////////////
|
|
||||||
//
|
|
||||||
function getPalette(size) {
|
|
||||||
let palette = [
|
|
||||||
CHART_PALETTE.blue,
|
|
||||||
CHART_PALETTE.red,
|
|
||||||
CHART_PALETTE.green,
|
|
||||||
CHART_PALETTE.orange,
|
|
||||||
CHART_PALETTE.purple,
|
|
||||||
CHART_PALETTE.cyan,
|
|
||||||
CHART_PALETTE.teal,
|
|
||||||
CHART_PALETTE.black
|
|
||||||
];
|
|
||||||
let paletteLength = palette.length;
|
|
||||||
let ret = [];
|
|
||||||
for (let i = 0; i < size; i++) {
|
|
||||||
ret.push(palette[i % paletteLength]);
|
|
||||||
}
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
//////////////////////
|
//////////////////////
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
|
|||||||
Reference in New Issue
Block a user