// Cadre "debouchés" sur fiche etudiant // affichage et saisie des informations sur l'avenir de l'étudiant. // console.log('etud_debouche.js loaded'); $(function () { display_itemsuivis(false); }); function display_itemsuivis(active) { var etudid = $("div#fichedebouche").data("etudid"); var readonly = $("div#fichedebouche").data("readonly"); // present ro interface if (!readonly) { $("#adddebouchelink") .off("click") .click(function (e) { e.preventDefault(); $.post(SCO_URL + "itemsuivi_create", { etudid: etudid, fmt: "json", }).done(item_insert_new); return false; }); } // add existing items $.get( SCO_URL + "itemsuivi_list_etud", { etudid: etudid, fmt: "json" }, function (L) { for (var i in L) { item_insert( L[i]["itemsuivi_id"], L[i]["item_date"], L[i]["situation"], L[i]["tags"], readonly ); } } ); $("div#fichedebouche").accordion({ heightStyle: "content", collapsible: true, active: active, }); } function item_insert_new(it) { item_insert(it.itemsuivi_id, it.item_date, it.situation, "", false); } function item_insert(itemsuivi_id, item_date, situation, tags, readonly) { if (item_date === undefined) item_date = Date2DMY(new Date()); if (situation === undefined) situation = ""; if (tags === undefined) tags = ""; var nodes = item_nodes(itemsuivi_id, item_date, situation, tags, readonly); // insert just before last li: if ($("ul.listdebouches li.adddebouche").length > 0) { $("ul.listdebouches").children(":last").before(nodes); } else { // mode readonly, pas de li "ajouter" $("ul.listdebouches").append(nodes); } } function item_nodes(itemsuivi_id, item_date, situation, tags, readonly) { // console.log('item_nodes: itemsuivi_id=' + itemsuivi_id); var sel_mois = 'Situation à la date du supprimer cet item'; var h = sel_mois; // situation h += '
' + situation + "
"; // tags: h += '
"; var nodes = $($.parseHTML('
  • ' + h + "
  • ")); var dp = nodes.find(".itemsuividatepicker"); dp.blur(function (e) { var date = this.value; // console.log('selected text: ' + date); $.post(SCO_URL + "itemsuivi_set_date", { item_date: date, itemsuivi_id: itemsuivi_id, }); }); dp.datepicker({ onSelect: function (date, instance) { // console.log('selected: ' + date + 'for itemsuivi_id ' + itemsuivi_id); $.post(SCO_URL + "itemsuivi_set_date", { item_date: date, itemsuivi_id: itemsuivi_id, }); }, showOn: "button", buttonImage: "/ScoDoc/static/icons/calendar_img.png", buttonImageOnly: true, dateFormat: "dd/mm/yy", duration: "fast", disabled: readonly, }); dp.datepicker( "option", $.extend({ showMonthAfterYear: false }, $.datepicker.regional["fr"]) ); if (readonly) { // show tags read-only readOnlyTags(nodes.find(".itemsuivi_tag_editor")); } else { // bind tag editor nodes.find(".itemsuivi_tag_editor").tagEditor({ initialTags: "", placeholder: "Tags...", onChange: function (field, editor, tags) { $.post("itemsuivi_tag_set", { itemsuivi_id: itemsuivi_id, taglist: tags.join(), }); }, autocomplete: { delay: 200, // ms before suggest position: { collision: "flip" }, // automatic menu position up/down source: "itemsuivi_tag_search", }, }); // bind inplace editor nodes.find("div.itemsituation").jinplace(); } return nodes; } function Date2DMY(date) { var year = date.getFullYear(); var month = (1 + date.getMonth()).toString(); month = month.length > 1 ? month : "0" + month; var day = date.getDate().toString(); day = day.length > 1 ? day : "0" + day; return day + "/" + month + "/" + year; } function itemsuivi_suppress(itemsuivi_id) { $.post(SCO_URL + "itemsuivi_suppress", { itemsuivi_id: itemsuivi_id }); // Clear items and rebuild: $("ul.listdebouches li.itemsuivi").remove(); display_itemsuivis(0); }