@@ -14,6 +14,7 @@ import SupplyDatasetFile from '../input-data/supply_dataset_file.jsx';
14
14
import SupplyDatasetUrl from '../input-data/supply_dataset_url.jsx' ;
15
15
import checkValidString from './../validator/valid_string.js' ;
16
16
import checkValidInt from './../validator/valid_int.js' ;
17
+ import Spinner from './../general/spinner.jsx' ;
17
18
18
19
var DataAppend = React . createClass ( {
19
20
// initial 'state properties'
@@ -76,6 +77,13 @@ var DataAppend = React.createClass({
76
77
var Dataset = this . getSupplyDataset ( inputDatasetType , inputSessionId ) ;
77
78
var options = this . state . ajax_done_options ;
78
79
80
+ if ( this . state . display_spinner ) {
81
+ var AjaxSpinner = Spinner ;
82
+ }
83
+ else {
84
+ var AjaxSpinner = 'span' ;
85
+ }
86
+
79
87
return (
80
88
< fieldset className = 'fieldset-session-data-upload' >
81
89
< legend > Data Upload</ legend >
@@ -115,6 +123,8 @@ var DataAppend = React.createClass({
115
123
</ fieldset >
116
124
117
125
< Dataset onChange = { this . displaySubmit } />
126
+
127
+ < AjaxSpinner />
118
128
</ fieldset >
119
129
) ;
120
130
} ,
@@ -142,6 +152,9 @@ var DataAppend = React.createClass({
142
152
'data' : null
143
153
} ;
144
154
155
+ // boolean to show ajax spinner
156
+ this . setState ( { display_spinner : true } ) ;
157
+
145
158
// asynchronous callback: ajax 'done' promise
146
159
if ( this . mounted ) {
147
160
ajaxCaller ( function ( asynchObject ) {
@@ -151,6 +164,8 @@ var DataAppend = React.createClass({
151
164
} else if ( asynchObject ) {
152
165
this . setState ( { ajax_done_options : asynchObject } ) ;
153
166
}
167
+ // boolean to hide ajax spinner
168
+ this . setState ( { display_spinner : false } ) ;
154
169
} . bind ( this ) ,
155
170
// asynchronous callback: ajax 'fail' promise
156
171
function ( asynchStatus , asynchError ) {
@@ -162,6 +177,8 @@ var DataAppend = React.createClass({
162
177
this . setState ( { ajax_fail_error : asynchError } ) ;
163
178
console . log ( 'Error Thrown: ' + asynchError ) ;
164
179
}
180
+ // boolean to hide ajax spinner
181
+ this . setState ( { display_spinner : false } ) ;
165
182
} . bind ( this ) ,
166
183
// pass ajax arguments
167
184
ajaxArguments ) ;
0 commit comments