//za predogled in quick view oz. quick edit Drag and drop postavitve vprasanj //var refresh = 0; var refresh = []; var skatlastOkvir = []; var draggableOnDroppable = []; //spremenljivka, ki belezi prisotnost odgovora na ustrezni povrsini pri Drag and Drop var maxDragDrop = []; //spremenljivka, ki belezi max stevilo moznih odgovorov var draggableOverDroppable = []; //spremenljivka, ki belezi prisotnost odgovora nad ustreznim okvirjem pri Drag and Drop var default_var_height_1 = []; //belezi zacetno vrednost visine celotnega vprasanja po usklajevanju visine glede na prisotne kategorije odgovorov var data_after_refresh = []; //belezi, ali je uporabnik refresh-al stran oz. se vraca na stran var frame_total_height_right = []; //belezi visino okvirjev desnega bloka @ drag and drop grids var draggableOver = []; var last_vre_id = []; //belezi vre_id zadnjega draggable, ki smo ga premikali @ Drag and drop var vre_id_global = []; //belezi vre_id trenutne kategorije odgovorov @ Drag and drop var last_indeks = []; //belezi indeks zadnjega okvirja, kjer je bil draggable @ Drag and drop var indeks_global = []; //belezi trenutni indeks okvirja @ Drag and drop var last_drop = []; //belezi indeks zadnjega okvirja, kjer je bil draggable droppan @ Drag and drop var num_grids_global = []; //belezi stevilo gridov za doloceno vprasanje var draggable_global = []; var cat_pushed = []; //belezi, ali je kategorijo odrinila druga kategorija odgovora @ Drag and drop function DraggableAdmin(vre_id){ //console.log('Hura!'); var default_cat_height = 15; var final_height = 0; var cat_text_length = $('#vre_id_'+vre_id).html().length; //hrani stevilo znakov, ki so vpisani v trenutni kategoriji odgovora //console.log('Število znakov v kategoriji: '+cat_text_length); var num_of_br = $('#vre_id_'+vre_id+' br').length; //hrani stevilo br oz. ročnih vnosov novih vrstic //console.log('Število br v kategoriji: '+num_of_br); var num_imgs = $('#vre_id_'+vre_id+' img').length; //hrani stevilo img v interesiranem div-u //console.log('Število slik v kategoriji: '+num_imgs); var max_cat_text_length = 30; //hrani max stevilo dolzine teksta do katerega ni potrebno samodejno dodati
if( (cat_text_length > max_cat_text_length) && (num_of_br == 0) && (num_imgs == 0) ){//ce je tekst daljsi od 30 znakov, nima breakov ali slik dodaj
var txt = $('#vre_id_'+vre_id).html(); //console.log(txt); var txt_alt = txt.slice(0, max_cat_text_length) + "
" + txt.slice(max_cat_text_length); //console.log(txt_alt); $('#vre_id_'+vre_id).html(txt_alt); final_height = final_height + default_cat_height + 25; //console.log(final_height); } if (num_imgs != 0){ // ce imamo sliko var img_height = 0; var max_width = $('.ranking').width(); var img = $('#vre_id_'+vre_id+' img'); var img_width = img.width(); var img_height = img.height(); if (img_width > max_width){ img_height = (img_height / img_width) * max_width; $('#vre_id_'+vre_id).children('img').css({width: max_width}); $('#vre_id_'+vre_id).children('img').css({height: img_height}); //$('#vre_id_'+vre_id).css({height: height}); } //console.log("img_height: "+img_height); if(img_height > 25){ //ce je visina slike vecja od default visine kategorije final_height = final_height + img_height; } } if(num_of_br != 0){ var br_height = num_of_br*25; if (num_imgs == 0){ final_height = final_height + default_cat_height + br_height; } else{ final_height = final_height + br_height; } //console.log(final_height); if( (img_height < 25) && (img_height != 0) ){ final_height = final_height + img_height; } } if (final_height != 0){ $('#vre_id_'+vre_id).css({'height':final_height}); //dodaj atributu style še novo višino //TO-DO: ureditev visine celotnega vprasanja - kodo je potrebno prenesti nekam drugam, kjer bo se dalo globlano oceniti visino spremenljivke //var default_var_height = 271; //default visina celotnega vprasanja //var final_var_height = default_var_height + img_height; //$('#vre_id_'+vre_id).css({'height':final_var_height}); } } //************funkcija, ki skrbi za inicializacijo draggable elementov in delovanje drag and drop ob dvojnem kliku function init_GridDraggable(spremenljivka, vre_id, grids){ data_after_refresh[spremenljivka] = false; frame_total_height_right[spremenljivka] = 0; last_vre_id[spremenljivka] = 0; vre_id_global[spremenljivka] = 0; last_indeks[spremenljivka] = 0; last_drop[vre_id] = 0; indeks_global[spremenljivka] = 0; num_grids_global[spremenljivka] = grids;//stevilo okvirjev, pomembno za revert kategorije odgovora cat_pushed[spremenljivka] = false; draggable_global[vre_id] = 0; //spremenljvke, ce se ne uporablja polj - konec //spremenljivke kot polja polj draggableOnDroppable[vre_id] = new Array(2); //inicializacija spremenljivke, ki belezi, ali je trenutna kategorija odgovora prisotna kontejnerju/okvirju draggableOverDroppable[vre_id] = new Array(2); for(i = 1; i <= num_grids_global[spremenljivka]; i++){ draggableOnDroppable[vre_id][i] = false; draggableOverDroppable[vre_id][i] = false; } } //************funkcija, ki skrbi za inicializacijo draggable elementov in delovanje drag and drop ob dvojnem kliku function Draggable(tip, spremenljivka, vre_id, ajax, anketa, site_url, usr_id, other, mobile, quick_view, preview_spremenljivka){ var top_cat = -1; var left_cat = -1; if (mobile == 0 || mobile == 2){ top_cat = -6; left_cat = -6; } $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).addClass('drag_and_drop').detach().appendTo('#half_frame_dropping_'+spremenljivka) //zeleni element s kategorijami dodaj v zacetnem kontejnerju .draggable({ //ureditev, da je element draggable cursor: 'move', //revert: true, revert: function(socketObj) { if(typeof checkBranching == 'function'){ checkBranching(); } //if false then no socket object drop occurred, reverting happens if(socketObj === false){ //ce je tip kategorije en odgovor in smo premaknili kategorijo odgovora od levega okvirja proti desnemu if (tip == 1 && draggableOver[spremenljivka] == true){ $('#half2_frame_dropping_'+spremenljivka).toggleClass('frame_dropping_hover_right_single');//sprozi preklop sloga levega okvirja //console.log('Yo!'); } draggableOver[spremenljivka] = false; return true; } else { return false; } }, //stack: '#half_'+spremenljivka+' div', stack: '#half2_'+spremenljivka+' div', opacity: 0.9, containment: '#prestavljanje_'+spremenljivka, }) .dblclick(function() { //ob dvojnem kliku na kategorijo, to prenesi kot odgovor na ustrezno mesto var vre_id = $(this).attr('value'); var id_parent = $(this).parent().attr('id'); //hrani id bloka v katerem se trenutno nahaja mozen odgovor var other = $(this).attr('missing'); //spremenljivka, ki hrani vrednost atributa missing var other_present = $('#half2_frame_dropping_'+spremenljivka).children('div').attr('missing'); //missing, ki je trenutno v desnem bloku if(typeof checkBranching == 'function'){ checkBranching(); } if (id_parent == 'half_frame_dropping_'+spremenljivka){ //ce je trenuten odgovor v levem bloku if( ( (tip == 1 && other == 0) ) || ( (tip == 2) && (other_present != 0) ) || ( (other != 0) ) ) {//ce je preneseni odgovor tipa 1 ("radio") in ni missing-a, //ALI ce je preneseni odgovor tipa 2 ("checkbox") in je missing prisoten v desnem bloku ALI ce je preneseni odgovor missing //sprazni blok z odgovori oz. prenesi morebitne obstojece odgovore nazaj v levi blok in zbrisi trenutni (missing) odgovor iz baze if (ajax){ //zbrisi trenutne odgovore iz baze $.post(site_url+'/main/survey/ajax.php?a=delete_dragdrop2_data', {spremenljivka: spremenljivka, usr_id: usr_id, anketa: anketa}); //post-aj potrebne podatke } $('.ui-draggable[name="vrednost_'+spremenljivka+'"]').appendTo('#half_frame_dropping_'+spremenljivka);//prenesi skupino odgovorov v levi (zacetni) blok } $('#half2_frame_dropping_'+spremenljivka).prepend(this); //pripopaj na zacetek seznama odgovorov (desni blok) izbrani missing if (ajax){ //vnesi missing odgovor v bazo $.post(site_url+'/main/survey/ajax.php?a=accept_dragdrop1', {spremenljivka: spremenljivka, vre_id: vre_id, anketa: anketa, usr_id: usr_id}); //post-aj potrebne podatke } draggableOver[spremenljivka] = false; draggableOnDroppable[vre_id] = true; //kategorija odgovora je v desnem okviru } //konec if za levi blok else if(id_parent == 'half2_frame_dropping_'+spremenljivka){ //ce je trenuten odgovor v desnem bloku if(other != 0 || other == 0){ var vre_id = $(this).attr('value'); $('#half_frame_dropping_'+spremenljivka).prepend(this); //pripopaj prenesno na zacetek seznama kategorij $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).draggable( 'option', 'appendTo', '#half_frame_dropping_'+spremenljivka); $('#vrednost_if_'+usr_id).remove(); if (ajax){ $.post(site_url+'/main/survey/ajax.php?a=delete_dragdrop1_data', {spremenljivka: spremenljivka, vre_id: vre_id, usr_id: usr_id, anketa: anketa}); //post-aj potrebne podatke } } /* if(other == 0){ var vre_id = $(this).attr('value'); $('#half_'+spremenljivka).prepend(this); //pripopaj preneseno na zacetek seznama kategorij $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).draggable( 'option', 'appendTo', '#half_'+spremenljivka); $('#vrednost_if_'+usr_id).remove(); if (ajax){ $.post(site_url+'/main/survey/ajax.php?a=delete_dragdrop1_data', {spremenljivka: spremenljivka, vre_id: vre_id, usr_id: usr_id, anketa: anketa}); //post-aj potrebne podatke } } */ draggableOver[spremenljivka] == false; //nismo vec v over dogodku draggableOnDroppable[vre_id] = false; } //konec if za desni blok }); //dodajanje atributov, ki so prisotni pri vseh ostalih kategorijah odgovorov $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).attr({'value':vre_id, 'name':'vrednost_'+spremenljivka, 'onclick':'checkBranching();', 'missing':other}); if(quick_view || preview_spremenljivka){ //ce je le predogled $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).draggable( "option", "disabled", true ); //disable-anje drag and drop } //ureditev visine kategorije (div) glede na prisotnost slike ali vecvrsticnega teksta var default_cat_height = 15; var final_height = 0; //var cat_text_length = $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).text().length; //hrani stevilo znakov, ki so vpisani v trenutni kategoriji odgovora var cat_text_length = $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).html().length; //hrani stevilo znakov, ki so vpisani v trenutni kategoriji odgovora //console.log('Število znakov v kategoriji: '+cat_text_length); var num_of_br = $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id+' br').length; //hrani stevilo br oz. ročnih vnosov novih vrstic //console.log('Število br v kategoriji: '+num_of_br); var num_imgs = $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id+' img').length; //hrani stevilo img v interesiranem div-u //console.log('Število slik v kategoriji: '+num_imgs); var max_cat_text_length = 30; //hrani max stevilo dolzine teksta do katerega ni potrebno samodejno dodati
if( (cat_text_length > max_cat_text_length) && (num_of_br == 0) && (num_imgs == 0) ){//ce je tekst daljsi od 30 znakov, nima breakov ali slik dodaj
//if( (cat_text_length > max_cat_text_length) ){//ce je tekst daljsi od 35 znakov dodaj
//console.log('Tekst je daljši od '+max_cat_text_length+' znakov'); //var txt2 = txt1.slice(0, 3) + "bar" + txt1.slice(3); //var txt = $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).text(); var txt = $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).html(); //console.log(txt); var txt_alt = txt.slice(0, max_cat_text_length) + "
" + txt.slice(max_cat_text_length); //console.log(txt_alt); $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).html(txt_alt); final_height = final_height + default_cat_height + 25; //console.log(final_height); } /* else if( (cat_text_length > max_cat_text_length) && (num_of_br == 0) && (num_imgs != 0) ){//ce je tekst daljsi od 35 znakov, nima breakov, ima pa sliko dodaj
var txt = $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).html(); console.log(txt); var n_img_start = txt.search(""); console.log(n_img_start); console.log(n_img_end); //var txt_alt = txt.slice(0, max_cat_text_length) + "
" + txt.slice(max_cat_text_length); //console.log(txt_alt); //$('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).html(txt_alt); //final_height = final_height + default_cat_height + 25; //console.log(final_height); } */ if (num_imgs != 0){ // ce imamo sliko var img_height = 0; //var max_width = $('.ranking').width(); var max_width = 230; var img = $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id+' img'); var img_width = img.width(); //console.log("img_width: "+img_width); var img_height = img.height(); //console.log("img_height: "+img_height); if (img_width > max_width){ img_height = (img_height / img_width) * max_width; img.css({width: max_width}); img.css({height: img_height}); //$('#vre_id_'+vre_id).css({height: height}); //console.log("Vecji od max width"); } //ureditev mobilne različice prikazovanja slik znotraj kategorij odgovorov /* if (mobile == 1){ //ce je mobilnik img_height = (img_height / img_width) * 100; img_width = 100; $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id+' img').attr('style', 'margin: auto !important'); //dodaj atribut $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id+' img').css({'height':img_height,'width':img_width}); //ustrezno spremeni visino in sirino slike } */ //ureditev mobilne različice prikazovanja - konec //console.log("img_height: "+img_height); if(img_height > 25){ //ce je visina slike vecja od default visine kategorije final_height = final_height + img_height; } //ureditev visine variable_holder, ki je znotraj okvirja !!!!!!!!!! //$('#spremenljivka_'+spremenljivka+' div.variable_holder.clr').css({'height':(final_height + img_height)+'px'}); } if(num_of_br != 0){ var br_height = num_of_br*25; if (num_imgs == 0){ final_height = final_height + default_cat_height + br_height; } else{ final_height = final_height + br_height; } //console.log(final_height); if( (img_height < 25) && (img_height != 0) ){ final_height = final_height + img_height; } } if (final_height != 0){ $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).css({'height':final_height}); //dodaj style atributu še novo višino za levi blok } //ureditev visine kategorije (div) glede na prisotnost slike ali vecvrsticnega teksta - konec } //*********************************************************************** //*********funkcija, ki skrbi za delovanje drag and drop funkcionalnosti function DragDropDelovanje(tip, spremenljivka, site_url, ajax, anketa, usr_id, num_of_cats, mobile){ //*****za mobilne naprave var top_cat = -1; var left_cat = -1; var default_var_height = 290; if (mobile == 0 || mobile == 2){ top_cat = -6; left_cat = -6; default_var_height = 220; //default visina celotnega vprasanja @ mobile == 0 (desktop) in mobile == 2 (tablica) } //********************* //ureditev visine celotnega vprasanja, ce je ta visja od default-a******************************************************************* var cat_total_height_left = 0; //hrani trenutno visino levega okvirja kategorij odgovorov var cat_margin_left = 0; var cat_max_height = 0; //hrani trenutno najvecjo visino trenutne kategorije var cat_default_inline_text_length = 16; //default dolzina teksta v eni vrstici kategorij odgovorov //var naslov_height = $('#spremenljivka_'+spremenljivka+' .naslov').height(); //visina naslova vprasanja (besedila vprasanja) var naslov_height = $('#spremenljivka_'+spremenljivka+' .naslov').outerHeight(true); //visina naslova vprasanja (besedila vprasanja) var visinaPaddingovMarginovVprasanja = $('#spremenljivka_'+spremenljivka).outerHeight(true) - $('#spremenljivka_'+spremenljivka).height(); var visinaPaddingovMarginovHolder = $('#spremenljivka_'+spremenljivka+' div.variable_holder.clr').outerHeight(true) - $('#spremenljivka_'+spremenljivka+' div.variable_holder.clr').height(); var pomoznoBesediloHeight = 40; //visina besedila "Razpoložljive kategorije:" //ureditev visine puscice med blokoma okvirjev var variable_holder_height = $('#spremenljivka_'+spremenljivka+' .variable_holder').height(); //visina variable_holder, potrebna za visino puscice med blokoma $('#spremenljivka_'+spremenljivka+' td.middle img').css({'top' : (naslov_height + variable_holder_height/2) + 'px'}); //visina puscice med blokoma okvirjev if (ajax){ //console.log('Getting data on load'); $.get(site_url+'/main/survey/ajax.php?a=get_dragdrop1_data', {spremenljivka: spremenljivka, anketa: anketa}, function(data){ //get potrebnih podatkov za resevanje missing var array_length = data.length; //hrani koliko podatkov je prisotnih v polju s podatki iz baze var vre_id = []; //polje, ki hrani id-je vrednosti vseh kategorij odgovorov interesirane spremenljivke //var cat_total_height = 0; //hrani trenutno visino celotnega trenutnega vprasanja //console.log(array_length); //prikazi koliko podatkov je prisotnih v polju s podatki iz baze for(var i = 0; i < array_length; i++){ //sprehodi se po vseh vrednostih polja vre_id vre_id[i] = data[i]; //polje iz podatkov iz baze data[], shrani v polje vre_id[] var cat_height = $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id[i]).height(); //visina kategorije z oznako var cat_height_real = $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id[i]).outerHeight(true); //realna visina kategorije z oznako //console.log('Visina '+(i + 1)+': '+cat_height_real); if(mobile == 1){ //ko je mobilnik, uredi velikost okvirja kategorije glede na dolzino besedila var cat_text_length = $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id[i]).text().length; //dolzina teksta v kategoriji odgovora //console.log("Dolžina besedila v kategoriji: "+cat_text_length); if(cat_text_length > (cat_default_inline_text_length)*2 ){ //ce je dolzina teksta v kategoriji daljsa 2-krat vec od default (16) //console.log("Tekst je daljši!"); var num_of_rows = cat_text_length / cat_default_inline_text_length; //console.log("num_of_rows: "+num_of_rows); cat_height_real = cat_height_real + 25 * (num_of_rows - 2); //trenutno visino kategorije povecaj za 25 $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id[i]).css({'height':(cat_height_real)+'px'}); //spremeni visino kategorije } } cat_total_height_left = cat_total_height_left + cat_height_real; //izracun koncne realne visine levega okvirja if (cat_max_height < cat_height){ //ce je maksimalna visina kategorije manjsa od trenutne visine kategorije cat_max_height = cat_height; //naj bo vrednost max visine kategorije trenutna visina kategorije } } var koncnaVisinaVprasanja = cat_total_height_left + naslov_height + pomoznoBesediloHeight + visinaPaddingovMarginovVprasanja + visinaPaddingovMarginovHolder*4; $('#spremenljivka_'+spremenljivka).css({'height':(koncnaVisinaVprasanja)+'px'}); $('#spremenljivka_'+spremenljivka+' div.variable_holder.clr').css({'height':(koncnaVisinaVprasanja*0.85)+'px'}); //visina variable_holder //*************urejanje visine levega okvirja kategorij odgovorov $('#half_frame_dropping_'+spremenljivka).css({'height':(cat_total_height_left)+'px'});//visina levega okvirja //*************urejanje visine desnega okvirja glede na visino levega okvirja, ki hrani kategorije odgovorov if (tip != 1){ //ce nimamo kategorije vec odgovorov $('#half2_frame_dropping_'+spremenljivka).css({'height':(cat_total_height_left)+'px'}); //visina desnega okvirja } else if (tip == 1){ //ce imamo kategorije en odgovor $('#half2_frame_dropping_'+spremenljivka).css({'height':(cat_max_height)+'px'});//visina desnega okvirja } default_var_height = $('#spremenljivka_'+spremenljivka).height(); //console.log("default_var_height konec: "+default_var_height); //urejanje visine na kateri se nahaja gumb za ponastavljanje vprašanja ResetButtonHeight(spremenljivka); }, "json"); } //*********************************************************************************************************************************** $('#half_frame_dropping_'+spremenljivka) .droppable({ //hoverClass: 'frame_ranking_hover', hoverClass: 'frame_dropping_hover', drop: function (event, ui) { if(typeof checkBranching == 'function'){ checkBranching(); } //$(this).prepend(ui.draggable); //pripopaj na zacetek seznama odgovorov (desni blok) //ui.draggable.position( { of: $(this), my: 'left top', at: 'left top' } ); //pozicijoniraj levi zgornji del elementa z odgovorom na levem zgornjem delu droppable //ui.draggable.offset( { of: $(this), my: 'left top', at: 'left top' } ); //$(ui.draggable).detach().css({top: -6,left: -6}).appendTo(this); $(ui.draggable).detach().css({top: top_cat,left: left_cat}).appendTo(this); //$(ui.draggable).addClass('drag_and_drop').detach().appendTo(this); $(ui.draggable).addClass('drag_and_drop_right'); //brisi podatke prenesenega odgovora iz baze var vre_id = ui.draggable.attr('value'); if (ajax){ $.post(site_url+'/main/survey/ajax.php?a=delete_dragdrop1_data', {spremenljivka: spremenljivka, vre_id: vre_id, usr_id: usr_id, anketa: anketa}); //post-aj potrebne podatke za brisanje } draggableOver[spremenljivka] == false; //nismo vec v over dogodku draggableOnDroppable[vre_id] = false; }, out: function (event, ui) { //ob izhodu iz drop zone //answer_coming[spremenljivka] = true; //console.log('out'); $(ui.draggable).removeClass('drag_and_drop_right'); $(ui.draggable).addClass('drag_and_drop'); } }); //var stevilo_zdaj = $('#half2_frame_dropping_'+spremenljivka).children('div').attr('missing'); //var other_present = $(this).children('div').attr('missing'); //console.log(stevilo_zdaj); //if (tip == 1 && ($('#half2_frame_dropping_'+spremenljivka).children('.ranking').length != 0) ){ //ce je tip vprasanja kategorije en odgovor if (tip == 1){ //ce je tip vprasanja kategorije en odgovor $('#half2_frame_dropping_'+spremenljivka) .droppable({ //hoverClass: 'frame_ranking_hover', hoverClass: 'frame_dropping_hover_right_single', //accept: '#half_'+spremenljivka+' div', drop: function (event, ui) { //ob dropanju odgovora v desni blok //console.log("Drop"); if(typeof checkBranching == 'function'){ checkBranching(); } var vre_id = ui.draggable.attr('value'); var other = ui.draggable.attr('missing'); //spremenljivka, ki hrani vrednost atributa missing var other_present = $(this).children('div').attr('missing'); //missing, ki je trenutno v desnem bloku var cat_right = $(this).children('div').css('height'); //ali je prisotna kaksna kategorija v desnem okvirju? Undefined = ne //ce je preneseni odgovor tipa 1 ("radio") in ni missing-a, //ALI ce je preneseni odgovor tipa 2 ("checkbox") in je missing prisoten v desnem bloku //ALI ce je preneseni odgovor missing //sprazni blok z odgovori oz. prenesi morebitne obstojece odgovore nazaj v levi blok if( ( (tip == 1 && other == 0 && cat_right) ) || ( (tip == 2) && (other_present != 0) ) || ( (other != 0) ) ) { $('.ui-draggable[name="vrednost_'+spremenljivka+'"]').appendTo('#half_frame_dropping_'+spremenljivka);//prenesi skupino odgovorov v levi (zacetni) blok } //pozicioniranje draggable na pravo mesto $(ui.draggable).removeClass('drag_and_drop');//odstranimo, ker je nepotrebno na levi strani $(ui.draggable).detach().css({top: top_cat,left: left_cat}).appendTo(this); //najprej pozicioniramo na zacasni lokaciji $(ui.draggable).addClass('drag_and_drop_right');//dodamo slog, ki dokoncno postavi draggable na pravo lokacijo //pozicioniranje draggable na pravo mesto - konec if (ajax){ //post-aj potrebne podatke za belezenje v bazo //in zbrisi trenutno hranjene podatke, ce je to potrebno $.post(site_url+'/main/survey/ajax.php?a=accept_dragdrop1', {other_present: other_present, other: other, cat_right: cat_right, tip: tip, spremenljivka: spremenljivka, vre_id: vre_id, anketa: anketa, usr_id: usr_id}); } draggableOver[spremenljivka] = false; //zabelezi, da draggable ni vec over draggableOnDroppable[vre_id] = true; //kategorija odgovora je v desnem okviru }, over: function (event, ui) { //ob izhodu iz drop zone draggableOver[spremenljivka] = true; //zabelezi, da je draggable over if(typeof checkBranching == 'function'){ checkBranching(); } }, out: function (event, ui) { //ob izhodu iz drop zone draggableOver[spremenljivka] = false; //zabelezi, da draggable ni vec over $(ui.draggable).removeClass('drag_and_drop_right'); //odstranimo slog, ker drugace se draggable ne vidi, ko ga premikamo /* var vre_id = ui.draggable.attr('value'); if (ajax){ $.post(site_url+'/main/survey/ajax.php?a=delete_dragdrop1_data', {spremenljivka: spremenljivka, vre_id: vre_id, usr_id: usr_id, anketa: anketa}); //post-aj potrebne podatke za brisanje } */ } }); } //else if( tip == 2 || (tip == 1 && ($('#half2_frame_dropping_'+spremenljivka).children('.ranking').length == 0) ) ) { //ce je tip vprasanja kategorije vec odgovorov in pri kategorije en odgovor ni nobenih odgovorov v desnem okvirju else if( tip == 2 ) { //ce je tip vprasanja kategorije vec odgovorov in pri kategorije en odgovor ni nobenih odgovorov v desnem okvirju $('#half2_frame_dropping_'+spremenljivka) .droppable({ //hoverClass: 'frame_ranking_hover', hoverClass: 'frame_dropping_hover', //accept: '#half_'+spremenljivka+' div', drop: function (event, ui) { //ob dropanju odgovora v desni blok if(typeof checkBranching == 'function'){ checkBranching(); } //console.log("Drop"); var vre_id = ui.draggable.attr('value'); var other = ui.draggable.attr('missing'); //spremenljivka, ki hrani vrednost atributa missing var other_present = $(this).children('div').attr('missing'); //missing, ki je trenutno v desnem bloku if( ( (tip == 2) && (other_present != 0) ) || ( (other != 0) ) ) { //ce je preneseni odgovor tipa 2 ("checkbox") in je missing prisoten v desnem bloku //ALI ce je preneseni odgovor missing //sprazni blok z odgovori oz. prenesi morebitne obstojece odgovore nazaj v levi blok $('.ui-draggable[name="vrednost_'+spremenljivka+'"]').appendTo('#half_frame_dropping_'+spremenljivka);//prenesi skupino odgovorov v desni (zacetni) blok } //pozicioniranje draggable na pravo mesto $(ui.draggable).removeClass('drag_and_drop'); //odstranimo, ker je nepotrebno na levi strani $(ui.draggable).detach().css({top: top_cat,left: left_cat}).appendTo(this); //najprej pozicioniramo na zacasni lokaciji $(ui.draggable).addClass('drag_and_drop_right'); //dodamo slog, ki dokoncno postavi draggable na pravo lokacijo //pozicioniranje draggable na pravo mesto - konec if (ajax){ //post-aj potrebne podatke za belezenje v bazo //in zbrisi trenutno hranjene podatke, ce je to potrebno $.post(site_url+'/main/survey/ajax.php?a=accept_dragdrop1', {other_present: other_present, other: other, tip: tip, spremenljivka: spremenljivka, vre_id: vre_id, anketa: anketa, usr_id: usr_id}); //post-aj potrebne podatke za belezenje v bazo } }, out: function (event, ui) { //ob izhodu iz drop zone $(ui.draggable).removeClass('drag_and_drop_right'); //odstranimo slog, ker drugace se draggable ne vidi, ko ga premikamo /* var vre_id = ui.draggable.attr('value'); if (ajax){ $.post(site_url+'/main/survey/ajax.php?a=delete_dragdrop1_data', {spremenljivka: spremenljivka, vre_id: vre_id, usr_id: usr_id, anketa: anketa}); //post-aj potrebne podatke za brisanje } */ } }); } } //************************************************************************************** //************funkcija, ki skrbi za inicializacijo draggable elementov pri gridih function GridDraggable(tip, spremenljivka, vre_id, ajax, anketa, site_url, usr_id, other, mobile, skatle, quick_view, preview_spremenljivka) { //*****za mobilne naprave var top_cat = -1; var left_cat = -1; if (mobile == 0 || mobile == 2){ top_cat = -6; left_cat = -6; top_cat_right = 30; } //********************* $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).addClass('drag_and_drop').detach().appendTo('#half_frame_dropping_'+spremenljivka) //zeleni element s kategorijami dodaj v zacetnem kontejnerju .draggable({ //ureditev, da je element draggable cursor: 'move', //revert: true, helper: 'original', zIndex: 100, revert: function(socketObj) { if(typeof checkBranching == 'function'){ checkBranching(); } var revert = false; var cat_default_height = 37; var cat_margin_left = 10 + 5*2 + 1*2; //var indeks_revert_1 = last_indeks[spremenljivka]; var last_vre_id_revert = last_vre_id[spremenljivka]; var trenutna_vre_id_revert = vre_id_global[spremenljivka]; //console.log("trenutna_vre_id_revert: "+trenutna_vre_id_revert); //var indeks_revert = indeks_global[spremenljivka]; var indeks_revert = last_drop[trenutna_vre_id_revert]; vre_id = trenutna_vre_id_revert; //grd_id = last_indeks[spremenljivka]; grd_id = indeks_revert; var prejsnji_okvir = $('#half2_frame_dropping_'+last_indeks[spremenljivka]+'_'+spremenljivka); var trenutni_okvir = $('#half2_frame_dropping_'+last_drop[trenutna_vre_id_revert]+'_'+spremenljivka); var draggable = draggable_global[trenutna_vre_id_revert]; var skatle = skatlastOkvir[spremenljivka]; //console.log("Skatle za "+spremenljivka+" so:"+skatle); //if false then no socket object drop occurred. if(socketObj === false){ //revert the peg by returning true //console.log("Reverting!") revert = true; if(tip == 6){ //ce odgovora ni v levem okvirju (ima indeks = 0), //ce se odgovor reverta nazaj v desni okvir if(indeks_revert != 0){ //oznacimo, da je trenutna kategorija odgovora v desnem okvirju draggableOnDroppable[last_vre_id_revert][indeks_revert] = true; //draggableOverDroppable[vre_id] = false; draggableOverDroppable[vre_id][indeks_revert] = true; //console.log('draggableOverDroppable['+vre_id+']['+indeks_revert+']: '+draggableOverDroppable[vre_id][indeks_revert]); //postimajo visino frame_and_question_height(trenutni_okvir, spremenljivka, num_grids_global[spremenljivka], cat_margin_left, cat_default_height, draggable); //console.log("Frame and question height iz reverta"); } var prejsnji_okvir_kat_prisotna = []; var stevilo_prisotnih = prejsnji_okvir.children('div').length; //console.log("stevilo_prisotnih:"+stevilo_prisotnih); //var prejsnji_okvir_kat_prisotna = prejsnji_okvir.children('div').attr('value'); //belezi, ce je kaj prisotnega v prejsnjem okvirju for(var z = 1; z <= stevilo_prisotnih; z++){ prejsnji_okvir_kat_prisotna[z] = prejsnji_okvir.children('div :nth-child('+z+')').attr('value'); //belezi, ce je kaj prisotnega v prejsnjem okvirju, kateri odgovori so prisotni //console.log("prejsnji_okvir_kat_prisotna["+z+"]: "+prejsnji_okvir_kat_prisotna[z]); //} //console.log("Tukaj!"); //ce zadnje obiskani okvir je bil eden od desnih in smo startali iz levega if(last_indeks[spremenljivka] != 0 && indeks_revert == 0){ //spremeni velikost zadnje obiskanega desnega okvirja //console.log("Tukaj!"); if(prejsnji_okvir_kat_prisotna[z] === undefined){ last_frame_height(prejsnji_okvir, spremenljivka, num_grids_global[spremenljivka], cat_margin_left, draggable_global[trenutna_vre_id_revert]); } last_indeks[spremenljivka] = 0; } //ce prejsnji okvir ni trenutni in ne revert-amo nazaj v levi okvir if ( (last_indeks[spremenljivka] != last_drop[trenutna_vre_id_revert]) && (indeks_revert != 0) ){ //uredi velikost okvirja frame_height(spremenljivka, vre_id, grd_id, revert); //ce ni kategorije z odgovorom v okvirju if(prejsnji_okvir_kat_prisotna[z] === undefined){ //uredi velikost zadnje obiskanega okvirja last_frame_height(prejsnji_okvir, spremenljivka, num_grids_global[spremenljivka], cat_margin_left, draggable_global[trenutna_vre_id_revert]); } //uredi velikost celotnega vprasanja //console.log("Uredi velikost celotnega vprašanja"); //*******************dinamicna visina celotnega vprasanja glede na vsebino prenesenih desnih okvirjev //var default_var_height = $('#spremenljivka_'+spremenljivka).height(); var default_var_height = 1; dynamic_question_height(spremenljivka, num_grids_global[spremenljivka], mobile, skatle); //************************************ konec - dinamicna visina celotnega vprasanja glede na visino prenesenih desnih okvirjev } } //ce so skatlasti okvirji if(skatle){ //console.log("Imamo skatle ob revertu"); //$(draggable).addClass('drag_and_drop_box_right');//dodamo slog, ki dokoncno postavi draggable na pravo lokacijo $(draggable).addClass('drag_and_drop_box_right_after_refresh');//dodamo slog, ki dokoncno postavi draggable na pravo lokacijo var pravaVisina = calcPravaVisina(prejsnji_okvir, draggable, 0, spremenljivka, 0, 0, 1); //calcPravaVisina(okvir, draggable, indeks, spremenljivka, refresh, zapStevKategorije, revert) //visina/pozicija prenesene kategorije v desnem okvirju //console.log("pravaVisina:"+pravaVisina); //ustavi animacijo revert-a, da za tem lahko takoj pozicioniramo kategorijo odgovora na pravo mesto //$(draggable).finish(); //$(draggable).stop(); //pozicioniraj kategorijo odgovora na pravo mesto $(draggable).css({top:pravaVisina+'!important'}); //pozicioniraj kategorijo odgovora na pravo mesto - konec } } return true; } else{ //socket object was returned, //we can perform additional checks here if we like //alert(socketObj.attr('id')); would work fine //console.log(socketObj.attr('id')); //return false so that the peg does not revert //console.log("Success!"); revert = false; return false; } }, stack: '#half2_'+spremenljivka+' div', opacity: 0.9, containment: '#spremenljivka_'+spremenljivka, }); if(quick_view || preview_spremenljivka){ $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).draggable( "option", "disabled", true ); } //dodajanje atributov, ki so prisotni pri vseh ostalih kategorijah odgovorov $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).attr({'reverted':false,'value':vre_id, 'name':'vrednost_'+spremenljivka, 'onclick':'checkBranching();', 'missing':other}); //ce je tabela vec odgovorov, rabimo clone if(tip == 16){ $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).draggable( "option", "helper", "clone" ); } //ureditev visine kategorije (div) glede na prisotnost slike ali vecvrsticnega teksta var default_cat_height = 15; var final_height = 0; //var cat_text_length = $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).text().length; //hrani stevilo znakov, ki so vpisani v trenutni kategoriji odgovora var cat_text_length = $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).html().length; //hrani stevilo znakov, ki so vpisani v trenutni kategoriji odgovora //console.log('Število znakov v kategoriji: '+cat_text_length); var num_of_br = $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id+' br').length; //hrani stevilo br oz. ročnih vnosov novih vrstic //console.log('Število br v kategoriji: '+num_of_br); var num_imgs = $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id+' img').length; //hrani stevilo img v interesiranem div-u //console.log('Število slik v kategoriji @grids: '+num_imgs); var max_cat_text_length = 30; //hrani max stevilo dolzine teksta do katerega ni potrebno samodejno dodati
if( (cat_text_length > max_cat_text_length) && (num_of_br == 0) && (num_imgs == 0) ){//ce je tekst daljsi od 30 znakov, nima breakov ali slik dodaj
//if( (cat_text_length > max_cat_text_length) ){//ce je tekst daljsi od 35 znakov dodaj
//console.log('Tekst je daljši od '+max_cat_text_length+' znakov'); //var txt2 = txt1.slice(0, 3) + "bar" + txt1.slice(3); //var txt = $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).text(); var txt = $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).html(); //console.log(txt); var txt_alt = txt.slice(0, max_cat_text_length) + "
" + txt.slice(max_cat_text_length); //console.log(txt_alt); $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).html(txt_alt); final_height = final_height + default_cat_height + 25; //console.log(final_height); } /* else if( (cat_text_length > max_cat_text_length) && (num_of_br == 0) && (num_imgs != 0) ){//ce je tekst daljsi od 35 znakov, nima breakov, ima pa sliko dodaj
var txt = $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).html(); console.log(txt); var n_img_start = txt.search(""); console.log(n_img_start); console.log(n_img_end); //var txt_alt = txt.slice(0, max_cat_text_length) + "
" + txt.slice(max_cat_text_length); //console.log(txt_alt); //$('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).html(txt_alt); //final_height = final_height + default_cat_height + 25; //console.log(final_height); } */ if (num_imgs != 0){ // ce imamo sliko var img_height = 0; //var max_width = $('.ranking').width(); var max_width = 230; var img = $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id+' img'); var img_width = img.width(); //console.log("img_width: "+img_width); var img_height = img.height(); //console.log("img_height: "+img_height); if (img_width > max_width){ img_height = (img_height / img_width) * max_width; img.css({width: max_width}); img.css({height: img_height}); //$('#vre_id_'+vre_id).css({height: height}); //console.log("Vecji od max width"); } //ureditev mobilne različice prikazovanja slik znotraj kategorij odgovorov /* if (mobile == 1){ //ce je mobilnik img_height = (img_height / img_width) * 100; img_width = 100; $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id+' img').attr('style', 'margin: auto !important'); //dodaj atribut $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id+' img').css({'height':img_height,'width':img_width}); //ustrezno spremeni visino in sirino slike } */ //ureditev mobilne različice prikazovanja - konec //console.log("img_height: "+img_height); if(img_height > 25){ //ce je visina slike vecja od default visine kategorije final_height = final_height + img_height; } //ureditev visine variable_holder, ki je znotraj okvirja !!!!!!!!!! //$('#spremenljivka_'+spremenljivka+' div.variable_holder.clr').css({'height':(final_height + img_height)+'px'}); } if(num_of_br != 0){ var br_height = num_of_br*25; if (num_imgs == 0){ final_height = final_height + default_cat_height + br_height; } else{ final_height = final_height + br_height; } //console.log(final_height); if( (img_height < 25) && (img_height != 0) ){ final_height = final_height + img_height; } } if (final_height != 0){ $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).css({'height':final_height}); //dodaj style atributu še novo višino za levi blok } } //*********************************************************************** //var cat_total_height_left = 0; //hrani trenutno visino levega okvirja kategorij odgovorov //*********funkcija, ki skrbi za delovanje drag and drop grid funkcionalnosti function GridDragDropDelovanje(num_grids, indeks, tip, spremenljivka, site_url, ajax, anketa, usr_id, num_of_cats, mobile, skatle){ //var default_var_height_1 = []; //*****za mobilne naprave var top_cat = -1; var left_cat = -1; var default_var_height = 290; //default visina celotnega vprasanja if (mobile == 0 || mobile == 2){ top_cat = -6; left_cat = -6; top_cat_right = 30; var default_var_height = 220; //default visina celotnega vprasanja } //********************* //ureditev visine celotnega vprasanja, ce je ta visja od default-a******************************************************************* //var cat_margin_left = 10 + 5*2 + 1*2; //hrani rob za ureditev visine levega okvirja = margin_spodnji + padding(spredi pa zadi) + border(spredi pa zadi) + neznanka var cat_max_height = 0; //hrani trenutno najvecjo visino tretnutne kategorije var cat_default_height = 37; //var naslov_height = $('#spremenljivka_'+spremenljivka+' .naslov').height(); //visina naslova vprasanja (besedila vprasanja) var naslov_height = $('#spremenljivka_'+spremenljivka+' .naslov').outerHeight(true); //visina naslova vprasanja (besedila vprasanja) var visinaPaddingovMarginovVprasanja = $('#spremenljivka_'+spremenljivka).outerHeight(true) - $('#spremenljivka_'+spremenljivka).height(); var visinaPaddingovMarginovHolder = $('#spremenljivka_'+spremenljivka+' div.variable_holder.clr').outerHeight(true) - $('#spremenljivka_'+spremenljivka+' div.variable_holder.clr').height(); var pomoznoBesediloHeight = 40; //visina besedila "Razpoložljive kategorije:" var cat_default_inline_text_length = 16; //default dolzina teksta v eni vrstici kategorij odgovorov //ureditev visine puscice med blokoma okvirjev var variable_holder_height = $('#spremenljivka_'+spremenljivka+' .variable_holder').height(); //visina variable_holder, potrebna za visino puscice med blokoma $('#spremenljivka_'+spremenljivka+' td.middle img').css({'top' : (naslov_height + variable_holder_height/2) + 'px'}); //visina puscice med blokoma okvirjev if (ajax){ //console.log('Getting data on load'); $.get(site_url+'/main/survey/ajax.php?a=get_dragdrop1_data', {spremenljivka: spremenljivka, anketa: anketa}, function(data){ //get potrebnih podatkov za resevanje missing //trenutna visina celotnega vprasanja var default_var_height = $('#spremenljivka_'+spremenljivka).height(); //console.log("default_var_height: "+default_var_height + " indeks: "+indeks+" num of grids: "+num_grids); if(indeks == 1){//samo enkrat pojdi skozi leve kategorije odgovorov var cat_total_height_left = 0; //hrani trenutno visino levega okvirja kategorij odgovorov var array_length = data.length; //hrani koliko podatkov je prisotnih v polju s podatki iz baze var vre_id = []; //polje, ki hrani id-je vrednosti vseh kategorij odgovorov interesirane spremenljivke for(var i = 0; i < array_length; i++){ //sprehodi se po vseh vrednostih polja vre_id v levem bloku vre_id[i] = data[i]; //polje iz podatkov iz baze data[], shrani v polje vre_id[] var cat_height = $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id[i]).outerHeight(); //visina kategorije var cat_height_real = $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id[i]).outerHeight(true); //realna visina kategorije z oznako //console.log('Visina '+(i + 1)+': '+cat_height_real); if(mobile == 1){ //ko je mobilnik, uredi velikost okvirja kategorije glede na dolzino besedila var cat_text_length = $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id[i]).text().length; //dolzina teksta v kategoriji odgovora if(cat_text_length > (cat_default_inline_text_length)*2.5 ){ //ce je dolzina teksta v kategoriji daljsa 2-krat vec od default (16) - DATI NA 2,5 KRATNIK //console.log("Tekst je daljši!"); //console.log("Dolžina besedila v kategoriji: "+cat_text_length); var num_of_rows = cat_text_length / cat_default_inline_text_length; //console.log("num_of_rows: "+num_of_rows); cat_height = cat_height + 25 * (num_of_rows - 1); //trenutno visino kategorije povecaj za 25 //cat_height_real = cat_height_real + 25 * (num_of_rows - 1); //trenutno visino kategorije povecaj za 25 //console.log("num_of_rows final: "+ (num_of_rows - 1)); //$('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id[i]).css({'height':(cat_height_real)+'px'}); //spremeni visino kategorije $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id[i]).css({'height':(cat_height)+'px'}); //spremeni visino kategorije } //console.log("cat_height ajax za spremenljivko:"+spremenljivka+" "+cat_height); } cat_total_height_left = cat_total_height_left + cat_height_real; //izracun koncne visine levega okvirja if (cat_max_height < cat_height){ //ce je maksimalna visina kategorije manjsa od trenutne visine kategorije cat_max_height = cat_height; //naj bo vrednost max visine kategorije trenutna visina kategorije } } //*************urejanje visine levega okvirja kategorij odgovorov $('#half_frame_dropping_'+spremenljivka).css({'height':(cat_total_height_left)+'px'});//visina levega okvirja } if (mobile == 0 || mobile == 2){ if(skatle){ var title_heigth_real = $('.frame_dropping_titles_box').outerHeight(true); }else{ var title_heigth_real = $('.frame_dropping_titles').outerHeight(true); } }else{ if(skatle){ var title_heigth_real = $('.frame_dropping_titles_box_mobile').outerHeight(true); }else{ var title_heigth_real = $('.frame_dropping_titles_mobile').outerHeight(true); } } if(indeks == 1){ //samo enkrat pojdi skozi desne okvirje for(var j = 1; j <= num_grids; j++){ //preglej vse desne okvirje v desnem bloku //realna visina trenutnega okvirja*************************************** var okvir_height_real = $('#half2_frame_dropping_'+j+'_'+spremenljivka).outerHeight(true); frame_total_height_right[spremenljivka] = frame_total_height_right[spremenljivka] + okvir_height_real + title_heigth_real; //console.log(j+" frame_total_height_right["+spremenljivka+"]:"+frame_total_height_right[spremenljivka]); //ureditev pravilnega pozicioniranja kategorij ob refreshu @okvir skatlaste oblike //console.log("Refresh je:"+refresh); if(refresh[spremenljivka] == 1 && skatle){ //console.log("Je refresh"); var desniOkvir = $('#half2_frame_dropping_'+j+'_'+spremenljivka); var cat_right = desniOkvir.children('div').outerHeight(true);//belezi visino kategorije odgovora, ce je ta prisotna v trenutnem desnem okvirju if(cat_right){ //ce je kaj v okvirju, uredi pravi visino za kategorijo var zapStevKategorije = 1; desniOkvir.children('div').each(function () { var trenutnaVisinaKategorije = $(this).outerHeight(true); //console.log("trenutnaVisinaKategorije:"+trenutnaVisinaKategorije); //var trenutnaVisinaKategorije = 0; var pravaVisina = calcPravaVisina(desniOkvir, $(this), j, spremenljivka, refresh[spremenljivka], zapStevKategorije); desniOkvir.prepend($(this).css({top: pravaVisina})); //prenesi ustrezni odgovor zapStevKategorije++; }); //var pravaVisina = calcPravaVisina(desniOkvir, 0, j, spremenljivka, refresh); } }else{ //console.log("Ni bilo refresha"); } //ureditev pravilnega pozicioniranja kategorij ob refreshu @okvir skatlaste oblike - konec } //console.log(" frame_total_height_right["+spremenljivka+"]:"+frame_total_height_right[spremenljivka]); if(refresh[spremenljivka] == 1 && skatle){ refresh[spremenljivka] = 0; } } default_var_height_1[spremenljivka] = $('#spremenljivka_'+spremenljivka).height(); //belezenje celotne zacetne visine spremenljivke if(cat_total_height_left > frame_total_height_right[spremenljivka]){ //ce je trenutna visina levega okvirja z odgovori vecja od koncne visine desnega okvirja //console.log("Levi vecji od desnega za "+spremenljivka); if( (cat_total_height_left > default_var_height) ){ //ce je koncna visina levega okvirja z odgovori vecja od visine celotnega vprasanja dynamic_question_height_sub(cat_total_height_left, spremenljivka, default_var_height_1[spremenljivka]); //ustrezno spremeni visino celotnega vprasanja }else if(cat_total_height_left < default_var_height_1[spremenljivka]){ //ce je koncna visina levega okvirja z odgovori manjsi od visine celotnega vprasanja dynamic_question_height_sub(cat_total_height_left, spremenljivka, default_var_height_1[spremenljivka]); //ustrezno spremeni visino celotnega vprasanja } else{ dynamic_question_height_sub(cat_total_height_left, spremenljivka, default_var_height_1[spremenljivka]);//ustrezno spremeni visino celotnega vprasanja } //ce je trenutna visina levega okvirja z odgovori manjsa od koncne visine desnega okvirja }else if(cat_total_height_left < frame_total_height_right[spremenljivka]){ //console.log("Levi manjsi od desnega za "+spremenljivka); frame_total_height_right[spremenljivka] = frame_total_height_right[spremenljivka] + naslov_height + pomoznoBesediloHeight + visinaPaddingovMarginovVprasanja + visinaPaddingovMarginovHolder*5; $('#spremenljivka_'+spremenljivka+' div.variable_holder.clr').height(frame_total_height_right[spremenljivka]*0.9); $('#spremenljivka_'+spremenljivka).height(frame_total_height_right[spremenljivka]); } //urejanje visine na kateri se nahaja gumb za ponastavljanje vprašanja ResetButtonHeight(spremenljivka); }, "json"); } //************************ konec - ureditev visine celotnega vprasanja, ce je ta visja od default-a //console.log("Grid delovanje: "+num_grids); $('#half_frame_dropping_'+spremenljivka) .droppable({ //hoverClass: 'frame_dropping_hover', drop: function (event, ui) { if(typeof checkBranching == 'function'){ checkBranching(); } //$(ui.draggable).detach().css({top: -6,left: -6}).appendTo(this); $(ui.draggable).detach().css({top: top_cat,left: left_cat}).appendTo(this); $(ui.draggable).addClass('drag_and_drop_right'); var vre_id = ui.draggable.attr('value'); if (ajax && tip == 6){ $.post(site_url+'/main/survey/ajax.php?a=delete_dragdrop_grid_data_1', {spremenljivka: spremenljivka, vre_id: vre_id, usr_id: usr_id, anketa: anketa, indeks: last_indeks[spremenljivka]}); //post-aj potrebne podatke za brisanje //} draggableOnDroppable[vre_id][last_indeks[spremenljivka]] = false; //oznacimo, da smo trenutno kategorijo odgovora odstranili iz okvirja draggableOverDroppable[vre_id][last_indeks[spremenljivka]] = false; //console.log('draggableOverDroppable['+vre_id+']['+last_indeks[spremenljivka]+']: '+draggableOverDroppable[vre_id][last_indeks[spremenljivka]]) var prejsnji_okvir = $('#half2_frame_dropping_'+last_indeks[spremenljivka]+'_'+spremenljivka); var prejsnji_okvir_kat_prisotna = prejsnji_okvir.children('div').attr('value'); //belezi, ce je kaj prisotnega v prejsnjem okvirju if(prejsnji_okvir_kat_prisotna === undefined && last_indeks[spremenljivka] != 0){ //console.log("Levi frame last frame func"); last_frame_height(prejsnji_okvir, spremenljivka, num_grids, cat_margin_left, ui.draggable); //spremeni visino zadnje obiskanega okvirja } dynamic_question_height(spremenljivka, num_grids, mobile, skatle); last_indeks[spremenljivka] = 0; last_drop[vre_id] = 0; last_vre_id[spremenljivka] = 0; } from_left[vre_id] = true; /* var default_var_height = $('#spremenljivka_'+spremenljivka).height(); default_var_height_1[spremenljivka] = default_var_height; */ }, out: function (event, ui) { //ob izhodu iz drop zone $(ui.draggable).removeClass('drag_and_drop_right'); $(ui.draggable).addClass('drag_and_drop'); //answer_coming[spremenljivka] = true; //var vre_id = ui.draggable.attr('value'); //console.log("from_left["+vre_id+"]: "+from_left[vre_id]); }, over: function (event, ui) { var vre_id = ui.draggable.attr('value'); //potrebno pridobiti informacijo ze tukaj, ker drugace so tezave @ revert v levi okvir vre_id_global[spremenljivka] = vre_id; draggable_global[vre_id] = ui.draggable; $(ui.draggable).removeClass('drag_and_drop_box_right_after_refresh'); } }); $('#half2_frame_dropping_'+indeks+'_'+spremenljivka) .droppable({ //hoverClass: 'frame_ranking_hover', //hoverClass: 'frame_dropping_hover', tolerance: "pointer", //accept: '#half_'+spremenljivka+' div', drop: function (event, ui) { //ob dropanju odgovora v desni blok //console.log("Drop"); if(typeof checkBranching == 'function'){ checkBranching(); } if(mobile == 0 || mobile == 2){ //$(this).toggleClass('frame_dropping_wider'); //spremeni videz trenutnega okvirja }else if(mobile == 1){ //$(this).toggleClass('frame_dropping_wider_mobile'); //spremeni videz trenutnega okvirja } num_grids = num_grids_global[spremenljivka]; var vre_id = ui.draggable.attr('value'); var other = ui.draggable.attr('missing'); //spremenljivka, ki hrani vrednost atributa missing var other_present = $(this).children('div').attr('missing'); //missing, ki je trenutno v desnem bloku var cat_right = $(this).children('div').outerHeight(true); //ali je prisotna kaksna kategorija v trenuntem desnem okvirju? Undefined = ne var vre_id_present = $(this).children('div').attr('value'); //vre_id kategorije odgovora, ki je prisotna v okvirju ob dropu //var draggable_global[spremenljivka] = ui.draggable; draggable_global[vre_id] = ui.draggable; //*******************dinamicna visina celotnega vprasanja glede na vsebino prenesenih desnih okvirjev var title_heigth = 26; //visina okvricka z naslovom var height_beside = 40; //visina od zacetka vprasanja do prvega okvirja (in malo po zadnjem okvirju) var final_height_right_block = 0; //hrani koncno visino desnega bloka, torej vseh prisotnih okvirjev final_height_right_block = final_height_right_block + height_beside; //koncni visini dodamo se "praznino" med zacetkom vprasanja in prvim okvirjem for(var j = 1; j <= num_grids; j++){ //preglej vse okvirje //notranja visina trenutnega okvirja*************************************** var okvir_height = $('#half2_frame_dropping_'+j+'_'+spremenljivka).outerHeight(true); //************************************************************************* final_height_right_block = final_height_right_block + okvir_height + title_heigth; //console.log('Koncna visina desnega bloka: '+final_height_right_block); } //trenutna visina celotnega vprasanja var default_var_height = $('#spremenljivka_'+spremenljivka).height(); //console.log('Default: '+default_var_height); //console.log('Final: '+final_height_right_block); if(final_height_right_block > default_var_height){ $('#spremenljivka_'+spremenljivka).css({'height':final_height_right_block+'px'}); //da ne bo pri mobilnikih prevec skrito vprasanje $('#spremenljivka_'+spremenljivka+' div.variable_holder.clr').css({'height':(final_height_right_block - 100)+'px'}); } //************************************ konec - dinamicna visina celotnega vprasanja glede na visino prenesenih desnih okvirjev //ce je tabela - en odgovor if(tip == 6){ //pozicioniranje draggable na pravo mesto if (cat_right && skatle){ //ce je ze nekaj v okvirju in imamo okvirje skatlaste oblike $(ui.draggable).removeClass('drag_and_drop');//odstranimo, ker je nepotrebno $(ui.draggable).removeClass('drag_and_drop_box_right_after_refresh');//odstranimo, ker je nepotrebno var pravaVisina = calcPravaVisina(this, ui.draggable); //visina/pozicija prenesene kategorije v desnem okvirju $(ui.draggable).detach().css({top: (pravaVisina), left: left_cat}).prependTo(this); //pozicioniraj kategorijo odgovora na pravo mesto tako, da je nad prejsnjim if($(this).children('div').hasClass('drag_and_drop_box_right_after_refresh')){ //ce so v okvirju kategorije, po refreshu $(ui.draggable).addClass('drag_and_drop_box_right_after_refresh');//dodamo slog, ki dokoncno postavi draggable na pravo lokacijo }else{ $(ui.draggable).addClass('drag_and_drop_box_right_over');//dodamo slog, ki dokoncno postavi draggable na pravo lokacijo } }else{ $(ui.draggable).removeClass('drag_and_drop');//odstranimo, ker je nepotrebno $(ui.draggable).detach().css({top: top_cat,left: left_cat}).appendTo(this); //najprej pozicioniramo na zacasni lokaciji if(skatle){ //ce je okvir skatlaste oblike $(ui.draggable).removeClass('drag_and_drop_box_right_after_refresh');//odstranimo, ker je nepotrebno na levi strani $(ui.draggable).addClass('drag_and_drop_box_right');//dodamo slog, ki dokoncno postavi draggable na pravo lokacijo }else{ $(ui.draggable).addClass('drag_and_drop_right');//dodamo slog, ki dokoncno postavi draggable na pravo lokacijo } } //pozicioniranje draggable na pravo mesto - konec if (ajax){ $.post(site_url+'/main/survey/ajax.php?a=accept_dragdrop_grid', {vre_id_present: vre_id_present, tip: tip, spremenljivka: spremenljivka, vre_id: vre_id, anketa: anketa, usr_id: usr_id, indeks: indeks, cat_right: cat_right, last_vre_id: last_vre_id[spremenljivka]}); //post-aj potrebne podatke za belezenje v bazo if(last_drop[vre_id] != indeks || last_drop[vre_id] != 0){ $.post(site_url+'/main/survey/ajax.php?a=delete_dragdrop_grid_data_1', {spremenljivka: spremenljivka, vre_id: vre_id, usr_id: usr_id, anketa: anketa, indeks: last_drop[vre_id]}); //post-aj potrebne podatke za brisanje } } } else if(tip == 16 && draggableOnDroppable[vre_id][indeks] == false){ //ce je tabela - vec odgovorov in odgovora ni v trenutnem okvirju, uredi clone var visina_test = ui.draggable.css('height'); //pozicioniranje draggable na pravo mesto********************** if(cat_right && skatle){ //ce je ze nekaj v okvirju in je ta skatlaste oblike var pravaVisina = calcPravaVisina(this, ui.draggable); //visina/pozicija prenesene kategorije v desnem okvirju $(ui.draggable.clone()).detach().css({top: pravaVisina,left: left_cat, height: visina_test}).prependTo(this); //pozicioniraj kategorijo odgovora na pravo mesto in dodaj ustrezno visino if($(this).children('div').hasClass('drag_and_drop_box_right_after_refresh')){ //ce so v okvirju kategorije, po refreshu $(this).children(ui.draggable).addClass('drag_and_drop_box_right_after_refresh');//dodamo slog, ki dokoncno postavi draggable na pravo lokacijo }else{ $(this).children(ui.draggable).addClass('drag_and_drop_box_right_over');//dodamo slog, ki dokoncno postavi draggable na pravo lokacijo } }else{ if(skatle){ //ce je okvir skatlaste oblike $(ui.draggable.clone()).detach().css({top: top_cat,left: left_cat, height: visina_test}).addClass('drag_and_drop_box_right').appendTo(this); //pozicioniraj kategorijo odgovora na pravo mesto in dodaj ustrezno visino }else{ $(ui.draggable.clone()).detach().css({top: top_cat,left: left_cat, height: visina_test}).addClass('drag_and_drop_right').appendTo(this); //pozicioniraj kategorijo odgovora na pravo mesto in dodaj ustrezno visino } } //pozicioniranje draggable na pravo mesto - konec************************** if (ajax){ $.post(site_url+'/main/survey/ajax.php?a=accept_dragdrop_grid', {vre_id_present: vre_id_present, tip: tip, spremenljivka: spremenljivka, vre_id: vre_id, anketa: anketa, usr_id: usr_id, indeks: indeks, cat_right: cat_right, last_vre_id: last_vre_id[spremenljivka]}); //post-aj potrebne podatke za belezenje v bazo } } if(last_indeks[spremenljivka] !== undefined){ var prejsnji_okvir = $('#half2_frame_dropping_'+last_indeks[spremenljivka]+'_'+spremenljivka); var prejsnji_okvir_kat_prisotna = prejsnji_okvir.children('div').attr('value'); //belezi, ce je kaj prisotnega v prejsnjem okvirju //console.log("last_indeks[spremenljivka][indeks]: "+last_indeks[spremenljivka][indeks]); if(last_indeks[spremenljivka] == 0 || prejsnji_okvir_kat_prisotna === undefined){ last_frame_height(prejsnji_okvir, spremenljivka, num_grids, cat_margin_left, ui.draggable); //spremeni visino zadnje obiskanega okvirja } } last_drop[vre_id] = indeks; //zabelezi indeks okvirja zadnjega drop-a draggableOnDroppable[vre_id][indeks] = true; //oznacimo, da je trenutna kategorija odgovora v okvirju if(tip == 6){ from_left[vre_id] = false; } }, over: function (event, ui) { //ob prenosu trenutne kategorije odgovora nad okvirjem //console.log("Over"); num_grids = num_grids_global[spremenljivka]; if(typeof checkBranching == 'function'){ checkBranching(); } var vre_id = ui.draggable.attr('value'); var vre_id_present = $(this).children('div').attr('value'); //vre_id kategorije odgovora, ki je prisotna v okvirju ob dropu vre_id_global[spremenljivka] = vre_id; var trenutni_okvir = $('#half2_frame_dropping_'+indeks+'_'+spremenljivka); //console.log("from_left["+vre_id+"]: "+from_left[vre_id]); if (last_indeks[spremenljivka] == 0 && tip == 6){ //ce prenasamo kategorije odgovora iz levega okvirja last_indeks[spremenljivka] = indeks; //zabelezi indeks prejsnjega okvirja }else { var last_vrednost_id_temp = last_vre_id[spremenljivka]; var prejsnji_okvir = $('#half2_frame_dropping_'+last_indeks[spremenljivka]+'_'+spremenljivka); //if(tip == 16 || tip == 6){ if(tip == 6){ var prejsnji_okvir_kat_prisotna = []; var stevilo_prisotnih = prejsnji_okvir.children('div').length; //console.log(stevilo_prisotnih); for(var z = 1; z <= stevilo_prisotnih; z++){ //prejsnji_okvir_kat_prisotna = prejsnji_okvir.children('div').attr('value'); //belezi, ce je kaj prisotnega v prejsnjem okvirju prejsnji_okvir_kat_prisotna[z] = prejsnji_okvir.children('div :nth-child('+z+')').attr('value'); //belezi, ce je kaj prisotnega v prejsnjem okvirju, kateri odgovori so prisotni //console.log("prejsnji_okvir_kat_prisotna["+z+"]: "+prejsnji_okvir_kat_prisotna[z]); if(last_vrednost_id_temp != 0){ //ce v prejsnjem okvirju ni nicesar in (v prejsnjem okvirju ni nicesar ali je identifikacija ista trenutni) if( (draggableOnDroppable[last_vrednost_id_temp][indeks] == false) && ( (prejsnji_okvir_kat_prisotna === undefined) || (prejsnji_okvir_kat_prisotna == vre_id) ) ){ if ( (tip == 16 && draggableOnDroppable[vre_id][last_indeks[spremenljivka]] == false) || tip == 6 ){ //spremeni visino prejsnjega okvirja last_frame_height(prejsnji_okvir, spremenljivka, num_grids, cat_margin_left, ui.draggable); //console.log("Spreminjam prejsnji okvir"); } } } } } } if(vre_id_present !== undefined){ //ce ni se nicesar v trenutnem okvirju, ali odgovor je na poti v okvir in je vprasanje tipa 16 (tabela - vec odgovorov) ali 6 (tabela - en odgovor) if (draggableOnDroppable[vre_id_present][indeks] != true || (draggableOverDroppable[vre_id][indeks] == false && (tip == 16 || tip == 6) ) ){ //zabelezi, da je odgovor nad okvirjem draggableOverDroppable[vre_id][indeks] = true; if ((tip == 16 && draggableOnDroppable[vre_id][indeks] == false) || tip == 6){ //uredi visino okvirja in celotnega vprasanja frame_and_question_height(trenutni_okvir, spremenljivka, num_grids, cat_margin_left, cat_default_height, ui.draggable); if(from_left[vre_id] != false){ dynamic_question_height(spremenljivka, num_grids, mobile, skatle); } //console.log("Tukaj 1"); } } }else{ if (vre_id_present === undefined || (draggableOverDroppable[vre_id][indeks] == false && (tip == 16 || tip == 6) ) ){ //zabelezi, da je odgovor nad okvirjem draggableOverDroppable[vre_id][indeks] = true; if ( (tip == 16 && (draggableOnDroppable[vre_id][indeks] == false || last_drop[vre_id] == 0 )) || tip == 6){ //uredi visino okvirja in celotnega vprasanja frame_and_question_height(trenutni_okvir, spremenljivka, num_grids, cat_margin_left, cat_default_height, ui.draggable); if(from_left[vre_id] != false){ dynamic_question_height(spremenljivka, num_grids, mobile, skatle); } //console.log("Tukaj 2"); } } } //spremeni videz trenutnega okvirja if(draggableOverDroppable[vre_id][indeks] == true){ if(mobile == 0 || mobile == 2){ //$(this).toggleClass('frame_dropping_wider'); } else if(mobile == 1){ //$(this).toggleClass('frame_dropping_wider_mobile'); } } last_indeks[spremenljivka] = indeks; //zabelezi indeks (trenutnega oz. bodocega) prejsnjega okvirja cat_pushed[spremenljivka] = false; }, out: function (event, ui) { //ob izhodu iz drop zone console.log("Out"); num_grids = num_grids_global[spremenljivka]; var vre_id = ui.draggable.attr('value'); var vre_id_present = $(this).children('div').attr('value'); //vre_id kategorije odgovora, ki je prisotna v okvirju ob dropu var prejsnji_okvir = $('#half2_frame_dropping_'+last_indeks[spremenljivka]+'_'+spremenljivka); var prejsnji_okvir_kat_prisotna = prejsnji_okvir.children('div').attr('value'); //belezi, ce je kaj prisotnega v prejsnjem okvirju //console.log("Out"); //draggableOnDroppable[vre_id] = false; //oznacimo, da smo tretnutno kategorijo odgovora odstranili iz okvirja //if(draggableOverDroppable[vre_id] == true && tip == 16){ if(draggableOverDroppable[vre_id][indeks] == true && ( (tip == 16 && draggableOnDroppable[vre_id][last_indeks[spremenljivka]] == false) || tip == 6) ){ //console.log("Last frame out pri indeksu: "+last_indeks[spremenljivka]); last_frame_height(prejsnji_okvir, spremenljivka, num_grids, cat_margin_left, ui.draggable); } last_vre_id[spremenljivka] = vre_id; last_indeks[spremenljivka] = indeks; if( tip == 6 || (tip == 16 && draggableOnDroppable[vre_id][last_indeks[spremenljivka]] == false) ){ draggableOnDroppable[vre_id][indeks] = false; //oznacimo, da trenutne kategorije odgovora ni v okvirju } draggableOverDroppable[vre_id][indeks] = false; draggable_global[vre_id] = ui.draggable; //spremeni videz prejsnjega okvirja if(draggableOverDroppable[vre_id][indeks] == false){ if(mobile == 0 || mobile == 2){ //prejsnji_okvir.toggleClass('frame_dropping_wider'); }else if(mobile == 1){ //prejsnji_okvir.toggleClass('frame_dropping_wider_mobile'); } } if(skatle){ //ce so okvirji skatlaste oblike $(ui.draggable).removeClass('drag_and_drop_box_right'); //odstranimo slog, ker drugace se draggable ne vidi, ko ga premikamo $(ui.draggable).removeClass('drag_and_drop_box_right_over'); //odstranimo slog, ker drugace se draggable ne vidi, ko ga premikamo $(ui.draggable).removeClass('drag_and_drop_box_right_after_refresh');//drag_and_drop_box_right_after }else{ $(ui.draggable).removeClass('drag_and_drop_right'); //odstranimo slog, ker drugace se draggable ne vidi, ko ga premikamo } } }); //********************** odstranitev odgovorov iz desnih okvirjev @ tabela - vec odgovorov // ce je tabela - vec odgovorov if(tip == 16){ //uredi odstranjevanje kategorij odgovorov iz desnega okvirja ob kliku na njih $('#half2_frame_dropping_'+indeks+'_'+spremenljivka).click(function(){ $('#half2_frame_dropping_'+indeks+'_'+spremenljivka).children().click(function(){ //ob kliku na kategorijo odgovora var index1 = $('#half2_frame_dropping_'+indeks+'_'+spremenljivka).children().index(this); //indeks klikanega odgovora var prejsnji_okvir = $('#half2_frame_dropping_'+indeks+'_'+spremenljivka); // var vre_id = $('#half2_frame_dropping_'+indeks+'_'+spremenljivka+' div:nth-child('+(index1 + 1)+')').attr('value'); var draggable = $('#half2_frame_dropping_'+indeks+'_'+spremenljivka+' div:nth-child('+(index1 + 1)+')'); $('#half2_frame_dropping_'+indeks+'_'+spremenljivka+' div:nth-child('+(index1 + 1)+')').detach();//odstrani odgovor iz okvirja if (ajax){ //odstrani podatek o odgovoru iz baze $.post(site_url+'/main/survey/ajax.php?a=delete_dragdrop_grid_data', {tip: tip, spremenljivka: spremenljivka, vre_id: vre_id, usr_id: usr_id, anketa: anketa, indeks: indeks}); //post-aj potrebne podatke za brisanje } //console.log(draggableOnDroppable[vre_id][indeks]); last_frame_height(prejsnji_okvir, spremenljivka, num_grids, cat_margin_left, draggable); //spremeni visino zadnje obiskanega okvirja draggableOnDroppable[vre_id][indeks] = false; //oznacimo, da smo trenutno kategorijo odgovora odstranili iz okvirja //console.log("draggableOnDroppable["+vre_id+"]["+indeks+"]: "+draggableOnDroppable[vre_id][indeks]); draggableOverDroppable[vre_id][indeks] = false; from_left[vre_id] = true; dynamic_question_height(spremenljivka, num_grids, mobile, skatle); //console.log("vre_id: "+vre_id); ResetButtonHeight(spremenljivka);//povrni gumb na zacetno visino }); }); } //********************** konec - odstranitev odgovorov iz desnih okvirjev @ tabela - vec odgovorov } //************************************************************************************** //ureja visino ovirja in kategorije vprasanja function frame_and_question_height(trenutni_okvir, spremenljivka, num_grids, cat_margin_left, cat_default_height, draggable){ //console.log('Frame and question height'); //uredi visino okvirja in celotnega vprasanja var other = draggable.attr('missing'); //spremenljivka, ki hrani vrednost atributa missing var other_present = trenutni_okvir.children('div').attr('missing'); //missing, ki je trenutno v desnem bloku //***************** glede na visino trenutno prenesenih kategorij odgovora, povecaj visino okvirja var cat_height_now = draggable.outerHeight(true); //visina kategorije, trenutno prenesenega odgovora var cat_right = trenutni_okvir.children('div').outerHeight(true); //visina kategorije odgovora, ce je ta prisotna v trenutnem desnem okvirju //ce je v trenutnem desnem okvirju ze prisotna kategorija odgovora, if(cat_right){ var whole_heigth = trenutni_okvir.height(); //trenutna visina desnega okvirja var okvir_height = whole_heigth + cat_height_now; //trenutni visini okvirja dodaj se visino trenutne kategorije trenutni_okvir.css({'height':(okvir_height)+'px'}); //visina trenutnega desnega okvirja //console.log('Koncna visina: '+(okvir_height)); }else{ //drugace if (cat_height_now < 15){ //ce je visina trenutne kategorije odgovova manjsa od 15 cat_height_now = 15; //naj bo visina okvirja 15px, prej 20px } trenutni_okvir.css({'height':(cat_height_now)+'px'}); //visina trenutnega desnega okvirja //console.log('Koncna visina: '+(cat_height_now)); } //************************************ konec - glede na visino trenutno prenesenih kategorij odgovora, povecaj visino okvirja } //funkcija za urejanje visine okvirjev function frame_height(spremenljivka, vre_id, grd_id, revert, refresh){ //console.log("frame_height"); //***************** glede na visino trenutno prenesenih kategorij odgovora, povecaj visino okvirja //visina trenutno prenesenega odgovora************* var cat_default_height = 37; //var cat_height_now = $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).outerHeight(true); //visina trenutne kategorije odgovora if (vre_id != 0){ var cat_height_now = $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).outerHeight(); //visina trenutne kategorije odgovora } //console.log("cat_height_now:"+cat_height_now); //*************************************************visina trenutno prenesenega odgovora - konec if (refresh == 1){ //visina trenutnih kategorij v okvirju, ce je refresh //var cat_height_now var visinaPrisotnihKategorij = 0; //console.log("grd_id:"+grd_id); $('#half2_frame_dropping_'+grd_id+'_'+spremenljivka).children('div').each(function () { var trenutnaVisinaKategorije = $(this).outerHeight(true); visinaPrisotnihKategorij = visinaPrisotnihKategorij + trenutnaVisinaKategorije; }); var cat_height_now = visinaPrisotnihKategorij; //console.log("cat_height_now:"+cat_height_now); } var cat_right = $('#half2_frame_dropping_'+grd_id+'_'+spremenljivka).children('div').outerHeight(true);//belezi visino kategorije odgovora, ce je ta prisotna v trenutnem desnem okvirju //ce je v trenutnem desnem okvirju ze prisotna kategorija odgovora, trenutni visini okvirja dodaj se visino trenutne kategorije //if(cat_right || revert){ if(cat_right || revert || refresh){ var whole_heigth = $('#half2_frame_dropping_'+grd_id+'_'+spremenljivka).outerHeight(); //console.log("whole_heigth:"+whole_heigth); //cat_height_now = cat_height_now + cat_margin_left; //izracun koncne visine desnega okvirja, ce imamo ze kategorije v okvirju //var okvir_height = parseInt(whole_heigth) + parseInt(cat_height_now); var okvir_height = whole_heigth + cat_height_now; $('#half2_frame_dropping_'+grd_id+'_'+spremenljivka).css({'height':(okvir_height)+'px'}); //visina desnega okvirja //console.log('Koncna visina: '+(okvir_height)); }else{ //drugace //cat_height_now = cat_height_now + cat_default_height; //izracun koncne visine desnega okvirja, ce ni kategorij v okvirju if (cat_height_now < 15){ //ce je visina trenutne kategorije odgovova manjsa od 15, prej 20 cat_height_now = 15; //naj bo visina okvirja 15px, prej 20px } $('#half2_frame_dropping_'+grd_id+'_'+spremenljivka).css({'height':(cat_height_now)+'px'}); //visina trenutnega desnega okvirja //console.log('Koncna visina okvirja z odgovorom: '+(cat_height_now)); } //************************************ konec - glede na visino trenutno prenesenih kategorij odgovora, povecaj visino okvirja //console.log("cat_height_now ["+vre_id+"]: "+cat_height_now); } //************** konec - funkcije za urejanje visine okvirjev //***************funkcija za urejanje visine zadnje obiskanega okvirja @ drag and drop function last_frame_height(prejsnji_okvir, spremenljivka, num_grids, cat_margin_left, draggable){ //console.log("last_frame_height"); //****glede na odstrajeno kategorijo odgovora, trenutni visini okvirja odstrani visino odstranjene kategorije var trenutna_visina_okvirja = prejsnji_okvir.height(); var trenutna_visina_kategorije = draggable.outerHeight(true);//visina odnesene kategorije odgovora koncna_visina_zapuscenega_okvirja = trenutna_visina_okvirja - trenutna_visina_kategorije; //console.log("trenutna_visina_okvirja:"+trenutna_visina_okvirja); //console.log("trenutna_visina_kategorije:"+trenutna_visina_kategorije); //console.log("koncna_visina_zapuscenega_okvirja:"+koncna_visina_zapuscenega_okvirja); if (koncna_visina_zapuscenega_okvirja < 15){ koncna_visina_zapuscenega_okvirja = 15; } prejsnji_okvir.css({'height':(koncna_visina_zapuscenega_okvirja)+'px'}); //visina trenutnega desnega okvirja } //*************** konec - funkcija za urejanje visine zadnje obiskanega okvirja //********* skrbi za koncno ureditev visine celotnega vprasanja glede na visino (levega ali desnega) bloka @ drag and drop function dynamic_question_height_sub(frame_height, spremenljivka){ //console.log("dynamic_question_height_sub za "+spremenljivka); //var default_var_height = $('#spremenljivka_'+spremenljivka).height(); //trenutna visina celotnega vprasanja var default_var_height = $('#spremenljivka_'+spremenljivka).outerHeight(true); //trenutna visina celotnega vprasanja var naslov_height = $('#spremenljivka_'+spremenljivka+' .naslov').outerHeight(true); var visinaPaddingovMarginovVprasanja = $('#spremenljivka_'+spremenljivka).outerHeight(true) - $('#spremenljivka_'+spremenljivka).height(); var visinaPaddingovMarginovHolder = $('#spremenljivka_'+spremenljivka+' div.variable_holder.clr').outerHeight(true) - $('#spremenljivka_'+spremenljivka+' div.variable_holder.clr').height(); var pomoznoBesediloHeight = 40; //visina besedila "Razpoložljive kategorije:", za mobilne naprave var vmesnaVisinaOkvirja = realnaVisina(spremenljivka, frame_height); //if( (frame_height + naslov_height) > default_var_height){ //ce je koncna visina okvirja vecja od trenutne default visine celotnega vprasanja if( (vmesnaVisinaOkvirja) > default_var_height){ //ce je koncna visina okvirja vecja od trenutne default visine celotnega vprasanja updateHeight(spremenljivka, frame_height); //console.log("Spreminjam 1"); }else if((vmesnaVisinaOkvirja) < default_var_height){ //ce je koncna visina okvirja manjsa od trenutne default visine celotnega vprasanja var koncnaVisinaVprasanja = $('#spremenljivka_'+spremenljivka).outerHeight(true); //trenutna visina celotnega vprasanja; //console.log("koncnaVisinaVprasanja:"+koncnaVisinaVprasanja); updateHeight(spremenljivka, 0, koncnaVisinaVprasanja); $('#spremenljivka_'+spremenljivka).height(koncnaVisinaVprasanja); //koncna visina celotnega vprasanja //da ne bo pri mobilnikih prevec skrito vprasanje, spremeni visino variable_holder $('#spremenljivka_'+spremenljivka+' div.variable_holder.clr').height(koncnaVisinaVprasanja*0.85); //console.log("Spreminjam 2"); } } //*********** ureja dinamicno visino celotnega vprasanja glede na visino prenesenih kategorij odgovorov iz desnih okvirjev v levega function dynamic_question_height(spremenljivka, num_grids, mobile, skatle){ //console.log("dynamic_question_height za:"+spremenljivka); /* if (mobile == 0 || mobile == 2){ var title_heigth = $('.frame_dropping_titles').outerHeight(true); }else{ var title_heigth = $('.frame_dropping_titles_mobile').outerHeight(true); } */ if (mobile == 0 || mobile == 2){ if(skatle){ var title_heigth = $('.frame_dropping_titles_box').outerHeight(true); }else{ var title_heigth = $('.frame_dropping_titles').outerHeight(true); } }else{ if(skatle){ var title_heigth = $('.frame_dropping_titles_box_mobile').outerHeight(true); }else{ var title_heigth = $('.frame_dropping_titles_mobile').outerHeight(true); } } var final_height_right_block = 0; //hrani koncno visino desnega bloka, torej vseh prisotnih okvirjev var frame_height_left = $('#half_frame_dropping_'+spremenljivka).outerHeight(true); //visina celotnega levega okvirja //console.log('Koncna visina levega bloka: '+frame_height_left); //pridobi visino desnega bloka for(var j = 1; j <= num_grids; j++){ //preglej vse okvirje na desni strani var okvir_height = $('#half2_frame_dropping_'+j+'_'+spremenljivka).outerHeight(true); //visina trenutnega okvirja final_height_right_block = final_height_right_block + okvir_height + title_heigth; //vmesna visina desnega okvirja } //console.log('Koncna visina desnega bloka: '+final_height_right_block); //pridobi visino desnega bloka - konec var default_var_height = $('#spremenljivka_'+spremenljivka).height(); //trenutna visina celotnega vprasanja //console.log("default_var_height: "+default_var_height); var vmesnaVisinaVprasanjaLevo = realnaVisina(spremenljivka, frame_height_left); var vmesnaVisinaVprasanjaDesno = realnaVisina(spremenljivka, final_height_right_block); //ce je visina celotnega vprasanja manjsa od okvirja/bloka (levi ALI desni) if( (default_var_height < (vmesnaVisinaVprasanjaLevo)) || (default_var_height < (vmesnaVisinaVprasanjaDesno)) ){ if(frame_height_left < final_height_right_block){ //console.log("Levi manjsi od desnega"); dynamic_question_height_sub(final_height_right_block, spremenljivka); //glede na visino desnega bloka uredi velikost celotnega vprasanja }else if(frame_height_left > final_height_right_block){ //console.log("Levi vecji od desnega"); dynamic_question_height_sub(frame_height_left, spremenljivka); //glede na visino levega bloka uredi velikost celotnega vprasanja } }else if (frame_height_left < final_height_right_block){ updateHeight(spremenljivka, final_height_right_block); //posodobi visino vprasanja //console.log("Spreminjam A1"); }else if (frame_height_left > final_height_right_block){ updateHeight(spremenljivka, frame_height_left); //posodobi visino vprasanja //console.log("Spreminjam A2"); } } //posodobi visino celotnega vprasanja in variable_holder function updateHeight(spremenljivka, final_height_block, visinaVprasanja){ if(visinaVprasanja) {var koncnaVisinaVprasanja = visinaVprasanja;} else {var koncnaVisinaVprasanja = realnaVisina(spremenljivka, final_height_block);} //ureditev visine celotnega vprasanja $('#spremenljivka_'+spremenljivka).height(koncnaVisinaVprasanja); //da ne bo pri mobilnikih prevec skrito vprasanje, spremeni visino variable_holder $('#spremenljivka_'+spremenljivka+' div.variable_holder.clr').height(koncnaVisinaVprasanja*0.85); } //vrne realno visino vprasanja/bloka function realnaVisina(spremenljivka, final_height_block){ var naslov_height = $('#spremenljivka_'+spremenljivka+' .naslov').height(); var visinaPaddingovMarginovVprasanja = $('#spremenljivka_'+spremenljivka).outerHeight(true) - $('#spremenljivka_'+spremenljivka).height(); var visinaPaddingovMarginovHolder = $('#spremenljivka_'+spremenljivka+' div.variable_holder.clr').outerHeight(true) - $('#spremenljivka_'+spremenljivka+' div.variable_holder.clr').height(); var pomoznoBesediloHeight = 40; //visina besedila "Razpoložljive kategorije:" var realnaVisina = final_height_block + naslov_height + pomoznoBesediloHeight + visinaPaddingovMarginovVprasanja + visinaPaddingovMarginovHolder*4; return realnaVisina; } //vrne visino/pozicijo prenesene kategorije v desnem skatlastem okvirju function calcPravaVisina(tole, draggable, indeks, spremenljivka, refresh, zapStevKategorije, revert){ //console.log("refresh:"+refresh); var visinaDesnegaOkvirja = $(tole).outerHeight(); //console.log("visinaDesnegaOkvirja:"+visinaDesnegaOkvirja); var visinaPreneseneKategorije = 0; if(draggable){ visinaPreneseneKategorije = $(draggable).outerHeight(true); } //console.log("visinaPreneseneKategorije:"+visinaPreneseneKategorije); var visinaPrisotnihKategorij = 0; var steviloKategorij = 0; $(tole).children('div').each(function () { var trenutnaVisinaKategorije = $(this).outerHeight(true); visinaPrisotnihKategorij = visinaPrisotnihKategorij + trenutnaVisinaKategorije; steviloKategorij++; }); //console.log("steviloKategorij:"+steviloKategorij); //console.log("visinaPrisotnihKategorij:"+visinaPrisotnihKategorij); //console.log("zapStevKategorije:"+zapStevKategorije); //ce je refresh ali revert if( refresh == 1 || revert == 1){ if (visinaDesnegaOkvirja < visinaPrisotnihKategorij){ //ce je visina desnega okvirja manjsa od visine prisotnih kategorij //console.log("visinaDesnegaOkvirja < visinaPrisotnihKategorij"); if(refresh == 1){ $('#half2_frame_dropping_'+indeks+'_'+spremenljivka).css({'height':(visinaPrisotnihKategorij)+'px'}); //visina desnega okvirja } visinaDesnegaOkvirja = $(tole).outerHeight(); //console.log("visinaDesnegaOkvirja po refresh:"+visinaDesnegaOkvirja); } if(steviloKategorij > 1){ var pravaVisina = visinaDesnegaOkvirja - visinaPrisotnihKategorij; }else{ var pravaVisina = visinaDesnegaOkvirja - visinaPreneseneKategorije; } }else{ var pravaVisina = visinaDesnegaOkvirja - visinaPrisotnihKategorij - visinaPreneseneKategorije; } //console.log("pravaVisina za sprem "+spremenljivka+" :"+pravaVisina); //console.log("-------------------------"); return pravaVisina; } //urejanje visine na kateri se nahaja gumb za ponastavljanje vprašanja function ResetButtonHeight(spremenljivka){ $('#resetDragDrop_'+spremenljivka).position({ my: "left bottom", at: "left bottom", of: "#spremenljivka_"+spremenljivka, collision: 'none' }); var currentTop = $('#resetDragDrop_'+spremenljivka).css('top'); var newTop = parseInt(currentTop) - 20; $('#resetDragDrop_'+spremenljivka).css('top', newTop+'px'); }