@gooddata/sdk-ui-dashboard 10.8.0-alpha.26 → 10.8.0-alpha.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/__version.d.ts +1 -1
- package/esm/__version.js +1 -1
- package/esm/_staging/sharedHooks/useEventToastMessage.d.ts +19 -0
- package/esm/_staging/sharedHooks/useEventToastMessage.d.ts.map +1 -0
- package/esm/_staging/sharedHooks/useEventToastMessage.js +72 -0
- package/esm/_staging/sharedHooks/useEventToastMessage.js.map +1 -0
- package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/index.d.ts.map +1 -1
- package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/index.js +27 -3
- package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/index.js.map +1 -1
- package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/loadFilterViews.d.ts +4 -0
- package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/loadFilterViews.d.ts.map +1 -0
- package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/loadFilterViews.js +9 -0
- package/esm/model/commandHandlers/dashboard/initializeDashboardHandler/loadFilterViews.js.map +1 -0
- package/esm/model/commandHandlers/filterContext/filterViewHandler.d.ts +9 -0
- package/esm/model/commandHandlers/filterContext/filterViewHandler.d.ts.map +1 -0
- package/esm/model/commandHandlers/filterContext/filterViewHandler.js +94 -0
- package/esm/model/commandHandlers/filterContext/filterViewHandler.js.map +1 -0
- package/esm/model/commandHandlers/index.d.ts.map +1 -1
- package/esm/model/commandHandlers/index.js +6 -0
- package/esm/model/commandHandlers/index.js.map +1 -1
- package/esm/model/commands/base.d.ts +1 -1
- package/esm/model/commands/base.d.ts.map +1 -1
- package/esm/model/commands/filters.d.ts +156 -0
- package/esm/model/commands/filters.d.ts.map +1 -1
- package/esm/model/commands/filters.js +106 -0
- package/esm/model/commands/filters.js.map +1 -1
- package/esm/model/commands/index.d.ts +3 -3
- package/esm/model/commands/index.d.ts.map +1 -1
- package/esm/model/commands/index.js +1 -1
- package/esm/model/commands/index.js.map +1 -1
- package/esm/model/events/base.d.ts +1 -1
- package/esm/model/events/base.d.ts.map +1 -1
- package/esm/model/events/base.js.map +1 -1
- package/esm/model/events/filters.d.ts +179 -1
- package/esm/model/events/filters.d.ts.map +1 -1
- package/esm/model/events/filters.js +131 -0
- package/esm/model/events/filters.js.map +1 -1
- package/esm/model/events/index.d.ts +1 -1
- package/esm/model/events/index.d.ts.map +1 -1
- package/esm/model/events/index.js +1 -1
- package/esm/model/events/index.js.map +1 -1
- package/esm/model/react/useDashboardCommand.d.ts +8 -0
- package/esm/model/react/useDashboardCommand.d.ts.map +1 -1
- package/esm/model/store/config/configSelectors.d.ts +6 -0
- package/esm/model/store/config/configSelectors.d.ts.map +1 -1
- package/esm/model/store/config/configSelectors.js +8 -0
- package/esm/model/store/config/configSelectors.js.map +1 -1
- package/esm/model/store/dashboardStore.d.ts.map +1 -1
- package/esm/model/store/dashboardStore.js +2 -0
- package/esm/model/store/dashboardStore.js.map +1 -1
- package/esm/model/store/filterViews/filterViewsReducers.d.ts +11 -0
- package/esm/model/store/filterViews/filterViewsReducers.d.ts.map +1 -0
- package/esm/model/store/filterViews/filterViewsReducers.js +12 -0
- package/esm/model/store/filterViews/filterViewsReducers.js.map +1 -0
- package/esm/model/store/filterViews/filterViewsReducersSelectors.d.ts +7 -0
- package/esm/model/store/filterViews/filterViewsReducersSelectors.d.ts.map +1 -0
- package/esm/model/store/filterViews/filterViewsReducersSelectors.js +17 -0
- package/esm/model/store/filterViews/filterViewsReducersSelectors.js.map +1 -0
- package/esm/model/store/filterViews/filterViewsState.d.ts +16 -0
- package/esm/model/store/filterViews/filterViewsState.d.ts.map +1 -0
- package/esm/model/store/filterViews/filterViewsState.js +3 -0
- package/esm/model/store/filterViews/filterViewsState.js.map +1 -0
- package/esm/model/store/filterViews/index.d.ts +10 -0
- package/esm/model/store/filterViews/index.d.ts.map +1 -0
- package/esm/model/store/filterViews/index.js +13 -0
- package/esm/model/store/filterViews/index.js.map +1 -0
- package/esm/model/store/index.d.ts +3 -2
- package/esm/model/store/index.d.ts.map +1 -1
- package/esm/model/store/index.js +3 -2
- package/esm/model/store/index.js.map +1 -1
- package/esm/model/store/meta/index.d.ts +4 -0
- package/esm/model/store/meta/index.d.ts.map +1 -1
- package/esm/model/store/meta/metaReducers.d.ts +4 -0
- package/esm/model/store/meta/metaReducers.d.ts.map +1 -1
- package/esm/model/store/meta/metaReducers.js +6 -0
- package/esm/model/store/meta/metaReducers.js.map +1 -1
- package/esm/model/store/meta/metaSelectors.d.ts +20 -8
- package/esm/model/store/meta/metaSelectors.d.ts.map +1 -1
- package/esm/model/store/meta/metaSelectors.js +39 -12
- package/esm/model/store/meta/metaSelectors.js.map +1 -1
- package/esm/model/store/meta/metaState.d.ts +1 -1
- package/esm/model/store/meta/metaState.d.ts.map +1 -1
- package/esm/model/store/meta/metaState.js.map +1 -1
- package/esm/model/store/types.d.ts +2 -0
- package/esm/model/store/types.d.ts.map +1 -1
- package/esm/presentation/filterBar/filterBar/DefaultFilterBarContainer.d.ts.map +1 -1
- package/esm/presentation/filterBar/filterBar/DefaultFilterBarContainer.js +9 -2
- package/esm/presentation/filterBar/filterBar/DefaultFilterBarContainer.js.map +1 -1
- package/esm/presentation/filterBar/filterBar/FiltersConfigurationPanel.d.ts +1 -1
- package/esm/presentation/filterBar/filterBar/FiltersConfigurationPanel.d.ts.map +1 -1
- package/esm/presentation/filterBar/filterBar/FiltersConfigurationPanel.js +47 -67
- package/esm/presentation/filterBar/filterBar/FiltersConfigurationPanel.js.map +1 -1
- package/esm/presentation/filterBar/filterBar/filterViews/AddFilterView.d.ts +6 -0
- package/esm/presentation/filterBar/filterBar/filterViews/AddFilterView.d.ts.map +1 -0
- package/esm/presentation/filterBar/filterBar/filterViews/AddFilterView.js +38 -0
- package/esm/presentation/filterBar/filterBar/filterViews/AddFilterView.js.map +1 -0
- package/esm/presentation/filterBar/filterBar/filterViews/FilterViewDeleteConfirm.d.ts +9 -0
- package/esm/presentation/filterBar/filterBar/filterViews/FilterViewDeleteConfirm.d.ts.map +1 -0
- package/esm/presentation/filterBar/filterBar/filterViews/FilterViewDeleteConfirm.js +14 -0
- package/esm/presentation/filterBar/filterBar/filterViews/FilterViewDeleteConfirm.js.map +1 -0
- package/esm/presentation/filterBar/filterBar/filterViews/FilterViews.d.ts +3 -0
- package/esm/presentation/filterBar/filterBar/filterViews/FilterViews.d.ts.map +1 -0
- package/esm/presentation/filterBar/filterBar/filterViews/FilterViews.js +27 -0
- package/esm/presentation/filterBar/filterBar/filterViews/FilterViews.js.map +1 -0
- package/esm/presentation/filterBar/filterBar/filterViews/FilterViewsList.d.ts +9 -0
- package/esm/presentation/filterBar/filterBar/filterViews/FilterViewsList.d.ts.map +1 -0
- package/esm/presentation/filterBar/filterBar/filterViews/FilterViewsList.js +72 -0
- package/esm/presentation/filterBar/filterBar/filterViews/FilterViewsList.js.map +1 -0
- package/esm/presentation/filterBar/filterBar/filterViews/useFilterViewsToastMessages.d.ts +2 -0
- package/esm/presentation/filterBar/filterBar/filterViews/useFilterViewsToastMessages.d.ts.map +1 -0
- package/esm/presentation/filterBar/filterBar/filterViews/useFilterViewsToastMessages.js +31 -0
- package/esm/presentation/filterBar/filterBar/filterViews/useFilterViewsToastMessages.js.map +1 -0
- package/esm/presentation/localization/bundles/en-US.json +171 -6
- package/esm/sdk-ui-dashboard.d.ts +401 -4
- package/package.json +15 -15
- package/styles/css/configurationPanel.css +7 -0
- package/styles/css/configurationPanel.css.map +1 -1
- package/styles/css/filterBar.css +190 -5
- package/styles/css/filterBar.css.map +1 -1
- package/styles/css/main.css +197 -5
- package/styles/css/main.css.map +1 -1
- package/styles/scss/configurationPanel.scss +9 -0
- package/styles/scss/filterBar.scss +255 -8
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// (C) 2024 GoodData Corporation
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { ConfirmDialog, Typography } from "@gooddata/sdk-ui-kit";
|
|
4
|
+
import { useIntl, FormattedMessage } from "react-intl";
|
|
5
|
+
export const FilterViewDeleteConfirm = ({ filterView, onConfirm, onCancel, }) => {
|
|
6
|
+
const intl = useIntl();
|
|
7
|
+
return (React.createElement(ConfirmDialog, { onSubmit: onConfirm, onCancel: onCancel, isPositive: false, className: "gd-filter-view__delete-dialog s-gd-filter-view__delete-dialog", headline: intl.formatMessage({ id: "filters.filterViews.delete.title" }), submitButtonText: intl.formatMessage({ id: "filters.filterViews.delete.deleteButton" }), cancelButtonText: intl.formatMessage({ id: "filters.filterViews.delete.cancelButton" }) },
|
|
8
|
+
React.createElement(Typography, { tagName: "p" },
|
|
9
|
+
React.createElement(FormattedMessage, { id: "filters.filterViews.delete.body", values: {
|
|
10
|
+
view: filterView.name,
|
|
11
|
+
b: (chunks) => (React.createElement("strong", { className: "gd-filter-view__delete-dialog__item" }, chunks)),
|
|
12
|
+
} }))));
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=FilterViewDeleteConfirm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FilterViewDeleteConfirm.js","sourceRoot":"","sources":["../../../../../src/presentation/filterBar/filterBar/filterViews/FilterViewDeleteConfirm.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAoB,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AASvD,MAAM,CAAC,MAAM,uBAAuB,GAA4C,CAAC,EAC7E,UAAU,EACV,SAAS,EACT,QAAQ,GACX,EAAE,EAAE;IACD,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,OAAO,CACH,oBAAC,aAAa,IACV,QAAQ,EAAE,SAAS,EACnB,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,KAAK,EACjB,SAAS,EAAC,+DAA+D,EACzE,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,kCAAkC,EAAE,CAAC,EACxE,gBAAgB,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,yCAAyC,EAAE,CAAC,EACvF,gBAAgB,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,yCAAyC,EAAE,CAAC;QAEvF,oBAAC,UAAU,IAAC,OAAO,EAAC,GAAG;YACnB,oBAAC,gBAAgB,IACb,EAAE,EAAC,iCAAiC,EACpC,MAAM,EAAE;oBACJ,IAAI,EAAE,UAAU,CAAC,IAAI;oBACrB,CAAC,EAAE,CAAC,MAAiB,EAAE,EAAE,CAAC,CACtB,gCAAQ,SAAS,EAAC,qCAAqC,IAAE,MAAM,CAAU,CAC5E;iBACJ,GACH,CACO,CACD,CACnB,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FilterViews.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/filterBar/filterBar/filterViews/FilterViews.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAc1B,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EA+C/B,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
// (C) 2024 GoodData Corporation
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { FormattedMessage } from "react-intl";
|
|
4
|
+
import cx from "classnames";
|
|
5
|
+
import { DropdownButton } from "@gooddata/sdk-ui-kit";
|
|
6
|
+
import { ConfigurationBubble } from "../../../widget/common/configuration/ConfigurationBubble.js";
|
|
7
|
+
import { useDashboardSelector, selectFilterViews, selectIsInEditMode } from "../../../../model/index.js";
|
|
8
|
+
import { FilterViewsList } from "./FilterViewsList.js";
|
|
9
|
+
import { useFilterViewsToastMessages } from "./useFilterViewsToastMessages.js";
|
|
10
|
+
import { AddFilterView } from "./AddFilterView.js";
|
|
11
|
+
const BUBBLE_ALIGN_POINTS = [{ align: "br tr", offset: { x: -27, y: -10 } }];
|
|
12
|
+
export const FilterViews = () => {
|
|
13
|
+
const [isOpen, setIsOpen] = React.useState(false);
|
|
14
|
+
const onClose = () => setIsOpen(false);
|
|
15
|
+
const [isAddNew, setAddNew] = React.useState(false);
|
|
16
|
+
const isEditMode = useDashboardSelector(selectIsInEditMode);
|
|
17
|
+
const filterViews = useDashboardSelector(selectFilterViews);
|
|
18
|
+
useFilterViewsToastMessages();
|
|
19
|
+
const buttonClassNames = cx("gd-filter-views-button", "gd-button-large", {
|
|
20
|
+
"gd-filter-views-button--open": isOpen,
|
|
21
|
+
});
|
|
22
|
+
return (React.createElement("div", { className: "gd-filter-views" },
|
|
23
|
+
React.createElement(DropdownButton, { onClick: () => setIsOpen(!isOpen), className: buttonClassNames, isOpen: isOpen }, filterViews.length === 0 ? (React.createElement(FormattedMessage, { id: "filters.filterViews.dropdown.buttonEmpty" })) : (React.createElement(FormattedMessage, { id: "filters.filterViews.dropdown.button", values: { count: filterViews?.length ?? 0 } }))),
|
|
24
|
+
isOpen ? (React.createElement(ConfigurationBubble, { classNames: "gd-filters-views__panel", onClose: onClose, alignTo: ".gd-filter-views-button", alignPoints: BUBBLE_ALIGN_POINTS }, isAddNew ? (React.createElement(AddFilterView, { onClose: () => setAddNew(false) })) : (React.createElement(FilterViewsList, { filterViews: filterViews, onAddNew: () => setAddNew(true), onClose: onClose })))) : null,
|
|
25
|
+
isEditMode ? React.createElement("div", { className: "gd-filters-views__panel__divider" }) : null));
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=FilterViews.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FilterViews.js","sourceRoot":"","sources":["../../../../../src/presentation/filterBar/filterBar/filterViews/FilterViews.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAe,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,6DAA6D,CAAC;AAClG,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEzG,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,mBAAmB,GAAkB,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAE5F,MAAM,CAAC,MAAM,WAAW,GAAa,GAAG,EAAE;IACtC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACvC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,UAAU,GAAG,oBAAoB,CAAC,kBAAkB,CAAC,CAAC;IAE5D,MAAM,WAAW,GAAG,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;IAE5D,2BAA2B,EAAE,CAAC;IAE9B,MAAM,gBAAgB,GAAG,EAAE,CAAC,wBAAwB,EAAE,iBAAiB,EAAE;QACrE,8BAA8B,EAAE,MAAM;KACzC,CAAC,CAAC;IAEH,OAAO,CACH,6BAAK,SAAS,EAAC,iBAAiB;QAC5B,oBAAC,cAAc,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,IACzF,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CACxB,oBAAC,gBAAgB,IAAC,EAAE,EAAC,0CAA0C,GAAG,CACrE,CAAC,CAAC,CAAC,CACA,oBAAC,gBAAgB,IACb,EAAE,EAAC,qCAAqC,EACxC,MAAM,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC,EAAE,GAC7C,CACL,CACY;QAChB,MAAM,CAAC,CAAC,CAAC,CACN,oBAAC,mBAAmB,IAChB,UAAU,EAAC,yBAAyB,EACpC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAC,yBAAyB,EACjC,WAAW,EAAE,mBAAmB,IAE/B,QAAQ,CAAC,CAAC,CAAC,CACR,oBAAC,aAAa,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,GAAI,CACrD,CAAC,CAAC,CAAC,CACA,oBAAC,eAAe,IACZ,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAC/B,OAAO,EAAE,OAAO,GAClB,CACL,CACiB,CACzB,CAAC,CAAC,CAAC,IAAI;QACP,UAAU,CAAC,CAAC,CAAC,6BAAK,SAAS,EAAC,kCAAkC,GAAG,CAAC,CAAC,CAAC,IAAI,CACvE,CACT,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { IDashboardFilterView } from "@gooddata/sdk-model";
|
|
3
|
+
export interface IFilterViewsDropdownBodyProps {
|
|
4
|
+
filterViews: IDashboardFilterView[] | undefined;
|
|
5
|
+
onAddNew: () => void;
|
|
6
|
+
onClose: () => void;
|
|
7
|
+
}
|
|
8
|
+
export declare const FilterViewsList: React.FC<IFilterViewsDropdownBodyProps>;
|
|
9
|
+
//# sourceMappingURL=FilterViewsList.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FilterViewsList.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/filterBar/filterBar/filterViews/FilterViewsList.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,oBAAoB,EAAkB,MAAM,qBAAqB,CAAC;AA8E3E,MAAM,WAAW,6BAA6B;IAC1C,WAAW,EAAE,oBAAoB,EAAE,GAAG,SAAS,CAAC;IAChD,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,6BAA6B,CAwFnE,CAAC"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
// (C) 2024 GoodData Corporation
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { FormattedMessage } from "react-intl";
|
|
4
|
+
import { BubbleHoverTrigger, Bubble, Button, Typography, Icon } from "@gooddata/sdk-ui-kit";
|
|
5
|
+
import { objRefToString } from "@gooddata/sdk-model";
|
|
6
|
+
import { useTheme } from "@gooddata/sdk-ui-theme-provider";
|
|
7
|
+
import { useDashboardDispatch, applyFilterView, deleteFilterView, setFilterViewAsDefault, } from "../../../../model/index.js";
|
|
8
|
+
import { FilterViewDeleteConfirm } from "./FilterViewDeleteConfirm.js";
|
|
9
|
+
const HEADER_TOOLTIP_ALIGN_POINTS = [
|
|
10
|
+
{
|
|
11
|
+
align: "br tr",
|
|
12
|
+
offset: { x: -5, y: 0 },
|
|
13
|
+
},
|
|
14
|
+
];
|
|
15
|
+
const ITEM_TOOLTIP_ALIGN_POINTS = [
|
|
16
|
+
{
|
|
17
|
+
align: "br tr",
|
|
18
|
+
offset: { x: -10, y: 2 },
|
|
19
|
+
},
|
|
20
|
+
];
|
|
21
|
+
const SetAsDefaultButton = ({ isDefault, onClick, }) => (React.createElement(Button, { className: "gd-button gd-button-link gd-filter-view__item__button", size: "small", onClick: onClick }, isDefault ? (React.createElement(FormattedMessage, { id: "filters.filterViews.dropdown.unsetAsDefault" })) : (React.createElement(FormattedMessage, { id: "filters.filterViews.dropdown.setAsDefault" }))));
|
|
22
|
+
const DeleteButton = ({ onClick }) => (React.createElement("span", { className: "gd-bubble-trigger-wrapper gd-filter-view__item__delete-button-wrapper" },
|
|
23
|
+
React.createElement(BubbleHoverTrigger, null,
|
|
24
|
+
React.createElement(Button, { className: "gd-button gd-button-link gd-button-icon-only gd-filter-view__item__button gd-filter-view__item__button--delete", iconLeft: "gd-icon-trash", size: "small", onClick: onClick }),
|
|
25
|
+
React.createElement(Bubble, { alignPoints: ITEM_TOOLTIP_ALIGN_POINTS },
|
|
26
|
+
React.createElement(FormattedMessage, { id: "filters.filterViews.add.deleteTooltip" })))));
|
|
27
|
+
const FilterListItem = ({ item, onApply, onDelete, onSetAsDefault }) => {
|
|
28
|
+
const { name, isDefault = false } = item;
|
|
29
|
+
return (React.createElement("div", { className: "gd-filter-view__item" },
|
|
30
|
+
React.createElement(DeleteButton, { onClick: onDelete }),
|
|
31
|
+
React.createElement(SetAsDefaultButton, { isDefault: isDefault, onClick: onSetAsDefault }),
|
|
32
|
+
React.createElement("div", { className: "gd-filter-view__item__value", onClick: onApply },
|
|
33
|
+
React.createElement("span", { className: "gd-filter-view__item__value__title" }, name),
|
|
34
|
+
isDefault ? (React.createElement("span", { className: "gd-filter-view__item__value__suffix" },
|
|
35
|
+
React.createElement(FormattedMessage, { id: "filters.filterViews.dropdown.isDefault" }))) : null)));
|
|
36
|
+
};
|
|
37
|
+
export const FilterViewsList = ({ filterViews, onAddNew, onClose, }) => {
|
|
38
|
+
const theme = useTheme();
|
|
39
|
+
const dispatch = useDashboardDispatch();
|
|
40
|
+
const [filterViewToDelete, setFilterViewToDelete] = React.useState(undefined);
|
|
41
|
+
return (React.createElement(React.Fragment, null,
|
|
42
|
+
filterViewToDelete ? (React.createElement(FilterViewDeleteConfirm, { filterView: filterViewToDelete, onConfirm: () => {
|
|
43
|
+
dispatch(deleteFilterView(filterViewToDelete.ref));
|
|
44
|
+
setFilterViewToDelete(undefined);
|
|
45
|
+
}, onCancel: () => setFilterViewToDelete(undefined) })) : null,
|
|
46
|
+
React.createElement("div", { className: "configuration-panel configuration-panel__filter-view__list" },
|
|
47
|
+
React.createElement("div", { className: "configuration-panel-header" },
|
|
48
|
+
React.createElement(Typography, { tagName: "h3", className: "configuration-panel-header-title" },
|
|
49
|
+
React.createElement("div", { className: "gd-title-with-icon" },
|
|
50
|
+
React.createElement(FormattedMessage, { id: "filters.filterViews.dropdown.title" }),
|
|
51
|
+
React.createElement("span", { className: "gd-bubble-trigger-wrapper" },
|
|
52
|
+
React.createElement(BubbleHoverTrigger, null,
|
|
53
|
+
React.createElement(Icon.QuestionMark, { color: theme?.palette?.complementary?.c7 ?? "#B0BECA", width: 16, height: 16 }),
|
|
54
|
+
React.createElement(Bubble, { alignPoints: HEADER_TOOLTIP_ALIGN_POINTS },
|
|
55
|
+
React.createElement("div", { className: "gd-filter-view__list__tooltip" },
|
|
56
|
+
React.createElement(FormattedMessage, { id: "filters.filterViews.dropdown.tooltip", values: {
|
|
57
|
+
p: (chunks) => React.createElement("p", null, chunks),
|
|
58
|
+
} })))))))),
|
|
59
|
+
React.createElement("div", { className: "configuration-category" }, filterViews && filterViews.length > 0 ? (filterViews.map((filterView) => (React.createElement(FilterListItem, { key: objRefToString(filterView.ref), item: filterView, onApply: () => {
|
|
60
|
+
dispatch(applyFilterView(filterView.ref));
|
|
61
|
+
onClose();
|
|
62
|
+
}, onSetAsDefault: () => {
|
|
63
|
+
dispatch(setFilterViewAsDefault(filterView.ref, !filterView.isDefault));
|
|
64
|
+
onClose();
|
|
65
|
+
}, onDelete: () => setFilterViewToDelete(filterView) })))) : (React.createElement("div", { className: "gd-filter-view__list__empty" },
|
|
66
|
+
React.createElement(FormattedMessage, { id: "filters.filterViews.dropdown.emptyList" })))),
|
|
67
|
+
React.createElement("div", { className: "configuration-panel-footer" },
|
|
68
|
+
React.createElement("div", { className: "configuration-panel-footer__content" },
|
|
69
|
+
React.createElement(Button, { className: "gd-button gd-button gd-button-link", iconLeft: "gd-icon-plus", size: "small", onClick: onAddNew },
|
|
70
|
+
React.createElement(FormattedMessage, { id: "filters.filterViews.dropdown.newButton" })))))));
|
|
71
|
+
};
|
|
72
|
+
//# sourceMappingURL=FilterViewsList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FilterViewsList.js","sourceRoot":"","sources":["../../../../../src/presentation/filterBar/filterBar/filterViews/FilterViewsList.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFilterViewsToastMessages.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/filterBar/filterBar/filterViews/useFilterViewsToastMessages.tsx"],"names":[],"mappings":"AAuCA,eAAO,MAAM,2BAA2B,YAiBvC,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
// (C) 2024 GoodData Corporation
|
|
2
|
+
import { defineMessages } from "react-intl";
|
|
3
|
+
import { isDashboardFilterViewCreationSucceeded, isDashboardFilterViewCreationFailed, isDashboardFilterViewDeletionSucceeded, isDashboardFilterViewDeletionFailed, isDashboardFilterViewApplicationSucceeded, isDashboardFilterViewApplicationFailed, isDashboardFilterViewDefaultStatusChangeSucceeded, isDashboardFilterViewDefaultStatusChangeFailed, } from "../../../../model/index.js";
|
|
4
|
+
import { useEventToastMessage } from "../../../../_staging/sharedHooks/useEventToastMessage.js";
|
|
5
|
+
const messages = defineMessages({
|
|
6
|
+
creationSuccess: { id: "filters.filterViews.toast.viewSaved" },
|
|
7
|
+
creationFailure: { id: "filters.filterViews.toast.viewNotSaved" },
|
|
8
|
+
deletionSuccess: { id: "filters.filterViews.toast.viewDeleted" },
|
|
9
|
+
deletionFailure: { id: "filters.filterViews.toast.viewNotDeleted" },
|
|
10
|
+
applicationSuccess: { id: "filters.filterViews.toast.viewApplied" },
|
|
11
|
+
applicationFailure: { id: "filters.filterViews.toast.viewNotApplied" },
|
|
12
|
+
setAsDefaultSuccess: { id: "filters.filterViews.toast.viewSetAsDefault" },
|
|
13
|
+
setAsDefaultFailure: { id: "filters.filterViews.toast.viewNotSetAsDefault" },
|
|
14
|
+
unsetAsDefaultSuccess: { id: "filters.filterViews.toast.viewUnsetAsDefault" },
|
|
15
|
+
unsetAsDefaultFailure: { id: "filters.filterViews.toast.viewNotUnsetAsDefault" },
|
|
16
|
+
});
|
|
17
|
+
const getChangeDefaultStatusSucceededMessage = (cmd) => cmd.payload.filterView.isDefault ? messages.setAsDefaultSuccess : messages.unsetAsDefaultSuccess;
|
|
18
|
+
const getChangeDefaultStatusFailedMessage = (cmd) => cmd.payload.filterView.isDefault ? messages.unsetAsDefaultFailure : messages.setAsDefaultFailure;
|
|
19
|
+
// this hook handles pushing of toast messages to the message context based on emitted events that are
|
|
20
|
+
// the results of the commands dispatched from the component that uses this hook
|
|
21
|
+
export const useFilterViewsToastMessages = () => {
|
|
22
|
+
useEventToastMessage("success", isDashboardFilterViewCreationSucceeded, messages.creationSuccess);
|
|
23
|
+
useEventToastMessage("error", isDashboardFilterViewCreationFailed, messages.creationFailure);
|
|
24
|
+
useEventToastMessage("success", isDashboardFilterViewDeletionSucceeded, messages.deletionSuccess);
|
|
25
|
+
useEventToastMessage("error", isDashboardFilterViewDeletionFailed, messages.deletionFailure);
|
|
26
|
+
useEventToastMessage("success", isDashboardFilterViewApplicationSucceeded, messages.applicationSuccess);
|
|
27
|
+
useEventToastMessage("error", isDashboardFilterViewApplicationFailed, messages.applicationFailure);
|
|
28
|
+
useEventToastMessage("success", isDashboardFilterViewDefaultStatusChangeSucceeded, getChangeDefaultStatusSucceededMessage);
|
|
29
|
+
useEventToastMessage("error", isDashboardFilterViewDefaultStatusChangeFailed, getChangeDefaultStatusFailedMessage);
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=useFilterViewsToastMessages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFilterViewsToastMessages.js","sourceRoot":"","sources":["../../../../../src/presentation/filterBar/filterBar/filterViews/useFilterViewsToastMessages.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,EAAE,cAAc,EAAqB,MAAM,YAAY,CAAC;AAE/D,OAAO,EACH,sCAAsC,EACtC,mCAAmC,EACnC,sCAAsC,EACtC,mCAAmC,EACnC,yCAAyC,EACzC,sCAAsC,EACtC,iDAAiD,EACjD,8CAA8C,GAGjD,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,0DAA0D,CAAC;AAEhG,MAAM,QAAQ,GAAsC,cAAc,CAAC;IAC/D,eAAe,EAAE,EAAE,EAAE,EAAE,qCAAqC,EAAE;IAC9D,eAAe,EAAE,EAAE,EAAE,EAAE,wCAAwC,EAAE;IACjE,eAAe,EAAE,EAAE,EAAE,EAAE,uCAAuC,EAAE;IAChE,eAAe,EAAE,EAAE,EAAE,EAAE,0CAA0C,EAAE;IACnE,kBAAkB,EAAE,EAAE,EAAE,EAAE,uCAAuC,EAAE;IACnE,kBAAkB,EAAE,EAAE,EAAE,EAAE,0CAA0C,EAAE;IACtE,mBAAmB,EAAE,EAAE,EAAE,EAAE,4CAA4C,EAAE;IACzE,mBAAmB,EAAE,EAAE,EAAE,EAAE,+CAA+C,EAAE;IAC5E,qBAAqB,EAAE,EAAE,EAAE,EAAE,8CAA8C,EAAE;IAC7E,qBAAqB,EAAE,EAAE,EAAE,EAAE,iDAAiD,EAAE;CACnF,CAAC,CAAC;AAEH,MAAM,sCAAsC,GAAG,CAAC,GAAoD,EAAE,EAAE,CACpG,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC;AAErG,MAAM,mCAAmC,GAAG,CAAC,GAAiD,EAAE,EAAE,CAC9F,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC;AAErG,sGAAsG;AACtG,gFAAgF;AAChF,MAAM,CAAC,MAAM,2BAA2B,GAAG,GAAG,EAAE;IAC5C,oBAAoB,CAAC,SAAS,EAAE,sCAAsC,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC;IAClG,oBAAoB,CAAC,OAAO,EAAE,mCAAmC,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC;IAC7F,oBAAoB,CAAC,SAAS,EAAE,sCAAsC,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC;IAClG,oBAAoB,CAAC,OAAO,EAAE,mCAAmC,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC;IAC7F,oBAAoB,CAAC,SAAS,EAAE,yCAAyC,EAAE,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IACxG,oBAAoB,CAAC,OAAO,EAAE,sCAAsC,EAAE,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IACnG,oBAAoB,CAChB,SAAS,EACT,iDAAiD,EACjD,sCAAsC,CACzC,CAAC;IACF,oBAAoB,CAChB,OAAO,EACP,8CAA8C,EAC9C,mCAAmC,CACtC,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -404,35 +404,45 @@
|
|
|
404
404
|
"limit": 0
|
|
405
405
|
},
|
|
406
406
|
"filters.configurationPanel.crossFiltering.toggle": {
|
|
407
|
-
"value": "
|
|
407
|
+
"value": "Cross-filtering",
|
|
408
408
|
"comment": "Filters Configuration - label for toggle that disables or enables cross-filtering.",
|
|
409
409
|
"limit": 0
|
|
410
410
|
},
|
|
411
411
|
"filters.configurationPanel.crossFiltering.toggle.tooltip": {
|
|
412
|
-
"value": "
|
|
412
|
+
"value": "Allow users to filter the dashboard by clicking data points in visualizations.",
|
|
413
413
|
"comment": "Filters Configuration - tooltip for toggle that disables or enables cross-filtering.",
|
|
414
414
|
"limit": 0
|
|
415
415
|
},
|
|
416
416
|
"filters.configurationPanel.userFilterReset.toggle": {
|
|
417
|
-
"value": "
|
|
417
|
+
"value": "Reset",
|
|
418
418
|
"comment": "Filters Configuration - label for toggle that disables or enables user reset of filters.",
|
|
419
419
|
"limit": 0
|
|
420
420
|
},
|
|
421
421
|
"filters.configurationPanel.userFilterReset.toggle.tooltip": {
|
|
422
|
-
"value": "Allow users to reset filters to
|
|
422
|
+
"value": "Allow users to reset all filters to default.",
|
|
423
423
|
"comment": "Filters Configuration - tooltip for toggle that disables or enables user reset of filters.",
|
|
424
424
|
"limit": 0
|
|
425
425
|
},
|
|
426
426
|
"filters.configurationPanel.userFilterSave.toggle": {
|
|
427
|
-
"value": "
|
|
427
|
+
"value": "Auto-save last state",
|
|
428
428
|
"comment": "Filters Configuration - label for toggle that disables or enables user save of filters.",
|
|
429
429
|
"limit": 0
|
|
430
430
|
},
|
|
431
431
|
"filters.configurationPanel.userFilterSave.toggle.tooltip": {
|
|
432
|
-
"value": "
|
|
432
|
+
"value": "Allow auto-save of the filters' last state. When users return, their filters will remain as they left them.",
|
|
433
433
|
"comment": "Filters Configuration - tooltip for toggle that disables or enables user save of filters.",
|
|
434
434
|
"limit": 0
|
|
435
435
|
},
|
|
436
|
+
"filters.configurationPanel.filterViews.toggle": {
|
|
437
|
+
"value": "Saved views",
|
|
438
|
+
"comment": "Filters Configuration - label for toggle that disables or enables filter views.",
|
|
439
|
+
"limit": 0
|
|
440
|
+
},
|
|
441
|
+
"filters.configurationPanel.filterViews.toggle.tooltip": {
|
|
442
|
+
"value": "<p>Allows users to save filters state as a personal views they can return to later.</p><p>Only the user who saved the view can access it and set it as their default view.</p>",
|
|
443
|
+
"comment": "Filters Configuration - tooltip for toggle that disables or enables filter views. Do not translate <p> and </p> tags.",
|
|
444
|
+
"limit": 0
|
|
445
|
+
},
|
|
436
446
|
"kpi.noData": {
|
|
437
447
|
"value": "No data for current filter settings. Try changing the filters.",
|
|
438
448
|
"comment": "",
|
|
@@ -2368,5 +2378,160 @@
|
|
|
2368
2378
|
"value": "Date dataset not available: The <strong>{dateFilterTitle}</strong> filter is already using this date dataset.",
|
|
2369
2379
|
"comment": "Do not translate variable enclosed in {}.",
|
|
2370
2380
|
"limit": 0
|
|
2381
|
+
},
|
|
2382
|
+
"filters.filterViews.dropdown.buttonEmpty": {
|
|
2383
|
+
"value": "My views",
|
|
2384
|
+
"comment": "Title of the dropdown button that opens list of filter views (saved values) saved by the user.",
|
|
2385
|
+
"limit": 0
|
|
2386
|
+
},
|
|
2387
|
+
"filters.filterViews.dropdown.button": {
|
|
2388
|
+
"value": "My views ({count})",
|
|
2389
|
+
"comment": "Title of the dropdown button that opens list of filter views (saved values) saved by the user. Do not translate {count} placeholder.",
|
|
2390
|
+
"limit": 0
|
|
2391
|
+
},
|
|
2392
|
+
"filters.filterViews.dropdown.title": {
|
|
2393
|
+
"value": "My saved views",
|
|
2394
|
+
"comment": "Title of the dropdown with list of filter views (saved values) saved by the user.",
|
|
2395
|
+
"limit": 0
|
|
2396
|
+
},
|
|
2397
|
+
"filters.filterViews.dropdown.setAsDefault": {
|
|
2398
|
+
"value": "Set as default",
|
|
2399
|
+
"comment": "Label of button that sets the filter view as default one.",
|
|
2400
|
+
"limit": 0
|
|
2401
|
+
},
|
|
2402
|
+
"filters.filterViews.dropdown.unsetAsDefault": {
|
|
2403
|
+
"value": "Unset as default",
|
|
2404
|
+
"comment": "Label of button that unsets the filter view as default one.",
|
|
2405
|
+
"limit": 0
|
|
2406
|
+
},
|
|
2407
|
+
"filters.filterViews.dropdown.isDefault": {
|
|
2408
|
+
"value": "(default)",
|
|
2409
|
+
"comment": "Text displayed next to the name of the filter view if it was marked as a default one.",
|
|
2410
|
+
"limit": 0
|
|
2411
|
+
},
|
|
2412
|
+
"filters.filterViews.dropdown.tooltip": {
|
|
2413
|
+
"value": "<p>Views are saved sets of filters that let you quickly return to a specific filter state.</p><p>If you set a view as the default, it will apply automatically every time you open the dashboard.</p>",
|
|
2414
|
+
"comment": "Tooltip of saved views dropdown. Do not translate <p> and </p> tags.",
|
|
2415
|
+
"limit": 0
|
|
2416
|
+
},
|
|
2417
|
+
"filters.filterViews.dropdown.newButton": {
|
|
2418
|
+
"value": "Create view",
|
|
2419
|
+
"comment": "Label of button that adds a new item to the list",
|
|
2420
|
+
"limit": 0
|
|
2421
|
+
},
|
|
2422
|
+
"filters.filterViews.dropdown.emptyList": {
|
|
2423
|
+
"value": "You haven't saved any views for this dashboard.",
|
|
2424
|
+
"comment": "Text shown when list of views does not have any items in it.",
|
|
2425
|
+
"limit": 0
|
|
2426
|
+
},
|
|
2427
|
+
"filters.filterViews.toast.viewSaved": {
|
|
2428
|
+
"value": "Great! Your view is saved.",
|
|
2429
|
+
"comment": "Text shown when filter view was saved.",
|
|
2430
|
+
"limit": 0
|
|
2431
|
+
},
|
|
2432
|
+
"filters.filterViews.toast.viewDeleted": {
|
|
2433
|
+
"value": "Great! We deleted your view.",
|
|
2434
|
+
"comment": "Text shown when filter view was deleted.",
|
|
2435
|
+
"limit": 0
|
|
2436
|
+
},
|
|
2437
|
+
"filters.filterViews.toast.viewApplied": {
|
|
2438
|
+
"value": "Great! Your view is applied.",
|
|
2439
|
+
"comment": "Text shown when filter view was applied.",
|
|
2440
|
+
"limit": 0
|
|
2441
|
+
},
|
|
2442
|
+
"filters.filterViews.toast.viewSetAsDefault": {
|
|
2443
|
+
"value": "Great! Your view is set as default.",
|
|
2444
|
+
"comment": "Text shown when filter view was saved as a default one.",
|
|
2445
|
+
"limit": 0
|
|
2446
|
+
},
|
|
2447
|
+
"filters.filterViews.toast.viewUnsetAsDefault": {
|
|
2448
|
+
"value": "Great! Your view is no longer set as default.",
|
|
2449
|
+
"comment": "Text shown when filter view was saved as a default one.",
|
|
2450
|
+
"limit": 0
|
|
2451
|
+
},
|
|
2452
|
+
"filters.filterViews.toast.viewNotSaved": {
|
|
2453
|
+
"value": "Failure! Your view was not saved. Please try again.",
|
|
2454
|
+
"comment": "Text shown when filter view was not saved.",
|
|
2455
|
+
"limit": 0
|
|
2456
|
+
},
|
|
2457
|
+
"filters.filterViews.toast.viewNotDeleted": {
|
|
2458
|
+
"value": "Failure! Your view was not deleted. Please try again.",
|
|
2459
|
+
"comment": "Text shown when filter view was not deleted.",
|
|
2460
|
+
"limit": 0
|
|
2461
|
+
},
|
|
2462
|
+
"filters.filterViews.toast.viewNotSetAsDefault": {
|
|
2463
|
+
"value": "Failure! Your view was not set as default. Please try again.",
|
|
2464
|
+
"comment": "Text shown when filter view was not saved as a default one.",
|
|
2465
|
+
"limit": 0
|
|
2466
|
+
},
|
|
2467
|
+
"filters.filterViews.toast.viewNotUnsetAsDefault": {
|
|
2468
|
+
"value": "Failure! Your view is still set as default. Please try again.",
|
|
2469
|
+
"comment": "Text shown when filter view was not saved as a default one.",
|
|
2470
|
+
"limit": 0
|
|
2471
|
+
},
|
|
2472
|
+
"filters.filterViews.toast.viewNotApplied": {
|
|
2473
|
+
"value": "Failure! Your view was not applied. Please try again.",
|
|
2474
|
+
"comment": "Text shown when filter view was not applied.",
|
|
2475
|
+
"limit": 0
|
|
2476
|
+
},
|
|
2477
|
+
"filters.filterViews.add.title": {
|
|
2478
|
+
"value": "Create view",
|
|
2479
|
+
"comment": "Title of the dropdown with form that creates a new saved filter view.",
|
|
2480
|
+
"limit": 0
|
|
2481
|
+
},
|
|
2482
|
+
"filters.filterViews.add.nameLabel": {
|
|
2483
|
+
"value": "Name",
|
|
2484
|
+
"comment": "Label of the input field used to enter the name of the saved filter view.",
|
|
2485
|
+
"limit": 0
|
|
2486
|
+
},
|
|
2487
|
+
"filters.filterViews.add.namePlaceholder": {
|
|
2488
|
+
"value": "Untitled view",
|
|
2489
|
+
"comment": "Placeholder of the input field used to enter the name of the saved filter view.",
|
|
2490
|
+
"limit": 0
|
|
2491
|
+
},
|
|
2492
|
+
"filters.filterViews.add.setAsDefaultLabel": {
|
|
2493
|
+
"value": "Set as default",
|
|
2494
|
+
"comment": "Label of checkbox that marks the view as a default one.",
|
|
2495
|
+
"limit": 0
|
|
2496
|
+
},
|
|
2497
|
+
"filters.filterViews.add.deleteTooltip": {
|
|
2498
|
+
"value": "Delete",
|
|
2499
|
+
"comment": "Tooltip shown when user hovers over delete item icon.",
|
|
2500
|
+
"limit": 0
|
|
2501
|
+
},
|
|
2502
|
+
"filters.filterViews.add.hint": {
|
|
2503
|
+
"value": "All current dashboard filters will be included.",
|
|
2504
|
+
"comment": "Hint in the form that creates a new dashboard filter view.",
|
|
2505
|
+
"limit": 0
|
|
2506
|
+
},
|
|
2507
|
+
"filters.filterViews.add.saveButton": {
|
|
2508
|
+
"value": "Save",
|
|
2509
|
+
"comment": "Label of the button that saves the form.",
|
|
2510
|
+
"limit": 0
|
|
2511
|
+
},
|
|
2512
|
+
"filters.filterViews.add.cancelButton": {
|
|
2513
|
+
"value": "Cancel",
|
|
2514
|
+
"comment": "Label of the button that cancels the form changes.",
|
|
2515
|
+
"limit": 0
|
|
2516
|
+
},
|
|
2517
|
+
"filters.filterViews.delete.title": {
|
|
2518
|
+
"value": "Delete view?",
|
|
2519
|
+
"comment": "Label of the dialog that confirms deletion of the filter view entity.",
|
|
2520
|
+
"limit": 0
|
|
2521
|
+
},
|
|
2522
|
+
"filters.filterViews.delete.body": {
|
|
2523
|
+
"value": "Your view <b>{view}</b> will be permanently deleted.",
|
|
2524
|
+
"comment": "The text shown in the body of the dialog that confirms deletion of the filter view entity. Do not translate tags <b> and </b> and placeholder {view} that will be replaced with the name of the deleted filter view in the runtime.",
|
|
2525
|
+
"limit": 0
|
|
2526
|
+
},
|
|
2527
|
+
"filters.filterViews.delete.deleteButton": {
|
|
2528
|
+
"value": "Delete",
|
|
2529
|
+
"comment": "Label of the button that deletes the filter view.",
|
|
2530
|
+
"limit": 0
|
|
2531
|
+
},
|
|
2532
|
+
"filters.filterViews.delete.cancelButton": {
|
|
2533
|
+
"value": "Cancel",
|
|
2534
|
+
"comment": "Label of the button that cancels and closes the dialog.",
|
|
2535
|
+
"limit": 0
|
|
2371
2536
|
}
|
|
2372
2537
|
}
|