Allow save exercise answer - refs #7612
parent
944d336ac0
commit
75d03e887c
@ -0,0 +1,94 @@ |
|||||||
|
<script> |
||||||
|
var DraggableAnswer = { |
||||||
|
gallery: null, |
||||||
|
trash: null, |
||||||
|
deleteItem: function (item, insertHere) { |
||||||
|
if (insertHere.find(".exercise-draggable-answer-option").length > 0) { |
||||||
|
return false; |
||||||
|
} |
||||||
|
|
||||||
|
item.fadeOut(function () { |
||||||
|
var $list = $('<div class="gallery ui-helper-reset"/>').appendTo(insertHere); |
||||||
|
|
||||||
|
item.find('a.btn').remove(); |
||||||
|
|
||||||
|
var droppedId = item.attr('id'), |
||||||
|
dropedOnId = insertHere.attr('id'), |
||||||
|
originSelectId = 'window_' + droppedId + '_select', |
||||||
|
value = dropedOnId.split('_')[2]; |
||||||
|
|
||||||
|
$('#' + originSelectId + ' option') |
||||||
|
.filter(function () { |
||||||
|
return $(this).val() == value; |
||||||
|
}) |
||||||
|
.attr("selected", true); |
||||||
|
|
||||||
|
var recycleButton = $('<a>') |
||||||
|
.attr('href', '#') |
||||||
|
.addClass('btn btn-default btn-xs') |
||||||
|
.append( |
||||||
|
$('<i>').addClass('fa fa-refresh') |
||||||
|
) |
||||||
|
.on('click', function (e) { |
||||||
|
e.preventDefault(); |
||||||
|
|
||||||
|
var liParent = $(this).parent(); |
||||||
|
|
||||||
|
DraggableAnswer.recycleItem(liParent); |
||||||
|
}); |
||||||
|
|
||||||
|
item.append(recycleButton).appendTo($list).fadeIn(); |
||||||
|
}); |
||||||
|
}, |
||||||
|
recycleItem: function (item) { |
||||||
|
item.fadeOut(function () { |
||||||
|
item |
||||||
|
.find('a.btn') |
||||||
|
.remove() |
||||||
|
.end() |
||||||
|
.find("img") |
||||||
|
.end() |
||||||
|
.appendTo(DraggableAnswer.gallery) |
||||||
|
.fadeIn(); |
||||||
|
}); |
||||||
|
|
||||||
|
var droppedId = item.attr('id'), |
||||||
|
originSelectId = 'window_' + droppedId + '_select'; |
||||||
|
|
||||||
|
$('#' + originSelectId + ' option:first').attr('selected', 'selected'); |
||||||
|
}, |
||||||
|
init: function (gallery, trash) { |
||||||
|
this.gallery = gallery; |
||||||
|
this.trash = trash; |
||||||
|
|
||||||
|
$("li", DraggableAnswer.gallery).draggable({ |
||||||
|
cancel: "a.ui-icon", |
||||||
|
revert: "invalid", |
||||||
|
containment: "document", |
||||||
|
helper: "clone", |
||||||
|
cursor: "move" |
||||||
|
}); |
||||||
|
|
||||||
|
DraggableAnswer.trash.droppable({ |
||||||
|
accept: ".exercise-draggable-answer > li", |
||||||
|
hoverClass: "ui-state-active", |
||||||
|
drop: function (e, ui) { |
||||||
|
DraggableAnswer.deleteItem(ui.draggable, $(this)); |
||||||
|
} |
||||||
|
}); |
||||||
|
|
||||||
|
DraggableAnswer.gallery.droppable({ |
||||||
|
drop: function (e, ui) { |
||||||
|
DraggableAnswer.recycleItem(ui.draggable, $(this)); |
||||||
|
} |
||||||
|
}); |
||||||
|
} |
||||||
|
}; |
||||||
|
|
||||||
|
$(document).on('ready', function () { |
||||||
|
DraggableAnswer.init( |
||||||
|
$(".exercise-draggable-answer"), |
||||||
|
$(".droppable") |
||||||
|
); |
||||||
|
}); |
||||||
|
</script> |
||||||
Loading…
Reference in new issue