mirror of
https://github.com/Kong/insomnia.git
synced 2026-10-25 08:09:06 -04:00
A few more things
This commit is contained in:
1 parent
e39b87e5af
commit
3e63e533f3
16 files changed
+234
-204
No files matched your search
+153
-123
@@ -7,6 +7,7 @@ if (require('electron-squirrel-startup')) {
|
||||
// Don't npm install this (it breaks). Rely on the global one.
|
||||
const electron = require('electron');
|
||||
const appVersion = require('./app.json').version;
|
||||
const storage = require('electron-json-storage');
|
||||
const {app, dialog, ipcMain, autoUpdater, Menu, BrowserWindow, webContents} = electron;
|
||||
|
||||
const IS_DEV = process.env.NODE_ENV === 'development';
|
||||
@@ -84,133 +85,162 @@ app.on('window-all-closed', () => {
|
||||
});
|
||||
|
||||
app.on('ready', () => {
|
||||
mainWindow = new BrowserWindow({
|
||||
width: 1200,
|
||||
height: 600,
|
||||
minHeight: 500,
|
||||
minWidth: 500,
|
||||
acceptFirstMouse: true,
|
||||
webPreferences: {
|
||||
zoomFactor: zoomFactor
|
||||
storage.get('bounds', (err, data) => {
|
||||
if (err) {
|
||||
console.log('Failed to fetch window bounds', err);
|
||||
}
|
||||
});
|
||||
|
||||
// and load the app.html of the app.
|
||||
mainWindow.loadURL(`file://${__dirname}/app.html`);
|
||||
|
||||
// Uncomment this to test things
|
||||
// mainWindow.toggleDevTools();
|
||||
|
||||
// Emitted when the window is closed.
|
||||
mainWindow.on('closed', () => {
|
||||
// Dereference the window object, usually you would store windows
|
||||
// in an array if your app supports multi windows, this is the time
|
||||
// when you should delete the corresponding element.
|
||||
mainWindow = null;
|
||||
});
|
||||
|
||||
var template = [
|
||||
{
|
||||
label: "Application",
|
||||
role: "window",
|
||||
submenu: [
|
||||
{label: "About Application", selector: "orderFrontStandardAboutPanel:"},
|
||||
{type: "separator"},
|
||||
{
|
||||
label: "Quit",
|
||||
accelerator: "Command+Q",
|
||||
click: function () {
|
||||
app.quit();
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
label: "Edit",
|
||||
submenu: [
|
||||
{label: "Undo", accelerator: "CmdOrCtrl+Z", selector: "undo:"},
|
||||
{label: "Redo", accelerator: "Shift+CmdOrCtrl+Z", selector: "redo:"},
|
||||
{type: "separator"},
|
||||
{label: "Cut", accelerator: "CmdOrCtrl+X", selector: "cut:"},
|
||||
{label: "Copy", accelerator: "CmdOrCtrl+C", selector: "copy:"},
|
||||
{label: "Paste", accelerator: "CmdOrCtrl+V", selector: "paste:"},
|
||||
{label: "Select All", accelerator: "CmdOrCtrl+A", selector: "selectAll:"}
|
||||
]
|
||||
},
|
||||
{
|
||||
label: "View",
|
||||
role: "window",
|
||||
submenu: [
|
||||
{
|
||||
label: "Actual Size",
|
||||
accelerator: "CmdOrCtrl+0",
|
||||
click: () => {
|
||||
const window = electron.BrowserWindow.getFocusedWindow();
|
||||
zoomFactor = 1;
|
||||
window.webContents.setZoomFactor(zoomFactor);
|
||||
}
|
||||
},
|
||||
{
|
||||
label: "Zoom In",
|
||||
accelerator: "CmdOrCtrl+Plus",
|
||||
click: () => {
|
||||
const window = electron.BrowserWindow.getFocusedWindow();
|
||||
zoomFactor = Math.min(1.8, zoomFactor + 0.1);
|
||||
window.webContents.setZoomFactor(zoomFactor);
|
||||
}
|
||||
},
|
||||
{
|
||||
label: "Zoom Out",
|
||||
accelerator: "CmdOrCtrl+-",
|
||||
click: () => {
|
||||
const window = electron.BrowserWindow.getFocusedWindow();
|
||||
zoomFactor = Math.max(0.5, zoomFactor - 0.1);
|
||||
window.webContents.setZoomFactor(zoomFactor);
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
label: "Help",
|
||||
role: "help",
|
||||
id: "help",
|
||||
submenu: [
|
||||
{
|
||||
label: "Report an Issue...",
|
||||
click: () => {
|
||||
electron.shell.openExternal('mailto:support@insomnia.rest');
|
||||
}
|
||||
},
|
||||
{
|
||||
label: "Insomnia Help",
|
||||
accelerator: "CmdOrCtrl+?",
|
||||
click: () => {
|
||||
electron.shell.openExternal('http://insomnia.rest');
|
||||
}
|
||||
}
|
||||
]
|
||||
let bounds = {};
|
||||
try {
|
||||
bounds = JSON.parse(data || '{}');
|
||||
} catch (e) {
|
||||
// This should never happen, but if it does...!
|
||||
console.error('Failed to parse window bounds', err, data);
|
||||
}
|
||||
];
|
||||
|
||||
if (IS_DEV) {
|
||||
template.push({
|
||||
label: 'Developer',
|
||||
position: 'before=help',
|
||||
submenu: [{
|
||||
label: 'Reload',
|
||||
accelerator: 'Command+R',
|
||||
click: function () {
|
||||
mainWindow.reload();
|
||||
}
|
||||
}, {
|
||||
label: 'Toggle DevTools',
|
||||
accelerator: 'Alt+Command+I',
|
||||
click: function () {
|
||||
mainWindow.toggleDevTools();
|
||||
}
|
||||
}]
|
||||
const {x, y, width, height} = bounds;
|
||||
|
||||
mainWindow = new BrowserWindow({
|
||||
x: x,
|
||||
y: y,
|
||||
width: width || 800,
|
||||
height: height || 500,
|
||||
minHeight: 500,
|
||||
minWidth: 500,
|
||||
acceptFirstMouse: true,
|
||||
webPreferences: {
|
||||
zoomFactor: zoomFactor
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Menu.setApplicationMenu(Menu.buildFromTemplate(template));
|
||||
const saveBounds = () => {
|
||||
storage.set('bounds', JSON.stringify(mainWindow.getBounds()), err => {
|
||||
if (err) {
|
||||
console.log('Failed to save window bounds', err);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
mainWindow.on('resize', e => saveBounds());
|
||||
mainWindow.on('move', e => saveBounds());
|
||||
|
||||
// and load the app.html of the app.
|
||||
mainWindow.loadURL(`file://${__dirname}/app.html`);
|
||||
|
||||
// Uncomment this to test things
|
||||
// mainWindow.toggleDevTools();
|
||||
|
||||
// Emitted when the window is closed.
|
||||
mainWindow.on('closed', () => {
|
||||
// Dereference the window object, usually you would store windows
|
||||
// in an array if your app supports multi windows, this is the time
|
||||
// when you should delete the corresponding element.
|
||||
mainWindow = null;
|
||||
});
|
||||
|
||||
var template = [
|
||||
{
|
||||
label: "Application",
|
||||
role: "window",
|
||||
submenu: [
|
||||
{label: "About Application", selector: "orderFrontStandardAboutPanel:"},
|
||||
{type: "separator"},
|
||||
{
|
||||
label: "Quit",
|
||||
accelerator: "Command+Q",
|
||||
click: function () {
|
||||
app.quit();
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
label: "Edit",
|
||||
submenu: [
|
||||
{label: "Undo", accelerator: "CmdOrCtrl+Z", selector: "undo:"},
|
||||
{label: "Redo", accelerator: "Shift+CmdOrCtrl+Z", selector: "redo:"},
|
||||
{type: "separator"},
|
||||
{label: "Cut", accelerator: "CmdOrCtrl+X", selector: "cut:"},
|
||||
{label: "Copy", accelerator: "CmdOrCtrl+C", selector: "copy:"},
|
||||
{label: "Paste", accelerator: "CmdOrCtrl+V", selector: "paste:"},
|
||||
{label: "Select All", accelerator: "CmdOrCtrl+A", selector: "selectAll:"}
|
||||
]
|
||||
},
|
||||
{
|
||||
label: "View",
|
||||
role: "window",
|
||||
submenu: [
|
||||
{
|
||||
label: "Actual Size",
|
||||
accelerator: "CmdOrCtrl+0",
|
||||
click: () => {
|
||||
const window = electron.BrowserWindow.getFocusedWindow();
|
||||
zoomFactor = 1;
|
||||
window.webContents.setZoomFactor(zoomFactor);
|
||||
}
|
||||
},
|
||||
{
|
||||
label: "Zoom In",
|
||||
accelerator: IS_MAC ? "CmdOrCtrl+Plus" : "CmdOrCtrl+=",
|
||||
click: () => {
|
||||
const window = electron.BrowserWindow.getFocusedWindow();
|
||||
zoomFactor = Math.min(1.8, zoomFactor + 0.1);
|
||||
window.webContents.setZoomFactor(zoomFactor);
|
||||
}
|
||||
},
|
||||
{
|
||||
label: "Zoom Out",
|
||||
accelerator: "CmdOrCtrl+-",
|
||||
click: () => {
|
||||
const window = electron.BrowserWindow.getFocusedWindow();
|
||||
zoomFactor = Math.max(0.5, zoomFactor - 0.1);
|
||||
window.webContents.setZoomFactor(zoomFactor);
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
label: "Help",
|
||||
role: "help",
|
||||
id: "help",
|
||||
submenu: [
|
||||
{
|
||||
label: "Report an Issue...",
|
||||
click: () => {
|
||||
electron.shell.openExternal('mailto:support@insomnia.rest');
|
||||
}
|
||||
},
|
||||
{
|
||||
label: "Insomnia Help",
|
||||
accelerator: "CmdOrCtrl+?",
|
||||
click: () => {
|
||||
electron.shell.openExternal('http://insomnia.rest');
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
];
|
||||
|
||||
if (IS_DEV) {
|
||||
template.push({
|
||||
label: 'Developer',
|
||||
position: 'before=help',
|
||||
submenu: [{
|
||||
label: 'Reload',
|
||||
accelerator: 'Command+R',
|
||||
click: function () {
|
||||
mainWindow.reload();
|
||||
}
|
||||
}, {
|
||||
label: 'Toggle DevTools',
|
||||
accelerator: 'Alt+Command+I',
|
||||
click: function () {
|
||||
mainWindow.toggleDevTools();
|
||||
}
|
||||
}]
|
||||
});
|
||||
}
|
||||
|
||||
Menu.setApplicationMenu(Menu.buildFromTemplate(template));
|
||||
});
|
||||
});
|
||||
+2
-1
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"private": true,
|
||||
"name": "insomnia",
|
||||
"version": "3.0.10",
|
||||
"version": "3.0.11",
|
||||
"productName": "Insomnia",
|
||||
"longName": "Insomnia HTTP Client",
|
||||
"description": "The best REST API Client",
|
||||
@@ -11,6 +11,7 @@
|
||||
"dependencies": {
|
||||
"analytics-node": "^2.1.0",
|
||||
"electron-squirrel-startup": "^1.0.0",
|
||||
"electron-json-storage": "^2.0.0",
|
||||
"nedb": "^1.8.0",
|
||||
"request": "^2.71.0"
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@ class RequestPane extends Component {
|
||||
render () {
|
||||
const {
|
||||
request,
|
||||
importFile,
|
||||
showPasswords,
|
||||
editorFontSize,
|
||||
editorLineWrapping,
|
||||
@@ -36,22 +37,29 @@ class RequestPane extends Component {
|
||||
<section className="request-pane pane">
|
||||
<header className="pane__header"></header>
|
||||
<div className="pane__body pane__body--placeholder">
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>New Request</td>
|
||||
<td><code>{MOD_SYM}N</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Open Settings</td>
|
||||
<td><code>{MOD_SYM},</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Switch Requests</td>
|
||||
<td><code>{MOD_SYM}P</code></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div>
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>New Request</td>
|
||||
<td><code>{MOD_SYM}N</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Open Settings</td>
|
||||
<td><code>{MOD_SYM},</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Switch Requests</td>
|
||||
<td><code>{MOD_SYM}P</code></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<button className="btn btn--super-compact btn--outlined pane__body--placeholder__cta"
|
||||
onClick={e => importFile()}>
|
||||
Import from File
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
)
|
||||
@@ -158,6 +166,7 @@ RequestPane.propTypes = {
|
||||
updateRequestHeaders: PropTypes.func.isRequired,
|
||||
updateRequestContentType: PropTypes.func.isRequired,
|
||||
updateSettingsShowPasswords: PropTypes.func.isRequired,
|
||||
importFile: PropTypes.func.isRequired,
|
||||
|
||||
// Other
|
||||
showPasswords: PropTypes.bool.isRequired,
|
||||
|
||||
@@ -11,6 +11,7 @@ import {getPreviewModeName} from '../lib/previewModes';
|
||||
import {PREVIEW_MODE_SOURCE} from '../lib/previewModes';
|
||||
import {REQUEST_TIME_TO_SHOW_COUNTER} from '../lib/constants';
|
||||
import {MOD_SYM} from '../lib/constants';
|
||||
import RequestSwitcherModal from './modals/RequestSwitcherModal';
|
||||
|
||||
class ResponsePane extends Component {
|
||||
render () {
|
||||
@@ -69,22 +70,24 @@ class ResponsePane extends Component {
|
||||
|
||||
<header className="pane__header"></header>
|
||||
<div className="pane__body pane__body--placeholder">
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Send Request</td>
|
||||
<td><code>{MOD_SYM}Enter</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Switch Requests</td>
|
||||
<td><code>{MOD_SYM}P</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Focus Url Bar</td>
|
||||
<td><code>{MOD_SYM}L</code></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div>
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Send Request</td>
|
||||
<td><code>{MOD_SYM}Enter</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Focus Url Bar</td>
|
||||
<td><code>{MOD_SYM}L</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Switch Requests</td>
|
||||
<td><code>{MOD_SYM}P</code></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
)
|
||||
|
||||
@@ -86,7 +86,7 @@ class ChangelogModal extends ModalComponent {
|
||||
html = [
|
||||
...html,
|
||||
<p key={`summary.${i}`}><strong>{change.summary[0]}</strong></p>,
|
||||
...change.summary.slice(1).map((text, i) => <p key={`summary[${i}]`}>{text}</p>)
|
||||
...change.summary.slice(1).map((text, j) => <p key={`summary.${i}[${j}]`}>{text}</p>)
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -106,7 +106,7 @@ class ChangelogModal extends ModalComponent {
|
||||
...html,
|
||||
<h3 key={`fixes.${i}`}>Fixes</h3>,
|
||||
<ul key={`fixes.${i}.list`}>
|
||||
{change.fixes.map(text => <li>{text}</li>)}
|
||||
{change.fixes.map(text => <li key={i}>{text}</li>)}
|
||||
</ul>
|
||||
];
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import React, {Component, PropTypes} from 'react';
|
||||
import {ipcRenderer} from 'electron';
|
||||
import ReactDOM from 'react-dom';
|
||||
import {connect} from 'react-redux';
|
||||
import {bindActionCreators} from 'redux';
|
||||
@@ -26,6 +27,7 @@ import {
|
||||
DEFAULT_SIDEBAR_WIDTH
|
||||
} from '../lib/constants'
|
||||
|
||||
import * as GlobalActions from '../redux/modules/global';
|
||||
import * as RequestGroupActions from '../redux/modules/requestGroups';
|
||||
import * as RequestActions from '../redux/modules/requests';
|
||||
|
||||
@@ -33,6 +35,7 @@ import * as db from '../database';
|
||||
import {importCurl} from '../lib/export/curl';
|
||||
import {trackEvent} from '../lib/analytics';
|
||||
import {getAppVersion} from '../lib/appInfo';
|
||||
import {CHECK_FOR_UPDATES_INTERVAL} from '../lib/constants';
|
||||
|
||||
class App extends Component {
|
||||
constructor (props) {
|
||||
@@ -96,6 +99,11 @@ class App extends Component {
|
||||
}
|
||||
}
|
||||
|
||||
_importFile () {
|
||||
const workspace = this._getActiveWorkspace();
|
||||
this.props.actions.global.importFile(workspace);
|
||||
}
|
||||
|
||||
_moveRequestGroup (requestGroupToMove, requestGroupToTarget, targetOffset) {
|
||||
// Oh God, this function is awful...
|
||||
|
||||
@@ -406,6 +414,10 @@ class App extends Component {
|
||||
lastVersion: getAppVersion()
|
||||
});
|
||||
});
|
||||
|
||||
setInterval(() => {
|
||||
ipcRenderer.send('check-for-updates');
|
||||
}, CHECK_FOR_UPDATES_INTERVAL);
|
||||
}
|
||||
|
||||
componentWillUnmount () {
|
||||
@@ -468,6 +480,7 @@ class App extends Component {
|
||||
|
||||
<RequestPane
|
||||
ref="requestPane"
|
||||
importFile={this._importFile.bind(this)}
|
||||
request={activeRequest}
|
||||
sendRequest={actions.requests.send}
|
||||
showPasswords={settings.showPasswords}
|
||||
@@ -561,6 +574,7 @@ function mapStateToProps (state) {
|
||||
function mapDispatchToProps (dispatch) {
|
||||
return {
|
||||
actions: {
|
||||
global: bindActionCreators(GlobalActions, dispatch),
|
||||
requestGroups: bindActionCreators(RequestGroupActions, dispatch),
|
||||
requests: bindActionCreators(RequestActions, dispatch)
|
||||
}
|
||||
|
||||
@@ -27,10 +27,6 @@ class WorkspaceDropdown extends Component {
|
||||
})
|
||||
}
|
||||
|
||||
_handleCheckForUpdates () {
|
||||
ipcRenderer.send('check-for-updates');
|
||||
}
|
||||
|
||||
_workspaceCreate () {
|
||||
PromptModal.show({
|
||||
headerName: 'Create New Workspace',
|
||||
@@ -163,19 +159,11 @@ class WorkspaceDropdown extends Component {
|
||||
<DropdownHint char=","></DropdownHint>
|
||||
</button>
|
||||
</li>
|
||||
{/*<li>*/}
|
||||
{/*<button onClick={e => this._handleCheckForUpdates()}>*/}
|
||||
{/*<i className="fa fa-blank"></i> Check for Updates*/}
|
||||
{/*</button>*/}
|
||||
{/*</li>*/}
|
||||
<li>
|
||||
<button onClick={e => ChangelogModal.show()}>
|
||||
<i className="fa fa-blank"></i> Changelog
|
||||
</button>
|
||||
</li>
|
||||
{/*<li>*/}
|
||||
{/*<button><i className="fa fa-blank"></i> Open New Window</button>*/}
|
||||
{/*</li>*/}
|
||||
</ul>
|
||||
</Dropdown>
|
||||
)
|
||||
|
||||
@@ -41,6 +41,12 @@
|
||||
& > * {
|
||||
min-width: 20em;
|
||||
}
|
||||
|
||||
.pane__body--placeholder__cta {
|
||||
width: auto;
|
||||
margin: $padding-lg auto;
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -68,6 +68,8 @@ webview {
|
||||
}
|
||||
|
||||
table {
|
||||
width: 100%;
|
||||
|
||||
td {
|
||||
padding-top: $padding-sm;
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@ export const DB_PERSIST_INTERVAL = 1000 * 60 * 10;
|
||||
export const DEBOUNCE_MILLIS = 100;
|
||||
export const MASHAPE_URL = 'https://www.mashape.com/?utm_source=chrome&utm_medium=app&utm_campaign=insomnia-rest';
|
||||
export const REQUEST_TIME_TO_SHOW_COUNTER = 1; // Seconds
|
||||
export const CHECK_FOR_UPDATES_INTERVAL = 1000 * 60 * 30; // 30 minutes
|
||||
export const CHANGELOG_URL = isDevelopment() ?
|
||||
'http://localhost:5000/changelog.json' :
|
||||
'http://changelog.insomnia.rest/changelog.json';
|
||||
|
||||
@@ -14,17 +14,3 @@ export const REQUEST_GROUP_TOGGLE = 'request-groups/toggle';
|
||||
// ~~~~~~~ //
|
||||
// ACTIONS //
|
||||
// ~~~~~~~ //
|
||||
|
||||
export function toggle (requestGroup) {
|
||||
return {type: REQUEST_GROUP_TOGGLE, requestGroup}
|
||||
}
|
||||
|
||||
export function showUpdateNamePrompt (requestGroup) {
|
||||
const defaultValue = requestGroup.name;
|
||||
return show(MODAL_REQUEST_GROUP_RENAME, {defaultValue, requestGroup});
|
||||
}
|
||||
|
||||
export function showEnvironmentEditModal (requestGroup) {
|
||||
return show(MODAL_ENVIRONMENT_EDITOR, {requestGroup});
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ import {combineReducers} from 'redux';
|
||||
import * as network from '../../lib/network';
|
||||
import {show} from './modals';
|
||||
import {MODAL_REQUEST_RENAME, MODAL_CURL_EXPORT} from '../../lib/constants';
|
||||
import {trackEvent} from '../../lib/analytics';
|
||||
|
||||
export const REQUEST_CHANGE_FILTER = 'requests/filter';
|
||||
export const REQUEST_SEND_START = 'requests/start';
|
||||
@@ -60,6 +61,7 @@ export function changeFilter(filter) {
|
||||
export function send(request) {
|
||||
return dispatch => {
|
||||
dispatch({type: REQUEST_SEND_START, requestId: request._id});
|
||||
trackEvent('Request Send');
|
||||
|
||||
network.send(request._id).then(() => {
|
||||
dispatch({type: REQUEST_SEND_STOP, requestId: request._id});
|
||||
@@ -69,13 +71,3 @@ export function send(request) {
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
export function showUpdateNamePrompt(request) {
|
||||
const defaultValue = request.name;
|
||||
return show(MODAL_REQUEST_RENAME, {defaultValue, request});
|
||||
}
|
||||
|
||||
export function showCurlExportModal (request) {
|
||||
return show(MODAL_CURL_EXPORT, {request});
|
||||
}
|
||||
|
||||
@@ -31,8 +31,3 @@ export default combineReducers({
|
||||
export function activate (workspace) {
|
||||
return {type: WORKSPACE_ACTIVATE, workspace};
|
||||
}
|
||||
|
||||
export function showUpdateNamePrompt (workspace) {
|
||||
const defaultValue = workspace.name;
|
||||
return show(MODAL_WORKSPACE_RENAME, {defaultValue, workspace});
|
||||
}
|
||||
@@ -1,18 +1,14 @@
|
||||
import {combineReducers} from 'redux';
|
||||
|
||||
import workspaces from './modules/workspaces';
|
||||
import requestGroups from './modules/requestGroups';
|
||||
import requests from './modules/requests';
|
||||
import responses from './modules/responses';
|
||||
import global from './modules/global';
|
||||
import modals from './modules/modals';
|
||||
import entities from './modules/entities';
|
||||
|
||||
export default combineReducers({
|
||||
workspaces,
|
||||
responses,
|
||||
requests,
|
||||
requestGroups,
|
||||
modals,
|
||||
global,
|
||||
entities
|
||||
|
||||
+3
-1
@@ -43,6 +43,8 @@
|
||||
"analytics-node": "^2.1.0",
|
||||
"classnames": "^2.2.3",
|
||||
"codemirror": "^5.12.0",
|
||||
"electron-json-storage": "^2.0.0",
|
||||
"electron-prebuilt": "^1.2.6",
|
||||
"electron-squirrel-startup": "^1.0.0",
|
||||
"json-lint": "^0.1.0",
|
||||
"jsonschema": "^1.1.0",
|
||||
@@ -74,7 +76,7 @@
|
||||
"css-loader": "^0.23.1",
|
||||
"electron-builder": "^5.16.0",
|
||||
"electron-packager": "^7.3.0",
|
||||
"electron-prebuilt": "^1.3.0",
|
||||
"electron-prebuilt": "^1.2.6",
|
||||
"express": "latest",
|
||||
"file-loader": "^0.8.5",
|
||||
"json-loader": "^0.5.4",
|
||||
|
||||
@@ -2,15 +2,20 @@
|
||||
#? Package and generate installers
|
||||
|
||||
echo "-- STARTING PACKAGING PROCESS... --"
|
||||
say "Beginning platform builds"
|
||||
cp assets/* build/
|
||||
|
||||
echo "-- PACKAGING WINDOWS --"
|
||||
node node_modules/electron-builder/out/build-cli.js --publish='never' --x64 --win
|
||||
say "Windows build complete"
|
||||
|
||||
echo "-- PACKAGING MAC --"
|
||||
node node_modules/electron-builder/out/build-cli.js --publish='never' --x64 --mac
|
||||
say "Mac build complete"
|
||||
|
||||
echo "-- PACKAGING LINUX --"
|
||||
node node_modules/electron-builder/out/build-cli.js --publish='never' --x64 --linux
|
||||
say "Linux build complete"
|
||||
|
||||
echo "-- PACKAGING COMPLETE --"
|
||||
say "All builds have now completed"
|
||||
Reference in new issue
Block a user