|
@@ -1,16 +1,12 @@
|
|
|
import { ThunkAction } from 'redux-thunk';
|
|
import { ThunkAction } from 'redux-thunk';
|
|
|
-import { Organization, OrganizationPreferences, StoreState } from 'app/types';
|
|
|
|
|
-import { getBackendSrv } from '../../../core/services/backend_srv';
|
|
|
|
|
|
|
+import { Organization, StoreState } from 'app/types';
|
|
|
|
|
+import { getBackendSrv } from 'app/core/services/backend_srv';
|
|
|
|
|
|
|
|
type ThunkResult<R> = ThunkAction<R, StoreState, undefined, any>;
|
|
type ThunkResult<R> = ThunkAction<R, StoreState, undefined, any>;
|
|
|
|
|
|
|
|
export enum ActionTypes {
|
|
export enum ActionTypes {
|
|
|
LoadOrganization = 'LOAD_ORGANISATION',
|
|
LoadOrganization = 'LOAD_ORGANISATION',
|
|
|
- LoadPreferences = 'LOAD_PREFERENCES',
|
|
|
|
|
SetOrganizationName = 'SET_ORGANIZATION_NAME',
|
|
SetOrganizationName = 'SET_ORGANIZATION_NAME',
|
|
|
- SetOrganizationTheme = 'SET_ORGANIZATION_THEME',
|
|
|
|
|
- SetOrganizationHomeDashboard = 'SET_ORGANIZATION_HOME_DASHBOARD',
|
|
|
|
|
- SetOrganizationTimezone = 'SET_ORGANIZATION_TIMEZONE',
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
interface LoadOrganizationAction {
|
|
interface LoadOrganizationAction {
|
|
@@ -18,68 +14,22 @@ interface LoadOrganizationAction {
|
|
|
payload: Organization;
|
|
payload: Organization;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-interface LoadPreferencesAction {
|
|
|
|
|
- type: ActionTypes.LoadPreferences;
|
|
|
|
|
- payload: OrganizationPreferences;
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
interface SetOrganizationNameAction {
|
|
interface SetOrganizationNameAction {
|
|
|
type: ActionTypes.SetOrganizationName;
|
|
type: ActionTypes.SetOrganizationName;
|
|
|
payload: string;
|
|
payload: string;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-interface SetOrganizationThemeAction {
|
|
|
|
|
- type: ActionTypes.SetOrganizationTheme;
|
|
|
|
|
- payload: string;
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-interface SetOrganizationHomeDashboardAction {
|
|
|
|
|
- type: ActionTypes.SetOrganizationHomeDashboard;
|
|
|
|
|
- payload: number;
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-interface SetOrganizationTimezoneAction {
|
|
|
|
|
- type: ActionTypes.SetOrganizationTimezone;
|
|
|
|
|
- payload: string;
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
const organisationLoaded = (organisation: Organization) => ({
|
|
const organisationLoaded = (organisation: Organization) => ({
|
|
|
type: ActionTypes.LoadOrganization,
|
|
type: ActionTypes.LoadOrganization,
|
|
|
payload: organisation,
|
|
payload: organisation,
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
-const preferencesLoaded = (preferences: OrganizationPreferences) => ({
|
|
|
|
|
- type: ActionTypes.LoadPreferences,
|
|
|
|
|
- payload: preferences,
|
|
|
|
|
-});
|
|
|
|
|
-
|
|
|
|
|
export const setOrganizationName = (orgName: string) => ({
|
|
export const setOrganizationName = (orgName: string) => ({
|
|
|
type: ActionTypes.SetOrganizationName,
|
|
type: ActionTypes.SetOrganizationName,
|
|
|
payload: orgName,
|
|
payload: orgName,
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
-export const setOrganizationTheme = (theme: string) => ({
|
|
|
|
|
- type: ActionTypes.SetOrganizationTheme,
|
|
|
|
|
- payload: theme,
|
|
|
|
|
-});
|
|
|
|
|
-
|
|
|
|
|
-export const setOrganizationHomeDashboard = (id: number) => ({
|
|
|
|
|
- type: ActionTypes.SetOrganizationHomeDashboard,
|
|
|
|
|
- payload: id,
|
|
|
|
|
-});
|
|
|
|
|
-
|
|
|
|
|
-export const setOrganizationTimezone = (timezone: string) => ({
|
|
|
|
|
- type: ActionTypes.SetOrganizationTimezone,
|
|
|
|
|
- payload: timezone,
|
|
|
|
|
-});
|
|
|
|
|
-
|
|
|
|
|
-export type Action =
|
|
|
|
|
- | LoadOrganizationAction
|
|
|
|
|
- | LoadPreferencesAction
|
|
|
|
|
- | SetOrganizationNameAction
|
|
|
|
|
- | SetOrganizationThemeAction
|
|
|
|
|
- | SetOrganizationHomeDashboardAction
|
|
|
|
|
- | SetOrganizationTimezoneAction;
|
|
|
|
|
|
|
+export type Action = LoadOrganizationAction | SetOrganizationNameAction;
|
|
|
|
|
|
|
|
export function loadOrganization(): ThunkResult<void> {
|
|
export function loadOrganization(): ThunkResult<void> {
|
|
|
return async dispatch => {
|
|
return async dispatch => {
|
|
@@ -90,13 +40,6 @@ export function loadOrganization(): ThunkResult<void> {
|
|
|
};
|
|
};
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-export function loadOrganizationPreferences(): ThunkResult<void> {
|
|
|
|
|
- return async dispatch => {
|
|
|
|
|
- const preferencesResponse = await getBackendSrv().get('/api/org/preferences');
|
|
|
|
|
- dispatch(preferencesLoaded(preferencesResponse));
|
|
|
|
|
- };
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
export function updateOrganization() {
|
|
export function updateOrganization() {
|
|
|
return async (dispatch, getStore) => {
|
|
return async (dispatch, getStore) => {
|
|
|
const organization = getStore().organization.organization;
|
|
const organization = getStore().organization.organization;
|
|
@@ -106,13 +49,3 @@ export function updateOrganization() {
|
|
|
dispatch(loadOrganization());
|
|
dispatch(loadOrganization());
|
|
|
};
|
|
};
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
-export function updateOrganizationPreferences() {
|
|
|
|
|
- return async (dispatch, getStore) => {
|
|
|
|
|
- const preferences = getStore().organization.preferences;
|
|
|
|
|
-
|
|
|
|
|
- await getBackendSrv().put('/api/org/preferences', preferences);
|
|
|
|
|
-
|
|
|
|
|
- window.location.reload();
|
|
|
|
|
- };
|
|
|
|
|
-}
|
|
|