Commit cc7bc7ea by E. Kolpakov

Spinners for inputs

parent a62272d9
...@@ -112,6 +112,19 @@ ...@@ -112,6 +112,19 @@
top: calc(50% - 16px); top: calc(50% - 16px);
} }
.xblock--drag-and-drop .drag-container .option .numerical-input .spinner-wrapper {
position: absolute;
right: 0;
top: 0;
margin-right: 5px;
padding-top: 6px;
display: none;
}
.xblock--drag-and-drop .drag-container .option .numerical-input .spinner-wrapper {
color: #333;
}
.xblock--drag-and-drop .drag-container .option .numerical-input .input { .xblock--drag-and-drop .drag-container .option .numerical-input .input {
display: inline-block; display: inline-block;
width: 144px; width: 144px;
......
...@@ -191,6 +191,14 @@ function DragAndDropBlock(runtime, element, configuration) { ...@@ -191,6 +191,14 @@ function DragAndDropBlock(runtime, element, configuration) {
}); });
}; };
var showSpinner = function($item) {
$item.find('.spinner-wrapper').show();
};
var hideSpinner = function($item) {
$item.find('.spinner-wrapper').hide();
};
var submitLocation = function(item_id, zone, x_percent, y_percent) { var submitLocation = function(item_id, zone, x_percent, y_percent) {
if (!zone) { if (!zone) {
return; return;
...@@ -203,7 +211,7 @@ function DragAndDropBlock(runtime, element, configuration) { ...@@ -203,7 +211,7 @@ function DragAndDropBlock(runtime, element, configuration) {
y_percent: y_percent, y_percent: y_percent,
}; };
var $item = $root.find(".option[data-value='"+item_id+"']"); var $item = $root.find(".option[data-value='"+item_id+"']");
$item.find('.spinner-wrapper').show(); showSpinner($item);
$.post(url, JSON.stringify(data), 'json') $.post(url, JSON.stringify(data), 'json')
.done(function(data){ .done(function(data){
...@@ -218,10 +226,10 @@ function DragAndDropBlock(runtime, element, configuration) { ...@@ -218,10 +226,10 @@ function DragAndDropBlock(runtime, element, configuration) {
state.finished = true; state.finished = true;
state.overall_feedback = data.overall_feedback; state.overall_feedback = data.overall_feedback;
} }
$item.find('.spinner-wrapper').hide(); hideSpinner($item);
applyState(); applyState();
}) })
.fail(function (data) { $item.find('.spinner-wrapper').hide(); }); .fail(function (data) { hideSpinner($item); });
}; };
var submitInput = function(evt) { var submitInput = function(evt) {
...@@ -236,22 +244,26 @@ function DragAndDropBlock(runtime, element, configuration) { ...@@ -236,22 +244,26 @@ function DragAndDropBlock(runtime, element, configuration) {
return; return;
} }
showSpinner(input_div);
state.items[item_id].input = input_value; state.items[item_id].input = input_value;
state.items[item_id].submitting_input = true; state.items[item_id].submitting_input = true;
applyState(); applyState();
var url = runtime.handlerUrl(element, 'do_attempt'); var url = runtime.handlerUrl(element, 'do_attempt');
var data = {val: item_id, input: input_value}; var data = {val: item_id, input: input_value};
$.post(url, JSON.stringify(data), 'json').done(function(data) { $.post(url, JSON.stringify(data), 'json')
state.items[item_id].submitting_input = false; .done(function(data) {
state.items[item_id].correct_input = data.correct; state.items[item_id].submitting_input = false;
state.feedback = data.feedback; state.items[item_id].correct_input = data.correct;
if (data.finished) { state.feedback = data.feedback;
state.finished = true; if (data.finished) {
state.overall_feedback = data.overall_feedback; state.finished = true;
} state.overall_feedback = data.overall_feedback;
applyState(); }
}); hideSpinner(input_div);
applyState();
})
.fail(function(data) { hideSpinner(input_div); });
}; };
var closePopup = function(evt) { var closePopup = function(evt) {
......
...@@ -43,6 +43,7 @@ ...@@ -43,6 +43,7 @@
style: {display: input.is_visible ? 'block' : 'none'}}, [ style: {display: input.is_visible ? 'block' : 'none'}}, [
h('input.input', {type: 'text', value: input.value, disabled: input.has_value, h('input.input', {type: 'text', value: input.value, disabled: input.has_value,
focusHook: focus_hook}), focusHook: focus_hook}),
itemSpinnerTemplate(),
h('button.submit-input', {disabled: input.has_value}, gettext('ok')) h('button.submit-input', {disabled: input.has_value}, gettext('ok'))
]) ])
); );
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment