100 lines
3.1 KiB
JavaScript
100 lines
3.1 KiB
JavaScript
|
scheduler.attachEvent("onTemplatesReady",function(){
|
||
|
scheduler.attachEvent("onBeforeLightbox",function(id){
|
||
|
if (this.config.readonly_form || this.getEvent(id).readonly)
|
||
|
this.config.readonly_active = true;
|
||
|
else {
|
||
|
this.config.readonly_active = false;
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
for (var i=0; i < this.config.lightbox.sections.length; i++) {
|
||
|
this.config.lightbox.sections[i].focus = false;
|
||
|
};
|
||
|
|
||
|
return true;
|
||
|
});
|
||
|
|
||
|
function txt_replace(tag,d,n,text){
|
||
|
var txts = d.getElementsByTagName(tag);
|
||
|
var txtt = n.getElementsByTagName(tag);
|
||
|
for (var i=txtt.length-1; i>=0; i--){
|
||
|
var n = txtt[i];
|
||
|
if (!text)
|
||
|
n.disabled = true;
|
||
|
else {
|
||
|
var t = document.createElement("SPAN");
|
||
|
t.className = "dhx_text_disabled";
|
||
|
t.innerHTML=text(txts[i]);
|
||
|
n.parentNode.insertBefore(t,n);
|
||
|
n.parentNode.removeChild(n);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
var old = scheduler._fill_lightbox;
|
||
|
scheduler._fill_lightbox=function(){
|
||
|
var sns = this.config.lightbox.sections;
|
||
|
if (this.config.readonly_active){
|
||
|
for (var i=0; i < sns.length; i++) {
|
||
|
if (sns[i].type == 'recurring') {
|
||
|
var s = document.getElementById(sns[i].id);
|
||
|
s.style.display=s.nextSibling.style.display='none';
|
||
|
sns.splice(i,1);
|
||
|
i--;
|
||
|
}
|
||
|
};
|
||
|
}
|
||
|
|
||
|
var res = old.apply(this,arguments);
|
||
|
if (this.config.readonly_active){
|
||
|
|
||
|
var d = this._get_lightbox();
|
||
|
var n = this._lightbox_r = d.cloneNode(true);
|
||
|
|
||
|
txt_replace("textarea",d,n,function(a){ return a.value; });
|
||
|
txt_replace("input",d,n,false);
|
||
|
txt_replace("select",d,n,function(a){ return a.options[Math.max((a.selectedIndex||0),0)].text; });
|
||
|
|
||
|
n.removeChild(n.childNodes[2]);
|
||
|
n.removeChild(n.childNodes[3]);
|
||
|
|
||
|
d.parentNode.insertBefore(n,d);
|
||
|
|
||
|
olds.call(this,n);
|
||
|
this._lightbox = n;
|
||
|
this.setLightboxSize();
|
||
|
this._lightbox = null;
|
||
|
n.onclick=function(e){
|
||
|
var src=e?e.target:event.srcElement;
|
||
|
if (!src.className) src=src.previousSibling;
|
||
|
if (src && src.className)
|
||
|
switch(src.className){
|
||
|
case "dhx_cancel_btn":
|
||
|
scheduler.callEvent("onEventCancel",[scheduler._lightbox_id]);
|
||
|
scheduler._edit_stop_event(scheduler.getEvent(scheduler._lightbox_id),false);
|
||
|
scheduler.hide_lightbox();
|
||
|
break;
|
||
|
}
|
||
|
};
|
||
|
}
|
||
|
return res;
|
||
|
};
|
||
|
|
||
|
var olds = scheduler.showCover;
|
||
|
scheduler.showCover=function(){
|
||
|
if (!this.config.readonly_active)
|
||
|
olds.apply(this,arguments);
|
||
|
};
|
||
|
|
||
|
var hold = scheduler.hide_lightbox;
|
||
|
scheduler.hide_lightbox=function(){
|
||
|
if (this._lightbox_r){
|
||
|
this._lightbox_r.parentNode.removeChild(this._lightbox_r);
|
||
|
this._lightbox_r = null;
|
||
|
}
|
||
|
|
||
|
return hold.apply(this,arguments);
|
||
|
};
|
||
|
|
||
|
|
||
|
});
|