Skip to content

Commit 5ecebd9

Browse files
committed
#2447: data_append.jsx, implement ajax spinner
1 parent d76d342 commit 5ecebd9

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

src/jsx/import/session-type/data_append.jsx

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import SupplyDatasetFile from '../input-data/supply_dataset_file.jsx';
1414
import SupplyDatasetUrl from '../input-data/supply_dataset_url.jsx';
1515
import checkValidString from './../validator/valid_string.js';
1616
import checkValidInt from './../validator/valid_int.js';
17+
import Spinner from './../general/spinner.jsx';
1718

1819
var DataAppend = React.createClass({
1920
// initial 'state properties'
@@ -76,6 +77,13 @@ var DataAppend = React.createClass({
7677
var Dataset = this.getSupplyDataset(inputDatasetType, inputSessionId);
7778
var options = this.state.ajax_done_options;
7879

80+
if (this.state.display_spinner) {
81+
var AjaxSpinner = Spinner;
82+
}
83+
else {
84+
var AjaxSpinner = 'span';
85+
}
86+
7987
return(
8088
<fieldset className='fieldset-session-data-upload'>
8189
<legend>Data Upload</legend>
@@ -115,6 +123,8 @@ var DataAppend = React.createClass({
115123
</fieldset>
116124

117125
<Dataset onChange={this.displaySubmit}/>
126+
127+
<AjaxSpinner />
118128
</fieldset>
119129
);
120130
},
@@ -142,6 +152,9 @@ var DataAppend = React.createClass({
142152
'data': null
143153
};
144154

155+
// boolean to show ajax spinner
156+
this.setState({display_spinner: true});
157+
145158
// asynchronous callback: ajax 'done' promise
146159
if (this.mounted) {
147160
ajaxCaller(function (asynchObject) {
@@ -151,6 +164,8 @@ var DataAppend = React.createClass({
151164
} else if (asynchObject) {
152165
this.setState({ajax_done_options: asynchObject});
153166
}
167+
// boolean to hide ajax spinner
168+
this.setState({display_spinner: false});
154169
}.bind(this),
155170
// asynchronous callback: ajax 'fail' promise
156171
function (asynchStatus, asynchError) {
@@ -162,6 +177,8 @@ var DataAppend = React.createClass({
162177
this.setState({ajax_fail_error: asynchError});
163178
console.log('Error Thrown: ' + asynchError);
164179
}
180+
// boolean to hide ajax spinner
181+
this.setState({display_spinner: false});
165182
}.bind(this),
166183
// pass ajax arguments
167184
ajaxArguments);

0 commit comments

Comments
 (0)