146 lines
3.6 KiB
JavaScript
146 lines
3.6 KiB
JavaScript
function place_comments_one_div(img_id, comments)
|
|
{
|
|
var img = document.getElementById(img_id);
|
|
if( img == null ) {
|
|
return;
|
|
}
|
|
var par = img.parentNode;
|
|
var w = img.clientWidth;
|
|
var h = img.clientHeight;
|
|
var w_skip = 10;
|
|
var h_skip = 5;
|
|
var pointer_min_h = 30;
|
|
|
|
var bott_max = 0;
|
|
var comments_sorted = comments.sort(function (a,b) {
|
|
return a[2] - b[2];
|
|
//pokus o hezci kladeni poiteru, ale nic moc
|
|
if( a[3] < b[3] ) {
|
|
return (a[2] + pointer_min_h)- b[2];
|
|
} else {
|
|
return (a[2] - pointer_min_h)- b[2];
|
|
}
|
|
|
|
});
|
|
for (c in comments_sorted) {
|
|
var id = comments_sorted[c][0];
|
|
var x = comments_sorted[c][1];
|
|
var y = comments_sorted[c][2];
|
|
|
|
var el = document.getElementById(id);
|
|
var elp = document.getElementById(id + "-pointer");
|
|
|
|
if( el == null || elp == null ) {
|
|
continue;
|
|
}
|
|
|
|
par.appendChild(elp);
|
|
par.appendChild(el);
|
|
|
|
var delta_y = (y > bott_max) ? 0: bott_max - y + h_skip;
|
|
|
|
elp.style.left = x;
|
|
elp.style.top = y ;
|
|
elp.style.width = w - x + w_skip;
|
|
elp.style.height = pointer_min_h + delta_y;
|
|
|
|
el.img_id = img_id;
|
|
el.style.position = 'absolute';
|
|
el.style.left = w + w_skip;
|
|
el.style.top = y + delta_y;
|
|
|
|
var bott = el.offsetTop + el.offsetHeight;
|
|
bott_max = ( bott_max > bott ) ? bott_max : bott;
|
|
}
|
|
if( par.offsetHeight < bott_max ) {
|
|
par.style.height = bott_max;
|
|
|
|
}
|
|
}
|
|
|
|
function place_comments() {
|
|
for (var i=0; i < comments.length-1; i++) {
|
|
place_comments_one_div(comments[i][0], comments[i][1])
|
|
}
|
|
}
|
|
|
|
// show comment form, when clicked to image
|
|
function img_click(element, ev) {
|
|
var body_class = document.body.className;
|
|
switch(body_class){
|
|
case "comitting":
|
|
if (!confirm("Právě jsou zanášeny korektury, opravdu chcete přidat novou?"))
|
|
return;
|
|
break;
|
|
case "deprecated":
|
|
if (!confirm("Toto PDF je již zastaralé, opravdu chcete vytvořit korekturu?"))
|
|
return;
|
|
break;
|
|
}
|
|
|
|
var dx, dy;
|
|
var par = element.parentNode;
|
|
if( ev.pageX != null ) {
|
|
dx = ev.pageX - par.offsetLeft;
|
|
dy = ev.pageY - par.offsetTop;
|
|
} else { //IE
|
|
dx = ev.offsetX;
|
|
dy = ev.offsetY;
|
|
}
|
|
var img_id = element.id;
|
|
return show_form(img_id, dx, dy, '', '', '', '');
|
|
}
|
|
// hide or show text of correction
|
|
function toggle_visibility(oprava){
|
|
oprava.dataset.opravazobrazit = oprava.dataset.opravazobrazit !== 'true';
|
|
for (var i=0;i<comments.length-1;i++){
|
|
place_comments_one_div(comments[i][0], comments[i][1])
|
|
}
|
|
}
|
|
|
|
// show comment form, when 'edit' or 'comment' button pressed
|
|
function box_edit(op, action)
|
|
{
|
|
var divpointer = document.getElementById(op.id + '-pointer');
|
|
|
|
var text;
|
|
if (action == 'update') {
|
|
var text_el = document.getElementById(op.id + '-text');
|
|
text = text_el.textContent;
|
|
|
|
} else {
|
|
text = '';
|
|
}
|
|
|
|
var dx = parseInt(divpointer.style.left);
|
|
var dy = parseInt(divpointer.style.top);
|
|
return show_form(op.img_id, dx, dy, op.dataset.opid, text, action);
|
|
}
|
|
|
|
// show comment form when 'update-comment' button pressed
|
|
function update_comment(oid,ktid)
|
|
{
|
|
var divpointer = document.getElementById(oid + '-pointer');
|
|
var dx = parseInt(divpointer.style.left);
|
|
var dy = parseInt(divpointer.style.top);
|
|
|
|
var divbox = document.getElementById(oid);
|
|
var text = document.getElementById(ktid).textContent;
|
|
|
|
return show_form(divbox.img_id, dx, dy, ktid.substring(2), text, 'update-comment');
|
|
}
|
|
|
|
function box_onmouseover(box)
|
|
{
|
|
var pointer = document.getElementById(box.id + '-pointer');
|
|
pointer.classList.remove('pointer');
|
|
pointer.classList.add('pointer-hi');
|
|
}
|
|
|
|
function box_onmouseout(box)
|
|
{
|
|
var pointer = document.getElementById(box.id + '-pointer');
|
|
pointer.classList.remove('pointer-hi');
|
|
pointer.classList.add('pointer');
|
|
}
|
|
|