mirror of
https://github.com/astuto/astuto.git
synced 2025-12-16 03:37:56 +01:00
Add some header settings (#199)
* Add show_roadmap_in_header setting * Add collapse_boards_in_header setting (thanks @josh-bitovi)
This commit is contained in:
committed by
GitHub
parent
e7335f5622
commit
b2e9031ed6
@@ -11,6 +11,8 @@ import {
|
||||
TENANT_SETTING_BRAND_DISPLAY_NAME_ONLY,
|
||||
TENANT_SETTING_BRAND_DISPLAY_LOGO_ONLY,
|
||||
TENANT_SETTING_BRAND_DISPLAY_NONE,
|
||||
TENANT_SETTING_COLLAPSE_BOARDS_IN_HEADER_NO_COLLAPSE,
|
||||
TENANT_SETTING_COLLAPSE_BOARDS_IN_HEADER_ALWAYS_COLLAPSE,
|
||||
} from '../../../interfaces/ITenantSetting';
|
||||
import { DangerText, SmallMutedText } from '../../common/CustomTexts';
|
||||
import { getLabel, getValidationMessage } from '../../../helpers/formUtils';
|
||||
@@ -24,6 +26,8 @@ export interface ISiteSettingsGeneralForm {
|
||||
showVoteCount: boolean;
|
||||
showVoteButtonInBoard: boolean;
|
||||
rootBoardId?: string;
|
||||
showRoadmapInHeader: boolean;
|
||||
collapseBoardsInHeader: string;
|
||||
}
|
||||
|
||||
interface Props {
|
||||
@@ -40,6 +44,8 @@ interface Props {
|
||||
brandDisplaySetting: string,
|
||||
locale: string,
|
||||
rootBoardId: number,
|
||||
showRoadmapInHeader: boolean,
|
||||
collapseBoardsInHeader: string,
|
||||
showVoteCount: boolean,
|
||||
showVoteButtonInBoard: boolean,
|
||||
authenticityToken: string
|
||||
@@ -68,6 +74,8 @@ const GeneralSiteSettingsP = ({
|
||||
showVoteCount: originForm.showVoteCount,
|
||||
showVoteButtonInBoard: originForm.showVoteButtonInBoard,
|
||||
rootBoardId: originForm.rootBoardId,
|
||||
showRoadmapInHeader: originForm.showRoadmapInHeader,
|
||||
collapseBoardsInHeader: originForm.collapseBoardsInHeader,
|
||||
},
|
||||
});
|
||||
|
||||
@@ -78,9 +86,11 @@ const GeneralSiteSettingsP = ({
|
||||
data.brandDisplaySetting,
|
||||
data.locale,
|
||||
Number(data.rootBoardId),
|
||||
data.showRoadmapInHeader,
|
||||
data.collapseBoardsInHeader,
|
||||
data.showVoteCount,
|
||||
data.showVoteButtonInBoard,
|
||||
authenticityToken,
|
||||
authenticityToken
|
||||
).then(res => {
|
||||
if (res?.status !== HttpStatus.OK) return;
|
||||
window.location.reload();
|
||||
@@ -170,6 +180,34 @@ const GeneralSiteSettingsP = ({
|
||||
</div>
|
||||
|
||||
<br />
|
||||
<h4>{ I18n.t('site_settings.general.subtitle_header') }</h4>
|
||||
|
||||
<div className="formGroup">
|
||||
<div className="checkboxSwitch">
|
||||
<input {...register('showRoadmapInHeader')} type="checkbox" id="show_roadmap_in_header" />
|
||||
<label htmlFor="show_roadmap_in_header">{ getLabel('tenant_setting', 'show_roadmap_in_header') }</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br />
|
||||
<div className="formGroup">
|
||||
<label htmlFor="collapseBoardsInHeader">{ getLabel('tenant_setting', 'collapse_boards_in_header') }</label>
|
||||
<select
|
||||
{...register('collapseBoardsInHeader')}
|
||||
id="collapseBoardsInHeader"
|
||||
className="selectPicker"
|
||||
>
|
||||
<option value={TENANT_SETTING_COLLAPSE_BOARDS_IN_HEADER_NO_COLLAPSE}>
|
||||
{ I18n.t('site_settings.general.collapse_boards_in_header_no_collapse') }
|
||||
</option>
|
||||
<option value={TENANT_SETTING_COLLAPSE_BOARDS_IN_HEADER_ALWAYS_COLLAPSE}>
|
||||
{ I18n.t('site_settings.general.collapse_boards_in_header_always_collapse') }
|
||||
</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<br />
|
||||
<h4>{ I18n.t('site_settings.general.subtitle_visibility') }</h4>
|
||||
|
||||
<div className="formGroup">
|
||||
<div className="checkboxSwitch">
|
||||
|
||||
@@ -3,7 +3,7 @@ import { connect } from "react-redux";
|
||||
import GeneralSiteSettingsP from "../components/SiteSettings/General/GeneralSiteSettingsP";
|
||||
import { updateTenant } from "../actions/Tenant/updateTenant";
|
||||
import { State } from "../reducers/rootReducer";
|
||||
import { TenantSettingBrandDisplay } from "../interfaces/ITenantSetting";
|
||||
import { TenantSettingBrandDisplay, TenantSettingCollapseBoardsInHeader } from "../interfaces/ITenantSetting";
|
||||
|
||||
const mapStateToProps = (state: State) => ({
|
||||
areUpdating: state.siteSettings.general.areUpdating,
|
||||
@@ -17,6 +17,8 @@ const mapDispatchToProps = (dispatch: any) => ({
|
||||
brandDisplaySetting: TenantSettingBrandDisplay,
|
||||
locale: string,
|
||||
rootBoardId: number,
|
||||
showRoadmapInHeader: boolean,
|
||||
collapseBoardsInHeader: TenantSettingCollapseBoardsInHeader,
|
||||
showVoteCount: boolean,
|
||||
showVoteButtonInBoard: boolean,
|
||||
authenticityToken: string
|
||||
@@ -29,6 +31,8 @@ const mapDispatchToProps = (dispatch: any) => ({
|
||||
show_vote_count: showVoteCount,
|
||||
show_vote_button_in_board: showVoteButtonInBoard,
|
||||
root_board_id: rootBoardId,
|
||||
show_roadmap_in_header: showRoadmapInHeader,
|
||||
collapse_boards_in_header: collapseBoardsInHeader,
|
||||
},
|
||||
locale,
|
||||
authenticityToken,
|
||||
|
||||
@@ -10,11 +10,22 @@ export type TenantSettingBrandDisplay =
|
||||
typeof TENANT_SETTING_BRAND_DISPLAY_LOGO_ONLY |
|
||||
typeof TENANT_SETTING_BRAND_DISPLAY_NONE;
|
||||
|
||||
// Collapse boards in header
|
||||
export const TENANT_SETTING_COLLAPSE_BOARDS_IN_HEADER_NO_COLLAPSE = 'no_collapse';
|
||||
export const TENANT_SETTING_COLLAPSE_BOARDS_IN_HEADER_ALWAYS_COLLAPSE = 'always_collapse';
|
||||
|
||||
export type TenantSettingCollapseBoardsInHeader =
|
||||
typeof TENANT_SETTING_COLLAPSE_BOARDS_IN_HEADER_NO_COLLAPSE |
|
||||
typeof TENANT_SETTING_COLLAPSE_BOARDS_IN_HEADER_ALWAYS_COLLAPSE;
|
||||
|
||||
|
||||
interface ITenantSetting {
|
||||
brand_display?: TenantSettingBrandDisplay;
|
||||
root_board_id?: number;
|
||||
show_vote_count?: boolean;
|
||||
show_vote_button_in_board?: boolean;
|
||||
show_roadmap_in_header?: boolean;
|
||||
collapse_boards_in_header?: TenantSettingCollapseBoardsInHeader;
|
||||
}
|
||||
|
||||
export default ITenantSetting;
|
||||
Reference in New Issue
Block a user