mirror of
https://gitlab.easter-eggs.com/ee/ldapsaisie.git
synced 2024-12-24 01:13:51 +01:00
359 lines
9.8 KiB
JavaScript
359 lines
9.8 KiB
JavaScript
var LSdefault = new Class({
|
|
initialize: function(){
|
|
// LSdebug
|
|
this.LSdebug = $('LSdebug');
|
|
this.LSdebug.addEvent('dblclick',this.hideLSdebug.bind(this));
|
|
this.LSdebugInfos = $('LSdebug_infos');
|
|
this.LSdebug.setOpacity(0);
|
|
this.LSdebug_open = 0;
|
|
|
|
this.LSdebugHidden = $('LSdebug_hidden');
|
|
this.LSdebugHidden.addEvent('click',this.hideLSdebug.bind(this));
|
|
|
|
// LSerror
|
|
this.LSerror = $('LSerror');
|
|
this.LSerror.setOpacity(0);
|
|
this.LSerror_open = 0;
|
|
this.LSerror.addEvent('dblclick',this.hideLSerror.bind(this,0));
|
|
|
|
// LSinfos
|
|
this.LSinfos = $('LSinfos');
|
|
|
|
// FX
|
|
this.fx = {
|
|
LSdebug: new Fx.Tween(this.LSdebug,{property: 'opacity',duration:600, fps:30}),
|
|
LSerror: new Fx.Tween(this.LSerror,{property: 'opacity',duration:500, fps:30}),
|
|
LSinfos: new Fx.Tween(this.LSinfos,{property: 'opacity',duration:500, fps:30})
|
|
};
|
|
|
|
// LSjsConfig
|
|
this.LSjsConfigEl = $('LSjsConfig');
|
|
if ($type(this.LSjsConfigEl)) {
|
|
this.LSjsConfig = JSON.decode(this.LSjsConfigEl.innerHTML);
|
|
}
|
|
else {
|
|
this.LSjsConfig = [];
|
|
}
|
|
|
|
this.loading_img=[];
|
|
this.loading_img_id=-1;
|
|
|
|
// LSsession_topDn
|
|
this.LSsession_topDn = $('LSsession_topDn');
|
|
if (this.LSsession_topDn) {
|
|
this.LSsession_topDn.addEvent('change',this.onLSsession_topDnChange.bind(this));
|
|
}
|
|
|
|
// Display Infos
|
|
if (this.LSdebugInfos.innerHTML != '') {
|
|
this.displayDebugBox();
|
|
}
|
|
|
|
if (this.LSerror.innerHTML != '') {
|
|
this.displayErrorBox();
|
|
}
|
|
|
|
if (this.LSinfos.innerHTML != '') {
|
|
this.displayInfosBox();
|
|
}
|
|
|
|
// :)
|
|
var getMoo = /moo$/;
|
|
if (getMoo.exec(window.location)) {
|
|
this.moo();
|
|
}
|
|
document.addEvent('keyup',this.onWantMoo.bindWithEvent(this));
|
|
|
|
this.LStips = new Tips('.LStips');
|
|
|
|
if ($type(this.LSjsConfig['keepLSsessionActive'])) {
|
|
this.LSjsConfig['keepLSsessionActive'] = (Math.round(this.LSjsConfig['keepLSsessionActive']*0.70)*1000);
|
|
this.keepLSsession.delay(this.LSjsConfig['keepLSsessionActive'],this);
|
|
}
|
|
|
|
this.initializeLang();
|
|
},
|
|
|
|
initializeLang: function() {
|
|
this.LSlang = $('LSlang');
|
|
if ($type(this.LSlang)) {
|
|
this.LSlang_select = $('LSlang_select');
|
|
if (this.LSlang_select) {
|
|
this.LSlang_open=0;
|
|
window.addEvent('click',this.closeLSlang.bind(this));
|
|
this.LSlang.addEvent('click',this.onLSlangClick.bind(this));
|
|
this.LSlang_select.getElements('img').each(function(img) {
|
|
img.addEvent('click',this.onSelectLSlangImgClick.bind(this,img));
|
|
},this);
|
|
document.getElements('.LSlang_hidden').each(function(el) {
|
|
el.dispose();
|
|
},this);
|
|
}
|
|
}
|
|
},
|
|
|
|
onLSlangClick: function() {
|
|
LSdebug(this.LSlang_select);
|
|
var infos = this.LSlang.getCoordinates();
|
|
this.LSlang_select.setStyle('top',infos.bottom);
|
|
this.LSlang_select.setStyle('left',infos.right);
|
|
this.LSlang_select.setStyle('display','block');
|
|
this.LSlang_open=1;
|
|
},
|
|
|
|
closeLSlang: function(event) {
|
|
event = new Event(event);
|
|
if (event.target.id!='LSlang') {
|
|
this.LSlang_select.setStyle('display','none');
|
|
this.LSlang_open = 0;
|
|
}
|
|
},
|
|
|
|
onSelectLSlangImgClick: function(img) {
|
|
window.location='index.php?lang='+img.alt;
|
|
},
|
|
|
|
onWantMoo: function(event) {
|
|
event=new Event(event);
|
|
if ((event.control) && (event.shift) && (event.key=='m')) {
|
|
this.moo.run(null,this);
|
|
}
|
|
},
|
|
|
|
moo: function() {
|
|
var mooTxt = " (__) .ooooooooooooooooooo.\n (oo) °°°°0 I love LdapSaisie 0\n /------\\\/ °ooooooooooooooooooo°\n / | ||\n * /\---/\\\n ~~ ~~";
|
|
var ulMoo = this.LSinfos.getElement('ul');
|
|
var preMoo = new Element('pre');
|
|
preMoo.set('html',mooTxt);
|
|
if ($type(ulMoo)) {
|
|
ulMoo.empty();
|
|
var liMoo = new Element('li');
|
|
liMoo.injectInside(ulMoo);
|
|
preMoo.injectInside(liMoo);
|
|
}
|
|
else {
|
|
this.LSinfos.empty();
|
|
preMoo.injectInside(this.LSinfos);
|
|
}
|
|
this.displayInfosBox();
|
|
},
|
|
|
|
onLSsession_topDnChange: function() {
|
|
$('LSsession_topDn_form').submit();
|
|
},
|
|
|
|
checkAjaxReturn: function(data) {
|
|
this.hideLSerror(0);
|
|
if ($type(data) == 'object') {
|
|
if (($type(data.LSredirect)) && (!$type(data.LSdebug)) ) {
|
|
document.location = data.LSredirect;
|
|
return true;
|
|
}
|
|
|
|
if ($type(data.imgload)) {
|
|
this.loadingImgHide(data.imgload);
|
|
}
|
|
else {
|
|
this.loadingImgHide();
|
|
}
|
|
|
|
if ($type(data.LSdebug)) {
|
|
LSdebug(data.LSdebug);
|
|
this.displayDebug(data.LSdebug);
|
|
}
|
|
|
|
if ($type(data.LSinfos)) {
|
|
this.displayInfos(data.LSinfos);
|
|
}
|
|
|
|
if ($type(data.LSerror)) {
|
|
this.displayError(data.LSerror);
|
|
return;
|
|
}
|
|
return true;
|
|
}
|
|
else {
|
|
LSdebug('Non computable return value');
|
|
this.loadingImgHide();
|
|
return;
|
|
}
|
|
},
|
|
|
|
/*
|
|
* Set and Display Methods
|
|
*/
|
|
displayError: function(html) {
|
|
this.LSerror.set('html',html);
|
|
this.displayErrorBox();
|
|
},
|
|
|
|
displayDebug: function(html) {
|
|
this.LSdebugInfos.set('html',html);
|
|
this.displayDebugBox();
|
|
},
|
|
|
|
displayInfos: function(html) {
|
|
this.LSinfos.set('html',html);
|
|
this.displayInfosBox();
|
|
},
|
|
|
|
/*
|
|
* Display Methods
|
|
*/
|
|
displayErrorBox: function() {
|
|
this.LSerror.setStyle('top',getScrollTop()+10);
|
|
if (this.LSerror_open) {
|
|
return true;
|
|
}
|
|
this.fx.LSerror.start(0,0.8);
|
|
this.LSerror_open = 1;
|
|
},
|
|
|
|
displayDebugBox: function() {
|
|
this.LSdebug.setStyle('top',getScrollTop()+10);
|
|
if (this.LSdebug_open) {
|
|
return true;
|
|
}
|
|
this.fx.LSdebug.start(0,0.8);
|
|
this.LSdebug_open = 1;
|
|
},
|
|
|
|
/*
|
|
* Hide Methods
|
|
*/
|
|
hideLSdebug: function(){
|
|
if (this.LSdebug_open) {
|
|
this.fx.LSdebug.start(0.8,0);
|
|
this.LSdebug_open = 0;
|
|
}
|
|
},
|
|
|
|
hideLSerror: function(withoutEffect){
|
|
if (this.LSerror_open) {
|
|
this.LSerror_open = 0;
|
|
if (withoutEffect==0) {
|
|
this.fx.LSerror.start(0.9,0);
|
|
}
|
|
else {
|
|
this.fx.LSerror.set(0);
|
|
}
|
|
}
|
|
},
|
|
|
|
displayInfosBox: function() {
|
|
this.LSinfos.setStyle('top',getScrollTop()+10);
|
|
this.fx.LSinfos.start(0,0.9);
|
|
(function(){this.fx.LSinfos.start(0.9,0);}).delay(5000, this);
|
|
},
|
|
|
|
loadingImgDisplay: function(el,position,size) {
|
|
this.loading_img_id++;
|
|
this.loading_img[this.loading_img_id] = new Element('img');
|
|
if (size=='big') {
|
|
var src = this.imagePath('loading.gif');
|
|
}
|
|
else {
|
|
var src = this.imagePath('ajax-loader.gif');
|
|
}
|
|
this.loading_img[this.loading_img_id].src=src;
|
|
if (position=='inside') {
|
|
this.loading_img[this.loading_img_id].injectInside(el);
|
|
}
|
|
else {
|
|
this.loading_img[this.loading_img_id].injectAfter(el);
|
|
}
|
|
return this.loading_img_id;
|
|
},
|
|
|
|
loadingImgHide: function(id) {
|
|
if (isNaN(id)) {
|
|
this.loading_img.each(function(el) {
|
|
if (typeof(el) != 'undefined')
|
|
el.destroy();
|
|
},this);
|
|
this.loading_img_id=-1;
|
|
}
|
|
else {
|
|
this.loading_img[id].destroy();
|
|
}
|
|
},
|
|
|
|
ajaxDisplayDebugAndError: function() {
|
|
var LSdebug_txt = $('LSdebug_txt');
|
|
if (LSdebug_txt) {
|
|
var debug = LSdebug_txt.innerHTML;
|
|
if (debug) {
|
|
this.displayDebug(debug.toString());
|
|
}
|
|
}
|
|
|
|
var LSerror_txt = $('LSerror_txt');
|
|
if (LSerror_txt) {
|
|
var error=LSerror_txt.innerHTML;
|
|
if (error) {
|
|
this.displayError(error.toString());
|
|
}
|
|
}
|
|
},
|
|
|
|
imagePath: function(image) {
|
|
return this.LSjsConfig['LS_IMAGES_DIR'] + '/' + image;
|
|
},
|
|
|
|
getParams: function(name) {
|
|
if ($type(this.LSjsConfig[name])) {
|
|
return this.LSjsConfig[name];
|
|
}
|
|
return new Hash();
|
|
},
|
|
|
|
addHelpInfo: function(el,group,name) {
|
|
if ($type(this.LSjsConfig['helpInfos'])) {
|
|
if ($type(el)=='element') {
|
|
if ($type(this.LSjsConfig['helpInfos'][group])) {
|
|
if ($type(this.LSjsConfig['helpInfos'][group][name])) {
|
|
this.addTip(el);
|
|
el.store('tip:title',this.LSjsConfig['helpInfos'][group][name]);
|
|
el.store('tip:text',"");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
|
|
setHelpInfo: function(el,group,name) {
|
|
if ($type(this.LSjsConfig['helpInfos'])) {
|
|
if ($type(el)=='element') {
|
|
if ($type(this.LSjsConfig['helpInfos'][group])) {
|
|
if ($type(this.LSjsConfig['helpInfos'][group][name])) {
|
|
el.store('tip:title',this.LSjsConfig['helpInfos'][group][name]);
|
|
el.store('tip:text',"");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
|
|
addTip: function(el) {
|
|
this.LStips.attach(el);
|
|
},
|
|
|
|
removeTip: function(el) {
|
|
this.LStips.detach(el);
|
|
},
|
|
|
|
keepLSsession: function() {
|
|
LSdebug('Keep LSsession');
|
|
new Request({url: 'index_ajax.php', data: {}, onSuccess: this.keepLSsessionComplete.bind(this)}).send();
|
|
},
|
|
|
|
keepLSsessionComplete: function() {
|
|
LSdebug('Keep LSsession OK');
|
|
this.keepLSsession.delay(this.LSjsConfig['keepLSsessionActive'],this);
|
|
}
|
|
|
|
});
|
|
|
|
window.addEvent(window.ie ? 'load' : 'domready', function() {
|
|
varLSdefault = new LSdefault();
|
|
});
|