Add reset option for corrupted event index store

This commit is contained in:
Germain Souquet 2021-03-26 09:44:52 +00:00
parent 356e4bc6fc
commit c40f97fa25
5 changed files with 89 additions and 0 deletions

View file

@ -26,6 +26,7 @@ import {formatBytes, formatCountLong} from "../../../utils/FormattingUtils";
import EventIndexPeg from "../../../indexing/EventIndexPeg";
import {SettingLevel} from "../../../settings/SettingLevel";
import {replaceableComponent} from "../../../utils/replaceableComponent";
import SeshatResetDialog from '../dialogs/SeshatResetDialog';
@replaceableComponent("views.settings.EventIndexPanel")
export default class EventIndexPanel extends React.Component {
@ -122,6 +123,16 @@ export default class EventIndexPanel extends React.Component {
await this.updateState();
}
_confirmEventStoreReset() {
Modal.createDialog(SeshatResetDialog, {
onFinished: (success) => {
if (success) {
EventIndexPeg.resetEventStore();
}
},
});
}
render() {
let eventIndexingSettings = null;
const InlineSpinner = sdk.getComponent('elements.InlineSpinner');
@ -220,6 +231,11 @@ export default class EventIndexPanel extends React.Component {
<code>
{EventIndexPeg.error.message}
</code>
<p>
<AccessibleButton key="delete" kind="danger" onClick={this._confirmEventStoreReset}>
{_t("Reset")}
</AccessibleButton>
</p>
</details>
)}