You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
814 lines
37 KiB
814 lines
37 KiB
var sankoreLang = { |
|
display: "Afficher", |
|
edit: "Modifier", |
|
first_desc: "Les nombres impairs", |
|
second_desc: "Les nombres pairs", |
|
enter: "Saisir le nom de la catégorie ici ...", |
|
add: "Nouveau bloc", |
|
wgt_name: "Catégoriser des images", |
|
reload: "Recharger", |
|
slate: "ardoise", |
|
pad: "tablette", |
|
none: "aucun", |
|
help: "Aide", |
|
help_content: "<p><h2>Catégoriser des images</h2></p>"+ |
|
"<p><h3>Classer des images en fonction de la dénomination de la catégorie.</h3></p>"+ |
|
|
|
"<p>L’activité s’effectue par un glisser-déposer de l’image dans la catégorie correspondante. Une fois que toutes les images sont classées dans la bonne catégorie, la zone se colore en vert.</p>"+ |
|
"<p>Le bouton “Recharger” réinitialise les exercices.</p>"+ |
|
|
|
"<p>Le bouton “Modifier” vous permet :</p>"+ |
|
"<ul><li>de choisir le thème de l’interactivité : tablette, ardoise ou aucun (par défaut aucun) ,</li>"+ |
|
"<li>de modifier un exercice ou d’en créer de nouveaux dans la même activité.</li></ul>"+ |
|
|
|
"<p>En mode édition, pour créer un nouvel exercice, cliquez sur “Nouveau bloc” en bas, une zone bleue apparaît, c’est une catégorie, puis</p>"+ |
|
"<ul><li>insérez le nom de la catégorie (par exemple “fruits”, “légumes”, “mammifères”...) en cliquant dans le champ de texte “Saisir le nom de la catégorie ici …”,</li>"+ |
|
"<li>insérez des images dans la catégorie par glisser-déposer des images à partir de votre bibliothèque,</li>"+ |
|
"<li>ajoutez ensuite une catégorie (ou plusieurs) en cliquant sur le signe “+” situé à droite de la catégorie, complétez par son nom et ajoutez des images.</li></ul>"+ |
|
"<p>Pour supprimer une image, cliquez sur la croix située dans le coin supérieur droit de l’image.</p>"+ |
|
"<p>Pour supprimer une catégorie, cliquez sur le signe “-” situé à droite de celle-ci.</p>"+ |
|
|
|
"<p>Pour supprimer un exercice, cliquez sur la croix à gauche du numéro de l’exercice.</p>"+ |
|
|
|
"<p>Le bouton “Afficher” vous permet d’utiliser l’activité.</p>", |
|
theme: "Thème" |
|
}; |
|
|
|
//main function |
|
function start(){ |
|
|
|
$("#wgt_display").text(sankoreLang.display); |
|
$("#wgt_edit").text(sankoreLang.edit); |
|
$("#wgt_name").text(sankoreLang.wgt_name); |
|
$("#wgt_reload").text(sankoreLang.reload); |
|
$("#wgt_help").text(sankoreLang.help); |
|
$("#help").html(sankoreLang.help_content); |
|
$("#style_select option[value='1']").text(sankoreLang.slate); |
|
$("#style_select option[value='2']").text(sankoreLang.pad); |
|
$("#style_select option[value='3']").text(sankoreLang.none); |
|
var tmpl = $("div.inline label").html(); |
|
$("div.inline label").html(sankoreLang.theme + tmpl) |
|
|
|
if(window.sankore){ |
|
if(sankore.preference("categoriser_images","")){ |
|
var data = jQuery.parseJSON(sankore.preference("categoriser_images","")); |
|
importData(data); |
|
} else { |
|
showExample(); |
|
} |
|
} |
|
else |
|
showExample(); |
|
|
|
if (window.widget) { |
|
window.widget.onleave = function(){ |
|
exportData(); |
|
} |
|
} |
|
|
|
$("#wgt_help").click(function(){ |
|
var tmp = $(this); |
|
if($(this).hasClass("open")){ |
|
$(this).removeClass("help_pad").removeClass("help_wood") |
|
$("#help").slideUp("100", function(){ |
|
tmp.removeClass("open"); |
|
$("#data").show(); |
|
}); |
|
} else { |
|
($("#style_select").val() == 1)?$(this).removeClass("help_pad").addClass("help_wood"):$(this).removeClass("help_wood").addClass("help_pad"); |
|
$("#data").hide(); |
|
$("#help").slideDown("100", function(){ |
|
tmp.addClass("open"); |
|
}); |
|
} |
|
}); |
|
|
|
$("#wgt_reload").click(function(){ |
|
if($("#wgt_display").hasClass("selected")){ |
|
$("#wgt_edit").trigger("click"); |
|
$("#wgt_display").trigger("click"); |
|
} else { |
|
$("#wgt_display").trigger("click"); |
|
} |
|
}); |
|
|
|
$("#wgt_reload, #wgt_display, #wgt_edit").mouseover(function(){ |
|
exportData(); |
|
}); |
|
|
|
$("#style_select").change(function (event){ |
|
changeStyle($(this).find("option:selected").val()); |
|
}) |
|
|
|
$("#wgt_display, #wgt_edit").click(function(event){ |
|
if(this.id == "wgt_display"){ |
|
if(!$(this).hasClass("selected")){ |
|
$(this).addClass("selected"); |
|
$("#wgt_edit").removeClass("selected"); |
|
$("#parameters").css("display","none"); |
|
sankore.enableDropOnWidget(false); |
|
$(".add_block").remove(); |
|
$(".cont").each(function(){ |
|
var container = $(this); |
|
var tmp_i = 0; |
|
var tmp_right = ""; |
|
var tmp_array = []; |
|
|
|
container.find(".close_cont").remove(); |
|
container.find(".imgs_cont").each(function(){ |
|
$(this).find(".del_category").remove(); |
|
$(this).find(".add_category").remove(); |
|
$(this).removeAttr("ondragenter") |
|
.removeAttr("ondragleave") |
|
.removeAttr("ondragover") |
|
.removeAttr("ondrop") |
|
.find(".cat_desc").attr("disabled","disabled"); |
|
var tmp_count = $(this).find(".img_block").size(); |
|
$(this).find("input[name='count']").val(tmp_count); |
|
$(this).find(".img_block").each(function(){ |
|
$(this).find(".close_img").remove(); |
|
tmp_array.push($(this)); |
|
$(this).remove(); |
|
}); |
|
$(this).droppable({ |
|
hoverClass: 'dropHere', |
|
drop: function(event, ui) { |
|
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){ |
|
var tmp_ui = $(ui.draggable).parent(); |
|
$(this).append($(ui.draggable)); |
|
checkCorrectness(tmp_ui); |
|
} |
|
} |
|
}); |
|
$(this).removeAttr("style"); |
|
}); |
|
|
|
var all_imgs = $("<div class='all_imgs'>").appendTo(container); |
|
|
|
tmp_array = shuffle(tmp_array); |
|
for(var i = 0; i<tmp_array.length;i++){ |
|
tmp_array[i].draggable({ |
|
helper:'clone', |
|
zIndex:100, |
|
appendTo: '#data' |
|
}); |
|
tmp_array[i].appendTo(all_imgs); |
|
} |
|
|
|
all_imgs.droppable({ |
|
hoverClass: 'dropBack', |
|
drop: function(event, ui) { |
|
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){ |
|
if(this != $(ui.draggable).parent()[0]){ |
|
var tmp_ui = $(ui.draggable).parent(); |
|
$(this).append($(ui.draggable)); |
|
checkCorrectness(tmp_ui); |
|
} |
|
} |
|
} |
|
}); |
|
}); |
|
$(this).css("display", "none"); |
|
$("#wgt_edit").css("display", "block"); |
|
} |
|
} else { |
|
if(!$(this).hasClass("selected")){ |
|
$(this).addClass("selected"); |
|
$("#wgt_display").removeClass("selected"); |
|
$("#parameters").css("display","block"); |
|
sankore.enableDropOnWidget(true); |
|
$(".cont").each(function(){ |
|
var container = $(this); |
|
|
|
$("<div class='close_cont'>").appendTo(container); |
|
container.find(".imgs_cont").each(function(){ |
|
$("<button class='del_category'></button>").appendTo($(this)); |
|
$("<button class='add_category'></button>").appendTo($(this)); |
|
$(this).attr("ondragenter", "return false;") |
|
.attr("ondragleave", "$(this).css(\"background-color\",\"#E6F6FF\"); return false;") |
|
.attr("ondragover", "$(this).css(\"background-color\",\"#C3E9FF\"); return false;") |
|
.attr("ondrop", "$(this).css(\"background-color\",\"#E6F6FF\"); return onDropTarget(this,event);") |
|
.removeClass("red_cont") |
|
.removeClass("green_cont") |
|
.addClass("def_cont") |
|
.droppable("destroy") |
|
.find(".cat_desc").removeAttr("disabled"); |
|
var tmp_img_cont = $(this); |
|
var tmp_mask = $(this).find("input[name='mask']").val(); |
|
container.find(".img_block").each(function(){ |
|
if($(this).find("input").val() == tmp_mask){ |
|
$("<div class='close_img'>").appendTo($(this)); |
|
$(this).appendTo(tmp_img_cont); |
|
} |
|
}); |
|
}); |
|
container.find(".all_imgs").remove(); |
|
}); |
|
|
|
|
|
$("<div class='add_block'>" + sankoreLang.add + "</div>").appendTo("#data"); |
|
$(this).css("display", "none"); |
|
$("#wgt_display").css("display", "block"); |
|
} |
|
} |
|
}); |
|
|
|
//add new block |
|
$(".add_block").live("click", function(){ |
|
addContainer(); |
|
}); |
|
|
|
//adding new img |
|
$(".add_img").live("click", function(){ |
|
addImgBlock($(this)); |
|
}); |
|
|
|
//deleting a block |
|
$(".close_cont").live("click",function(){ |
|
$(this).parent().remove(); |
|
refreshBlockNumbers(); |
|
}); |
|
|
|
//deleting the img block |
|
$(".close_img").live("click", function(){ |
|
$(this).parent().remove(); |
|
}); |
|
|
|
//adding new category |
|
$(".add_category").live("click",function(){ |
|
addCategory($(this).parent()); |
|
}); |
|
|
|
//deleting the category |
|
$(".del_category").live("click",function(){ |
|
if($(this).parent().parent().find(".imgs_cont").size() == 1){ |
|
$(this).parent().find(".img_block").remove(); |
|
$(this).parent().find(".cat_desc").val(sankoreLang.enter); |
|
} else { |
|
$(this).parent().remove(); |
|
} |
|
}); |
|
} |
|
|
|
//export |
|
function exportData(){ |
|
var array_to_export = []; |
|
if($("#wgt_edit").hasClass("selected")){ |
|
$(".cont").each(function(){ |
|
var cont_obj = new Object(); |
|
cont_obj.style = $("#style_select").find("option:selected").val(); |
|
cont_obj.mode = "edit"; |
|
cont_obj.conts = []; |
|
$(this).find(".imgs_cont").each(function(){ |
|
var img_cont = new Object(); |
|
img_cont.mask = $(this).find("input[name='mask']").val(); |
|
img_cont.count = $(this).find(".img_block").size(); |
|
img_cont.text = $(this).find(".cat_desc").val(); |
|
img_cont.imgs = []; |
|
$(this).find(".img_block").each(function(){ |
|
var img_obj = new Object(); |
|
img_obj.value = $(this).find("input").val(); |
|
img_obj.link = $(this).find("img").attr("src").replace("../../",""); |
|
img_obj.ht = $(this).find("img").height(); |
|
img_obj.wd = $(this).find("img").width(); |
|
img_cont.imgs.push(img_obj); |
|
}); |
|
cont_obj.conts.push(img_cont); |
|
}); |
|
array_to_export.push(cont_obj); |
|
}); |
|
} else { |
|
$(".cont").each(function(){ |
|
var cont_obj = new Object(); |
|
cont_obj.style = $("#style_select").find("option:selected").val(); |
|
cont_obj.mode = "display"; |
|
cont_obj.conts = []; |
|
$(this).find(".imgs_cont").each(function(){ |
|
var img_cont = new Object(); |
|
img_cont.mask = $(this).find("input[name='mask']").val(); |
|
img_cont.count = $(this).find("input[name='count']").val(); |
|
img_cont.text = $(this).find(".cat_desc").val(); |
|
img_cont.imgs = []; |
|
$(this).find(".img_block").each(function(){ |
|
var img_obj = new Object(); |
|
img_obj.value = $(this).find("input").val(); |
|
img_obj.link = $(this).find("img").attr("src").replace("../../",""); |
|
img_obj.ht = $(this).find("img").height(); |
|
img_obj.wd = $(this).find("img").width(); |
|
img_cont.imgs.push(img_obj); |
|
}); |
|
cont_obj.conts.push(img_cont); |
|
}); |
|
cont_obj.all_imgs = []; |
|
$(this).find(".all_imgs .img_block").each(function(){ |
|
var img = new Object(); |
|
img.value = $(this).find("input").val(); |
|
img.link = $(this).find("img").attr("src").replace("../../",""); |
|
img.ht = $(this).find("img").height(); |
|
img.wd = $(this).find("img").width(); |
|
cont_obj.all_imgs.push(img); |
|
}); |
|
array_to_export.push(cont_obj); |
|
}); |
|
} |
|
|
|
if($(".cont").size() == 0){ |
|
var cont_obj = new Object(); |
|
cont_obj.style = $("#style_select").find("option:selected").val(); |
|
cont_obj.tmp = "clear"; |
|
array_to_export.push(cont_obj); |
|
} |
|
|
|
sankore.setPreference("categoriser_images", JSON.stringify(array_to_export)); |
|
} |
|
|
|
//import |
|
function importData(data){ |
|
|
|
var tmp = 0; |
|
for(var i in data){ |
|
if(data[i].tmp){ |
|
changeStyle(data[i].style); |
|
$("#style_select").val(data[i].style); |
|
} else { |
|
if(i == 0){ |
|
changeStyle(data[i].style); |
|
$("#style_select").val(data[i].style); |
|
} |
|
if(data[i].mode == "edit"){ |
|
var tmp_array = []; |
|
var container = $("<div class='cont'>"); |
|
var sub_container = $("<div class='sub_cont'>").appendTo(container); |
|
$("<div class='number_cont'>"+ (++tmp) +"</div>").appendTo(sub_container); |
|
|
|
for(var j in data[i].conts){ |
|
var imgs_container = $("<div class='imgs_cont def_cont'>").appendTo(container); |
|
|
|
$("<input type='hidden' name='mask' value='" + data[i].conts[j].mask + "'/>").appendTo(imgs_container); |
|
$("<input type='hidden' name='count' value='" + data[i].conts[j].count + "'/>").appendTo(imgs_container); |
|
var tmp_div = $("<div style='width: 100%; overflow: hidden;'>").appendTo(imgs_container); |
|
$("<input type='text' class='cat_desc' value='" + data[i].conts[j].text + "' disabled/>").appendTo(tmp_div); |
|
for(var k in data[i].conts[j].imgs){ |
|
var block_img = $("<div class='img_block' style='text-align: center;'></div>"); |
|
$("<input type='hidden' value='" + data[i].conts[j].imgs[k].value + "'/>").appendTo(block_img); |
|
var img = $("<img src=\"../../" + data[i].conts[j].imgs[k].link + "\" style=\"display: inline;\"/>").appendTo(block_img); |
|
img.height(data[i].conts[j].imgs[k].ht); |
|
if((120 - data[i].conts[j].imgs[k].ht) > 0) |
|
img.css("margin",(120 - data[i].conts[j].imgs[k].ht)/2 + "px 0"); |
|
tmp_array.push(block_img); |
|
} |
|
|
|
imgs_container.droppable({ |
|
hoverClass: 'dropHere', |
|
drop: function(event, ui) { |
|
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){ |
|
var tmp_ui = $(ui.draggable).parent(); |
|
$(this).append($(ui.draggable)); |
|
checkCorrectness(tmp_ui); |
|
} |
|
} |
|
}); |
|
} |
|
|
|
var all_imgs = $("<div class='all_imgs'>").appendTo(container); |
|
|
|
tmp_array = shuffle(tmp_array); |
|
for(j in tmp_array){ |
|
tmp_array[j].draggable({ |
|
helper:'clone', |
|
zIndex:100, |
|
appendTo: '#data' |
|
}); |
|
tmp_array[j].appendTo(all_imgs); |
|
} |
|
|
|
all_imgs.sortable(); |
|
|
|
all_imgs.droppable({ |
|
hoverClass: 'dropBack', |
|
drop: function(event, ui) { |
|
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){ |
|
if(this != $(ui.draggable).parent()[0]){ |
|
var tmp_ui = $(ui.draggable).parent(); |
|
$(this).append($(ui.draggable)); |
|
checkCorrectness(tmp_ui); |
|
} |
|
} |
|
} |
|
}); |
|
|
|
container.appendTo("#data"); |
|
} else { |
|
container = $("<div class='cont'>"); |
|
sub_container = $("<div class='sub_cont'>").appendTo(container); |
|
$("<div class='number_cont'>" + (++tmp) + "</div>").appendTo(sub_container); |
|
|
|
for(j in data[i].conts){ |
|
var tmp_img_array = []; |
|
imgs_container = $("<div class='imgs_cont def_cont'>").appendTo(container); |
|
$("<input type='hidden' name='mask' value='" + data[i].conts[j].mask + "'/>").appendTo(imgs_container); |
|
$("<input type='hidden' name='count' value='" + data[i].conts[j].count + "'/>").appendTo(imgs_container); |
|
tmp_div = $("<div style='width: 100%; overflow: hidden;'>").appendTo(imgs_container); |
|
$("<input type='text' class='cat_desc' value='" + data[i].conts[j].text + "' disabled/>").appendTo(tmp_div); |
|
for(k in data[i].conts[j].imgs){ |
|
block_img = $("<div class='img_block' style='text-align: center;'></div>"); |
|
$("<input type='hidden' value='" + data[i].conts[j].imgs[k].value + "'/>").appendTo(block_img); |
|
img = $("<img src=\"../../" + data[i].conts[j].imgs[k].link + "\" style=\"display: inline;\"/>").appendTo(block_img); |
|
img.height(data[i].conts[j].imgs[k].ht); |
|
if((120 - data[i].conts[j].imgs[k].ht) > 0) |
|
img.css("margin",(120 - data[i].conts[j].imgs[k].ht)/2 + "px 0"); |
|
tmp_img_array.push(block_img); |
|
} |
|
|
|
tmp_img_array = shuffle(tmp_img_array); |
|
for(k in tmp_img_array){ |
|
tmp_img_array[k].draggable({ |
|
helper:'clone', |
|
zIndex:100, |
|
appendTo: '#data' |
|
}); |
|
tmp_img_array[k].appendTo(imgs_container); |
|
} |
|
|
|
imgs_container.droppable({ |
|
hoverClass: 'dropHere', |
|
drop: function(event, ui) { |
|
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){ |
|
var tmp_ui = $(ui.draggable).parent(); |
|
$(this).append($(ui.draggable)); |
|
checkCorrectness(tmp_ui); |
|
} |
|
} |
|
}); |
|
checkCorrectness(imgs_container); |
|
} |
|
|
|
all_imgs = $("<div class='all_imgs'>").appendTo(container); |
|
var all_imgs_arr = []; |
|
for(j in data[i].all_imgs){ |
|
block_img = $("<div class='img_block' style='text-align: center;'></div>"); |
|
$("<input type='hidden' value='" + data[i].all_imgs[j].value + "'/>").appendTo(block_img); |
|
img = $("<img src=\"../../" + data[i].all_imgs[j].link + "\" style=\"display: inline;\"/>").appendTo(block_img); |
|
img.height(data[i].all_imgs[j].ht); |
|
if((120 - data[i].all_imgs[j].ht) > 0) |
|
img.css("margin",(120 - data[i].all_imgs[j].ht)/2 + "px 0"); |
|
all_imgs_arr.push(block_img); |
|
} |
|
|
|
all_imgs_arr = shuffle(all_imgs_arr); |
|
for(k in all_imgs_arr){ |
|
all_imgs_arr[k].draggable({ |
|
helper:'clone', |
|
zIndex:100, |
|
appendTo: '#data' |
|
}); |
|
all_imgs_arr[k].appendTo(all_imgs); |
|
} |
|
|
|
all_imgs.sortable(); |
|
|
|
all_imgs.droppable({ |
|
hoverClass: 'dropBack', |
|
drop: function(event, ui) { |
|
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){ |
|
if(this != $(ui.draggable).parent()[0]){ |
|
var tmp_ui = $(ui.draggable).parent(); |
|
$(this).append($(ui.draggable)); |
|
checkCorrectness(tmp_ui); |
|
} |
|
} |
|
} |
|
}); |
|
container.appendTo("#data"); |
|
checkCorrectness(all_imgs); |
|
} |
|
} |
|
} |
|
} |
|
|
|
//example |
|
function showExample(){ |
|
|
|
changeStyle("3"); |
|
var tmp_array = []; |
|
|
|
var container = $("<div class='cont'>").appendTo("#data"); |
|
var sub_container = $("<div class='sub_cont'>").appendTo(container); |
|
var imgs_container_one = $("<div class='imgs_cont def_cont'>").appendTo(container); |
|
var imgs_container_two = $("<div class='imgs_cont def_cont'>").appendTo(container); |
|
var all_imgs = $("<div class='all_imgs'>").appendTo(container); |
|
|
|
var number = $("<div class='number_cont'>1</div>").appendTo(sub_container); |
|
|
|
$("<input type='hidden' name='mask' value='1'/>").appendTo(imgs_container_one); |
|
$("<input type='hidden' name='count' value='2'/>").appendTo(imgs_container_one); |
|
var tmp_div_one = $("<div style='width: 100%; overflow: hidden;'>").appendTo(imgs_container_one); |
|
$("<input type='text' class='cat_desc' value='" + sankoreLang.first_desc + "' disabled/>").appendTo(tmp_div_one); |
|
|
|
$("<input type='hidden' name='mask' value='2'/>").appendTo(imgs_container_two); |
|
$("<input type='hidden' name='count' value='3'/>").appendTo(imgs_container_two); |
|
var tmp_div_two = $("<div style='width: 100%; overflow: hidden;'>").appendTo(imgs_container_two); |
|
$("<input type='text' class='cat_desc' value='" + sankoreLang.second_desc + "' disabled/>").appendTo(tmp_div_two); |
|
|
|
var img1 = $("<div class='img_block' style='text-align: center;'></div>"); |
|
$("<input type='hidden' value='2'/>").appendTo(img1); |
|
$("<img src=\"../../objects/0.gif\" style=\"display: inline;\" height=\"120\"/>").appendTo(img1); |
|
var img2 = $("<div class='img_block' style='text-align: center;'></div>"); |
|
$("<input type='hidden' value='1'/>").appendTo(img2); |
|
$("<img src=\"../../objects/1.gif\" style=\"display: inline;\" height=\"120\"/>").appendTo(img2); |
|
var img3 = $("<div class='img_block' style='text-align: center;'></div>"); |
|
$("<input type='hidden' value='2'/>").appendTo(img3); |
|
$("<img src=\"../../objects/2.gif\" style=\"display: inline;\" height=\"120\"/>").appendTo(img3); |
|
var img4 = $("<div class='img_block' style='text-align: center;'></div>"); |
|
$("<input type='hidden' value='1'/>").appendTo(img4); |
|
$("<img src=\"../../objects/3.gif\" style=\"display: inline;\" height=\"120\"/>").appendTo(img4); |
|
var img5 = $("<div class='img_block' style='text-align: center;'></div>"); |
|
$("<input type='hidden' value='2'/>").appendTo(img5); |
|
$("<img src=\"../../objects/4.gif\" style=\"display: inline;\" height=\"120\"/>").appendTo(img5); |
|
|
|
tmp_array.push(img1, img2, img3, img4, img5); |
|
tmp_array = shuffle(tmp_array); |
|
for(var i = 0; i<tmp_array.length;i++){ |
|
tmp_array[i].draggable({ |
|
helper:'clone', |
|
zIndex:100, |
|
appendTo: '#data' |
|
}); |
|
tmp_array[i].appendTo(all_imgs); |
|
} |
|
all_imgs.sortable(); |
|
|
|
imgs_container_one.droppable({ |
|
hoverClass: 'dropHere', |
|
drop: function(event, ui) { |
|
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){ |
|
var tmp_ui = $(ui.draggable).parent(); |
|
$(this).append($(ui.draggable)); |
|
checkCorrectness(tmp_ui); |
|
} |
|
} |
|
}); |
|
|
|
imgs_container_two.droppable({ |
|
hoverClass: 'dropHere', |
|
drop: function(event, ui) { |
|
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){ |
|
var tmp_ui = $(ui.draggable).parent(); |
|
$(this).append($(ui.draggable)); |
|
checkCorrectness(tmp_ui); |
|
} |
|
} |
|
}); |
|
|
|
all_imgs.droppable({ |
|
hoverClass: 'dropBack', |
|
drop: function(event, ui) { |
|
if($(ui.draggable).parent().parent().html() == $(this).parent().html()){ |
|
if(this != $(ui.draggable).parent()[0]){ |
|
var tmp_ui = $(ui.draggable).parent(); |
|
$(this).append($(ui.draggable)); |
|
checkCorrectness(tmp_ui); |
|
} |
|
} |
|
} |
|
}); |
|
} |
|
|
|
//function that allows to add new category |
|
function addCategory(obj){ |
|
var imgs_container = $("<div class='imgs_cont def_cont'>").insertAfter(obj); |
|
$("<input type='hidden' name='mask' value='" + returnId() + "'/>").appendTo(imgs_container); |
|
$("<input type='hidden' name='count' value=''/>").appendTo(imgs_container); |
|
var tmp_div = $("<div style='width: 100%; overflow: hidden;'>").appendTo(imgs_container); |
|
$("<input type='text' class='cat_desc' value='" + sankoreLang.enter + "'>").appendTo(tmp_div); |
|
$("<button class='del_category'></button>").appendTo(imgs_container); |
|
$("<button class='add_category'></button>").appendTo(imgs_container); |
|
imgs_container.attr("ondragenter", "return false;") |
|
.attr("ondragleave", "$(this).css(\"background-color\",\"#e6f6ff\"); return false;") |
|
.attr("ondragover", "$(this).css(\"background-color\",\"#c3e9ff\"); return false;") |
|
.attr("ondrop", "$(this).css(\"background-color\",\"#e6f6ff\"); return onDropTarget(this,event);"); |
|
} |
|
|
|
//add new container |
|
function addContainer(){ |
|
var container = $("<div class='cont'>"); |
|
var sub_container = $("<div class='sub_cont'>").appendTo(container); |
|
var imgs_container = $("<div class='imgs_cont def_cont'>").appendTo(container); |
|
|
|
var close = $("<div class='close_cont'>").appendTo(container); |
|
var number = $("<div class='number_cont'>"+ ($(".cont").size() + 1) +"</div>").appendTo(sub_container); |
|
|
|
$("<input type='hidden' name='mask' value='" + returnId() + "'/>").appendTo(imgs_container); |
|
$("<input type='hidden' name='count' value=''/>").appendTo(imgs_container); |
|
var tmp_div = $("<div style='width: 100%; overflow: hidden;'>").appendTo(imgs_container); |
|
$("<input type='text' class='cat_desc' value='" + sankoreLang.enter + "'/>").appendTo(tmp_div); |
|
$("<button class='del_category'></button>").appendTo(imgs_container); |
|
$("<button class='add_category'></button>").appendTo(imgs_container); |
|
imgs_container.attr("ondragenter", "return false;") |
|
.attr("ondragleave", "$(this).css(\"background-color\",\"#e6f6ff\"); return false;") |
|
.attr("ondragover", "$(this).css(\"background-color\",\"#c3e9ff\"); return false;") |
|
.attr("ondrop", "$(this).css(\"background-color\",\"#e6f6ff\"); return onDropTarget(this,event);"); |
|
container.insertBefore($(".add_block")); |
|
} |
|
|
|
function refreshBlockNumbers(){ |
|
var i = 0; |
|
$(".cont").each(function(){ |
|
$(this).find(".number_cont").text(++i); |
|
}) |
|
} |
|
|
|
//shuffles an array |
|
function shuffle( arr ) |
|
{ |
|
var pos, tmp; |
|
|
|
for( var i = 0; i < arr.length; i++ ) |
|
{ |
|
pos = Math.round( Math.random() * ( arr.length - 1 ) ); |
|
tmp = arr[pos]; |
|
arr[pos] = arr[i]; |
|
arr[i] = tmp; |
|
} |
|
return arr; |
|
} |
|
|
|
function stringToXML(text){ |
|
if (window.ActiveXObject){ |
|
var doc=new ActiveXObject('Microsoft.XMLDOM'); |
|
doc.async='false'; |
|
doc.loadXML(text); |
|
} else { |
|
var parser=new DOMParser(); |
|
doc=parser.parseFromString(text,'text/xml'); |
|
} |
|
return doc; |
|
} |
|
|
|
|
|
//changing the style |
|
function changeStyle(val){ |
|
switch(val){ |
|
case "1": |
|
$(".b_top_left").removeClass("btl_pad").removeClass("without_back"); |
|
$(".b_top_center").removeClass("btc_pad").removeClass("without_back"); |
|
$(".b_top_right").removeClass("btr_pad").removeClass("without_back"); |
|
$(".b_center_left").removeClass("bcl_pad").removeClass("without_back"); |
|
$(".b_center_right").removeClass("bcr_pad").removeClass("without_back"); |
|
$(".b_bottom_right").removeClass("bbr_pad").removeClass("without_back"); |
|
$(".b_bottom_left").removeClass("bbl_pad").removeClass("without_back"); |
|
$(".b_bottom_center").removeClass("bbc_pad").removeClass("without_back"); |
|
$("#wgt_reload").removeClass("pad_color").removeClass("pad_reload"); |
|
$("#wgt_help").removeClass("pad_color").removeClass("pad_help"); |
|
$("#wgt_edit").removeClass("pad_color").removeClass("pad_edit"); |
|
$("#wgt_name").removeClass("pad_color"); |
|
$("#wgt_display").addClass("display_wood"); |
|
$("#style_select").val(val); |
|
$("body, html").removeClass("without_radius").addClass("radius_ft"); |
|
break; |
|
case "2": |
|
$(".b_top_left").addClass("btl_pad").removeClass("without_back"); |
|
$(".b_top_center").addClass("btc_pad").removeClass("without_back"); |
|
$(".b_top_right").addClass("btr_pad").removeClass("without_back"); |
|
$(".b_center_left").addClass("bcl_pad").removeClass("without_back"); |
|
$(".b_center_right").addClass("bcr_pad").removeClass("without_back"); |
|
$(".b_bottom_right").addClass("bbr_pad").removeClass("without_back"); |
|
$(".b_bottom_left").addClass("bbl_pad").removeClass("without_back"); |
|
$(".b_bottom_center").addClass("bbc_pad").removeClass("without_back"); |
|
$("#wgt_reload").addClass("pad_color").addClass("pad_reload"); |
|
$("#wgt_help").addClass("pad_color").addClass("pad_help"); |
|
$("#wgt_edit").addClass("pad_color").addClass("pad_edit"); |
|
$("#wgt_name").addClass("pad_color"); |
|
$("#wgt_display").removeClass("display_wood"); |
|
$("#style_select").val(val); |
|
$("body, html").removeClass("without_radius").removeClass("radius_ft"); |
|
break; |
|
case "3": |
|
$(".b_top_left").addClass("without_back").removeClass("btl_pad"); |
|
$(".b_top_center").addClass("without_back").removeClass("btc_pad"); |
|
$(".b_top_right").addClass("without_back").removeClass("btr_pad"); |
|
$(".b_center_left").addClass("without_back").removeClass("bcl_pad"); |
|
$(".b_center_right").addClass("without_back").removeClass("bcr_pad"); |
|
$(".b_bottom_right").addClass("without_back").removeClass("bbr_pad"); |
|
$(".b_bottom_left").addClass("without_back").removeClass("bbl_pad"); |
|
$(".b_bottom_center").addClass("without_back").removeClass("bbc_pad"); |
|
$("#wgt_help").addClass("pad_color").addClass("pad_help"); |
|
$("#wgt_reload").addClass("pad_color").addClass("pad_reload"); |
|
$("#wgt_edit").addClass("pad_color").addClass("pad_edit"); |
|
$("#wgt_name").addClass("pad_color"); |
|
$("#wgt_display").removeClass("display_wood"); |
|
$("#style_select").val(val); |
|
$("body, html").addClass("without_radius").removeClass("radius_ft"); |
|
break; |
|
} |
|
} |
|
|
|
//return id |
|
function returnId(){ |
|
var tmp = Math.random().toString(); |
|
return tmp.substr(2); |
|
} |
|
|
|
//a func for checking when smth will drop |
|
function checkOnDrop(dest){ |
|
var tmp_count = dest.find("input[name='count']").val(); |
|
var tmp_mask = dest.find("input[name='mask']").val(); |
|
if(dest.find(".img_block").size() == tmp_count){ |
|
var tmp_right = true; |
|
dest.find(".img_block").each(function(){ |
|
if($(this).find("input").val() != tmp_mask) |
|
tmp_right = false; |
|
}); |
|
if(tmp_right) |
|
dest.removeClass("def_cont").removeClass("red_cont").addClass("green_cont"); |
|
else |
|
dest.removeClass("def_cont").removeClass("green_cont").addClass("red_cont"); |
|
} else |
|
dest.removeClass("def_cont").removeClass("green_cont").addClass("red_cont"); |
|
} |
|
|
|
//checking source on correctness |
|
function checkCorrectness(source){ |
|
if(!source.hasClass("all_imgs")){ |
|
if(source.parent().find(".all_imgs").find(".img_block").size() == 0){ |
|
source.parent().find(".imgs_cont").each(function(){ |
|
checkOnDrop($(this)) |
|
}) |
|
} else { |
|
source.parent().find(".imgs_cont").each(function(){ |
|
$(this).addClass("def_cont").removeClass("green_cont").removeClass("red_cont"); |
|
}) |
|
} |
|
} else { |
|
if(source.find(".img_block").size() > 0){ |
|
source.parent().find(".imgs_cont").each(function(){ |
|
$(this).addClass("def_cont").removeClass("green_cont").removeClass("red_cont"); |
|
}) |
|
} else { |
|
source.parent().find(".imgs_cont").each(function(){ |
|
checkOnDrop($(this)) |
|
}) |
|
} |
|
} |
|
} |
|
|
|
function onDropTarget(obj, event) { |
|
if (event.dataTransfer) { |
|
var format = "text/plain"; |
|
var textData = event.dataTransfer.getData(format); |
|
if (!textData) { |
|
alert(":("); |
|
} |
|
textData = stringToXML(textData); |
|
if(textData.getElementsByTagName("ready")[0].firstChild.textContent == "true"){ |
|
var tmp = textData.getElementsByTagName("path")[0].firstChild.textContent; |
|
var img_block = $("<div class='img_block' style='text-align: center;'>"); |
|
$("<div class='close_img'>").appendTo(img_block); |
|
$("<input type='hidden' value='" + $(obj).find("input[name='mask']").val() + "'/>").appendTo(img_block); |
|
var tmp_img = $("<img style='display: inline;'/>").attr("src", "../../" + tmp).appendTo(img_block); |
|
img_block.draggable({ |
|
helper:'clone', |
|
zIndex:100, |
|
appendTo: '#data' |
|
}); |
|
$(obj).append(img_block); |
|
|
|
if(tmp_img.height() == 0){ |
|
var tmp_id = setInterval(function(){ |
|
if(tmp_img.height() != 0){ |
|
if(tmp_img.height() >= tmp_img.width()) |
|
tmp_img.attr("height", "120"); |
|
else{ |
|
tmp_img.attr("width","120"); |
|
var h = tmp_img.height(); |
|
tmp_img.attr("height",h); |
|
tmp_img.css("margin",(120 - tmp_img.height())/2 + "px 0"); |
|
} |
|
clearInterval(tmp_id); |
|
} |
|
}, 10); |
|
} else { |
|
if(tmp_img.height() >= tmp_img.width()) |
|
tmp_img.attr("height", "120"); |
|
else{ |
|
tmp_img.attr("width","120"); |
|
var h = tmp_img.height(); |
|
tmp_img.attr("height",h); |
|
tmp_img.css("margin",(120 - tmp_img.height())/2 + "px 0"); |
|
} |
|
} |
|
} |
|
exportData(); |
|
} |
|
else { |
|
alert ("Your browser does not support the dataTransfer object."); |
|
} |
|
|
|
if (event.stopPropagation) { |
|
event.stopPropagation (); |
|
} |
|
else { |
|
event.cancelBubble = true; |
|
} |
|
return false; |
|
}
|
|
|