Files
crm.e5.pl/modules/EcmServices/PDFLanguages.js

361 lines
6.7 KiB
JavaScript
Raw Normal View History

2024-04-27 09:23:34 +02:00
function doRequest(where,post,doFunction,error) {
this.Display = function(result) { doFunction(result.responseText); }
this.Fail = function(result){ if(error) alert(error);}
YAHOO.util.Connect.asyncRequest('POST',where,{success:this.Display,failure:this.Fail},post);
}
function changeValidateRequired(formname,name,required) {
for(var i=0; i<validate[formname].length; i++)
if(validate[formname][i][0] == name) { validate[formname][i][2] = required; break; }
}
//function set_focus() { document.getElementById('name').focus(); }
function my_popup(module, field_array, call_back_function, form_name) {
if(!call_back_function) call_back_function = "set_return";
if(!form_name) form_name = "EditView";
return open_popup(module, 600, 400, "", true, false, {"call_back_function":call_back_function,"form_name":form_name,"field_to_name_array":field_array});
}
function addEvent(object,eventName,do_function) {
if(typeof(object) == "string") object = document.getElementById(object);
if(!object) { alert('No object in function addEvent!'); return; }
if(object.addEventListener) {
object.addEventListener(eventName, do_function, false);
} else {
object.attachEvent('on'+eventName, do_function);
}
}
var tbody_;
var ItemListSave;
var ItemListClear;
var ItemListFil;
var FillText;
addEvent(
window,
'load',
function() {
var PDFLanguagesTable = new PDFLanguagesMT('PDFLanguagesTable');
PDFLanguagesTable.onRefreshRowIndex = function(row) {
var data = new Object();
data['index'] = (row.index+1).toString();
row.cells.item(0).setData(data);
}
PDFLanguagesTable.onCreateRow = function(row) {
row.newPos = false;
row.noAddNew = true;
row.ondblclick = function() {}
row.onSelect = function() {
for(var i=0; i<this.myTable.colCount(); i++)
this.cells.item(i).change(!this.newPos);
}
row.onDeselect = function() {
for(var i=0; i<this.myTable.colCount(); i++)
this.cells.item(i).change(false);
}
}
PDFLanguagesTable.onCreateCell = function(cell) {
var i = cell.index;
cell.change = function(select) {};
if(i == 0) {
cell.setData = function(data) {
if(data.index) cell.firstChild.value = data.index;
};
cell.getData = function(data) {
data.index = cell.firstChild.value;
}
cell.select = function() { this.selectNext(); }
var edit = document.createElement('input');
edit.setAttribute('type','text');
edit.setAttribute('readOnly','readonly');
edit.setAttribute('tabIndex',1);
edit.className = 'inputs';
cell.appendChild(edit);
}
if(i == 1) {
cell.change = function(select) {}
cell.getData = function(data) {
var cn = this.getElementsByTagName('input');
data.label = cn[0].value;
}
cell.setData = function(data) {
var cn = this.getElementsByTagName('input');
if(data.label) cn[0].value = data.label;
}
cell.select = function() { this.selectNext(); }
var edit = document.createElement('input');
edit.setAttribute('type','text');
edit.setAttribute('readOnly','readonly');
edit.setAttribute('tabIndex',1);
edit.className = 'inputs';
cell.appendChild(edit);
}
if(i == 2) {
cell.noNewAdd = true;
cell.getData = function(data) {
var cn = this.getElementsByTagName('input');
data.translation = cn[0].value;
}
cell.setData = function(data) {
var cn = this.getElementsByTagName('input');
if(data.translation) cn[0].value = data.translation;
}
var edit = '<input type="text" onFocus="this.parentNode.select();" tabindex="1" class="inputs" style="height:16px;" autocomplete="off" onKeyDown="return this.parentNode.myTable.KeyPressed(event,this.parentNode);">';
cell.innerHTML = edit;
}
}
PDFLanguagesTable.onSetCellData = function(row,cell,data) {
if(cell.innerHTML == '') cell.innerHTML = '&nbsp;';
}
ItemListSave = function(json,el) {
var data = new Object();
var tmp;
var ecmlanguage = document.getElementById('ecmlanguage').value;
if(typeof(el) == "string") ecmlanguage = el;
if(!PDFLanguagesOptions.ecmlanguage) PDFLanguagesOptions.ecmlanguage = new Object();
for(var i=0; i<PDFLanguagesTable.rowCount(); i++) {
data[i.toString()] = PDFLanguagesTable.row(i).getData();
}
PDFLanguagesOptions['ecmlanguage'][ecmlanguage]['labels'] = data;
FillText('header',document.getElementById('header_parent'));
FillText('footer',document.getElementById('footer_parent'));
FillText('ads',document.getElementById('ads_parent'));
if(json) {
var r = JSON.stringifyNoSecurity(PDFLanguagesOptions['ecmlanguage']);
doRequest(
'index.php',
'module=EcmServices&action=PDFLanguagesSave&to_pdf=1&ecmlanguage='+document.getElementById('ecmlanguage').value+'&pdflanguagelist='+r,
function(result) {
if(result.indexOf("Saved") >= 0) alert("Saving done!"); else alert("Error with saving!");
}
);
}
}
ItemListClear = function(noNew,save) {
if(typeof(save)=="string") ItemListSave(null,save);
while(PDFLanguagesTable.rowCount()>0) PDFLanguagesTable.row(0).deleteRow(noNew);
}
ItemListFill = function() {
var ecmlanguage = document.getElementById('ecmlanguage').value;
var pl;
if(PDFLanguagesOptions && PDFLanguagesOptions.ecmlanguage && PDFLanguagesOptions['ecmlanguage'][ecmlanguage]) {
pl = PDFLanguagesOptions['ecmlanguage'][ecmlanguage]['labels'];
}
FillText('header',document.getElementById('header_parent'));
FillText('footer',document.getElementById('footer_parent'));
FillText('ads',document.getElementById('ads_parent'));
if(pl && pl != '') {
try {
pl = eval(pl);
for(x in pl) { var pl_row = pl[x]; PDFLanguagesTable.addRow().setData(pl_row); }
} catch(err) { pl = null; };
}
document.getElementById('ecmlanguage').lastSelected = document.getElementById('ecmlanguage').value;
//if(PDFLanguagesTable.rowCount() == 0) PDFLanguagesTable.addRow();
}
FillText = function(name, parent) {
var text = document.getElementById(name+'_text');
var el = document.getElementById('ecmlanguage');
if(!parent.lastSelected) {
parent.lastSelected = parent.value;
parent.lastSelectedEcmLanguage = el.value;
}
else
PDFLanguagesOptions['ecmlanguage'][parent.lastSelectedEcmLanguage]['texts'][parent.lastSelected][name+'_text'] = text.value;
text.value = PDFLanguagesOptions['ecmlanguage'][el.value]['texts'][parent.value][name+'_text'];
parent.lastSelected = parent.value;
parent.lastSelectedEcmLanguage = el.value;
}
//PDFLanguagesTable.addRow();
ItemListFill();
}
);