Skip to content

Commit 5634ab9

Browse files
na3ddisplague
authored andcommitted
billing invoice and history conflict pr
2 parents f59536d + b06aadf commit 5634ab9

File tree

332 files changed

+2542
-1728
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

332 files changed

+2542
-1728
lines changed

CHANGELOG.md

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,39 @@ All notable changes to this project will be documented in this file.
44
The format is based on [Keep a Changelog](http://keepachangelog.com/)
55
and this project adheres to [Semantic Versioning](http://semver.org/).
66

7+
## [0.15.3] 2017-10-13
8+
### Fixed
9+
- Send custom integers correctly on volume create
10+
11+
## [0.15.2] 2017-10-13
12+
### Fixed
13+
- Rendering of selects
14+
- Filtering Linodes by region correctly when attaching
15+
16+
## [0.15.1] 2017-10-13
17+
### Added
18+
- Fremont as available Volume region
19+
20+
## [0.15.0] 2017-10-10
21+
### Added
22+
- Added volume_clone, credit_card_updated, payment_submitted event support #2622
23+
- KVMify #2562, #2611
24+
- Noscript #2565
25+
- Logout if in maintenance mode #2627
26+
### Changed
27+
- Use full backup names in dialogs #2564
28+
- Restore from Backup should not offer Region #2586
29+
- Buttons that are dropdowns include the default action in the dropdown #2585
30+
- Configs should be offered when creating from volume #2544
31+
- Restrict Volumes to availability regions #2623
32+
- Hide volume Linodes and Configs when appropriate #2630
33+
- (Docs) updated to 0.13.3
34+
### Fixed
35+
- Allow Notifications to poll with no previous Events #2618
36+
- Fix multi select (stackscript distros ui) #2614
37+
738
## [0.14.2] 2017-10-04
8-
### Changes
39+
### Changed
940
- Changes to work with the latest API changes
1041
- (Docs) Updated to 0.13.2
1142

CONTRIBUTING.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ When creating a new feature:
9494
1. `git checkout develop`
9595
2. `git checkout -b my-feature-name`
9696
3. stage and commit changes to your feature branch
97-
4. `yarn run lint` # to lint your code
97+
4. `yarn lint` # to lint your code
9898
5. `yarn test` # to test your code, see
9999
6. `git push -u your-remote my-feature-name` # push to your remote and --set-upstream-to
100100
7. `git checkout develop` and `git pull origin develop` # make sure you're up to date
@@ -139,7 +139,7 @@ Copy relative changes from the [CHANGELOG.md](https://github.com/linode/manager/
139139
**Tip**: set up your local git repository to lint before every commit.
140140
```sh
141141
echo '#!/usr/bin/env bash' > .git/hooks/pre-commit
142-
echo 'yarn run lint' >> .git/hooks/pre-commit
142+
echo 'yarn lint' >> .git/hooks/pre-commit
143143
chmod +x .git/hooks/pre-commit
144144
```
145145

@@ -151,11 +151,11 @@ To run tests:
151151

152152
To automatically re-run tests when you make changes:
153153

154-
yarn run test:watch
154+
yarn test:watch
155155

156156
To automatically re-run tests on a single test file:
157157

158-
yarn run test:watch --single_file=**/name.spec.js
158+
yarn test:watch --single_file=**/name.spec.js
159159

160160
Our tests live in test/**.spec.js. They're based on
161161
[Mocha](https://mochajs.org/) and do assertions with

components/breadcrumbs/Breadcrumbs.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import React, { PropTypes } from 'react';
1+
import PropTypes from 'prop-types';
2+
import React from 'react';
23
import { Link } from 'react-router';
34

45
export default function Breadcrumbs(props) {

components/buttons/Button.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import React, { PropTypes } from 'react';
1+
import PropTypes from 'prop-types';
2+
import React from 'react';
23
import { Link } from 'react-router';
34

45
export default function Button(props) {

components/buttons/CancelButton.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import React, { PropTypes } from 'react';
1+
import PropTypes from 'prop-types';
2+
import React from 'react';
23

34
import Button from './Button';
45

components/buttons/ExternalLink.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import React, { PropTypes } from 'react';
1+
import PropTypes from 'prop-types';
2+
import React from 'react';
23

34

45
export default function ExternalLink(props) {

components/buttons/LinkButton.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import React, { PropTypes } from 'react';
1+
import PropTypes from 'prop-types';
2+
import React from 'react';
23

34
import Button from './Button';
45

components/buttons/PrimaryButton.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import React, { PropTypes } from 'react';
1+
import PropTypes from 'prop-types';
2+
import React from 'react';
23

34
import { Dropdown } from '../dropdowns';
45

components/cards/Card.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import React, { PropTypes } from 'react';
1+
import PropTypes from 'prop-types';
2+
import React from 'react';
23

34

45
export default function Card(props) {

components/cards/CardHeader.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import React, { PropTypes } from 'react';
1+
import PropTypes from 'prop-types';
2+
import React from 'react';
23

34
export default function CardHeader(props) {
45
return (

components/cards/CardImageHeader.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import React, { PropTypes } from 'react';
1+
import PropTypes from 'prop-types';
2+
import React from 'react';
23

34

45
export default function CardImageHeader(props) {

components/dropdowns/Dropdown.js

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { PropTypes } from 'prop-types';
1+
import PropTypes from 'prop-types';
22
import React, { Component } from 'react';
33

44
// Avoid a circular import by importing ../buttons by itself.
@@ -15,6 +15,16 @@ export default class Dropdown extends Component {
1515
};
1616
}
1717

18+
close = () => {
19+
if (typeof this.props.onClose === 'function') {
20+
this.props.onClose();
21+
}
22+
23+
this.emitEvent(DROPDOWN_CLOSE, 'close');
24+
25+
this.setState({ open: false });
26+
}
27+
1828
emitEvent(type, action, item) {
1929
if (this.props.analytics && this.props.analytics.title) {
2030
EmitEvent(type, 'dropdown', action, this.props.analytics.title, item);
@@ -31,16 +41,6 @@ export default class Dropdown extends Component {
3141
this.setState({ open: !this.state.open });
3242
}
3343

34-
close = () => {
35-
if (typeof this.props.onClose === 'function') {
36-
this.props.onClose();
37-
}
38-
39-
this.emitEvent(DROPDOWN_CLOSE, 'close');
40-
41-
this.setState({ open: false });
42-
}
43-
4444
wrapClick(f, item) {
4545
return (...args) => {
4646
this.emitEvent(DROPDOWN_CLICK, 'change', item);

components/editors/CodeEditor.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
import 'brace';
22
import 'brace/mode/javascript';
33
import 'brace/theme/tomorrow';
4-
import React, { PropTypes } from 'react';
4+
import PropTypes from 'prop-types';
5+
import React from 'react';
56
import AceEditor from 'react-ace';
67

78

components/errors/ComingSoon.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import React, { PropTypes } from 'react';
1+
import PropTypes from 'prop-types';
2+
import React from 'react';
23

34

45
export default function ComingSoon(props) {

components/errors/Error.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import React, { PropTypes } from 'react';
1+
import PropTypes from 'prop-types';
2+
import React from 'react';
23

34

45
export default function Error(props) {

components/errors/InternalError.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import React, { PropTypes } from 'react';
1+
import PropTypes from 'prop-types';
2+
import React from 'react';
23

34
import { ExternalLink } from '../buttons';
45
import { FormModalBody } from '../modals';

components/formats/Code.js

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import React, { Component, PropTypes } from 'react';
1+
import PropTypes from 'prop-types';
2+
import React, { Component } from 'react';
23
import Highlight from 'react-highlight';
34
import ClipboardButton from 'react-clipboard.js';
45

@@ -12,20 +13,18 @@ export default class Code extends Component {
1213
constructor() {
1314
super();
1415

15-
this.onClickCopy = this.onClickCopy.bind(this);
16-
1716
this.state = { clipboardIcon: DEFAULT_CLIPBOARD_ICON };
1817
}
1918

20-
onClickCopy() {
19+
onClickCopy = () => {
2120
if (this.state.clipboardIcon === DEFAULT_CLIPBOARD_ICON) {
2221
this.setState({ clipboardIcon: 'fa-check' }, () => {
2322
setTimeout(() => {
2423
this.setState({ clipboardIcon: DEFAULT_CLIPBOARD_ICON });
2524
}, 2500);
2625
});
2726
}
28-
}
27+
};
2928

3029
render() {
3130
const { example, language, noclipboard } = this.props;

components/forms/Checkbox.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import React, { PropTypes } from 'react';
1+
import PropTypes from 'prop-types';
2+
import React from 'react';
23

34
export default function Checkbox(props) {
45
return (

components/forms/CheckboxInputCombo.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import React, { PropTypes } from 'react';
1+
import PropTypes from 'prop-types';
2+
import React from 'react';
23

34
import Checkbox from './Checkbox';
45
import Input from './Input';

components/forms/Checkboxes.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import React, { PropTypes } from 'react';
1+
import PropTypes from 'prop-types';
2+
import React from 'react';
23

34
export default function Checkboxes(props) {
45
return <fieldset className="Checkboxes">{props.children}</fieldset>;

components/forms/Form.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import React, { PropTypes } from 'react';
1+
import PropTypes from 'prop-types';
2+
import React from 'react';
23

34
import { EmitEvent, FORM_SUBMIT } from '../utils';
45

components/forms/FormGroup.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import React, { PropTypes } from 'react';
1+
import PropTypes from 'prop-types';
2+
import React from 'react';
23

34
export default function FormGroup(props) {
45
const { errors, name, crumbs } = props;

components/forms/FormGroupError.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import React, { PropTypes } from 'react';
1+
import PropTypes from 'prop-types';
2+
import React from 'react';
23

34
export default function FormGroupError(props) {
45
const { errors, name, crumbs, inline, className } = props;

components/forms/FormSummary.js

Lines changed: 21 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,29 @@
1-
import React, { Component, PropTypes } from 'react';
1+
import PropTypes from 'prop-types';
2+
import React from 'react';
23

34

4-
export default class FormSummary extends Component {
5-
render() {
6-
const { className, errors, success } = this.props;
5+
export default function FormSummary(props) {
6+
const { className, errors, success } = props;
77

8-
let content;
9-
if (errors._ && errors._.length) {
10-
content = (
11-
<div className="alert alert-danger">
12-
{errors._.map(error => {
13-
const text = error.reason || error;
14-
return (<div key={text}>{text}</div>);
15-
})}
16-
</div>
17-
);
18-
} else if (Object.keys(errors).length > 1) {
19-
content = <div className="alert alert-danger">Please fix all errors before retrying.</div>;
20-
} else if (errors._) {
21-
content = success ? <div className="alert alert-success">{success}</div> : '';
22-
}
23-
24-
return (
25-
<div className={`FormSummary ${className}`}>{content}</div>
8+
let content;
9+
if (errors._ && errors._.length) {
10+
content = (
11+
<div className="alert alert-danger">
12+
{errors._.map(error => {
13+
const text = error.reason || error;
14+
return (<div key={text}>{text}</div>);
15+
})}
16+
</div>
2617
);
18+
} else if (Object.keys(errors).length > 1) {
19+
content = <div className="alert alert-danger">Please fix all errors before retrying.</div>;
20+
} else if (errors._) {
21+
content = success ? <div className="alert alert-success">{success}</div> : '';
2722
}
23+
24+
return (
25+
<div className={`FormSummary ${className}`}>{content}</div>
26+
);
2827
}
2928

3029
FormSummary.propTypes = {

components/forms/Input.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import React, { PropTypes } from 'react';
1+
import PropTypes from 'prop-types';
2+
import React from 'react';
23

34
export default function Input(props) {
45
return (

components/forms/ModalFormGroup.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import React, { PropTypes } from 'react';
1+
import PropTypes from 'prop-types';
2+
import React from 'react';
23

34
import FormGroup from './FormGroup';
45
import FormGroupError from './FormGroupError';

components/forms/PasswordInput.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import React, { PropTypes } from 'react';
1+
import PropTypes from 'prop-types';
2+
import React from 'react';
23

34
import Input from './Input';
45

components/forms/Radio.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import React, { PropTypes } from 'react';
1+
import PropTypes from 'prop-types';
2+
import React from 'react';
23

34
export default function Radio(props) {
45
return (

components/forms/RadioInputCombo.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import React, { PropTypes } from 'react';
1+
import PropTypes from 'prop-types';
2+
import React from 'react';
23

34
import Radio from './Radio';
45
import Input from './Input';
@@ -7,14 +8,15 @@ export default function RadioInputCombo(props) {
78
return (
89
<div className="RadioInputCombo">
910
<Radio
10-
id={props.radioId}
11+
name={props.radioName}
1112
value={props.radioValue}
1213
checked={props.radioChecked}
1314
onChange={props.radioOnChange}
1415
label={props.radioLabel}
1516
/>
1617
<Input
1718
id={props.inputId}
19+
name={props.inputName}
1820
value={props.inputValue}
1921
onChange={props.inputOnChange}
2022
label={props.inputLabel}
@@ -27,13 +29,14 @@ export default function RadioInputCombo(props) {
2729
}
2830

2931
RadioInputCombo.propTypes = {
30-
radioId: PropTypes.string,
32+
radioName: PropTypes.string,
3133
radioOnChange: PropTypes.func.isRequired,
3234
radioLabel: PropTypes.string.isRequired,
3335
radioChecked: PropTypes.bool.isRequired,
3436
radioValue: PropTypes.object,
3537
inputOnChange: PropTypes.func.isRequired,
3638
inputId: PropTypes.string,
39+
inputName: PropTypes.string,
3740
inputValue: PropTypes.any.isRequired,
3841
inputDisabled: PropTypes.bool,
3942
inputLabel: PropTypes.string,

0 commit comments

Comments
 (0)