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

134 lines
6.0 KiB
JavaScript

var oQRCode;
function setPreview(w,h,display,btn){
var i_preview=document.id('i_preview');
var i_preview_container=document.id('i_preview_container');
var i_preview_qrcode=document.id('i_preview_qrcode');
// LibJavascript.CssClassNameUtils.removeClass(i_preview,"iphone_v");
// LibJavascript.CssClassNameUtils.removeClass(i_preview,"ipad_v");
// LibJavascript.CssClassNameUtils.removeClass(i_preview,"iphone_o");
// LibJavascript.CssClassNameUtils.removeClass(i_preview,"ipad_o");
LibJavascript.CssClassNameUtils.removeClass(i_preview_container,"iphone");
LibJavascript.CssClassNameUtils.removeClass(i_preview_container,"ipad");
LibJavascript.CssClassNameUtils.removeClass(i_preview_container,"vertical");
LibJavascript.CssClassNameUtils.removeClass(i_preview_container,"horizontal");
LibJavascript.CssClassNameUtils.removeClass(i_preview_container,"desktop");
if(btn){
for(var i=0;i<btn.parentNode.childNodes.length;i++){
LibJavascript.CssClassNameUtils.removeClass(btn.parentNode.childNodes[i],"steps_preview_active");
}
LibJavascript.CssClassNameUtils.addClass(btn,"steps_preview_active");
}
//LibJavascript.CssClassNameUtils.removeClass(btn,"steps_preview_active");
i_preview.style.display='block';
i_preview_qrcode.style.display='none';
if(w==-1){
i_preview.setStyles({
'height': window.getSize().y-parseInt(LibJavascript.DOM.getComputedStyle(i_preview, 'margin-top')),
'width' : window.getSize().x-(window.getWrapperLeft?window.getWrapperLeft():0)
});
i_preview.setAttribute("fixed-height",false);
if(display=='desktop'){
LibJavascript.CssClassNameUtils.addClass(i_preview_container,"desktop");
showPreviewSteps(btn);
}
if(display=='qrcode'){
i_preview.style.display='none';
i_preview_qrcode.style.display='block';
if(oQRCode)
oQRCode.clear(); // Clear the QRCode.
else{
oQRCode = new QRCode("i_preview_qrcode", {
text : (i_preview.src.indexOf('?')>-1? i_preview.src.substring(0,i_preview.src.indexOf('?')):i_preview.src),
// text : "ciao",
width : 400,
height : 400
});
}
hidePreviewSteps(display);
}
}else{
//nascondo gli step Desktop
hidePreviewSteps(display);
if(display=="iphone_v"){
LibJavascript.CssClassNameUtils.addClass(i_preview_container,"iphone");
LibJavascript.CssClassNameUtils.addClass(i_preview_container,"vertical");
}
if(display=="iphone_o"){
LibJavascript.CssClassNameUtils.addClass(i_preview_container,"iphone");
LibJavascript.CssClassNameUtils.addClass(i_preview_container,"horizontal");
}
if(display=="ipad_v"){
LibJavascript.CssClassNameUtils.addClass(i_preview_container,"ipad");
LibJavascript.CssClassNameUtils.addClass(i_preview_container,"vertical");
}
if(display=="ipad_o"){
LibJavascript.CssClassNameUtils.addClass(i_preview_container,"ipad");
LibJavascript.CssClassNameUtils.addClass(i_preview_container,"horizontal");
}
i_preview.style.height=h+'px';
//i_preview.setAttribute("scrolling","no");
//i_preview.style.width=(w+getScrollbarWidth())+'px';
i_preview.style.width=(w+4)+'px';//4 px me risolvere il problema in presenza di scrollbars
i_preview.setAttribute("fixed-height",true);
//setTimeout(function(){document.id('i_preview').setAttribute("scrolling","yes");document.id('i_preview').scrolling='yes';},400);//Dopo la transition css
}
}
function hidePreviewSteps(display){
var steps_preview_container=document.getElementById("steps_preview_container");
if(steps_preview_container && !Empty(display)){
if(steps_preview_container.style.display=='block')
steps_preview_container.style.display='none';
}
}
/* exported getScrollbarWidth */
function getScrollbarWidth() {
var outer = document.createElement("div");
LibJavascript.CssClassNameUtils.addClass(outer,'myscroll');
outer.style.visibility = "hidden";
outer.style.width = 0;
document.body.appendChild(outer);
outer.style.overflow = "scroll";
//outer.setAttribute("scrolling","yes");
var WithScroll = outer.scrollWidth;
outer.parentNode.removeChild(outer);
return WithScroll*(-1) ;
}
/* exported selectFromComboStep */
function selectFromComboStep(step,li){
var i_preview=document.id('i_preview');
setPreview(step,(window.getSize().y-parseInt(LibJavascript.DOM.getComputedStyle(i_preview, 'margin-top'))));
if(li){
for(var i=0;i<li.parentNode.childNodes.length;i++){
LibJavascript.CssClassNameUtils.removeClass(li.parentNode.childNodes[i],"steps_preview_container_selected");
}
LibJavascript.CssClassNameUtils.addClass(li,"steps_preview_container_selected");
}
}
function showPreviewSteps(/*btn*/){
var steps_preview_container, i;
if (!Empty(formProp.layout_step)) {
//var i_preview=document.id('i_preview');
var steps = formProp.steps.split(',');
steps=steps.sort(function(a,b){return parseInt(a)>parseInt(b);});
var steps_preview=document.getElementById("steps_preview");
steps_preview_container=document.getElementById("steps_preview_container");
if(steps_preview_container){
for(i=0;i<steps_preview_container.childNodes.length;i++){
LibJavascript.CssClassNameUtils.removeClass(steps_preview_container.childNodes[i],"steps_preview_container_selected");
}
steps_preview_container.style.display='block';
return;
}
steps_preview_container=new Element('ul', { 'id': "steps_preview_container", 'class' :'steps_preview_container'}).inject(steps_preview);
steps_preview_container.setStyles({'display':'block','position':'absolute'});
new Element('li', {'id':'step_preview_title','html' :'Steps' }).inject(steps_preview_container);
for (i = 0; i < steps.length; i++) {
if(parseInt(steps[i])!=0){
var steps_li=new Element('li', {'id':'step_preview_'+steps[i],'html' :steps[i] }).inject(steps_preview_container);
steps_li.onclick=new Function('window["selectFromComboStep"]('+steps[i]+',this);');
}
}
}
}