ldapsaisie/src/includes/js/LSview.js

173 lines
5.8 KiB
JavaScript
Raw Normal View History

var LSview = new Class({
initialize: function(){
- LSmail : Création d'une classe PHP gérant les dépendances d'affichage et les requêtes Ajax. - LSrelation : - Création d'une classe PHP gérant les dépendances d'affichage et les requêtes Ajax. - Modification du JS pour faire appels à ces méthodes - La méthode displayInLSview() remplace le bloc du fichier view.php pour l'affichage des relations d'un objet. - Internationalisation. - LSselect : Création d'une classe PHP gérant les dépendances d'affichage et les requêtes Ajax. - LSformElement_password : - Ajout de méthodes statiques gérant les appels Ajax. - Modification du JS pour faire appels à ces méthodes - LSformElement_select_object : - Ajout de méthodes statiques gérant les appels Ajax. - Modification du JS pour faire appels à ces méthodes - LSformElement_mail : Utilisation des nouvelles fonctionnalités pour gérer les dépendances. - LSformElement_image : Utilisation des nouvelles fonctionnalités pour gérer les dépendances. - LSsession : - Ajout de méthodes statiques gérant les appels Ajax des formulaires de login et de recupération de mot de passe. - Modification des JS pour faire appels à ces méthodes - Ajout d'un mécanisme permettant de garder la session PHP active - Modification de LSdefault.js pour gérer ce mécanisme - LSform : - Ajout de méthodes statiques gérant les appels Ajax des formulaires - Ajout de la méthode loadDependenciesDisplayView() gérant les dépendances d'affichage d'une LSview. - Utilisation des nouvelles fonctionnalités pour gérer les dépendances. - view.php / modify.php /select.php : Utilisation des nouvelles fonctionnalités pour gérer les dépendances et les LSrelations. - LSview : Modification de l'internationnalisation.
2009-02-20 15:05:22 +01:00
this.labels = varLSdefault.LSjsConfig['LSview_labels'];
if (!$type(this.labels)) {
this.labels = {
delete_confirm_text: 'Do you really want to delete "%{name}"?',
- LSmail : Création d'une classe PHP gérant les dépendances d'affichage et les requêtes Ajax. - LSrelation : - Création d'une classe PHP gérant les dépendances d'affichage et les requêtes Ajax. - Modification du JS pour faire appels à ces méthodes - La méthode displayInLSview() remplace le bloc du fichier view.php pour l'affichage des relations d'un objet. - Internationalisation. - LSselect : Création d'une classe PHP gérant les dépendances d'affichage et les requêtes Ajax. - LSformElement_password : - Ajout de méthodes statiques gérant les appels Ajax. - Modification du JS pour faire appels à ces méthodes - LSformElement_select_object : - Ajout de méthodes statiques gérant les appels Ajax. - Modification du JS pour faire appels à ces méthodes - LSformElement_mail : Utilisation des nouvelles fonctionnalités pour gérer les dépendances. - LSformElement_image : Utilisation des nouvelles fonctionnalités pour gérer les dépendances. - LSsession : - Ajout de méthodes statiques gérant les appels Ajax des formulaires de login et de recupération de mot de passe. - Modification des JS pour faire appels à ces méthodes - Ajout d'un mécanisme permettant de garder la session PHP active - Modification de LSdefault.js pour gérer ce mécanisme - LSform : - Ajout de méthodes statiques gérant les appels Ajax des formulaires - Ajout de la méthode loadDependenciesDisplayView() gérant les dépendances d'affichage d'une LSview. - Utilisation des nouvelles fonctionnalités pour gérer les dépendances. - view.php / modify.php /select.php : Utilisation des nouvelles fonctionnalités pour gérer les dépendances et les LSrelations. - LSview : Modification de l'internationnalisation.
2009-02-20 15:05:22 +01:00
delete_confirm_title: "Caution",
delete_confirm_validate: "Delete"
};
}
2020-04-29 15:54:21 +02:00
this.title = $('LSview_title');
if (this.title) {
this.object_name = this.title.innerHTML;
}
else {
this.title = $('LSform_title');
if (this.title) {
this.object_name = this.title.getProperty('data-object-name');
}
}
$$('td.LSobject-list-names').each(function(el) {
el.addEvent('click',this.onTdLSobjectListNamesClick.bind(this,el));
}, this);
$$('a.LSobject-list-actions').each(function(el) {
2020-05-04 10:49:11 +02:00
var checkRemove = /\/remove$/;
if (checkRemove.exec(el.href)) {
el.addEvent('click',this.onRemoveListBtnClick.bindWithEvent(this,el));
}
}, this);
$$('a.LSview-actions').each(function(el) {
2020-05-04 10:49:11 +02:00
var checkRemove = /\/remove$/;
if (checkRemove.exec(el.href)) {
el.addEvent('click',this.onRemoveViewBtnClick.bindWithEvent(this,el));
}
else if(el.hasClass('LScustomActions')) {
el.addEvent('click',this.onCustomActionBtnClick.bindWithEvent(this,el));
}
}, this);
2020-04-29 15:54:21 +02:00
this.LSsearchForm = $('LSsearch_form');
this.LSsearchPredefinedFilter = $('LSview_search_predefinedFilter');
if($type(this.LSsearchPredefinedFilter) && $type('LSsearch_form')) {
this.LSsearchPredefinedFilter.addEvent('change',this.onLSsearchPredefinedFilterChange.bind(this));
}
2020-06-02 21:10:59 +02:00
$$('ul.LSview-actions').each(function(ul) {
ul.addEvent('click', this.toggleLSviewActions.bind(this, ul));
}, this);
this.onWindowResized();
window.addEvent('resize', this.onWindowResized.bind(this));
},
onWindowResized: function() {
var window_width = window.getWidth().toInt();
if (this.title) {
window_width = this.title.getWidth().toInt();
2020-06-02 21:10:59 +02:00
}
if ($('LSview_search_predefinedFilter')) {
window_width -= $('LSview_search_predefinedFilter').getWidth().toInt() + $('LSview_search_predefinedFilter').getPosition().x;
2020-06-02 21:10:59 +02:00
}
$$('ul.LSview-actions').each(function(ul) {
// Calculte menu width
var actions_width = 0;
ul.getElements('li').each(function (li) {
actions_width += li.getWidth().toInt() + 10; // Add 10 for margin/space between li
});
if (window.getWidth() < actions_width) {
ul.addClass('LSview-actions-dropdown');
}
else {
ul.removeClass('LSview-actions-dropdown');
}
});
},
2020-04-29 15:54:21 +02:00
onLSsearchPredefinedFilterChange: function() {
if (this.LSsearchForm) {
this.LSsearchForm.submit();
}
},
onTdLSobjectListNamesClick: function(td) {
window.location=td.getFirst().href;
},
onRemoveListBtnClick: function(event,a) {
Event(event).stop();
if (!this._confirmBoxOpen) {
this._confirmBoxOpen = 1;
2009-03-20 02:25:38 +01:00
var name = a.getParent().getParent().getFirst('td').getElement('a').innerHTML;
this.confirmBox = new LSconfirmBox({
text: getFData(this.labels.delete_confirm_text, name),
startElement: a,
onConfirm: this.removeFromA.bind(this,a),
onClose: this.onConfirmBoxClose.bind(this)
});
}
},
2020-04-29 15:54:21 +02:00
onRemoveViewBtnClick: function(event,a) {
Event(event).stop();
if (!this._confirmBoxOpen) {
this._confirmBoxOpen = 1;
var name = this.object_name;
this.confirmBox = new LSconfirmBox({
text: getFData(this.labels.delete_confirm_text, name),
- LSmail : Création d'une classe PHP gérant les dépendances d'affichage et les requêtes Ajax. - LSrelation : - Création d'une classe PHP gérant les dépendances d'affichage et les requêtes Ajax. - Modification du JS pour faire appels à ces méthodes - La méthode displayInLSview() remplace le bloc du fichier view.php pour l'affichage des relations d'un objet. - Internationalisation. - LSselect : Création d'une classe PHP gérant les dépendances d'affichage et les requêtes Ajax. - LSformElement_password : - Ajout de méthodes statiques gérant les appels Ajax. - Modification du JS pour faire appels à ces méthodes - LSformElement_select_object : - Ajout de méthodes statiques gérant les appels Ajax. - Modification du JS pour faire appels à ces méthodes - LSformElement_mail : Utilisation des nouvelles fonctionnalités pour gérer les dépendances. - LSformElement_image : Utilisation des nouvelles fonctionnalités pour gérer les dépendances. - LSsession : - Ajout de méthodes statiques gérant les appels Ajax des formulaires de login et de recupération de mot de passe. - Modification des JS pour faire appels à ces méthodes - Ajout d'un mécanisme permettant de garder la session PHP active - Modification de LSdefault.js pour gérer ce mécanisme - LSform : - Ajout de méthodes statiques gérant les appels Ajax des formulaires - Ajout de la méthode loadDependenciesDisplayView() gérant les dépendances d'affichage d'une LSview. - Utilisation des nouvelles fonctionnalités pour gérer les dépendances. - view.php / modify.php /select.php : Utilisation des nouvelles fonctionnalités pour gérer les dépendances et les LSrelations. - LSview : Modification de l'internationnalisation.
2009-02-20 15:05:22 +01:00
title: this.labels.delete_confirm_title,
validate_label: this.labels.delete_confirm_yes_btn,
startElement: a,
onConfirm: this.removeFromA.bind(this,a),
onClose: this.onConfirmBoxClose.bind(this)
});
}
},
2020-04-29 15:54:21 +02:00
onConfirmBoxClose: function() {
this._confirmBoxOpen = 0;
},
2020-04-29 15:54:21 +02:00
removeFromA: function(a) {
2020-07-28 12:40:46 +02:00
var validatedURL = new URL(a.href);
validatedURL.searchParams.set('valid', '1');
document.location = validatedURL.href;
},
onCustomActionBtnClick: function(event,a) {
if (a.hasClass('LScustomActions_noConfirmation')) {
return true;
}
Event(event).stop();
if (!this._confirmBoxOpen) {
this._confirmBoxOpen = 1;
var getName = new RegExp('customAction/([^/]*)');
var name = getName.exec(a.href)[1];
if (name) {
var title = a.innerHTML;
if ($type(this.labels['custom_action_'+name+'_confirm_text'])) {
var text = this.labels['custom_action_'+name+'_confirm_text']
}
else {
var text = getFData('Do you really want to execute custom action %{customAction} on %{objectname} ?',{customAction: name, objectname: this.object_name });
}
this.confirmBox = new LSconfirmBox({
text: text,
title: title,
startElement: a,
onConfirm: this.executeCustomActionFromA.bind(this,a),
onClose: this.onConfirmBoxClose.bind(this)
});
}
}
},
executeCustomActionFromA: function(a) {
2020-07-28 12:40:46 +02:00
var validatedURL = new URL(a.href);
validatedURL.searchParams.set('valid', '1');
document.location = validatedURL.href;
2020-06-02 21:10:59 +02:00
},
toggleLSviewActions: function(ul) {
if (ul.hasClass('LSview-actions-dropdown')) {
ul.toggleClass('LSview-actions-dropdown-opened');
}
}
});
window.addEvent(window.ie ? 'load' : 'domready', function() {
varLSview = new LSview();
});