mirror of
https://git.mirrors.martin98.com/https://github.com/SigNoz/signoz
synced 2025-07-31 09:32:04 +08:00

* feat: dashboard list view * feat: update sort menu items * feat: wire up add / import dashboard functionss * feat: update import json styles * feat: new dashboard templates modal * feat: add template filter logic * feat: revamp the overview settings modal (#4894) * feat: revamp the overview settings modal * feat: dashboard settings variable landing page * feat: dashboard add variable button settings * feat: add variable modal changes * feat: handle the unsaved changes for general settings * feat: follow ups for side panel section for dashboards (#4906) * feat: changes for tags input * feat: side panel header styles * feat: changes for textbox variable * feat: handle changes for custom type variable * feat: overflow preview vales * feat: overflow preview vales * feat: setup for new dashboard landing page (#4921) * feat: setup for new dashboard landing page * feat: added empty state widgets * feat: added functionality to the configure and the add panel button * feat: tag variables changes * feat: dashboard revamp changes follow ups (#4929) * feat: changes for new panel type modal * fix: added missing / in the breadcrumbs * feat: added dashboard settings menu items * feat: added dashboard rename modal * feat: move full screen handle a few components up * feat: handle rename and copy export changes * feat: minor cleanup * feat: delete button changes * feat: dashboard widget edit page design revamp (#4946) * feat: dashboard edit page base setup * feat: right container design revamp * feat: alerts and thresholds changes right container * feat: right container * feat: fix graph styles * fix: some edits for dashboard edit page * feat: threshold preview changes (#4990) * feat: threshold preview changes * feat: threshold preview changes * feat: threshold discard handler * fix: remove the horizontal scroll from the dashboards landing page * fix: added margin to dashboard widgets (#4991) * fix: rebase conflicts * feat: dashboard panel grouping change for new designs (#4992) * feat: dashboard panel groping base cleanups * feat: move add panel code from inner component to parent component * feat: new dashboard section panel naming modal * feat: dashboard panel groping base cleanups * feat: grip changes * feat: dashboard list page revamp and functionality additions (#4994) * feat: fix types and code structure for list page * feat: dashboard actions * feat: design changes for tags * feat: design changes for tags * feat: update import json styles * feat: added all dashboards row * feat: added configure metadata linking * feat: added local storage changes for dynamic columns * feat: added user metadata display for metadata modal * feat: configure metadata final changes * feat: handle dashboard list loading state * feat: sort and pagination changes for dashboard list view designs (#4996) * feat: minor list view css changes * feat: added sort functionality to the dashboards list * feat: added sort functionality to the dashboards list * feat: added name dropdown in the settings drawer and image as base64 format (#5000) * feat: added name input in settings drawer * feat: discard handler * feat: implemented the name dropdown * feat: added dashboard list page header * fix: margin of dashboard list container * feat: dashboard empty state (#5005) * feat: light mode changes for new dashboard revamp (#5006) * feat: light mode changes for dahsboards list page * feat: dashboard description landing page changes * feat: variable panels landing page light theme changes * feat: dashboard edit panel light mode * feat: added dashboard list error state (#5011) * feat: added missing light mode designs * fix: usability / customer issues (#5014) * fix: [GH-4986]: preview values not getting updated when the query result is empty * fix: [GH-4985]: fix the usability of dahsboards variables drawer * fix: light mode design for component slider * fix: code cleanup * fix: 0 being added in case of no tags * fix: minor styling fixes * fix: handle silent error for dashboard edit mutation (#5022) * fix: handle silent error for dashboard edit mutation * fix: handle silent error for dashboard edit mutation * fix: rbac changes * fix: grip icon color * fix: new dashboards feedback from testing (#5030) * fix: hide create new dashboards from viewer roles * fix: move the elipsis button right of date time picker and make it a button * fix: remove duplicate button from actions for now * fix: last updated by and created by difference * fix: hide intercom for modals * fix: actions popover not closing * fix: temp remove templates modal from normal flow * fix: delete button event propagation * fix: minor UI fixes (#5032) * fix: update dashboards landing page icons * fix: added lock icon for locked dashboards * fix: updated dashboards list page styles * fix: comment out filters code for phase 2 (#5034) * fix: dashboard revamp ui fixes (#5037) * fix: increase the width of the graph section * fix: remove select and next from component slider * Dashboard vqa 1 (#5090) * fix: dashboard VQA pt 1 * fix: dashboard VQA pt 2 * fix: dashboard VQA pt 3 * fix: dashboard VQA pt 4 * fix: dashboard VQA pt 5 * fix: dashboard VQA pt 6 * fix: dashboard VQA pt 7 * fix: added dashboard locked footer and base64 icons (#5091) * fix: added dashboard locked footer * fix: update base64 images * fix: dashboard delete hover and row actions refactor * fix: dashboard vqa pt 2 (#5098) * fix: review comments * fix: alerts plot tag spacing * fix: css variables update --------- Co-authored-by: Vikrant Gupta <vikrant.thomso@gmail.com>
223 lines
4.7 KiB
TypeScript
223 lines
4.7 KiB
TypeScript
/* eslint-disable sonarjs/no-duplicate-string */
|
|
import ROUTES from 'constants/routes';
|
|
|
|
type FiveMin = '5m';
|
|
type TenMin = '10m';
|
|
type FifteenMin = '15m';
|
|
type ThirtyMin = '30m';
|
|
type FortyFiveMin = '45m';
|
|
type OneMin = '1m';
|
|
type ThreeHour = '3h';
|
|
type SixHour = '6h';
|
|
type OneHour = '1h';
|
|
type FourHour = '4h';
|
|
type TwelveHour = '12h';
|
|
type OneDay = '1d';
|
|
type ThreeDay = '3d';
|
|
type FourDay = '4d';
|
|
type TenDay = '10d';
|
|
type OneWeek = '1w';
|
|
type TwoWeek = '2w';
|
|
type SixWeek = '6w';
|
|
type TwoMonths = '2months';
|
|
type Custom = 'custom';
|
|
|
|
export type Time =
|
|
| FiveMin
|
|
| TenMin
|
|
| FifteenMin
|
|
| ThirtyMin
|
|
| OneMin
|
|
| ThreeHour
|
|
| FourHour
|
|
| SixHour
|
|
| OneHour
|
|
| Custom
|
|
| OneWeek
|
|
| SixWeek
|
|
| OneDay
|
|
| FourDay
|
|
| ThreeDay
|
|
| FortyFiveMin
|
|
| TwelveHour
|
|
| TenDay
|
|
| TwoWeek
|
|
| TwoMonths;
|
|
|
|
export type TimeUnit = 'm' | 'h' | 'd' | 'w';
|
|
|
|
export type CustomTimeType = `${string}${TimeUnit}`;
|
|
|
|
export const Options: Option[] = [
|
|
{ value: '5m', label: 'Last 5 minutes' },
|
|
{ value: '15m', label: 'Last 15 minutes' },
|
|
{ value: '30m', label: 'Last 30 minutes' },
|
|
{ value: '1h', label: 'Last 1 hour' },
|
|
{ value: '6h', label: 'Last 6 hours' },
|
|
{ value: '1d', label: 'Last 1 day' },
|
|
{ value: '3d', label: 'Last 3 days' },
|
|
{ value: '1w', label: 'Last 1 week' },
|
|
{ value: 'custom', label: 'Custom' },
|
|
];
|
|
|
|
export interface Option {
|
|
value: Time;
|
|
label: string;
|
|
}
|
|
|
|
export const OLD_RELATIVE_TIME_VALUES = [
|
|
'1min',
|
|
'10min',
|
|
'15min',
|
|
'1hr',
|
|
'30min',
|
|
'45min',
|
|
'5min',
|
|
'1day',
|
|
'3days',
|
|
'4days',
|
|
'10days',
|
|
'1week',
|
|
'2weeks',
|
|
'6weeks',
|
|
'3hr',
|
|
'4hr',
|
|
'6hr',
|
|
'12hr',
|
|
];
|
|
|
|
export const RelativeDurationOptions: Option[] = [
|
|
{ value: '5m', label: 'Last 5 minutes' },
|
|
{ value: '15m', label: 'Last 15 minutes' },
|
|
{ value: '30m', label: 'Last 30 minutes' },
|
|
{ value: '1h', label: 'Last 1 hour' },
|
|
{ value: '6h', label: 'Last 6 hour' },
|
|
{ value: '1d', label: 'Last 1 day' },
|
|
{ value: '3d', label: 'Last 3 days' },
|
|
{ value: '1w', label: 'Last 1 week' },
|
|
];
|
|
|
|
export const RelativeDurationSuggestionOptions: Option[] = [
|
|
{ value: '3h', label: 'Last 3 hours' },
|
|
{ value: '4d', label: 'Last 4 days' },
|
|
{ value: '6w', label: 'Last 6 weeks' },
|
|
{ value: '12h', label: 'Last 12 hours' },
|
|
{ value: '10d', label: 'Last 10 days' },
|
|
{ value: '2w', label: 'Last 2 weeks' },
|
|
{ value: '2months', label: 'Last 2 months' },
|
|
{ value: '1d', label: 'today' },
|
|
];
|
|
export const FixedDurationSuggestionOptions: Option[] = [
|
|
{ value: '45m', label: 'Last 45 mins' },
|
|
{ value: '12h', label: 'Last 12 hours' },
|
|
{ value: '10d', label: 'Last 10 days' },
|
|
{ value: '2w', label: 'Last 2 weeks' },
|
|
{ value: '2months', label: 'Last 2 months' },
|
|
{ value: '1d', label: 'today' },
|
|
];
|
|
|
|
export const convertOldTimeToNewValidCustomTimeFormat = (
|
|
time: string,
|
|
): CustomTimeType => {
|
|
const regex = /^(\d+)([a-zA-Z]+)/;
|
|
const match = regex.exec(time);
|
|
|
|
if (match) {
|
|
let unit = 'm';
|
|
|
|
switch (match[2]) {
|
|
case 'min':
|
|
unit = 'm';
|
|
break;
|
|
case 'hr':
|
|
unit = 'h';
|
|
break;
|
|
case 'day':
|
|
case 'days':
|
|
unit = 'd';
|
|
break;
|
|
case 'week':
|
|
case 'weeks':
|
|
unit = 'w';
|
|
break;
|
|
|
|
default:
|
|
break;
|
|
}
|
|
|
|
return `${match[1]}${unit}` as CustomTimeType;
|
|
}
|
|
|
|
return '30m';
|
|
};
|
|
|
|
export const getDefaultOption = (route: string): Time => {
|
|
if (route === ROUTES.SERVICE_MAP) {
|
|
return RelativeDurationOptions[2].value;
|
|
}
|
|
if (route === ROUTES.APPLICATION) {
|
|
return Options[2].value;
|
|
}
|
|
return Options[2].value;
|
|
};
|
|
|
|
export const getOptions = (routes: string): Option[] => {
|
|
if (routes === ROUTES.SERVICE_MAP) {
|
|
return RelativeDurationOptions;
|
|
}
|
|
return Options;
|
|
};
|
|
|
|
export const routesToHideBreadCrumbs = [ROUTES.SUPPORT, ROUTES.ALL_DASHBOARD];
|
|
|
|
export const routesToSkip = [
|
|
ROUTES.SETTINGS,
|
|
ROUTES.LIST_ALL_ALERT,
|
|
ROUTES.TRACE_DETAIL,
|
|
ROUTES.ALL_CHANNELS,
|
|
ROUTES.USAGE_EXPLORER,
|
|
ROUTES.GET_STARTED,
|
|
ROUTES.GET_STARTED_APPLICATION_MONITORING,
|
|
ROUTES.GET_STARTED_INFRASTRUCTURE_MONITORING,
|
|
ROUTES.GET_STARTED_LOGS_MANAGEMENT,
|
|
ROUTES.GET_STARTED_AWS_MONITORING,
|
|
ROUTES.VERSION,
|
|
ROUTES.ALL_DASHBOARD,
|
|
ROUTES.ORG_SETTINGS,
|
|
ROUTES.INGESTION_SETTINGS,
|
|
ROUTES.API_KEYS,
|
|
ROUTES.ERROR_DETAIL,
|
|
ROUTES.LOGS_PIPELINES,
|
|
ROUTES.BILLING,
|
|
ROUTES.SUPPORT,
|
|
ROUTES.WORKSPACE_LOCKED,
|
|
ROUTES.LOGS,
|
|
ROUTES.MY_SETTINGS,
|
|
ROUTES.LIST_LICENSES,
|
|
ROUTES.LOGS_SAVE_VIEWS,
|
|
ROUTES.LOGS_PIPELINES,
|
|
ROUTES.TRACES_EXPLORER,
|
|
ROUTES.TRACES_SAVE_VIEWS,
|
|
ROUTES.SHORTCUTS,
|
|
ROUTES.INTEGRATIONS,
|
|
ROUTES.DASHBOARD,
|
|
ROUTES.DASHBOARD_WIDGET,
|
|
];
|
|
|
|
export const routesToDisable = [ROUTES.LOGS_EXPLORER, ROUTES.LIVE_LOGS];
|
|
|
|
export interface LocalStorageTimeRange {
|
|
localstorageStartTime: string | null;
|
|
localstorageEndTime: string | null;
|
|
}
|
|
|
|
export interface TimeRange {
|
|
startTime: string;
|
|
endTime: string;
|
|
}
|
|
|
|
export enum LexicalContext {
|
|
CUSTOM_DATE_PICKER = 'customDatePicker',
|
|
CUSTOM_DATE_TIME_INPUT = 'customDateTimeInput',
|
|
}
|