$("#ajax-modal").html('<%= escape_javascript( render :partial => 'courses/show_compare_code' ,:locals => {:src_code=> @src_code,:src_name=> @src_username,:dst_name=> @dst_username, :dst_code=> @dst_code, :simivalue=> @simi_value })%>'); showModal('ajax-modal', '1250px'); $('#ajax-modal').siblings().remove(); $('#ajax-modal').before(""); $('#ajax-modal').parent().css("top","30%").css("left","20%").css("padding-top","20px").css("position","fixed"); //$('#ajax-modal').parent().addClass("resourceUploadPopup"); $('#ajax-modal').css("padding-left","16px").css("padding-bottom","16px"); function closeModal(){ hideModal($(".program-compare-code")); } var program_name = "text/x-csrc"; var language = <%= @homework.language.to_i %>; if (language == 1) { program_name = 'text/x-csrc'; } else if(language==2){ program_name = 'text/x-c++src'; }else if(language==3){ program_name = 'text/x-cython'; } else if(language==4){ program_name = 'text/x-java'; } // //var editor_1 = CodeMirror(document.getElementById("program-code_1"), { // mode: {name: program_name, // version: 2, // singleLineStringErrors: false}, // lineNumbers: true, // indentUnit: 2, // matchBrackets: true, // readOnly: true, // value: $("#program-src_1").text() // } //); // //var editor_2 = CodeMirror(document.getElementById("program-code_2"), { // mode: {name: program_name, // version: 2, // singleLineStringErrors: false}, // lineNumbers: true, // indentUnit: 2, // matchBrackets: true, // readOnly: true, // value: $("#program-src_2").text() // } //); var value, orig1, orig2, dv, panes = 2, highlight = true, connect = null, collapse = false; function initUI() { if (value == null) return; var target = document.getElementById("program-compare-code"); target.innerHTML = ""; dv = CodeMirror.MergeView(target, { value: value, origLeft: panes == 3 ? orig1 : null, orig: orig2, lineNumbers: true, mode: program_name, highlightDifferences: highlight, connect: connect, collapseIdentical: collapse }); } function toggleDifferences() { dv.setShowDifferences(highlight = !highlight); } value = $("#program-src_1").text(); orig1 = $("#program-src_1").text(); orig2 = $("#program-src_2").text(); initUI(); function mergeViewHeight(mergeView) { function editorHeight(editor) { if (!editor) return 0; return editor.getScrollInfo().height; } return Math.max(editorHeight(mergeView.leftOriginal()), editorHeight(mergeView.editor()), editorHeight(mergeView.rightOriginal())); } function resize(mergeView) { var height = mergeViewHeight(mergeView); for(;;) { if (mergeView.leftOriginal()) mergeView.leftOriginal().setSize(null, height); mergeView.editor().setSize(null, height); if (mergeView.rightOriginal()) mergeView.rightOriginal().setSize(null, height); var newHeight = mergeViewHeight(mergeView); if (newHeight >= height) break; else height = newHeight; } mergeView.wrap.style.height = height + "px"; }