Provisioning: Add feature toggle (#102436)

* Provisioning: Add feature toggle

* Provisioning: Use isManagedRepository

* Fix toggle
pull/102380/head^2
Alex Khomenko 3 months ago committed by GitHub
parent 9a556fbde6
commit 229f37edb0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 3
      public/app/features/dashboard-scene/saving/provisioned/utils/getProvisionedMeta.ts
  2. 3
      public/app/features/dashboard-scene/scene/DashboardScene.tsx
  3. 4
      public/app/features/dashboard-scene/scene/NavToolbarActions.tsx
  4. 2
      public/app/features/dashboard-scene/settings/GeneralSettingsEditView.tsx
  5. 2
      public/app/features/dashboard/dashgrid/DashboardEmpty.tsx
  6. 6
      public/app/features/provisioning/hooks/useIsProvisionedNG.ts

@ -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'))
);

Loading…
Cancel
Save