added getFilesSettings

This commit is contained in:
Artem Tarasov 2020-09-01 01:05:28 +03:00
parent 29d9f21d05
commit 461cb53b4e
6 changed files with 96 additions and 37 deletions

View File

@ -72,7 +72,7 @@ class PureTreeSettings extends React.Component {
}
renderTreeNode = () => {
const { t, thirdParty, isAdmin } = this.props;
const { t, enableThirdParty, isAdmin } = this.props;
return (
<TreeNode
id="settings"
@ -98,7 +98,7 @@ class PureTreeSettings extends React.Component {
/>
: null
}
{ thirdParty
{ enableThirdParty
? <TreeNode
selectable={true}
className="settings-node"
@ -160,13 +160,13 @@ function mapStateToProps(state) {
const {
expandedSetting,
thirdParty
enableThirdParty
} = settingsTree;
return {
selectedTreeNode,
expandedSetting,
thirdParty,
enableThirdParty,
isAdmin
}
}

View File

@ -69,33 +69,32 @@ class SectionBodyContent extends React.Component {
}
onChangeThirdParty = () => {
const { thirdParty, setThirdParty } = this.props;
setThirdParty(!thirdParty);
const { enableThirdParty, setThirdParty } = this.props;
setThirdParty(!enableThirdParty);
}
renderAdminSettings = () => {
const { intermediateVersion } = this.state;
const {
thirdParty,
enableThirdParty,
storeForceSave,
t
} = this.props;
return (
<StyledSettings>
<ToggleButton
isDisabled={false}
className="toggle-btn"
label={t('intermediateVersion')}
onChange={this.onChangeStoreForceSave}
isChecked={intermediateVersion}
isChecked={storeForceSave}
/>
<ToggleButton
isDisabled={false}
className="toggle-btn"
label={t('thirdPartyBtn')}
onChange={this.onChangeThirdParty}
isChecked={thirdParty}
isChecked={enableThirdParty}
/>
</StyledSettings>
)
@ -130,31 +129,26 @@ class SectionBodyContent extends React.Component {
recent,
favorites,
templates,
keepIntermediate,
updateIfExist,
confirmDelete,
storeOriginalFiles,
forceSave,
t
} = this.props;
const {
originalCopy,
updateExist,
displayNotification
} = this.state;
return (
<StyledSettings>
<ToggleButton
isDisabled={false}
className="toggle-btn"
label={t('originalCopy')}
onChange={this.onChangeOriginalCopy}
isChecked={originalCopy}
isChecked={storeOriginalFiles}
/>
<ToggleButton
isDisabled={false}
className="toggle-btn"
label={t('displayNotification')}
onChange={this.onChangeDeleteConfirm}
isChecked={displayNotification}
isChecked={confirmDelete}
/>
<ToggleButton
isDisabled={true}
@ -179,18 +173,16 @@ class SectionBodyContent extends React.Component {
/>
<Heading className="heading" level={2} size="small">{t('storingFileVersion')}</Heading>
<ToggleButton
isDisabled={false}
className="toggle-btn"
label={t('updateOrCreate')}
onChange={this.onChangeUpdateIfExist}
isChecked={updateExist}
isChecked={updateIfExist}
/>
<ToggleButton
isDisabled={true}
className="toggle-btn"
label={t('keepIntermediateVersion')}
onChange={(e)=>console.log(e)}
isChecked={keepIntermediate}
isChecked={forceSave}
/>
</StyledSettings>
);
@ -201,14 +193,14 @@ class SectionBodyContent extends React.Component {
}
render() {
const { setting, thirdParty, isAdmin } = this.props;
const { setting, enableThirdParty, isAdmin } = this.props;
let content;
if(setting === 'admin' && isAdmin)
content = this.renderAdminSettings();
if(setting === 'common')
content = this.renderCommonSettings();
if(setting === 'thirdParty' && thirdParty )
if(setting === 'thirdParty' && enableThirdParty )
content = this.renderClouds();
return content;
}
@ -217,12 +209,24 @@ class SectionBodyContent extends React.Component {
function mapStateToProps(state) {
const { settingsTree, selectedTreeNode } = state.files;
const { isAdmin } = state.auth.user;
const { thirdParty } = settingsTree;
const {
storeOriginalFiles,
confirmDelete,
updateIfExist,
forceSave,
storeForceSave,
enableThirdParty
} = settingsTree;
return {
thirdParty,
isAdmin,
selectedTreeNode
selectedTreeNode,
storeOriginalFiles,
confirmDelete,
updateIfExist,
forceSave,
storeForceSave,
enableThirdParty
}
}

View File

@ -9,7 +9,7 @@ import {
ArticleMainButtonContent
} from "../../Article";
import { SectionHeaderContent, SectionBodyContent } from "./Section";
import { setIsLoading } from '../../../store/files/actions';
import { setIsLoading, getFilesSettings } from '../../../store/files/actions';
import { withTranslation, I18nextProvider } from "react-i18next";
import { createI18N } from "../../../helpers/i18n";
@ -33,6 +33,11 @@ class PureSettings extends React.Component {
}
}
componentDidMount() {
const { getFilesSettings } = this.props;
getFilesSettings();
}
render() {
console.log('Settings render()');
const {
@ -41,7 +46,7 @@ class PureSettings extends React.Component {
templates,
keepIntermediate,
} = this.state;
const { match, t, isLoading, setIsLoading, thirdParty, isAdmin } = this.props;
const { match, t, isLoading, setIsLoading, enableThirdParty, isAdmin } = this.props;
const { setting } = match.params;
const settings = <>
@ -88,7 +93,7 @@ class PureSettings extends React.Component {
</PageLayout>
</>;
return (!thirdParty && setting === 'thirdParty') || (!isAdmin && setting === 'admin')
return (!enableThirdParty && setting === 'thirdParty') || (!isAdmin && setting === 'admin')
? <Error403 />
: settings;
}
@ -108,7 +113,7 @@ const Settings = props => {
function mapStateToProps(state) {
return {
isLoading: state.files.isLoading,
thirdParty: state.files.settingsTree.thirdParty,
enableThirdParty: state.files.settingsTree.enableThirdParty,
isAdmin: state.auth.user.isAdmin
};
}
@ -116,6 +121,7 @@ function mapStateToProps(state) {
export default connect(
mapStateToProps,
{
setIsLoading
setIsLoading,
getFilesSettings
}
)(withRouter(Settings));

View File

@ -43,6 +43,7 @@ export const SET_SELECTED_NODE = "SET_SELECTED_NODE";
export const SET_EXPAND_SETTINGS_TREE = "SET_EXPAND_SETTINGS_TREE";
export const SET_IS_LOADING = "SET_IS_LOADING";
export const SET_THIRD_PARTY = "SET_THIRD_PARTY";
export const SET_FILES_SETTINGS = "SET_FILES_SETTINGS";
export function setFile(file) {
return {
@ -219,6 +220,13 @@ export function setThirdParty(data) {
}
}
export function setFilesSettings(settings) {
return {
type: SET_FILES_SETTINGS,
settings
}
}
export function setFilterUrl(filter) {
const defaultFilter = FilesFilter.getDefault();
const params = [];
@ -485,4 +493,11 @@ export function storeForceSave(data) {
return dispatch => {
return files.storeForceSave(data);
}
}
export function getFilesSettings() {
return dispatch => {
return files.getSettingsFiles()
.then( settings => dispatch(setFilesSettings(settings)));
}
}

View File

@ -23,7 +23,8 @@ import {
SET_SELECTED_NODE,
SET_EXPAND_SETTINGS_TREE,
SET_IS_LOADING,
SET_THIRD_PARTY
SET_THIRD_PARTY,
SET_FILES_SETTINGS
} from "./actions";
import { api } from "asc-web-common";
import { isFileSelected, skipFile, getFilesBySelected } from "./selectors";
@ -172,6 +173,25 @@ const filesReducer = (state = initialState, action) => {
return Object.assign({}, state, {
settingsTree: { ...state.settingsTree, thirdParty: action.data }
})
case SET_FILES_SETTINGS:
const {
storeOriginalFiles,
confirmDelete,
updateIfExist,
forcesave,
storeForcesave,
enableThirdParty
} = action.settings
return Object.assign({}, state, {
settingsTree: { ...state.settingsTree,
storeOriginalFiles,
confirmDelete,
updateIfExist,
forceSave: forcesave,
storeForceSave: storeForcesave,
enableThirdParty
}
})
default:
return state;
}

View File

@ -399,4 +399,18 @@ export function changeDeleteConfirm(val) {
export function storeForceSave(val) {
const data = { set: val };
return request({ method: "put", url: "files/storeforcesave", data });
}
export function forceSave(val) {
const data = { set: val };
return request({ method: "put", url: "files/forcesave", data });
}
export function thirdParty(val) {
const data = { set: val };
return request({ method: "put", url: "files/thirdparty", data });
}
export function getSettingsFiles() {
return request({ method: "get", url: `/files/settings` });
}