Add clear active workspace's all responses (#1317)

This commit is contained in:
Ricky Chandra
2019-01-21 23:29:30 +07:00
committed by Gregory Schier
parent bcef6164d1
commit c77094600d
2 changed files with 44 additions and 18 deletions

View File

@@ -27,6 +27,7 @@ type Props = {
handleGetRenderContext: Function,
handleRemoveWorkspace: Function,
handleDuplicateWorkspace: Function,
handleClearAllResponses: Function,
};
type State = {
@@ -78,6 +79,11 @@ class WorkspaceSettingsModal extends React.PureComponent<Props, State> {
this.hide();
}
_handleClearAllResponses() {
this.props.handleClearAllResponses();
this.hide();
}
_handleDuplicateWorkspace() {
this.props.handleDuplicateWorkspace(() => {
this.hide();
@@ -331,6 +337,12 @@ class WorkspaceSettingsModal extends React.PureComponent<Props, State> {
className="width-auto btn btn--clicky inline-block space-left">
<i className="fa fa-copy" /> Duplicate
</button>
<PromptButton
onClick={this._handleClearAllResponses}
addIcon
className="width-auto btn btn--clicky inline-block space-left">
<i className="fa fa-trash-o" /> Clear All Responses
</PromptButton>
</div>
</TabPanel>
<TabPanel className="react-tabs__tab-panel pad scrollable">

View File

@@ -43,6 +43,7 @@ import WorkspaceEnvironmentsEditModal from './modals/workspace-environments-edit
import WorkspaceSettingsModal from './modals/workspace-settings-modal';
import WorkspaceShareSettingsModal from './modals/workspace-share-settings-modal';
import CodePromptModal from './modals/code-prompt-modal';
import * as db from '../../common/database';
import * as models from '../../models/index';
import * as importers from 'insomnia-importers';
import type { CookieJar } from '../../models/cookie-jar';
@@ -304,6 +305,14 @@ class Wrapper extends React.PureComponent<Props, State> {
await models.workspace.remove(activeWorkspace);
}
async _handleActiveWorkspaceClearAllResponses(): Promise<void> {
const docs = await db.withDescendants(this.props.activeWorkspace, models.request.type);
const requests = docs.filter(doc => doc.type === models.request.type);
for (const req of requests) {
await models.response.removeForRequest(req._id);
}
}
_handleSendRequestWithActiveEnvironment(): void {
const { activeRequest, activeEnvironment, handleSendRequestWithEnvironment } = this.props;
const activeRequestId = activeRequest ? activeRequest._id : 'n/a';
@@ -320,7 +329,11 @@ class Wrapper extends React.PureComponent<Props, State> {
const activeRequestId = activeRequest ? activeRequest._id : 'n/a';
const activeEnvironmentId = activeEnvironment ? activeEnvironment._id : 'n/a';
await handleSendAndDownloadRequestWithEnvironment(activeRequestId, activeEnvironmentId, filename);
await handleSendAndDownloadRequestWithEnvironment(
activeRequestId,
activeEnvironmentId,
filename,
);
}
_handleSetPreviewMode(previewMode: string): void {
@@ -400,24 +413,24 @@ class Wrapper extends React.PureComponent<Props, State> {
const realSidebarWidth = sidebarHidden ? 0 : sidebarWidth;
const columns = `${realSidebarWidth}rem 0 minmax(0, ${paneWidth}fr) 0 minmax(0, ${1 -
paneWidth}fr)`;
paneWidth}fr)`;
const rows = `minmax(0, ${paneHeight}fr) 0 minmax(0, ${1 - paneHeight}fr)`;
return [
<div key="modals" className="modals">
<ErrorBoundary showAlert>
<AlertModal ref={registerModal}/>
<ErrorModal ref={registerModal}/>
<PromptModal ref={registerModal}/>
<AlertModal ref={registerModal} />
<ErrorModal ref={registerModal} />
<PromptModal ref={registerModal} />
<WrapperModal ref={registerModal}/>
<LoginModal ref={registerModal}/>
<AskModal ref={registerModal}/>
<SelectModal ref={registerModal}/>
<RequestCreateModal ref={registerModal}/>
<PaymentNotificationModal ref={registerModal}/>
<FilterHelpModal ref={registerModal}/>
<RequestRenderErrorModal ref={registerModal}/>
<WrapperModal ref={registerModal} />
<LoginModal ref={registerModal} />
<AskModal ref={registerModal} />
<SelectModal ref={registerModal} />
<RequestCreateModal ref={registerModal} />
<PaymentNotificationModal ref={registerModal} />
<FilterHelpModal ref={registerModal} />
<RequestRenderErrorModal ref={registerModal} />
<CodePromptModal
ref={registerModal}
@@ -472,7 +485,7 @@ class Wrapper extends React.PureComponent<Props, State> {
workspace={activeWorkspace}
/>
<MoveRequestGroupModal ref={registerModal} workspaces={workspaces}/>
<MoveRequestGroupModal ref={registerModal} workspaces={workspaces} />
<WorkspaceSettingsModal
ref={registerModal}
@@ -487,10 +500,11 @@ class Wrapper extends React.PureComponent<Props, State> {
nunjucksPowerUserMode={settings.nunjucksPowerUserMode}
handleRemoveWorkspace={this._handleRemoveActiveWorkspace}
handleDuplicateWorkspace={handleDuplicateWorkspace}
handleClearAllResponses={this._handleActiveWorkspaceClearAllResponses}
isVariableUncovered={isVariableUncovered}
/>
<WorkspaceShareSettingsModal ref={registerModal} workspace={activeWorkspace}/>
<WorkspaceShareSettingsModal ref={registerModal} workspace={activeWorkspace} />
<GenerateCodeModal
ref={registerModal}
@@ -510,7 +524,7 @@ class Wrapper extends React.PureComponent<Props, State> {
settings={settings}
/>
<ResponseDebugModal ref={registerModal} settings={settings}/>
<ResponseDebugModal ref={registerModal} settings={settings} />
<RequestSwitcherModal
ref={registerModal}
@@ -535,7 +549,7 @@ class Wrapper extends React.PureComponent<Props, State> {
isVariableUncovered={isVariableUncovered}
/>
<SetupSyncModal ref={registerModal} workspace={activeWorkspace}/>
<SetupSyncModal ref={registerModal} workspace={activeWorkspace} />
<WorkspaceEnvironmentsEditModal
ref={registerModal}
@@ -623,7 +637,7 @@ class Wrapper extends React.PureComponent<Props, State> {
</ErrorBoundary>
<div className="drag drag--sidebar">
<div onDoubleClick={handleResetDragSidebar} onMouseDown={this._handleStartDragSidebar}/>
<div onDoubleClick={handleResetDragSidebar} onMouseDown={this._handleStartDragSidebar} />
</div>
<ErrorBoundary showAlert>