var hover_emph = []; var highlight_lock = false; var last_sense_group = ""; $(document).ready(function() { $.get("/letters", function(data, status) { $("#letters").html(data); }); $.get("/reduce_functions", function(data, status) { $("#reduce-functions").html(data); $("#reduce-functions input[type=radio]").change(function() { get_frames( $("#chosen-one").text() ); }) //Click on the first radio button - for 100% up to date with the model. var first_radio = $("#reduce-functions input[type=radio]:first"); first_radio.attr("checked", true) get_frames($("#chosen-one").text()); }); handle_resizing(); }) window.onresize = handle_resizing; function view_get_rf() { return $("#reduce-functions").find("input:checked").val(); } function get_words(letter) { $.get("/words/" + letter, function(data, status){ $("#words").html(data); }) } function get_frames(word, reduce_function=null, modify_view=true, callback=null) { if (word == "") { return } if (reduce_function == null) { reduce_function = view_get_rf(); } $("#chosen-one").text(word); var opt_rf = ""; if (reduce_function != null) { opt_rf = "&rf=" + reduce_function; } $.get("/frames?hw=" + word + opt_rf, function(data, status) { $("#frames-area").html(data); $("#n-frames").text("število stavčnih vzorcev: " + $(".frame-div").length); // Add functor highlighting $(".functor-link") .mouseover(function() { highlight_linked($(this)) }) .mouseout(unhighlight_linked) .click(function() { toggle_highlight_lock($(this)) }); // modify sense information div if (modify_view) { $("#word-info-right").html(""); $(".frame-sense-id").hide(); $(".frame-sense-id").find("input").prop("disabled", true); $(".frame-sense-desc").hide(); //$(".frame-sense-desc").find("input").prop("disabled", true); switch (reduce_function) { case "reduce_0": case "reduce_1": break; case "reduce_3": //ssj $(".frame-sense-id").show(); $(".frame-sense-desc").show(); break; case "reduce_4": //kmeans $(".frame-sense-id").show(); break; case "reduce_5": //user user_input_menu(false); $(".frame-sense-id").show(); break; } } if (callback != null) { callback(); } }); } function handle_resizing() { $("#words").height( ($(document).height() - $("#words").position().top) * 0.95 ); } function highlight_linked(dom_element) { if (highlight_lock) { return; } var frame_div = dom_element.parents(".frame-div"); var frame_table = frame_div.find(".frame-table"); var frame_sentences = frame_div.find(".frame-sentences"); var classes = dom_element.attr("class").split(" "); classes.forEach(function(cls) { if (cls == "functor-link") { return } cls = cls.replace(".", "\\."); //escaping dots! var frame_table_matches = frame_table.find("." + cls); var frame_sentences_matches = frame_sentences.find("." + cls); if (frame_table_matches.length > 0 && frame_sentences_matches.length > 0) { var matches = $.merge(frame_table_matches, frame_sentences_matches); matches.addClass("functor-highlight"); hover_emph.push(matches); } }) } function unhighlight_linked() { if (highlight_lock) { return; } hover_emph.forEach(function(el) { el.removeClass("functor-highlight"); }) hover_emph = []; } function toggle_highlight_lock(dom_element) { if ( hover_emph.len == 0 || !dom_element.hasClass("functor-highlight") ) { return; } highlight_lock = !highlight_lock; } function helper_highlight_ssj_id(pdiv, ssj_ids) { hover_emph = [] for (var i=0; i 1) { hover_emph = matches; break; } } hover_emph.forEach(function(element) { $(element).css("color", "red"); }); } function helper_clear_highlight_ssj_id() { hover_emph.forEach(function(element) { $(element).css("color", ""); }); hover_emph = [] } function toggle_frame_sentences(el, sign=null) { pdiv = el.parents(".frame-div"); fs = pdiv.find(".frame-sentences"); sign_element = pdiv.find(".sign-element"); if ((sign == "+") || (sign_element.text() == "[+]")) { sign_element.text("[-]"); fs.show(); } else { sign_element.text("[+]"); fs.hide(); } } function user_input_menu(new_entries) { if (new_entries) { var tmp_sense_group = $("#word-info-right").find("option:selected").text(); if (tmp_sense_group != "-- izberi --") { last_sense_group = tmp_sense_group; } $("#word-info-right").html( "" ); $("#word-info-right").append( "" ) $("#word-info-right").append( "" ) $("#word-info-right").append( "" ) get_frames($("#chosen-one").text(), "reduce_0", false, function() { $(".frame-sense-id").find("input") .prop("disabled", false) .val(""); $(".frame-sense-id").show(); //$(".frame-sense-desc").find("input").prop("disabled", true); $(".frame-sense-desc").hide(); toggle_frame_sentences($(".frame-sense"), "+"); //fill input fields with known sense_ids $.get("/get_sense_ids?collname=user_senses&hw=" + $("#chosen-one").text() + "&sg=" + last_sense_group, function(data, status) { data = JSON.parse(data); $(".frame-div").each(function(idx, el) { var jqel = $(el); var ssj_id = jqel.find(".frame-hw-id").text(); if (ssj_id in data) { jqel.find("input[name='sense_id']").val(data[ssj_id]); } }); }); }); } else { $.get("/user_sense_groups/" + $("#chosen-one").text(), function(data, status){ $("#word-info-right").html(data); $("#word-info-right").append( "" ) }); } } function user_input_finish(save) { if (save) { var sense_group = $("input[name='sense_group']").val().applyXSSprotection(); var sense_passwd = $("input[name='sense_passwd']").val().applyXSSprotection(); setCookie("sense_passwd", sense_passwd, 1); last_sense_group = sense_group; if (sense_group == "") { user_input_finish(false); return; } sense_data = { "headword": $("#chosen-one").text(), "sense_group": sense_group, "sense_passwd": sense_passwd, "entries": {}, } $(".frame-div").each(function(index){ var sense_id = $(this).find("input[name='sense_id']").val().applyXSSprotection(); if (sense_id === "None") { return; } var frame_data = {}; ssj_id = $(this).find(".frame-hw-id").text(); sense_data["entries"][ssj_id] = sense_id; }); if (Object.keys(sense_data["entries"]).length > 0) { $.ajax({ method: "POST", url: "/user_senses", data: JSON.stringify(sense_data), async: false, complete: function() { pick_sense_group(sense_group); } }); } //pick_sense_group(sense_group); } user_input_menu(false); get_frames($("#chosen-one").text()); } function pick_sense_group(sense_group, gf=false) { last_sense_group = sense_group; $.get("/pick_sense_group/" + sense_group, function(){ if (gf) { get_frames($("#chosen-one").text()); } }); } String.prototype.applyXSSprotection = function(){ return this.replace(//g, ">"); }; function setCookie(cname, cvalue, exdays) { var d = new Date(); d.setTime(d.getTime() + (exdays*24*60*60*1000)); var expires = "expires="+ d.toUTCString(); document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/"; } function getCookie(cname) { var name = cname + "="; var ca = document.cookie.split(';'); for(var i = 0; i < ca.length; i++) { var c = ca[i]; while (c.charAt(0) == ' ') { c = c.substring(1); } if (c.indexOf(name) == 0) { return c.substring(name.length, c.length); } } return ""; }