$(document).ready(function() { function createSchemaFromParams() { setCardDraggable($('.card')); window.setZoom(zoom,null,null,$('#foo')[0]); addReferences(); addListeners(); } function addReferences() { let schema = getSchema(); let refs = $("li[id^='ref-']"); for(let i = 0; i < refs.length; i++) { let referenceID = refs[i].id; let tableIDNum = referenceID.split('-')[1]; let tableID = `tbl-${tableIDNum}`; let tableObj = schema[tableID]; let refObj = tableObj.references[referenceID]; let foreignTableID = refObj.foreign_table_id; let foreignTableIDEl = $(`#${foreignTableID}-id-column`)[0]; let refEl = refs[i]; createConnector(refEl,foreignTableIDEl,tableID); } setSchema(schema); } function addTableByClick(tableName) { zoom = 1; window.setZoom(zoom,null,null,$('#foo')[0]); $('.slider').css({left: 5}); $('.canvasBorder').click(function(event) { $('.canvasBorder').unbind('click'); let coords = findTargetCoord(); $('.jsPlumbBoundary').append(tableHTML(tableName,coords.x,coords.y)); setCursorAfterBoundaryClick(); setCardDraggable($(`#tbl-${newTableID}`)); addListeners(); addEmptyTableToSchema(); newTableID += 1; }); } function findTargetCoord() { let target = $(event.target) let offset = target.position() return { x: event.clientX - offset.left, y: event.clientY - offset.top} } $('.fa-plus-square-o').click(function(){ if (openEditChecker()) { return } setCursorBeforeBoundaryClick() addTableByClick("table_name") }) function addEmptyTableToSchema() { tableID = `tbl-${newTableID}`; let schema = getSchema(); schema[tableID] = { name: "table_name", original_name: null, columns: {}, references: {}, status: { original: false, modified: false, new: true, deleted: false }, id: tableID }; setSchema(schema); } createSchemaFromParams() });