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

149 lines
6.4 KiB
JavaScript
Raw Permalink Blame History

/* exported create_gadget_pane */
function create_gadget_pane(){
var gadget_pane_items = $$('#gadgets_pane .gadgets_pane_item');
var gadget_title = $$('.gadgetlistTitle')
var g_pane = $('gadgets_pane');
gadget_pane_items.each(function(item){
var content_id = null; /*id del contenuto del gadgets_pane_item */
if(item.getFirst() && item.getFirst().hasClass('small') && item.getFirst().hasClass('nano'))
content_id = item.getFirst().getFirst('.content').id
else
content_id = item.getFirst().id
var toggler = null; /*bottone di chiusura e apertura del gadget*/
gadget_title.each(function(gt){
if(gt.getProperty('for') == content_id)
toggler = gt.querySelector('.gadgets_pane_toggler');
})
if(toggler){
item.store('opened',true);
item.set('morph');
toggler.setStyles({'background-position':'bottom left'})
if(!toggler.hasClass('opened')) toggler.addClass('opened');
/*definisco l'altezza iniziale*/
var h = item.getSize().y
item.store('old_height',h);
toggler.addEventListener( /*apertura e chiusura dei gadget con relarivo ridimensionamento*/
'click', function(/*e*/){
if(item.retrieve('opened')){
item.store('opened',false);
item.store('old_height',item.getSize().y);
item.get('morph').start({'height':0,'opacity':0}).chain(function(){
resizeGadgetsPane();
});
toggler.removeClass("opened");
}else{
item.store('opened',true);
var old_h =item.retrieve('old_height');
item.get('morph').start({'height':old_h,'opacity':1}).chain(function(){
resizeGadgetsPane();
});
toggler.addClass("opened");
}
if(window.togglerGadget) window.togglerGadget(toggler);
}
)
}
})
var togglePane = function(first){
first = ( typeof(first) == 'boolean' ? first : false) ;
var timeOut = '300';
if(window.myGadgetPaneTimeOut) { //settare timeout //uso in smartreport
timeOut = window.myGadgetPaneTimeOut;
}
var morphEl= new Fx.Morph($('gadgets_pane'),{ 'duration':timeOut, link:'cancel',transition:Fx.Transitions.Bounce.easeOut});
var morphTlb= new Fx.Morph($('toolbar'),{ 'duration':timeOut, link:'cancel',transition:Fx.Transitions.Bounce.easeOut});
var g_pane_w = g_pane.getSize().x,
b_canvas = $('backcanvas');
$$('#gadgets_pane .gadgets_pane_item').set('morp');
if( g_pane.opened ){
morphEl.start({'left': - g_pane_w}).chain(function(){
$$('#gadgets_pane .gadgets_pane_item').each(function(el){
el.get('morph').start({'opacity':0}).chain(function(){
el.setStyle('display','none');
});
});
});
if($('toolbar')){
if(first)
$('toolbar').setStyles({'left': 18,'width': ( $('toolbar').getSize().x - 18 ) + g_pane_w});
else
morphTlb.start({'left': 18,'width':$('toolbar').getSize().x+g_pane_w});
}
g_pane.opened = false;
$('gadgets_openclose').setStyle('background-position','center right') ;
b_canvas.setStyles({'left':b_canvas.offsetLeft-g_pane_w,'width':b_canvas.offsetWidth+g_pane_w > 0 ? b_canvas.offsetWidth+g_pane_w : b_canvas.offsetWidth});
if($('backcanvasBorder'))
$('backcanvasBorder').setStyle('left',$('backcanvasBorder').offsetLeft-g_pane_w);
if($('v_ruler'))
$('v_ruler').setStyle('left',$('v_ruler').offsetLeft-g_pane_w);
if($('h_ruler'))
$('h_ruler').setStyle('left',$('h_ruler').offsetLeft-g_pane_w);
if($('layoutSteps'))
$('layoutSteps').setStyle('left', $('layoutSteps').offsetLeft - g_pane_w);
window.dispatchEvent(new CustomEvent('gadget-pane-close', { detail: { size: g_pane_w } }))
}else{
if($('toolbar')){
if(first)
$('toolbar').setStyles({'left': g_pane_w +15,'width':$('toolbar').getSize().x - (g_pane_w + 18 )})
else
morphTlb.start({'left': g_pane_w +15,'width':$('toolbar').getSize().x-g_pane_w})
}
morphEl.start({'left': 0}).chain(function(){
$$('#gadgets_pane .gadgets_pane_item').setStyle('display','block');
$$('#gadgets_pane .gadgets_pane_item').fade(1);
resizeGadgetsPane();
});
g_pane.opened = true;
$('gadgets_openclose').setStyle('background-position','center left') ;
b_canvas.setStyles({'left':b_canvas.offsetLeft+g_pane_w,'width': b_canvas.offsetWidth-g_pane_w > 0 ? b_canvas.offsetWidth-g_pane_w : b_canvas.offsetWidth});
if($('backcanvasBorder'))
$('backcanvasBorder').setStyle('left',$('backcanvasBorder').offsetLeft+g_pane_w);
if($('v_ruler'))
$('v_ruler').setStyle('left',$('v_ruler').offsetLeft+g_pane_w);
if($('h_ruler'))
$('h_ruler').setStyle('left',$('h_ruler').offsetLeft+g_pane_w);
if($('layoutSteps'))
$('layoutSteps').setStyle('left', $('layoutSteps').offsetLeft + g_pane_w);
window.dispatchEvent(new CustomEvent('gadget-pane-open', { detail: { size: g_pane_w } }))
}
// if(!Empty(clVRRulersLib))
// clVRRulersLib.DrawVertical(document.id('backcanvas').getSize().y);
// if(!Empty(clHRRulersLib))
// clHRRulersLib.DrawHorizontal(document.id('backcanvas').getSize().x);
if(writeHTML)writeHTML();
}
document.getElementById('gadgets_panerightbar').addEventListener('click', togglePane);
/*all'inizio <20> aperta*/
g_pane.opened = g_pane.opened ? g_pane.opened : false;
g_pane.setStyle('display','block');
if(!g_pane.opened)togglePane(true);
}
var resizeGadgetsPane = function(recalc){
var gadget_pane_items = $$('#gadgets_pane .gadgets_pane_item');
var gadget_title_h = $$('.gadgetlistTitle')[0].getSize().y;
gadget_pane_items.each(function(item){
var gadget_opened = item.retrieve('opened')
if(gadget_opened){
var old_h = item.retrieve('old_height');
item.setStyle('height','auto');
if(item.getScrollSize().y > old_h || recalc){
var gadgets_h = 0;
gadget_pane_items.each(function(i){
if(i != item)
gadgets_h += i.getSize().y;
});
var h = Math.min(item.getScrollSize().y,document.id('gadgets_pane').getSize().y - ((gadget_title_h * gadget_pane_items.length) + gadgets_h));
if (h >= 0) {
item.setStyles({'height':h});
item.store('old_height',h)
}
}else{
item.setStyle('height',old_h);
}
recalc=true;
}
})
}