Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add clear active workspace's all responses #1317

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
Expand Up @@ -27,6 +27,7 @@ type Props = {
handleGetRenderContext: Function,
handleRemoveWorkspace: Function,
handleDuplicateWorkspace: Function,
handleClearAllResponses: Function,
};

type State = {
Expand Down Expand Up @@ -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();
Expand Down Expand Up @@ -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">
Expand Down
52 changes: 33 additions & 19 deletions packages/insomnia-app/app/ui/components/wrapper.js
Expand Up @@ -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';
Expand Down Expand Up @@ -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';
Expand All @@ -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 {
Expand Down Expand Up @@ -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}/>

<WrapperModal ref={registerModal}/>
<LoginModal ref={registerModal}/>
<AskModal ref={registerModal}/>
<SelectModal ref={registerModal}/>
<RequestCreateModal ref={registerModal}/>
<PaymentNotificationModal ref={registerModal}/>
<FilterHelpModal ref={registerModal}/>
<RequestRenderErrorModal 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} />

<CodePromptModal
ref={registerModal}
Expand Down Expand Up @@ -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}
Expand All @@ -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}
Expand All @@ -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}
Expand All @@ -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}
Expand Down Expand Up @@ -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>
Expand Down