mirror of
https://github.com/grafana/grafana.git
synced 2025-08-02 06:02:49 +08:00
Provisioning: Add feature toggle (#102436)
* Provisioning: Add feature toggle * Provisioning: Use isManagedRepository * Fix toggle
This commit is contained in:
@ -1,3 +1,4 @@
|
||||
import { config } from '@grafana/runtime';
|
||||
import { folderAPI } from 'app/api/clients/folder';
|
||||
import { AnnoKeyManagerIdentity, AnnoKeyManagerKind, ManagerKind } from 'app/features/apiserver/types';
|
||||
import { dispatch } from 'app/store/store';
|
||||
@ -6,7 +7,7 @@ import { dispatch } from 'app/store/store';
|
||||
* Get k8s dashboard metadata based on the selected folder
|
||||
*/
|
||||
export async function getProvisionedMeta(folderUid?: string) {
|
||||
if (!folderUid) {
|
||||
if (!folderUid || !config.featureToggles.provisioning) {
|
||||
return {};
|
||||
}
|
||||
const folderQuery = await dispatch(folderAPI.endpoints.getFolder.initiate({ name: folderUid })).unwrap();
|
||||
|
@ -751,6 +751,9 @@ export class DashboardScene extends SceneObjectBase<DashboardSceneState> impleme
|
||||
}
|
||||
|
||||
isManagedRepository() {
|
||||
if (!config.featureToggles.provisioning) {
|
||||
return false;
|
||||
}
|
||||
return Boolean(this.getManagerKind() === ManagerKind.Repo);
|
||||
}
|
||||
|
||||
|
@ -79,7 +79,7 @@ export function ToolbarActions({ dashboard }: Props) {
|
||||
const isEditingAndShowingDashboard = isEditing && isShowingDashboard;
|
||||
const dashboardNewLayouts = config.featureToggles.dashboardNewLayouts;
|
||||
const folderRepo = useSelector((state) => selectFolderRepository(state, meta.folderUid));
|
||||
const isManaged = Boolean(dashboard.isManaged() || folderRepo);
|
||||
const isManaged = Boolean(dashboard.isManagedRepository() || folderRepo);
|
||||
|
||||
if (!isEditingPanel) {
|
||||
// This adds the presence indicators in enterprise
|
||||
@ -219,7 +219,7 @@ export function ToolbarActions({ dashboard }: Props) {
|
||||
dashboard.onShowAddLibraryPanelDrawer();
|
||||
DashboardInteractions.toolbarAddButtonClicked({ item: 'add_library_panel' });
|
||||
}}
|
||||
disabled={dashboard.isManaged()}
|
||||
disabled={dashboard.isManagedRepository()}
|
||||
/>
|
||||
<Menu.Item
|
||||
key="add-row"
|
||||
|
@ -224,7 +224,7 @@ export class GeneralSettingsEditView
|
||||
<TagsInput id="tags-input" tags={tags} onChange={model.onTagsChange} width={40} />
|
||||
</Field>
|
||||
<Field label={t('dashboard-settings.general.folder-label', 'Folder')}>
|
||||
{dashboard.isManaged() ? (
|
||||
{dashboard.isManagedRepository() ? (
|
||||
<Input readOnly value={meta.folderTitle} />
|
||||
) : (
|
||||
<FolderPicker
|
||||
|
@ -52,7 +52,7 @@ const DashboardEmpty = ({ dashboard, canCreate }: Props) => {
|
||||
}
|
||||
};
|
||||
|
||||
const isProvisioned = dashboard instanceof DashboardScene && dashboard.isManaged();
|
||||
const isProvisioned = dashboard instanceof DashboardScene && dashboard.isManagedRepository();
|
||||
return (
|
||||
<Stack alignItems="center" justifyContent="center">
|
||||
<div className={styles.wrapper}>
|
||||
|
@ -1,3 +1,4 @@
|
||||
import { config } from '@grafana/runtime';
|
||||
import { useGetFrontendSettingsQuery } from 'app/api/clients/provisioning';
|
||||
import { useUrlParams } from 'app/core/navigation/hooks';
|
||||
|
||||
@ -12,8 +13,11 @@ export function useIsProvisionedNG(dashboard: DashboardScene): boolean {
|
||||
const folderRepository = useGetResourceRepository({ folderUid });
|
||||
const { data } = useGetFrontendSettingsQuery();
|
||||
|
||||
if (!config.featureToggles.provisioning) {
|
||||
return false;
|
||||
}
|
||||
return (
|
||||
dashboard.isManaged() ||
|
||||
dashboard.isManagedRepository() ||
|
||||
Boolean(folderRepository) ||
|
||||
Boolean(data?.items.some((item) => item.target === 'instance'))
|
||||
);
|
||||
|
Reference in New Issue
Block a user