Merge branch 'feature/virtual-rooms-1.2' of github.com:ONLYOFFICE/AppServer into feature/virtual-rooms-1.2
This commit is contained in:
commit
48ad201583
@ -54,3 +54,11 @@ export function getInvitationLinks() {
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
export function setPortalRename(alias) {
|
||||
return request({
|
||||
method: "put",
|
||||
url: "/portal/portalrename.json",
|
||||
data: { alias },
|
||||
});
|
||||
}
|
||||
|
@ -25,6 +25,67 @@ export function getPortalPasswordSettings(confirmKey = null) {
|
||||
return request(options);
|
||||
}
|
||||
|
||||
export function setPortalPasswordSettings(
|
||||
minLength,
|
||||
upperCase,
|
||||
digits,
|
||||
specSymbols
|
||||
) {
|
||||
return request({
|
||||
method: "put",
|
||||
url: "/settings/security/password.json",
|
||||
data: { minLength, upperCase, digits, specSymbols },
|
||||
});
|
||||
}
|
||||
|
||||
export function setMailDomainSettings(type, domains, inviteUsersAsVisitors) {
|
||||
return request({
|
||||
method: "post",
|
||||
url: "/settings/maildomainsettings.json",
|
||||
data: { type, domains, inviteUsersAsVisitors },
|
||||
});
|
||||
}
|
||||
|
||||
export function setIpRestrictions(data) {
|
||||
return request({
|
||||
method: "put",
|
||||
url: "/settings/iprestrictions.json",
|
||||
data,
|
||||
});
|
||||
}
|
||||
|
||||
export function setIpRestrictionsEnable(data) {
|
||||
return request({
|
||||
method: "put",
|
||||
url: "/settings/iprestrictions/settings.json",
|
||||
data,
|
||||
});
|
||||
}
|
||||
|
||||
export function setMessageSettings(turnOn) {
|
||||
return request({
|
||||
method: "post",
|
||||
url: "/settings/messagesettings.json",
|
||||
data: { turnOn },
|
||||
});
|
||||
}
|
||||
|
||||
export function setCookieSettings(lifeTime) {
|
||||
return request({
|
||||
method: "put",
|
||||
url: "/settings/cookiesettings.json",
|
||||
data: { lifeTime },
|
||||
});
|
||||
}
|
||||
|
||||
export function setLifetimeAuditSettings(loginHistoryLifeTime) {
|
||||
return request({
|
||||
method: "post",
|
||||
url: "/audit/settings/lifetime.json",
|
||||
data: { loginHistoryLifeTime },
|
||||
});
|
||||
}
|
||||
|
||||
export function getPortalTimezones(confirmKey = null) {
|
||||
const options = {
|
||||
method: "get",
|
||||
@ -79,6 +140,24 @@ export function getLogoUrls() {
|
||||
});
|
||||
}
|
||||
|
||||
export function setWhiteLabelSettings(data) {
|
||||
const options = {
|
||||
method: "post",
|
||||
url: "/settings/whitelabel/save.json",
|
||||
data,
|
||||
};
|
||||
|
||||
return request(options);
|
||||
}
|
||||
|
||||
export function restoreWhiteLabelSettings(isDefault) {
|
||||
return request({
|
||||
method: "put",
|
||||
url: "/settings/whitelabel/restore.json",
|
||||
data: { isDefault },
|
||||
});
|
||||
}
|
||||
|
||||
export function getCustomSchemaList() {
|
||||
return request({
|
||||
method: "get",
|
||||
|
@ -324,6 +324,20 @@ class SettingsStore {
|
||||
this.setPasswordSettings(settings);
|
||||
};
|
||||
|
||||
setPortalPasswordSettings = async (
|
||||
minLength,
|
||||
upperCase,
|
||||
digits,
|
||||
specSymbols
|
||||
) => {
|
||||
const settings = await api.settings.setPortalPasswordSettings(
|
||||
minLength,
|
||||
upperCase,
|
||||
digits,
|
||||
specSymbols
|
||||
);
|
||||
};
|
||||
|
||||
setTimezones = (timezones) => {
|
||||
this.timezones = timezones;
|
||||
};
|
||||
|
@ -15,6 +15,7 @@ import withCultureNames from "@appserver/common/hoc/withCultureNames";
|
||||
import LanguageAndTimeZone from "./language-and-time-zone";
|
||||
import CustomTitles from "./custom-titles";
|
||||
import PortalRenaming from "./portal-renaming";
|
||||
import WhiteLabel from "./whitelabel";
|
||||
import { Base } from "@appserver/components/themes";
|
||||
import { Consumer } from "@appserver/components/utils/context";
|
||||
|
||||
@ -221,6 +222,7 @@ class Customization extends React.Component {
|
||||
<div className="category-item-wrapper">
|
||||
<PortalRenaming sectionWidth={context.sectionWidth} />
|
||||
</div>
|
||||
<WhiteLabel />
|
||||
</StyledComponent>
|
||||
)}
|
||||
</Consumer>
|
||||
|
@ -1,7 +1,103 @@
|
||||
import React from "react";
|
||||
import React, { useState } from "react";
|
||||
import { withTranslation } from "react-i18next";
|
||||
import styled from "styled-components";
|
||||
import Loader from "@appserver/components/loader";
|
||||
import HelpButton from "@appserver/components/help-button";
|
||||
import FieldContainer from "@appserver/components/field-container";
|
||||
import TextInput from "@appserver/components/text-input";
|
||||
import SaveCancelButtons from "@appserver/components/save-cancel-buttons";
|
||||
import { inject, observer } from "mobx-react";
|
||||
|
||||
const PortalRenaming = () => {
|
||||
return <div></div>;
|
||||
const StyledComponent = styled.div`
|
||||
.margin-top {
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.margin-left {
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
||||
.settings-block {
|
||||
margin-bottom: 70px;
|
||||
}
|
||||
|
||||
.settings-block {
|
||||
max-width: 350px;
|
||||
}
|
||||
|
||||
.combo-button-label {
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.category-item-heading {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
.category-item-title {
|
||||
font-weight: bold;
|
||||
font-size: 16px;
|
||||
line-height: 22px;
|
||||
margin-right: 4px;
|
||||
}
|
||||
`;
|
||||
|
||||
const PortalRenaming = ({ t, theme, sectionWidth }) => {
|
||||
// todo: Изменить на false
|
||||
const [isLoadedData, setIsLoadedData] = useState(true);
|
||||
|
||||
const onSavePortalRename = () => {
|
||||
// setPortalRename("waw");
|
||||
};
|
||||
|
||||
return !isLoadedData ? (
|
||||
<Loader className="pageLoader" type="rombs" size="40px" />
|
||||
) : (
|
||||
<>
|
||||
<StyledComponent>
|
||||
<div className="category-item-heading">
|
||||
<div className="category-item-title">{t("Portal Renaming")}</div>
|
||||
<HelpButton
|
||||
iconName="static/images/combined.shape.svg"
|
||||
size={12}
|
||||
// tooltipContent={tooltipCustomTitlesTooltip}
|
||||
/>
|
||||
</div>
|
||||
<div className="settings-block">
|
||||
<FieldContainer
|
||||
id="fieldContainerWelcomePage"
|
||||
className="field-container-width"
|
||||
labelText={`${t("New portal name")}:`}
|
||||
isVertical={true}
|
||||
>
|
||||
<TextInput
|
||||
scale={true}
|
||||
// value={greetingTitle}
|
||||
//onChange={this.onChangeGreetingTitle}
|
||||
// isDisabled={isLoadingGreetingSave || isLoadingGreetingRestore}
|
||||
placeholder={`${t("room")}`}
|
||||
/>
|
||||
</FieldContainer>
|
||||
</div>
|
||||
<SaveCancelButtons
|
||||
onSaveClick={onSavePortalRename}
|
||||
saveButtonLabel={t("Common:SaveButton")}
|
||||
cancelButtonLabel={t("Common:CancelButton")}
|
||||
displaySettings={true}
|
||||
sectionWidth={sectionWidth}
|
||||
/>
|
||||
</StyledComponent>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default PortalRenaming;
|
||||
export default inject(({ auth, setup }) => {
|
||||
const { theme } = auth.settingsStore;
|
||||
const { setPortalRename } = setup;
|
||||
|
||||
return {
|
||||
theme,
|
||||
setPortalRename,
|
||||
};
|
||||
})(withTranslation(["Settings", "Common"])(observer(PortalRenaming)));
|
||||
|
@ -219,10 +219,30 @@ class WhiteLabel extends React.Component {
|
||||
};
|
||||
|
||||
onRestoreLogo = () => {
|
||||
const { restoreWhiteLabelSettings } = this.props;
|
||||
console.log("restore button action");
|
||||
restoreWhiteLabelSettings(true);
|
||||
this.setState({ isCanvasProcessing: false });
|
||||
};
|
||||
|
||||
onSave = () => {
|
||||
const { setWhiteLabelSettings } = this.props;
|
||||
const { logoText, logoUrls } = this.state;
|
||||
|
||||
let fd = new FormData();
|
||||
fd.append("logoText", logoText);
|
||||
|
||||
// TODO: Переделать с for
|
||||
for (let i = 0; i < logoUrls.length; i++) {
|
||||
fd.append(`logo[${i}][key]`, i);
|
||||
fd.append(`logo[${i}][value]`, logoUrls[i]);
|
||||
}
|
||||
|
||||
const data = new URLSearchParams(fd);
|
||||
|
||||
setWhiteLabelSettings(data);
|
||||
};
|
||||
|
||||
render() {
|
||||
const { t, theme } = this.props;
|
||||
const {
|
||||
@ -308,7 +328,12 @@ class WhiteLabel extends React.Component {
|
||||
)}
|
||||
</div>
|
||||
{isPortalPaid && (
|
||||
<Link type="action" isHovered onClick={this.onChangeLogo}>
|
||||
<Link
|
||||
type="action"
|
||||
color={theme.studio.settings.common.linkColorHelp}
|
||||
isHovered
|
||||
onClick={this.onChangeLogo}
|
||||
>
|
||||
{t("ChangeLogoButton")}
|
||||
</Link>
|
||||
)}
|
||||
@ -343,7 +368,12 @@ class WhiteLabel extends React.Component {
|
||||
)}
|
||||
</div>
|
||||
{isPortalPaid && (
|
||||
<Link type="action" isHovered onClick={this.onChangeLogo}>
|
||||
<Link
|
||||
type="action"
|
||||
color={theme.studio.settings.common.linkColorHelp}
|
||||
isHovered
|
||||
onClick={this.onChangeLogo}
|
||||
>
|
||||
{t("ChangeLogoButton")}
|
||||
</Link>
|
||||
)}
|
||||
@ -377,7 +407,12 @@ class WhiteLabel extends React.Component {
|
||||
)}
|
||||
</div>
|
||||
{isPortalPaid && (
|
||||
<Link type="action" isHovered onClick={this.onChangeLogo}>
|
||||
<Link
|
||||
type="action"
|
||||
color={theme.studio.settings.common.linkColorHelp}
|
||||
isHovered
|
||||
onClick={this.onChangeLogo}
|
||||
>
|
||||
{t("ChangeLogoButton")}
|
||||
</Link>
|
||||
)}
|
||||
@ -451,7 +486,12 @@ class WhiteLabel extends React.Component {
|
||||
</div>
|
||||
|
||||
{isPortalPaid && (
|
||||
<Link type="action" isHovered onClick={this.onChangeLogo}>
|
||||
<Link
|
||||
type="action"
|
||||
color={theme.studio.settings.common.linkColorHelp}
|
||||
isHovered
|
||||
onClick={this.onChangeLogo}
|
||||
>
|
||||
{t("ChangeLogoButton")}
|
||||
</Link>
|
||||
)}
|
||||
@ -465,7 +505,8 @@ class WhiteLabel extends React.Component {
|
||||
label={t("Common:SaveButton")}
|
||||
isLoading={false}
|
||||
isDisabled={false}
|
||||
onClick={() => console.log("Save button action")}
|
||||
//onClick={() => console.log("Save button action")}
|
||||
onClick={this.onSave}
|
||||
/>
|
||||
|
||||
<Button
|
||||
@ -490,6 +531,8 @@ export default inject(({ setup, auth }) => {
|
||||
getWhiteLabelLogoText,
|
||||
getWhiteLabelLogoSizes,
|
||||
getWhiteLabelLogoUrls,
|
||||
setWhiteLabelSettings,
|
||||
restoreWhiteLabelSettings,
|
||||
} = setup;
|
||||
|
||||
const { logoText, logoSizes: rawSizes, logoUrls } = common.whiteLabel;
|
||||
@ -502,5 +545,7 @@ export default inject(({ setup, auth }) => {
|
||||
getWhiteLabelLogoText,
|
||||
getWhiteLabelLogoSizes,
|
||||
getWhiteLabelLogoUrls,
|
||||
setWhiteLabelSettings,
|
||||
restoreWhiteLabelSettings,
|
||||
};
|
||||
})(withTranslation(["Settings", "Common"])(observer(WhiteLabel)));
|
||||
|
@ -197,12 +197,55 @@ class SettingsSetupStore {
|
||||
this.setLogoUrls(Object.values(res));
|
||||
};
|
||||
|
||||
setWhiteLabelSettings = async (data) => {
|
||||
const response = await api.settings.setWhiteLabelSettings(data);
|
||||
return Promise.resolve(response);
|
||||
};
|
||||
|
||||
restoreWhiteLabelSettings = async (isDefault) => {
|
||||
const res = await api.settings.restoreWhiteLabelSettings(isDefault);
|
||||
};
|
||||
|
||||
setLanguageAndTime = async (lng, timeZoneID) => {
|
||||
const res = await api.settings.setLanguageAndTime(lng, timeZoneID);
|
||||
//console.log("setLanguageAndTime", res);
|
||||
//if (res) this.setPortalLanguageAndTime({ lng, timeZoneID });
|
||||
};
|
||||
|
||||
setPortalRename = async (alias) => {
|
||||
const res = await api.portal.setPortalRename(alias);
|
||||
};
|
||||
|
||||
setMailDomainSettings = async (type, domains, inviteUsersAsVisitors) => {
|
||||
const res = await api.settings.setMailDomainSettings(
|
||||
type,
|
||||
domains,
|
||||
inviteUsersAsVisitors
|
||||
);
|
||||
};
|
||||
|
||||
setIpRestrictions = async (data) => {
|
||||
const res = await api.settings.setIpRestrictions(data);
|
||||
};
|
||||
|
||||
setIpRestrictionsEnable = async (data) => {
|
||||
const res = await api.settings.setIpRestrictionsEnable(data);
|
||||
};
|
||||
|
||||
setMessageSettings = async (turnOn) => {
|
||||
const res = await api.settings.setMessageSettings(turnOn);
|
||||
};
|
||||
|
||||
setCookieSettings = async (lifeTime) => {
|
||||
const res = await api.settings.setCookieSettings(lifeTime);
|
||||
};
|
||||
|
||||
setLifetimeAuditSettings = async (loginHistoryLifeTime) => {
|
||||
const res = await api.settings.setLifetimeAuditSettings(
|
||||
loginHistoryLifeTime
|
||||
);
|
||||
};
|
||||
|
||||
setGreetingTitle = async (greetingTitle) => {
|
||||
const res = await api.settings.setGreetingSettings(greetingTitle);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user