PortaleOrdiniGruppo/PortalStudio/scaneditor/scaneditor.js
2025-03-24 15:28:26 +01:00

1613 lines
50 KiB
JavaScript

/* exported
toolbars def tool xxpos yypos rotation pdfLoading pdffile w_init h_init zoomindex
closeAfterSave saving savingpic dx dy
Help openModule doLoad addItem Paste writemenuTab newCurrentObj createPreview openclosediv
Copy newdesign resetGenericLight Preview ValidMove addImgHandlers removeAllImgHandlers togglerGadget imgcountindex
setJDEF getJDEF
*/
/* global designToolbar avFields resizeWindow initCanvas
selectedZoombox openas LoadPdfz itemsHTMLArray docpageindex
insertIntoUndoSequence fieldcountindex setPropertiesID reload_ resetscroll
setCanvasScroll resetTabs setShadow infindex selectImg tabs imgHTML version imgcountindex
*/
var currentname = ""; //nome dello sca corrente
var def = ""; // Def del modello corrente
var tool = "scandoc"; // Tool utilizzato
var xxpos; // for insert image dialog
var yypos;
var rotation = false;
var saveas = false;
var isLoading = false;
//var imgLoading = false;
var pdfLoading = false;
var pdffile = "";
var w_init = 0;
var h_init = 0;
var _original_onselectstart = document.onselectstart;
var zoomindex = 2;
var maxpages = -1; // Numero di pagine del file pfd
var closeAfterSave = false;
var workAreaWidth = -1;
var workAreaHeight = -1;
var defH = 24;
var putok = false;
var putalert = false;
var fieldsList = [];
var clCanvasLib = null;
var notimooManager;
var fld_accordion = null;
var pasted = [];
var toolbars = {};
var type; // Tipo dell'item da aggiungere
var showFieldsNr = false; // Indica se visualizzare il numero dei campi
var elementsNrByGroup = []; // Utilizzate per disegnare i fields nello Zones Explorer
function openModule() {
var url = "../portalstudio/open.jsp?tool=scandoc&onetool=true";
OpenWindow(url, 800, 600);
}
function doLoad(e, id, mode, pdfsrc) {
initPainter();
notimooManager.show({
title : 'Notification message',
message : 'loading Scan Editor!',
visibleTime : 2000,
width : 200
});
var fnToDelay = function () {
isLoading = true;
canAlign = true;
AppletTag("Batch");
BatchApplet().documentloc = Strtran(location.toString(), "visualweb/editor.jsp", "servlet/dummy");
document.body.style.cursor = "default";
document.body.onhelp = CancelHelp;
// Gestione Toolbar
designToolbar();
/*var ctrl = Ctrl("mversion");
if (ctrl) {
ctrl.innerHTML = "Scan Editor v" + mversion;
}*/
//before init canvas
Ctrl("canvasitems").style.width = Ctrl("backcanvas").style.width;
Ctrl("canvasitems").style.height = Ctrl("backcanvas").style.height;
if (avFields.length > 0) {
showFieldsNr = true;
/* Inizializzazione del menu accordion per i fields del fields explorer */
if (fld_accordion == null) {
fld_accordion = new Fx.Accordion([], [], {
'onComplete' : resizeGadgetsPane,
'onActive' : function (toggler/*, element*/) {
removeAllFieldHandlers();
toggler.getFirst('.fld_title_ico').setStyle( "border-color", "rgba(0, 0, 0, 0) rgba(0, 0, 0, 0) #000 rgba(0, 0, 0, 0)");
},
'onBackground' : function (toggler/*, element*/) {
removeAllFieldHandlers();
toggler.getFirst('.fld_title_ico').setStyle("border-color", "#000 rgba(0, 0, 0, 0) rgba(0, 0, 0, 0) rgba(0, 0, 0, 0)");
},
alwaysHide : true,
display : -1
});
}
}
else {
showFieldsNr = false;
}
resizeWindow(e, true);
if (!Empty(id) || c_ripristino || window.frameElement?.jdef) {
currentname = id;
reload(null, pdfsrc);
}
else {
resizeWindow(e, true);
initCanvas();
selectedZoombox("zoombox");
}
/* Per compatibilita' con la versione della Build 59. */
/*da rimuovere == parametro openas */
/*if (!Empty(scafilename))
currentname = scafilename;*/
/* Parametri del disegnatore:
- id : nome del file sca da aprire
- mode :
- 'tosave' : obbliga a salvare lo sca aperto con un altro nome
- src : percorso dell'immagine di sfondo.
- pdfsrc : nome del pdf da applicare come sfondo dello sca (prevale su quanto scritto nelle ScanDoc properties )
- mdl : permette solo di salvare lo sca corrente. Non si possono aprire altri sca, salvare lo sca corrente con un altro nome o creare un nuovo sca.
- modelight : permette solo di salvare lo sca corrente. Non si possono aprire altri sca, salvare lo sca corrente con un altro nome o creare un nuovo sca.
- toolbar :
- fieldsList : lista di campi da caricare nel Fields Explorer separata dal carattere |
- openas : apre lo sca aperto con un altro nome.
*/
if (mode == "tosave") {
currentname = "";
}
if (!Empty(openas)) {
currentname = openas;
}
if (window.parent.portalStudioContainer) {
parent.setTitle(this);
}
else {
document.title = currentname + " - Scan Editor";
if (Ctrl("srcform")) {
Ctrl("srcform").value = currentname;
}
}
if (!Empty(pdfsrc)) {
if (LRTrim(formProp.file) == "" || (LRTrim(formProp.file)).toLowerCase() != LRTrim(pdfsrc).toLowerCase()) {
LoadPdfz(pdfsrc, "true");
}
}
if (Empty(id)) {
Ctrl("canvasitems").style.width = Ctrl("backcanvas").style.width;
Ctrl("canvasitems").style.height = Ctrl("backcanvas").style.height;
}
w_init = Ctrl("backcanvas").offsetWidth;
h_init = Ctrl("backcanvas").offsetHeight;
//selectedZoombox("zoombox");
writeDocPageHTML(true);
if (Ctrl("toolbar-wrapper")) {
Ctrl("toolbar-wrapper").style.display = "block";
}
isLoading = false;
$("loading").fade(0);
//load fields
designToolbarFld();
create_gadget_pane();
setFieldsExpUsed();
FormProperties();
};
fnToDelay.delay(500);
}
function Help(the_property) {
var i, prop = "";
if (typeof(anchorToFeature) != "undefined") {
if (typeof(the_property) != "undefined") {
prop = "scaneditor_" + the_property.toLowerCase();
}
if (prop in anchorToFeature && prop != "") {
i = anchorToFeature[prop];
}
else if (index != null && "scaneditor_" + itemsHTMLArray[docpageindex][index].type.toLowerCase() in anchorToFeature) {
i = anchorToFeature["scaneditor_" + itemsHTMLArray[docpageindex][index].type.toLowerCase()];
}
else if (typeof(i)=='undefined') {
prop = "scaneditor_" + the_property.substring(the_property.indexOf('_'),0).toLowerCase();
i = anchorToFeature[prop];
}
if(typeof(i)=='undefined'){
i = anchorToFeature["scaneditor"];
}
windowOpenForeground(m_cHelpUrl+"help/portalstudio/ps_urg_navigator.htm?" + URLenc(i + (prop != "" ? "||" + prop : "")), "", "toolbar=0,menubar=0,directories=0,width=720,height=600,resizable=1,scrollbars=1");
}
}
/* *** Gestione aggiunta degli item *** */
// Funzioni di inserimento nuovo item
function addItem(item) {
var evtType = "click";
if (arguments[0].type && arguments[0].type == "drop") {
type = arguments[1];
evtType = "drag";
}
else if (arguments[0].type && arguments[0].type == "click")
type = arguments[1];
else
type = item;
if (type == "DocPage") {
putItem();
}
else {
putalert = true;
if (evtType == "drag") {
putItem(arguments[0]);
insertIntoUndoSequence();
if (putok) {
clickItem(null, itemsHTMLArray[docpageindex][countindex[docpageindex] - 1].id);
}
}
else {
$("canvas").setStyle('cursor', 'crosshair');
Ctrl("canvas").onmousedown = function (event) {
putItem(event);
insertIntoUndoSequence();
if (putok) {
clickItem(null, itemsHTMLArray[docpageindex][countindex[docpageindex] - 1].id);
}
};
}
}
}
function canAddZone(zname, mess) {
var j;
for (var i = 0; i < countindex.length; i++) {
for (j = 0; j < itemsHTMLArray[i].length; j++) {
if (itemsHTMLArray[i][j].name == zname) {
if (mess == true) {
PSAlert.alert("Zone " + getFieldDesc(zname) + " already insert in page " + (itemsHTMLArray[i][j].page + 1));
}
return false;
}
}
}
return true;
}
var xpos = 0, ypos = 0;
var maxWidth = 0, maxHeight = 0;
function calcPosition(e) {
e = (e) ? e : window.event;
if (e != null) {
xpos = (e.pageX) ? e.pageX : (e.clientX) ? e.clientX : 0;
ypos = (e.pageY) ? e.pageY : (e.clientY) ? e.clientY : 0;
if (document.all) {
xpos += window.pageXOffset;
ypos += window.pageYOffset;
}
xpos = xpos - parseInt(Ctrl("backcanvas").offsetLeft) + Ctrl("canvas").scrollLeft;
ypos = ypos - parseInt(Ctrl("backcanvas").offsetTop) + Ctrl("canvas").scrollTop;
}
maxWidth = parseInt(Ctrl("canvaslinks").offsetWidth);
maxHeight = parseInt(Ctrl("canvaslinks").offsetHeight);
if (maxWidth <= 0 || maxHeight <= 0) {
maxWidth = parseInt(Ctrl("backcanvas").offsetWidth);
maxHeight = parseInt(Ctrl("backcanvas").offsetHeight);
}
}
function putItem(e/*, b_reload*/) {
var htmlObj = "";
calcPosition(e);
switch (type) {
case 'Zone':
if (putalert == false) {
xpos = 0;
ypos = 0;
}
putok = false;
if (xpos >= 0 && ypos >= 0 && (xpos + 60 * clCanvasLib.scale / 100 < maxWidth) && (ypos + 30 * clCanvasLib.scale / 100 < maxHeight)) {
putok = true;
htmlObj = '<div id=\'item' + nitem + '\' class="transparent" onselectstart=\'cancelEvent(event)\' style=\'z-index:1;font-size:1px;line-height:0;border:0px solid;width:' + 60 * clCanvasLib.scale / 100 + 'px;height:' + 30 * clCanvasLib.scale / 100 + 'px;position:absolute;top:' + ypos + 'px;left:' + xpos + 'px;\' onClick="cancelEvent(event);clickItem(event,\'item' + nitem + '\')"></div>';
if (showFieldsNr) {
htmlObj += '<div id=\'item' + nitem + 'Num\' class="transparentnum" style="position:absolute;"></div>';
}
itemsHTMLArray[docpageindex][countindex[docpageindex]] = new ZTObjects.ZoneObj('item' + nitem, 'Zone' + nitem, 'Zone', htmlObj, 'character', '', xpos, ypos);
nitem++;
countindex[docpageindex]++;
Ctrl("canvasitems").innerHTML = Ctrl("canvasitems").innerHTML + itemsHTMLArray[docpageindex][countindex[docpageindex] - 1].html;
itemsHTMLArray[docpageindex][countindex[docpageindex] - 1].h = Ctrl("item" + (nitem - 1)).offsetHeight;
itemsHTMLArray[docpageindex][countindex[docpageindex] - 1].w = Ctrl("item" + (nitem - 1)).offsetWidth;
undoItemsMoved[undoItemsMoved.length] = new ZTObjects.undoObj(itemsHTMLArray[docpageindex][countindex[docpageindex] - 1].id, 'add', itemsHTMLArray[docpageindex][countindex[docpageindex] - 1].x, itemsHTMLArray[docpageindex][countindex[docpageindex] - 1].y, itemsHTMLArray[docpageindex][countindex[docpageindex] - 1].x, itemsHTMLArray[docpageindex][countindex[docpageindex] - 1].y, itemsHTMLArray[docpageindex][countindex[docpageindex] - 1], itemsHTMLArray[docpageindex][countindex[docpageindex] - 1].w, itemsHTMLArray[docpageindex][countindex[docpageindex] - 1].h, itemsHTMLArray[docpageindex][countindex[docpageindex] - 1].w, itemsHTMLArray[docpageindex][countindex[docpageindex] - 1].h);
var ctrl = Ctrl("item" + (nitem-1));
var ctrln = Ctrl("item" + (nitem-1) + "Num");
if (ctrln) {
ctrln.style.width = (ctrln.offsetWidth* clCanvasLib.scale / 100) + "px";
ctrln.style.height = (ctrln.offsetHeight* clCanvasLib.scale / 100) + "px";
ctrln.style.left = ctrl.offsetLeft + "px";
ctrln.style.top = (ctrl.offsetTop - ctrln.offsetHeight) + "px";
/*ctrln.style.fontSize = (ctrln.offsetHeight-2) + "px";
ctrln.style.lineHeight = (ctrln.offsetHeight-2) + "px";*/
}
}
else {
putok = false;
PSAlert.alert("Object not created !");
}
break;
case 'DocPage':
break;
}
m_bUpdated = true;
itemsHTML = itemsHTMLArray[docpageindex];
$('canvas').setStyle('cursor', 'default');
Ctrl("canvas").onmousedown = beginDragSelection;
}
/* *** Fine della gestione aggiunta degli item *** */
/* *** Gestione dei Field *** */
function designToolbarFld() {
if (avFields.length > 0) {
var group, groupDesc, fname, desc;
var singleField = avFields.split("|");
var singleFieldProp;
group = "scaneditor_pgroup";
groupDesc = "Zones";
for (var mm = 0; mm < singleField.length; mm++) {
singleFieldProp = singleField[mm].split(":");
fname = singleFieldProp[0];
desc = singleFieldProp[1];
groupDesc = singleFieldProp[2];
if (typeof(groupDesc) == "undefined" || desc == "") {
groupDesc = "Zones";
}
group = "scaneditor_pgroup_" + groupDesc;
if (typeof(desc) == "undefined" || desc == "") {
desc = fname;
}
fieldsList.push({fieldName:fname,fieldDesc:desc});
putField(group, groupDesc, fname, desc);
}
}
else {
Ctrl("legend_title").style.display = "none";
Ctrl("legend_items").style.display = "none";
Ctrl("gadgetlistTitlePz").style.display = "none";
Ctrl("fields_container").style.display = "none";
}
}
function putField(group, groupDesc, fname, desc) {
var fwidth = 180;
var fheight = 15;
var fspace = 20;
xpos = 4;
if (fieldcountindex == 0) {
ypos = 0;
}
else {
ypos = 0 + fieldcountindex * fspace;
}
var wrapper;
wrapper = Ctrl(group + "_divz");
if (wrapper == null) {
elementsNrByGroup[group] = 0;
}
var title, ul, li;
var htmlObj = '<div id=\'item' + nitem + '\' class="transparent-field" title=\'' + fname + '\' onselectstart=\'cancelEvent(event)\' style=\'z-index:1;overflow:hidden;border:0px solid;width:' + fwidth + 'px;\' onClick="cancelEvent(event);clickItem(event,\'item' + nitem + '\')">';
htmlObj += '<div id=\'item' + nitem + '_num\' class="transparent-fieldnumber" style="display:inline-block">' + (fieldcountindex + 1) + '</div>';
htmlObj += '<div id=\'item' + nitem + '_int\' style="display:inline-block" class="transparent-fieldlabel">' + "&nbsp;" + desc + '</div>';
htmlObj += '</div>';
fieldHTML[fieldcountindex] = new ZTObjects.fieldObj('item' + nitem, 'Field' + nitem, 'Field', htmlObj, '', '', xpos, ypos, fwidth, fheight, group, fname, desc);
nitem++;
fieldcountindex++;
if (!wrapper) {
wrapper = new Element('div', {
'class' : 'fld_wrapper',
'id' : group + '_divz'
}).inject(Ctrl("toolbarfld"));
title = new Element('div', {
'class' : 'fld_title'
}).inject(wrapper);
new Element('div', {
'class' : 'fld_title_txt',
'text' : groupDesc
}).inject(title);
new Element('div', {
'class' : 'fld_title_ico'
}).inject(title);
ul = new Element('ul', {
'class' : 'fld_ul'
}).inject(wrapper);
li = new Element('li', {
'class' : 'fld_li'
}).inject(ul);
li.innerHTML = fieldHTML[fieldcountindex - 1].html;
fld_accordion.addSection(title, ul);
fld_accordion.display(-1);
new Element('div', {
'class' : 'list_border'
}).inject(wrapper);
}
else {
ul = wrapper.getElement('ul');
li = new Element('li', {
'class' : 'fld_li'
}).inject(ul);
li.innerHTML = fieldHTML[fieldcountindex - 1].html;
}
elementsNrByGroup[group] = elementsNrByGroup[group] + 1;
}
function resetToolbarFld() {
removeAllFieldHandlers();
fieldHTML = []; //array contenente tutti i Field
fieldcountindex = 0;
Ctrl("toolbarfld").innerHTML = "";
}
function selectField(pos) {
if (pos < 0) {
pos = 0;
}
if (pos >= fieldcountindex) {
pos = 0;
}
if (fieldHTML.length > 0) {
fieldHTML[pos].shadow = "shadow" + fieldHTML[pos].id.substr(4);
removeAllFieldHandlers();
addFieldHandlers(fieldHTML[pos].id.substr(4));
selectItemBarField(Ctrl("shadow" + fieldHTML[pos].id.substr(4)));
}
}
function getFieldDesc(name) {
for (var i = 0; fieldsList && i < fieldsList.length; i++) {
if (fieldsList[i].fieldName == name) {
return fieldsList[i].fieldDesc;
}
}
return name;
}
function setFieldsExpUsed() {
var b, ctrl, ctrln, i, j;
for (var k = 0; k < fieldHTML.length; k++) {
b = false;
ctrl = Ctrl(fieldHTML[k].id);
if (ctrl) {
ctrl.className = "transparent-field";
for (i = 0; i < countindex.length && !b; i++) {
for (j = 0; j < itemsHTMLArray[i].length && !b; j++) {
if (itemsHTMLArray[i][j].name == fieldHTML[k].fname) {
b = true;
ctrl.className = "transparent-fieldused";
ctrln = Ctrl(itemsHTMLArray[i][j].id + "Num");
if (ctrln) {
ctrln.innerHTML = (k + 1) + "";
}
}
}
}
}
}
}
/* *** Fine della gestione dei Field *** */
/* *** Gestione cancellazione degli item *** */
// vengono eliminati gli elementi selezionati dall'array
function deleteItem() {
undoItemsMoved = [];
var tmp = [], tmpn = 0;
for (var i = 0; i < itemsHTMLArray[docpageindex].length; i++) {
if (itemsHTMLArray[docpageindex][i].shadow == "") {
// Sposta gli elementi non selezionati in tmp
tmp[tmpn] = itemsHTMLArray[docpageindex][i];
tmpn++;
}
else {
// Salvo gli oggetti cancellati per Undo
undoItemsMoved.push(new ZTObjects.undoObj(null, 'delete', null, null, itemsHTMLArray[docpageindex][i].x, itemsHTMLArray[docpageindex][i].y, itemsHTMLArray[docpageindex][i]));
}
}
insertIntoUndoSequence();
countindex[docpageindex] = tmpn;
itemsHTMLArray[docpageindex] = tmp;
selectForm();
index = null;
m_bUpdated = true;
writeHTML();
}
/* *** Fine della gestione cancellazione degli item *** */
/* *** Gestione del Copy/Paste *** */
function Copy(cut) {
var deftmp = [], selectedItems = {};
var i;
for (i = 0; i < itemsHTMLArray[docpageindex].length; i++) {
if (itemsHTMLArray[docpageindex][i].shadow != "") {
deftmp.push(copyItem(itemsHTMLArray[docpageindex][i]));
}
}
if (cut) {
if (deftmp.length > 0) {
selectedItems = { "action" : "cut", "elements" : deftmp };
}
deleteItem();
}
else {
if (deftmp.length > 0) {
selectedItems = { "action" : "copy", "elements" : deftmp };
}
}
return JSON.stringify(selectedItems);
}
function copyItem(item) {
var valueToSave = "";
setPropertiesID(item);
var JsonItem = {"type" : item.type, "page" : docpageindex};
for (var u = 0; u < item.objClass.properties.length; u++) {
valueToSave = item[item.objClass.properties[u]];
//Se valueToSave e' booelan e uguale a false, il test valueToSave=="" restituisce true
if (typeof(valueToSave) != "number" && typeof(valueToSave) != "boolean") {
if (typeof(valueToSave) == "undefined" || valueToSave == "") {
// se la prop e' undefined allora la salvo come " "
valueToSave = " ";
}
}
JsonItem[item.objClass.properties[u]] = valueToSave;
}
return JsonItem;
}
function Paste(strpaste) {
if (strpaste != "") {
reload_(null, strpaste, true);
undoItemsMoved = [];
for (var idx = 0; idx < pasted.length; idx++) {
// Si salvano gli oggetti incollati per l'Undo
undoItemsMoved[undoItemsMoved.length] = new ZTObjects.undoObj(null, 'paste', itemsHTML[pasted[idx]].x, itemsHTML[pasted[idx]].y, itemsHTML[pasted[idx]].x, itemsHTML[pasted[idx]].y, itemsHTML[pasted[idx]]);
}
insertIntoUndoSequence();
type = null;
writeDocPageHTML(true);
}
}
/* *** Fine della Gestione del Copy/Paste *** */
/* *** Gestione writeHTML *** */
// riscrive l'HTML dopo la cancellazione degli items
function writeHTML(fromReload) {
Ctrl("canvasitems").innerHTML = "";
if (Empty(fromReload)) {
fromReload = false;
}
if (fromReload) {
var fxForm = new Fx.Morph('backcanvas', {
duration : '500',
transition : Fx.Transitions.Bounce.easeOut
});
fxForm.start({}).chain(function () {
resetscroll(clCanvasLib.scale);
setCanvasScroll();
resetTabs();
});
}
updateCommonVars();
for (var i = 0; i < itemsHTMLArray[docpageindex].length; i++) {
writeHTMLItemObj(itemsHTMLArray[docpageindex][i]);
}
if (index != null && typeof(itemsHTML[index]) != "undefined") {
var ctrl = Ctrl("shadow" + itemsHTML[index].id.substr(4));
var itm = itemsHTML[index];
if (ctrl) {
ctrl.style.left = itm.x + "px";
ctrl.style.top = itm.y + "px";
if (itm.w - getOffset(ctrl).gapw >= 0) {
ctrl.style.width = (itm.w - getOffset(ctrl).gapw) + "px";
}
else {
ctrl.style.width = itm.w + "px";
}
if (itm.h - getOffset(ctrl).gaph >= 0) {
ctrl.style.height = (itm.h - getOffset(ctrl).gaph) + "px";
}
else {
ctrl.style.height = itm.h + "px";
}
}
}
setShadow();
resetTabs();
setFieldsExpUsed();
}
function writeHTMLItemObj(itm) {
var ctrl;
if (typeof(itm) == "undefined") {
return;
}
Ctrl("canvasitems").innerHTML = Ctrl("canvasitems").innerHTML + itm.html;
if (itm.type == "Zone") {
ctrl = Ctrl(itm.id);
if (!ctrl) {
return;
}
ctrl.style.display = "block";
ctrl.title = itm.name;
if (typeof(itm.x) != "undefined") { ctrl.style.left = itm.x + "px"; }
if (typeof(itm.y) != "undefined") { ctrl.style.top = itm.y + "px"; }
if (typeof(itm.w) != "undefined") { ctrl.style.width = itm.w + "px"; }
if (typeof(itm.h) != "undefined") { ctrl.style.height = itm.h + "px"; }
ctrl.title = getFieldDesc(itm.name);
var ctrln = Ctrl(itm.id + "Num");
if (ctrln) {
ctrln.style.width = (ctrln.offsetWidth* clCanvasLib.scale / 100) + "px";
ctrln.style.height = (ctrln.offsetHeight* clCanvasLib.scale / 100) + "px";
ctrln.style.left = ctrl.offsetLeft + "px";
ctrln.style.top = (ctrl.offsetTop - ctrln.offsetHeight) + "px";
/*ctrln.style.fontSize = (ctrln.offsetHeight-2) + "px";
ctrln.style.lineHeight = (ctrln.offsetHeight-2) + "px";*/
ctrln.innerHTML = itm.fieldindex;
}
}
}
function updateCommonVars() {
if (formProp.hsl == "true") {
// Disabilita le SnapLines
canAlign = false;
}
else {
canAlign = true;
}
if (formProp.lock_items == "true") {
lockItems = true;
}
else {
lockItems = false;
}
}
function writeDocPageHTML(/*rewrite*/) {
/*if (rewrite) {
removeAllImgHandlers();
Ctrl("toolbarimg").innerHTML = "";
var ctrl;
for (var i = 0; i < imgHTML.length; i++) {
Ctrl("toolbarimg").innerHTML = Ctrl("toolbarimg").innerHTML + imgHTML[i].html;
imgHTML[i].y = ((i + 1) * 30 + i * 40);
ctrl = Ctrl(imgHTML[i].id);
ctrl.style.top = imgHTML[i].y + "px";
ctrl.src = imgHTML[i].src;
}
}*/
if (infindex != null) {
docpageindex = -1;
selectImg(infindex);
}
else {
docpageindex = -1;
selectImg(0);
}
}
function writemenuTab() {
if (!tabs) {
tabs = new TabsMT('scan_page_list', 'scan_page_frame', {
clickFunc : function (index) {
selectImg(index);
},
close:false
});
}
var c1 = countindex.length;
var c2 = maxpages;
if (c1 > c2) {
c2 = c1;
}
var li, span, scanFrame;
for (var i = 0; i < c2; i++) {
scanFrame = new Element('div', {}).inject($('scan_page_frame'));
li = new Element('li').inject($('scan_page_list'));
span = new Element('span').inject(li);
span.set('text',('Page ' + (i + 1)));
tabs.addTabs(li,scanFrame);
}
tabs.setSelectedTab(0);
adjustTabHeight();
}
function adjustTabHeight() {
var fz = function() {
if(Ctrl("scan_page_list").offsetHeight != defH) {
var dif = Ctrl("scan_page_list").offsetHeight - defH;
Ctrl("backcanvas").style.top = (Ctrl("backcanvas").offsetTop + (dif)) + "px";
Ctrl("v_ruler").style.top = (Ctrl("v_ruler").offsetTop + (dif)) + "px";
}
defH = Ctrl("scan_page_list").offsetHeight;
}
fz.delay(100);
}
/* *** Fine della gestione writeHTML *** */
/* *** Gestione del New *** */
function newCurrentObj(text_path/*, srcmode, path_tmp*/) {
var id = text_path;
currentname = id;
reload(null);
document.title = currentname + " - Scan Editor";
if (Ctrl("srcform")) {
Ctrl("srcform").value = currentname;
}
}
function newdesign() {
if (m_bUpdated) {
if (confirm("Do you want to save " + currentname + "?")) {
save(function () {
newdesignz();
});
return;
}
else { newdesignz(); }
}
else { newdesignz(); }
}
function newdesignz() {
var propDiv = $("properties");
if (propDiv) {
propDiv.hide();
}
resetGeneric();
resetToolbarFld();
currentname = "";
document.title = currentname + " - Scan Editor";
if (Ctrl("srcform")) {
Ctrl("srcform").value = currentname;
}
}
function resetGeneric() {
index = null;
infindex = null;
itemsHTMLArray = []; //array contenente tutti i Field
imgHTML = [];
countindex = []; //contatore indice array
imgcountindex = 0;
docpageindex = 0;
formProp.page = docpageindex;
itemsHTMLArray[docpageindex] = [];
itemsHTML = itemsHTMLArray[docpageindex];
countindex[docpageindex] = 0;
clCanvasLib.scale = 100;
zoomindex = 2;
Ctrl("canvasitems").innerHTML = "";
if (tabs) { tabs.reset(); }
formProp.fldfile = "";
formProp.file = "";
formProp.description = "";
writeDocPageHTML(true);
}
function resetGenericLight() {
index = null;
infindex = null;
imgHTML = [];
imgcountindex = 0;
docpageindex = 0;
formProp.page = docpageindex;
itemsHTML = itemsHTMLArray[docpageindex];
if (tabs) { tabs.reset(); }
writeDocPageHTML(true);
}
/* *** Fine della gestione del New *** */
/* *** Gestione del Save *** */
var saving, savingpic;
var AfterSave;
function save(then) {
if (parent) { parent.is_Saving = true; }
if (currentname != "") {
if (parent) { parent.is_Saving = true; }
notimooManager = new Notimoo({});
notimooManager.show({
title : 'Notification message',
message : 'saving scandoc ' + currentname,
sticky : true,
width : 200,
height : 40
});
if (then == "close") {
AfterSave = "close";
}
else if (!Empty(then)) {
//then e' un oggetto che contiene una funzione che deve essere eseguita dopo il salvataggio
AfterSave = then;
}
save2.delay(100);
}
else {
saveAs();
}
}
function saveAs() {
try {
saveas = true;
window.parent.is_Saving = true;
window.parent.saveAsTool();
window.parent.is_Saving = false;
} catch {
saveas = true;
window.parent.is_Saving = true;
OpenWindow("../portalstudio/saveas.jsp?tool=scandoc", 580, 600);
}
}
function getDef() {
var strsave, propName, valueToSave;
var u, i, j;
var JSONItems = [];
var JSONTmpItem = {type : formProp.type};
JSONTmpItem["version"] = version;
setPropertiesID(formProp);
/* ScanDoc Properties */
for (u = 0; u < formProp.objClass.properties.length; u++) {
propName = formProp.objClass.properties[u];
valueToSave = formProp[propName];
//Se valueToSave e' booelan e uguale a false, il test valueToSave=="" restituisce true
if (typeof(valueToSave) != "number" && typeof(valueToSave) != "boolean") {
if (typeof(valueToSave) == "undefined" || valueToSave == "") {
// se la prop e' undefined, allora si salva come " "
valueToSave = " ";
}
}
switch (propName) {
case 'h':
valueToSave = workAreaHeight;
break;
case 'w':
valueToSave = workAreaWidth;
break;
}
if (typeof(valueToSave) == "string") {
valueToSave = Strtran(valueToSave, '--', '##x2d;##x2d;');
}
JSONTmpItem[propName] = valueToSave;
}
JSONTmpItem["maxcount"] = nAllItems;
JSONItems.push(JSONTmpItem);
JSONTmpItem = {};
/*DocPage Properties */
for (i = 0; i < imgHTML.length; i++) {
JSONTmpItem = {type : imgHTML[i].type};
setPropertiesID(imgHTML[i]);
for (u = 0; u < imgHTML[i].objClass.properties.length; u++) {
propName = imgHTML[i].objClass.properties[u];
valueToSave = imgHTML[i][propName];
//Se valueToSave e' booelan e uguale a false, il test valueToSave=="" restituisce true
if (typeof(valueToSave) != "number" && typeof(valueToSave) != "boolean") {
if (typeof(valueToSave) == "undefined" || valueToSave == "") {
// se la prop e' undefined, allora si salva come " "
valueToSave = " ";
}
}
switch (propName) {
case 'h':
valueToSave = workAreaHeight;
break;
case 'w':
valueToSave = workAreaWidth;
break;
}
/*if (propName == "h" && valueToSave == 0) {
try {
img = new Image();
img.src = imgHTML[i].src;
valueToSave = img.height;
}
catch (e) {
valueToSave = 0;
}
}
else if (propName == "w" && valueToSave == 0) {
try {
img = new Image();
img.src = imgHTML[i].src;
valueToSave = img.width;
}
catch (e) {
valueToSave = 0;
}
}*/
if (LRTrim(valueToSave.toString()) != "") {
JSONTmpItem[propName] = valueToSave;
}
}
JSONItems.push(JSONTmpItem);
JSONTmpItem = {};
}
/*Zone Properties */
for (i = 0; i < countindex.length; i++) {
for (j = 0; j < itemsHTMLArray[i].length; j++) {
JSONTmpItem = {type : itemsHTMLArray[i][j].type};
JSONTmpItem["page"] = i;
setPropertiesID(itemsHTMLArray[i][j]);
for (u = 0; u < itemsHTMLArray[i][j].objClass.properties.length; u++) {
propName = itemsHTMLArray[i][j].objClass.properties[u];
valueToSave = itemsHTMLArray[i][j][propName];
//Se valueToSave e' booelan e uguale a false, il test valueToSave=="" restituisce true
if (typeof(valueToSave) != "number" && typeof(valueToSave) != "boolean") {
if (typeof(valueToSave) == "undefined" || valueToSave == "") {
// Se la prop e' undefined allora la salvo come " "
valueToSave = " ";
}
}
switch(propName) {
case 'x':
case 'y':
if (valueToSave < 0) {
PSAlert.alert("attention item with position < 0");
itemsHTMLArray[i][propName] = 0;
valueToSave = 0;
}
valueToSave = valueToSave * 100 / clCanvasLib.scale;
break;
case 'w':
case 'h':
case 'scale':
valueToSave = valueToSave * 100 / clCanvasLib.scale;
break;
}
if (LRTrim(valueToSave.toString()) != "") {
if (typeof(valueToSave) == "string") {
valueToSave = Strtran(valueToSave, '--', '##x2d;##x2d;');
}
JSONTmpItem[propName] = valueToSave;
}
}
JSONItems.push(JSONTmpItem);
JSONTmpItem = {};
}
}
strsave = JSON.stringify(JSONItems, function(s,v){if(typeof(v)!='object') return v.toString(); else return v;});
return strsave;
}
function save2() {
var strsave = "", url, output;
var i, j;
if (currentname != "") {
strsave = getDef();
var fieldslistname = "";
for (i = 0; i < countindex.length; i++) {
for (j = 0; j < itemsHTMLArray[i].length; j++) {
fieldslistname += "|" + itemsHTMLArray[i][j].name;
}
}
if (fieldslistname.length > 0) {
fieldslistname = fieldslistname.substring(1);
}
var portlet_name = "";
var folder_path = "";
currentname = Strtran(currentname, '\\', "/");
if (currentname.indexOf('/') > -1) {
folder_path = currentname.substring(0, currentname.lastIndexOf("/"));
portlet_name = currentname.substring(currentname.lastIndexOf("/") + 1);
}
else {
portlet_name = currentname;
}
url = new JSURL("../servlet/JSPSave?type=scandoc"+
"&name=" + portlet_name +
"&folder_path=" + folder_path +
"&def=" + URLenc(strsave) +
"&m_cID=" + cmdhash, true);
output = url.Response();
if (window.parent.changeName) {
window.parent.changeName(portlet_name, folder_path);
}
if (output == null) {
output = "";
}
switch (output) {
case "true":
for (i = 0; i < notimooManager.elements.length; i++) {
notimooManager.close(notimooManager.elements[i]);
}
if (window.parent.changeName) window.parent.changeName(portlet_name, folder_path,Strtran(window.frameElement.id,'portalstudioframe',''));
notimooManager.show({
title : 'Notification message',
message : 'scandoc saved!',
visibleTime : 2000,
width : 200
});
m_bUpdated = false;
if (typeof(window.opener) != "undefined") {
try {
window.opener.document.getElementById('zones_Id').submit();
}
catch (e) {}
try {
var isok = false;
if (window.opener != null) {
if (saveas == true) {
if (window.opener.cbscanedit_saveas) {
window.opener.cbscanedit_saveas(portlet_name, window, fieldslistname);
isok = true;
saveas = false;
}
}
else if (window.opener.cbscanedit_save) {
window.opener.cbscanedit_save(portlet_name, window, fieldslistname);
isok = true;
}
}
if (!isok) {
savePageletPortlet(portlet_name, window.opener, window);
}
}
catch (e) {}
}
else {
savePageletPortlet(portlet_name, window.parent);
}
document.title = currentname + " - Scan Editor";
if (AfterSave == "close") {
if (window.parent && window.parent.closeCurrentObj) { window.parent.closeCurrentObj(); }
}
else if (!Empty(AfterSave)) {
AfterSave();
}
AfterSave = null;
break;
case "ACCESS DENIED":
//notimooManager.close(notimooManager.elements[0]);
if(window.parent.location.href.indexOf("portalstudio.jsp") < 0){
accessDeniedStandaloneRefresh({ name : currentname});
} else {
parent.jsonConfirmAccessDenied({ name : currentname});
}
//notimooManager.close(notimooManager.elements[0]);
//PSAlert.alert("Access Denied.");
break;
case "LICENSE LIMIT":
notimooManager.close(notimooManager.elements[0]);
PSAlert.alert("Licensed User Limit Reached.");
break;
default:
notimooManager.close(notimooManager.elements[0]);
PSAlert.alert("Save routine failed.");
break;
}
}
else {
window.parent.saveAsTool();
}
if (parent) { parent.is_Saving = false; }
}
function savePageletPortlet(portlet_name, win, currwin) {
if (win.ZtVWeb != null && win.ZtVWeb != "undefined") {
// Pagelet
if (win.getPagelet) {
var pagelet_id = win.getPagelet();
if (pagelet_id != null && pagelet_id != "undefined") {
if (saveas == true) {
if (pagelet_id.cbscanedit_saveas) {
pagelet_id.cbscanedit_saveas(portlet_name, currwin);
}
}
else if (pagelet_id.cbscanedit_save) {
pagelet_id.cbscanedit_save(portlet_name, currwin);
}
}
}
// Portlet
else if (win.ZtVWeb.getPortletId) {
var portlet_id = win.ZtVWeb.getPortletId();
if (portlet_id != null && portlet_id != "undefined") {
var portlet_obj = win.ZtVWeb.getPortletById(portlet_id);
if (portlet_obj != null && portlet_obj != "undefined") {
if (saveas == true) {
if (portlet_obj.cbscanedit_saveas) {
portlet_obj.cbscanedit_saveas(portlet_name, currwin);
}
}
else if (portlet_obj.cbscanedit_save) {
portlet_obj.cbscanedit_save(portlet_name, currwin);
}
}
}
}
}
}
/* *** Fine della gestione del Save *** */
/* *** Gestione della Preview *** */
function Preview() {
var m_bUpdated_s = m_bUpdated;
m_bUpdated = false; // dont save before preview
togglePreview();
m_bUpdated = m_bUpdated_s;
}
function togglePreview() {
scanPreview();
}
function scanPreview() {
if (LRTrim(formProp.file) != "") {
var url = "scanpreview.jsp";
url += "?SPModalLayerId=previewSPModalLayer";
openSPModalLayer(url, 40, window.getSize().w/2, 600, 600, true, 1, true);
}
else {
PSAlert.alert("PDF File needed !");
}
}
function createPreview() {
var strsave = getDef();
var nRec = 0;
var url = "../servlet/JSPScanEditorPrev?pdffile=" + formProp.file + "&scandef=" + URLenc(strsave);
var xmlobj1 = new ZtVWeb.XMLDataProvider(this, 'xmlobj1', url, '/ExtractText/zone', ' ', ' ', false);
try {
xmlobj1.Query();
nRec = xmlobj1.getRecCount();
} catch (e) { }
var zoneName, zoneValue;
var result = [];
for (var n = 0; n < nRec; n++) {
zoneName = ToHTML(getFieldDesc(xmlobj1.rs.name));
zoneValue = ToHTML(xmlobj1.rs.field);
zoneValue = Strtran(zoneValue, "&#10;", "<br>");
result.push({name:zoneName,value:zoneValue});
xmlobj1.Next();
}
return result;
}
/* *** Fine della gestione della Preview *** */
/* *** Gestione del caricamento dello Sca *** */
function reload(e, pdfsrc, def) {
notimooManager = new Notimoo({});
notimooManager.show({
title : 'Notification message',
message : 'loading scandoc ' + currentname,
sticky : true,
width : 200,
height : 40
});
if(def == undefined && !(c_ripristino && sessionStorage.getItem(c_ripristino)) && !window.frameElement?.jdef){
var url = new JSURL("../servlet/JSPReader?type=scandoc&name=" + currentname + "&check=true", true);
var output = url.Response();
} else {
output = "found";
}
if (LRTrim(output) == "found") {
var strreload;
if( c_ripristino && sessionStorage.getItem(c_ripristino)){
/**
* parent.is_Saving a False, perchè se fosse True i vari tab
* non sarebbero più cliccabili e quindi non si potrebbe lavorare
* sugli altri Tab
*/
parent.is_Saving = false;
strreload = JSON.parse(sessionStorage.getItem(c_ripristino))["def"];
currentname = JSON.parse(sessionStorage.getItem(c_ripristino))["name"];
sessionStorage.removeItem(c_ripristino);
if(window.parent.location.href.indexOf("portalstudio.jsp") < 0){
if(currentname){
save();
} else if(!currentname){
saveAs();
}
}
} else if(window.frameElement?.jdef){
strreload = JSON.parse(window.frameElement.jdef);
window.frameElement.jdef = undefined;
} else if(def == undefined){
url = new JSURL("../servlet/JSPLoad?type=scandoc&name=" + currentname, true);
strreload = Strtran(url.Response(), '\u0080', '\u20AC');
} else {
strreload = def;
}
if (isLoading) {
reload_(e, strreload, false, pdfsrc);
indexUndo = -1;
indexRedo = -1;
undoItemsMoved = [];
undoSequence = [];
selectedZoombox("zoombox");
resizeWindow(e, true);
}
else {
$('loading').setStyle('opacity', 0.7).innerHTML = "Loading <span style='font-weight:bold;font-style:italic;'>" + currentname + "</span>...";
var fnToDelayx = function () {
reload_(e, strreload, false, pdfsrc);
indexUndo = -1;
indexRedo = -1;
undoItemsMoved = [];
undoSequence = [];
selectedZoombox("zoombox");
resizeWindow(e, true);
writeDocPageHTML(true);
$('loading').fade(0);
};
fnToDelayx.delay(2000);
}
}
else {
for (var i = 0; i < notimooManager.elements.length; i++) {
notimooManager.close(notimooManager.elements[i]);
}
PSAlert.alert('ScanDoc not found');
return;
}
}
/* *** Fine della gestione del caricamento dello Sca *** */
// Funzioni di trascinamento items ####################################
var deltax = 0, deltay = 0, dx, dy; // distanze del punto di click dall origine dell item
function selectItemBarImg(itm) {
mainitem = itm;
}
function selectItemBarField(itm) {
selectItemBarImg(itm);
}
function editItemEvent() {
}
function openclosediv(dv1, dv2) {
removeAllFieldHandlers();
document.getElementById(dv1).style.display = "none";
document.getElementById(dv2).style.display = "block";
}
function enableDocumentSelection(enable) {
if (enable) {
document.onselectstart = _original_onselectstart;
}
else {
document.onselectstart = function () {
return false;
};
}
}
/* *** Gestione della selezione *** */
// Seleziona l'item se cliccato
function clickItem(e, id_container) {
var str = "", elementID = "", i = 0;
multipleSelection = false;
var element;
if (e != null) {
element = GetEventSrcElement(e);
if (element.id != "") {
elementID = Strtran(element.id, "_int", "");
element = Ctrl(elementID);
}
if (!element.id) {
while (element.parentNode && element.parentNode.id == "") {
element = element.parentNode;
}
element = element.parentNode;
}
}
if (e == null || e.shiftKey == false) {
removeAllHandlers();
}
if(Empty(element)) { elementID = id_container; }
for (i = 0; i < itemsHTMLArray[docpageindex].length; i++) {
if (itemsHTMLArray[docpageindex][i].id == elementID) {
last_index = null;
itemsHTMLArray[docpageindex][i].shadow = "shadow" + elementID.substr(4);
str = addHandlers(elementID.substr(4));
Ctrl("canvashandlers").innerHTML = Ctrl("canvashandlers").innerHTML + str;
selectItem(Ctrl("shadow" + elementID.substr(4)));
}
}
for (i = 0; i < imgHTML.length; i++) {
if (imgHTML[i].id == elementID) {
selectImg(i);
infindex = i;
}
}
if (element != null) {
if (element.id == "navmenu_tabcontainer") {
elementID = id_container;
for (i = 0; i < imgHTML.length; i++) {
if (imgHTML[i].id == elementID) {
selectImg(i);
infindex = i;
return;
}
}
}
else {
for (i = 0; i < fieldHTML.length; i++) {
if (fieldHTML[i].id == elementID) {
selectField(i);
return;
}
removeAllFieldHandlers();
}
}
}
}
function removeAllImgHandlers() {
// Svuota l'array contenente gli elementi selezionati precedentemente
for (var i = 0; i < imgHTML.length; i++) {
imgHTML[i].shadow = "";
}
Ctrl("toolbarimghandlers").innerHTML = "";
removeAllFieldHandlers();
}
function removeAllFieldHandlers() {
for (var i = 0; i < fieldHTML.length; i++) {
fieldHTML[i].shadow = "";
if (Ctrl("shadow" + fieldHTML[i].id.substr(4))) {
document.body.removeChild(Ctrl("shadow" + fieldHTML[i].id.substr(4)));
}
}
Ctrl("toolbarfldhandlers").innerHTML = "";
}
function addImgHandlers(itmIdx) {
var itm = Ctrl("item" + itmIdx);
if (itm == null) {
return;
}
var y = itm.offsetTop;
var x = itm.offsetLeft;
var w = itm.offsetWidth;
var h = itm.offsetHeight;
var str = "";
// aggiunge il div shadow+n della grandezza dell item per lo spostamento
str += "<div id='shadow" + itmIdx + "' class='shadow' style='z-index:5;position:absolute;top:" + y + "px;left:" + x + "px;width:" + w + "px;height:" + h + "px;background:url(../visualweb/images/pixeldrag.png) repeat;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;' ondblclick='editItemEvent()'>";
if (navigator.appName.indexOf("Microsoft") > -1) {
str += "<img id='" + itmIdx + "' src='images/trasparent.gif' style='width:100%;height:100%;'>";
}
else {
str += "&nbsp;";
}
str += "</div>";
return str;
}
function addFieldHandlers(itmIdx) {
var itm = Ctrl("item" + itmIdx);
var xcontent = Ctrl("fields_container_items");
var y = getY(itm) - 1 - xcontent.scrollTop;
var x = itm.offsetLeft + 12;
var w = itm.offsetWidth + 6;
var h = itm.offsetHeight + 2;
var str = "";
// aggiunge il div shadow+n della grandezza dell item per lo spostamento
str += "<div id='shadow" + itmIdx + "' class='shadow' style='z-index:1010;cursor:move;color:white;position:absolute;top:" + y + "px;left:" + x + "px;width:" + w + "px;height:" + h + "px;background:url(../visualweb/images/pixeldrag.png) repeat;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;' ondblclick='editItemEvent();' onmousedown='dragShadow2(event,this);'>";
str += "&nbsp;";
str += "</div>";
var divT = document.createElement("div");
divT.setAttribute("id", "shadow" + itmIdx);
divT.style.zIndex = 1010;
divT.style.cursor = "move";
divT.style.position = "absolute";
divT.style.top = y + "px";
divT.style.color = "#FFFFFF";
divT.style.left = x + "px";
divT.style.width = w + "px";
divT.style.height = h + "px";
divT.className = "shadow";
divT.innerHTML = "&nbsp;";
divT.ondblclick = editItemEvent;
divT.onmousedown = dragShadow2;
document.body.appendChild(divT);
return str;
}
function getY(oElement) {
var iReturnValue = 0;
while (oElement != null) {
iReturnValue += oElement.offsetTop;
oElement = oElement.offsetParent;
}
return iReturnValue;
}
/* *** Fine della gestione della selezione *** */
/* *** Gestione dello spostamento *** */
function frem() {
removeAllFieldHandlers();
Ctrl("canvas").onmousedown = null;
Ctrl("toolbarfldz").onmousedown = null;
Ctrl("toolbarfldz").onmousemove = null;
Ctrl("canvas").onmousemove = null;
if(mainitem) {
mainitem.onmouseup = null;
mainitem.onmousedown = null;
}
document.onmouseup = null;
document.onmousedown = null;
$("canvas").setStyle('cursor', 'default');
}
function dragShadow2(e/*, obj*/) {
if (typeof(hideProperties) != "undefined") {
hideProperties("properties");
}
// seleziona l'elemento
e = (e) ? e : window.event;
var element = GetEventSrcElement(e);
mainitem = Ctrl(element.id);
deltax = (e.pageX) ? e.pageX : (e.clientX) ? e.clientX : 0;
deltay = (e.pageY) ? e.pageY : (e.clientY) ? e.clientY : 0;
if (document.all) {
deltax += window.pageXOffset;
deltay += window.pageYOffset;
}
deltax = deltax - parseInt(Ctrl("backcanvas").offsetLeft) - mainitem.offsetLeft + Ctrl("canvas").scrollLeft;
deltay = deltay - parseInt(Ctrl("backcanvas").offsetTop) - mainitem.offsetTop + Ctrl("canvas").scrollTop;
// l'id e' shadown+n e quello dell item e' item+n
Ctrl("toolbarfldz").onmousemove = moveShadow2;
Ctrl("canvas").onmousemove = moveShadow2;
Ctrl("canvas").onmousedown = frem;
Ctrl("toolbarfldz").onmousedown = frem;
mainitem.onmousedown = frem;
mainitem.onmouseup = frem;
document.onmouseup = frem;
document.onmousedown = frem;
enableDocumentSelection(false);
m_bUpdated = true;
cancelEvent(e);
}
function moveShadow2(e) {
calcPosition(e);
dx = xpos - deltax - mainitem.offsetLeft;
dy = ypos - deltay - mainitem.offsetTop;
maxWidth += $("gadgets_pane").offsetWidth; //20px spazio per v_ruler module editor
if (xpos - deltax > 0 && ypos - deltay > 0 && (ypos - deltay + mainitem.offsetHeight) < maxHeight && (mainitem.offsetWidth + xpos - deltax) < maxWidth) {
mainitem.style.left = (xpos - deltax) + "px";
mainitem.style.top = (ypos - deltay) + "px";
}
mainitem.onmouseup = setShadow2;
$("canvas").setStyle('cursor', 'move');
if (parseInt(mainitem.style.left) + parseInt(mainitem.style.width) >= 250) {
mainitem.style.color = "black";
}
else {
mainitem.style.color = "white";
}
}
function setShadow2(e) {
frem();
var v1 = parseInt(mainitem.style.left) + parseInt(mainitem.style.width);
var v2 = parseInt(Ctrl("backcanvas").offsetLeft);
var w1 = parseInt(mainitem.style.top);
var w2 = parseInt(Ctrl("backcanvas").offsetTop) + parseInt(Ctrl("backcanvas").offsetHeight);
if (v1 > v2 && w2 > w1) {
var itxx = "item" + mainitem.id.substr(6);
var zname;
for (var n = 0; n < fieldHTML.length; n++) {
// Non ci possono essere zone duplicate
if (itxx == fieldHTML[n].id) {
zname = fieldHTML[n].fname;
if (canAddZone(zname, true) == false) {
removeAllFieldHandlers();
enableDocumentSelection(true);
return;
}
}
}
type = "Zone";
putItem(e);
var insertedItem = itemsHTMLArray[docpageindex][countindex[docpageindex] - 1];
if (putok == true) {
insertedItem.h = parseInt(mainitem.style.height) * clCanvasLib.scale / 100;
insertedItem.w = parseInt(mainitem.style.width) * clCanvasLib.scale / 100;
insertedItem.x = parseInt(mainitem.style.left) - parseInt(Ctrl("backcanvas").offsetLeft) + parseInt(Ctrl("canvas").scrollLeft);
insertedItem.y = parseInt(mainitem.style.top) - parseInt(Ctrl("backcanvas").offsetTop) + parseInt(Ctrl("canvas").scrollTop);
if (insertedItem.x < 0) {
insertedItem.x = 0;
}
if (insertedItem.y < 0) {
insertedItem.y = 0;
}
if (parseInt(insertedItem.x) + parseInt(insertedItem.w) > parseInt(Ctrl("backcanvas").offsetWidth) + parseInt(Ctrl("canvas").scrollLeft)) {
insertedItem.w = Ctrl("backcanvas").offsetWidth - parseInt(insertedItem.x) - 3;
}
if (parseInt(insertedItem.y) + parseInt(insertedItem.h) > parseInt(Ctrl("backcanvas").offsetHeight) + parseInt(Ctrl("canvas").scrollTop)) {
insertedItem.h = parseInt(Ctrl("backcanvas").offsetHeight) - parseInt(insertedItem.y) - 3;
}
var itx = "item" + mainitem.id.substr(6);
for (n = 0; n < fieldHTML.length; n++) {
if (itx == fieldHTML[n].id) {
insertedItem.name = fieldHTML[n].fname;
insertedItem.fieldindex = "" + (n + 1);
}
}
}
}
removeAllFieldHandlers();
enableDocumentSelection(true);
writeHTML();
if (putok) {
clickItem(null, itemsHTMLArray[docpageindex][countindex[docpageindex] - 1].id);
}
}
function ValidMove(x, y, w, h, id) {
x = parseInt(x);
y = parseInt(y);
h = parseInt(h);
w = parseInt(w);
if (x < 0 || y < 0) {
return false;
}
if (!Empty(id)) {
var ctrln = Ctrl(id + "Num");
if (ctrln) {
ctrln.style.left = x + "px";
ctrln.style.top = (y - ctrln.offsetHeight) + "px";
}
}
return true;
}
/* *** Fine della gestione dello spostamento *** */
function togglerGadget() {
removeAllFieldHandlers();
}
window.addEvent('domready', function () {
});
// --------- EXPORT ----------- //
/**
* Ottiene JDEF e aggiunge Versione e Tool
*/
function getJDEF(){
var getJDef = getDef();
let toolType = tool;
let versionTool = formProp.version;
let newJDefStringify = {
tool : toolType,
version : versionTool,
def : getJDef,
name : currentname
}
return newJDefStringify;
}