2019-08-13 00:35:39 +03:00
|
|
|
/*
|
|
|
|
Copyright 2019 The Matrix.org Foundation C.I.C.
|
|
|
|
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
you may not use this file except in compliance with the License.
|
|
|
|
You may obtain a copy of the License at
|
|
|
|
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
See the License for the specific language governing permissions and
|
|
|
|
limitations under the License.
|
|
|
|
*/
|
|
|
|
|
|
|
|
import React from 'react';
|
|
|
|
import {_t} from "../../../languageHandler";
|
|
|
|
import {IntegrationManagers} from "../../../integrations/IntegrationManagers";
|
2019-11-21 06:05:32 +03:00
|
|
|
import sdk from '../../../index';
|
|
|
|
import SettingsStore, {SettingLevel} from "../../../settings/SettingsStore";
|
2019-08-13 00:35:39 +03:00
|
|
|
|
|
|
|
export default class SetIntegrationManager extends React.Component {
|
|
|
|
constructor() {
|
|
|
|
super();
|
|
|
|
|
|
|
|
const currentManager = IntegrationManagers.sharedInstance().getPrimaryManager();
|
|
|
|
|
|
|
|
this.state = {
|
|
|
|
currentManager,
|
2019-11-21 06:05:32 +03:00
|
|
|
provisioningEnabled: SettingsStore.getValue("integrationProvisioning"),
|
2019-08-13 00:35:39 +03:00
|
|
|
};
|
|
|
|
}
|
|
|
|
|
2019-11-21 06:05:32 +03:00
|
|
|
onProvisioningToggled = () => {
|
|
|
|
const current = this.state.provisioningEnabled;
|
|
|
|
SettingsStore.setValue("integrationProvisioning", null, SettingLevel.ACCOUNT, !current).catch(err => {
|
|
|
|
console.error("Error changing integration manager provisioning");
|
|
|
|
console.error(err);
|
|
|
|
|
|
|
|
this.setState({provisioningEnabled: current});
|
|
|
|
});
|
|
|
|
this.setState({provisioningEnabled: !current});
|
|
|
|
};
|
|
|
|
|
2019-08-13 00:35:39 +03:00
|
|
|
render() {
|
2019-11-21 06:05:32 +03:00
|
|
|
const ToggleSwitch = sdk.getComponent("views.elements.ToggleSwitch");
|
|
|
|
|
2019-08-13 00:35:39 +03:00
|
|
|
const currentManager = this.state.currentManager;
|
|
|
|
let managerName;
|
|
|
|
let bodyText;
|
|
|
|
if (currentManager) {
|
|
|
|
managerName = `(${currentManager.name})`;
|
|
|
|
bodyText = _t(
|
2019-11-21 05:53:52 +03:00
|
|
|
"Use an Integration Manager <b>(%(serverName)s)</b> to manage bots, widgets, " +
|
2019-08-13 00:35:39 +03:00
|
|
|
"and sticker packs.",
|
|
|
|
{serverName: currentManager.name},
|
|
|
|
{ b: sub => <b>{sub}</b> },
|
|
|
|
);
|
|
|
|
} else {
|
2019-11-21 05:53:52 +03:00
|
|
|
bodyText = _t("Use an Integration Manager to manage bots, widgets, and sticker packs.");
|
2019-08-13 00:35:39 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
return (
|
2019-11-21 05:50:13 +03:00
|
|
|
<div className='mx_SetIntegrationManager'>
|
2019-08-13 00:35:39 +03:00
|
|
|
<div className="mx_SettingsTab_heading">
|
2019-11-21 05:53:52 +03:00
|
|
|
<span>{_t("Integrations")}</span>
|
2019-08-13 00:35:39 +03:00
|
|
|
<span className="mx_SettingsTab_subheading">{managerName}</span>
|
2019-11-21 06:05:32 +03:00
|
|
|
<ToggleSwitch checked={this.state.provisioningEnabled} onChange={this.onProvisioningToggled} />
|
2019-08-13 00:35:39 +03:00
|
|
|
</div>
|
|
|
|
<span className="mx_SettingsTab_subsectionText">
|
|
|
|
{bodyText}
|
2019-11-21 05:53:52 +03:00
|
|
|
<br />
|
|
|
|
<br />
|
|
|
|
{_t(
|
|
|
|
"Integration Managers receive configuration data, and can modify widgets, " +
|
|
|
|
"send room invites, and set power levels on your behalf.",
|
|
|
|
)}
|
2019-08-13 00:35:39 +03:00
|
|
|
</span>
|
2019-11-21 05:50:13 +03:00
|
|
|
</div>
|
2019-08-13 00:35:39 +03:00
|
|
|
);
|
|
|
|
}
|
|
|
|
}
|