Files
edx-platform/common/static/js/capa/schematicinput.js
2021-04-19 12:21:43 +05:00

49 lines
2.0 KiB
JavaScript

$(function() {
// TODO: someone should fix all of this...
// $("a[rel*=leanModal]").leanModal(); //TODO: Make this work with the new modal library. Try and integrate this with the "slices"
// xss-lint: disable=javascript-jquery-append
$('body').append('\
<div id="circuit_editor_modal" class="modal hide fade"> \
<div class="modal-body"> \
<input class="schematic" height="300" width="500" id="schematic_editor" name="schematic" type="hidden" value=""/> \
</div> \
<div class="modal-footer"> \
<button type="button" id="circuit_save_btn" class="btn btn-primary" data-dismiss="modal"> \
Save circuit \
</button> \
</div> \
</div>');
// This is the editor that pops up as a modal
var editorCircuit = $('#schematic_editor').get(0);
// This is the circuit that they last clicked. The one being edited.
var editingCircuit = null;
// Notice we use live, because new circuits can be inserted
$('.schematic_open').live('click', function() {
// Find the new editingCircuit. Transfer its contents to the editorCircuit
editingCircuit = $(this).children('input.schematic').get(0);
editingCircuit.schematic.update_value();
var circuit_so_far = $(editingCircuit).val();
var n = editorCircuit.schematic.components.length;
for (var i = 0; i < n; i++) { editorCircuit.schematic.components[n - 1 - i].remove(); }
editorCircuit.schematic.load_schematic(circuit_so_far, '');
editorCircuit.schematic.zoomall();
});
$('#circuit_save_btn').click(function() {
// Take the circuit from the editor and put it back into editingCircuit
editorCircuit.schematic.update_value();
var saving_circuit = $(editorCircuit).val();
var n = editingCircuit.schematic.components.length;
for (var i = 0; i < n; i++) { editingCircuit.schematic.components[n - 1 - i].remove(); }
editingCircuit.schematic.load_schematic(saving_circuit, '');
editingCircuit.schematic.zoomall();
});
});