mirror of
https://github.com/Kong/insomnia.git
synced 2026-05-19 14:23:03 -04:00
Some more sorting hacks and new request activate fix
This commit is contained in:
@@ -38,7 +38,7 @@ class RequestSwitcherModal extends ModalComponent {
|
||||
} else {
|
||||
// Create the request if nothing matched
|
||||
const name = this.state.searchString;
|
||||
const parentId = this.props.newRequestParentID;
|
||||
const parentId = this.props.newRequestParentId;
|
||||
|
||||
db.requestCreate({name, parentId}).then(request => {
|
||||
this._activateRequest(request);
|
||||
|
||||
@@ -60,7 +60,7 @@ class RequestUrlBar extends Component {
|
||||
<Input
|
||||
ref="input"
|
||||
type="text"
|
||||
placeholder="http://echo.insomnia.rest/status/200"
|
||||
placeholder="https://api.myproduct.com/v1/users"
|
||||
value={url}
|
||||
onChange={url => this._handleUrlChange(url)}/>
|
||||
</form>
|
||||
|
||||
@@ -51,6 +51,14 @@ class ResponsePane extends Component {
|
||||
</div>
|
||||
)
|
||||
}
|
||||
if (!request) {
|
||||
return (
|
||||
<section className="response-pane pane">
|
||||
<header className="pane__header"></header>
|
||||
<div className="pane__body pane__body--placeholder text-center pad"></div>
|
||||
</section>
|
||||
)
|
||||
}
|
||||
|
||||
if (!response) {
|
||||
return (
|
||||
|
||||
@@ -81,6 +81,7 @@ class Sidebar extends Component {
|
||||
key={requestGroup._id}
|
||||
isActive={isActive}
|
||||
moveRequestGroup={moveRequestGroup}
|
||||
moveRequest={moveRequest}
|
||||
toggleRequestGroup={toggleRequestGroup}
|
||||
addRequestToRequestGroup={addRequestToRequestGroup}
|
||||
numChildren={child.children.length}
|
||||
|
||||
@@ -22,10 +22,10 @@ class SidebarRequestGroupRow extends Component {
|
||||
}
|
||||
|
||||
render () {
|
||||
|
||||
const {
|
||||
connectDragSource,
|
||||
connectDropTarget,
|
||||
moveRequest,
|
||||
children,
|
||||
requestGroup,
|
||||
isActive,
|
||||
@@ -73,10 +73,8 @@ class SidebarRequestGroupRow extends Component {
|
||||
<ul className="sidebar__list">
|
||||
{!expanded || children.length > 0 ? null : (
|
||||
<SidebarRequestRow
|
||||
activateRequest={() => {
|
||||
}}
|
||||
moveRequest={() => {
|
||||
}}
|
||||
activateRequest={() => null}
|
||||
moveRequest={moveRequest}
|
||||
isActive={false}
|
||||
request={null}
|
||||
requestGroup={requestGroup}
|
||||
@@ -94,6 +92,7 @@ SidebarRequestGroupRow.propTypes = {
|
||||
toggleRequestGroup: PropTypes.func.isRequired,
|
||||
addRequestToRequestGroup: PropTypes.func.isRequired,
|
||||
moveRequestGroup: PropTypes.func.isRequired,
|
||||
moveRequest: PropTypes.func.isRequired,
|
||||
|
||||
// Other
|
||||
isActive: PropTypes.bool.isRequired,
|
||||
|
||||
@@ -48,7 +48,7 @@ class SidebarRequestRow extends Component {
|
||||
|
||||
if (!request) {
|
||||
node = (
|
||||
<li className={classes} onKeyDown={this._onKeyDown.bind(this)}>
|
||||
<li className={classes}>
|
||||
<div className="sidebar__item" tabIndex={0}>
|
||||
<button className="sidebar__clickable"
|
||||
onClick={() => db.requestCreate({parentId: requestGroup._id})}>
|
||||
@@ -130,10 +130,18 @@ function isAbove (monitor, component) {
|
||||
|
||||
const dragTarget = {
|
||||
drop (props, monitor, component) {
|
||||
const {request} = monitor.getItem();
|
||||
const targetRequest = props.request;
|
||||
|
||||
const {requestGroup} = props;
|
||||
const requestGroupId = requestGroup ? requestGroup._id : null;
|
||||
const parentId = targetRequest ? targetRequest.parentId : requestGroupId;
|
||||
const targetId = targetRequest ? targetRequest._id : null;
|
||||
|
||||
if (isAbove(monitor, component)) {
|
||||
props.moveRequest(monitor.getItem().request, props.request, 1);
|
||||
props.moveRequest(request, parentId, targetId, 1);
|
||||
} else {
|
||||
props.moveRequest(monitor.getItem().request, props.request, -1);
|
||||
props.moveRequest(request, parentId, targetId, -1);
|
||||
}
|
||||
},
|
||||
hover (props, monitor, component) {
|
||||
|
||||
@@ -169,23 +169,29 @@ class App extends Component {
|
||||
})
|
||||
}
|
||||
|
||||
_moveRequest (requestToMove, requestToTarget, targetOffset) {
|
||||
_moveRequest (requestToMove, parentId, targetId, targetOffset) {
|
||||
// Oh God, this function is awful...
|
||||
|
||||
if (requestToMove._id === requestToTarget._id) {
|
||||
// Nothing to do
|
||||
if (requestToMove._id === targetId) {
|
||||
// Nothing to do. We are in the same spot as we started
|
||||
return;
|
||||
}
|
||||
|
||||
if (targetId === null) {
|
||||
// We are moving to an empty area. No sorting required
|
||||
db.requestUpdate(requestToMove, {parentId});
|
||||
return;
|
||||
}
|
||||
|
||||
// NOTE: using requestToTarget's parentId so we can switch parents!
|
||||
db.requestFindByParentId(requestToTarget.parentId).then(requests => {
|
||||
db.requestFindByParentId(parentId).then(requests => {
|
||||
requests = requests.sort((a, b) => a.metaSortKey < b.metaSortKey ? -1 : 1);
|
||||
|
||||
// Find the index of request B so we can re-order and save everything
|
||||
for (let i = 0; i < requests.length; i++) {
|
||||
const request = requests[i];
|
||||
|
||||
if (request._id === requestToTarget._id) {
|
||||
if (request._id === targetId) {
|
||||
let before, after;
|
||||
if (targetOffset < 0) {
|
||||
// We're moving to below
|
||||
@@ -207,11 +213,11 @@ class App extends Component {
|
||||
console.warn('-- Recreating Sort Keys --');
|
||||
|
||||
requests.map((r, i) => {
|
||||
db.requestUpdate(r, {metaSortKey: i * 100, parentId: requestToTarget.parentId});
|
||||
db.requestUpdate(r, {metaSortKey: i * 100, parentId});
|
||||
});
|
||||
} else {
|
||||
const metaSortKey = afterKey - (afterKey - beforeKey) / 2;
|
||||
db.requestUpdate(requestToMove, {metaSortKey, parentId: requestToTarget.parentId});
|
||||
db.requestUpdate(requestToMove, {metaSortKey, parentId});
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
@@ -102,11 +102,12 @@ class WorkspaceDropdown extends Component {
|
||||
|
||||
<DropdownDivider name="Current Workspace"/>
|
||||
|
||||
{/*<li>*/}
|
||||
{/*<button onClick={e => db.requestCreate({parentId: workspace._id})}>*/}
|
||||
{/*<i className="fa fa-plus-circle"></i> New Request*/}
|
||||
{/*</button>*/}
|
||||
{/*</li>*/}
|
||||
<li>
|
||||
<button
|
||||
onClick={e => db.requestCreateAndActivate(workspace, {parentId: workspace._id})}>
|
||||
<i className="fa fa-plus-circle"></i> New Request
|
||||
</button>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<button onClick={e => this._requestGroupCreate() }>
|
||||
@@ -159,7 +160,7 @@ class WorkspaceDropdown extends Component {
|
||||
</button>
|
||||
</li>
|
||||
{/*<li>*/}
|
||||
{/*<button><i className="fa fa-blank"></i> Open New Window</button>*/}
|
||||
{/*<button><i className="fa fa-blank"></i> Open New Window</button>*/}
|
||||
{/*</li>*/}
|
||||
</ul>
|
||||
</Dropdown>
|
||||
|
||||
@@ -11,8 +11,9 @@
|
||||
}
|
||||
|
||||
.tag {
|
||||
width: 4.5em;
|
||||
border: 1px solid !important;
|
||||
padding: $padding-xxs !important;
|
||||
width: 4em;
|
||||
padding-left: 0;
|
||||
margin-right: 0;
|
||||
text-align: left;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -294,13 +294,13 @@ function docCreate (type, idPrefix, patch = {}) {
|
||||
|
||||
export function requestCreateAndActivate (workspace, patch = {}) {
|
||||
return requestCreate(patch).then(r => {
|
||||
workspaceUpdate(workspace, {activeRequestId: r._id});
|
||||
workspaceUpdate(workspace, {metaActiveRequestId: r._id});
|
||||
})
|
||||
}
|
||||
|
||||
export function requestCopyAndActivate (workspace, request) {
|
||||
return requestCopy(request).then(r => {
|
||||
workspaceUpdate(workspace, {activeRequestId: r._id});
|
||||
workspaceUpdate(workspace, {metaActiveRequestId: r._id});
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user