mirror of
https://gitlab.easter-eggs.com/ee/ldapsaisie.git
synced 2024-11-27 04:04:49 +01:00
122 lines
4.2 KiB
JavaScript
122 lines
4.2 KiB
JavaScript
var LSview = new Class({
|
|
initialize: function(){
|
|
this.labels = varLSdefault.LSjsConfig['LSview_labels'];
|
|
if (!$type(this.labels)) {
|
|
this.labels = {
|
|
delete_confirm_text: "Do you really want to delete",
|
|
delete_confirm_title: "Caution",
|
|
delete_confirm_validate: "Delete"
|
|
};
|
|
}
|
|
|
|
$$('td.LSobject-list-names').each(function(el) {
|
|
el.addEvent('click',this.onTdLSobjectListNamesClick.bind(this,el));
|
|
}, this);
|
|
$$('a.LSobject-list-actions').each(function(el) {
|
|
var checkRemove = /\/remove$/;
|
|
if (checkRemove.exec(el.href)) {
|
|
el.addEvent('click',this.onRemoveListBtnClick.bindWithEvent(this,el));
|
|
}
|
|
}, this);
|
|
$$('a.LSview-actions').each(function(el) {
|
|
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);
|
|
|
|
this.LSsearchForm = $('LSsearch_form');
|
|
this.LSsearchPredefinedFilter = $('LSview_search_predefinedFilter');
|
|
if($type(this.LSsearchPredefinedFilter) && $type('LSsearch_form')) {
|
|
this.LSsearchPredefinedFilter.addEvent('change',this.onLSsearchPredefinedFilterChange.bind(this));
|
|
}
|
|
},
|
|
|
|
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;
|
|
var name = a.getParent().getParent().getFirst('td').getElement('a').innerHTML;
|
|
this.confirmBox = new LSconfirmBox({
|
|
text: this.labels.delete_confirm_text + ' "'+name+'" ?',
|
|
startElement: a,
|
|
onConfirm: this.removeFromA.bind(this,a),
|
|
onClose: this.onConfirmBoxClose.bind(this)
|
|
});
|
|
}
|
|
},
|
|
|
|
onRemoveViewBtnClick: function(event,a) {
|
|
Event(event).stop();
|
|
if (!this._confirmBoxOpen) {
|
|
this._confirmBoxOpen = 1;
|
|
var name = $('LSview_title').innerHTML;
|
|
this.confirmBox = new LSconfirmBox({
|
|
text: this.labels.delete_confirm_text + ' "'+name+'" ?',
|
|
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)
|
|
});
|
|
}
|
|
},
|
|
|
|
onConfirmBoxClose: function() {
|
|
this._confirmBoxOpen = 0;
|
|
},
|
|
|
|
removeFromA: function(a) {
|
|
document.location = a.href+'?valid';
|
|
},
|
|
|
|
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 objectname = $('LSview_title').innerHTML;
|
|
var text = getFData('Do you really want to execute custom action %{customAction} on %{objectname} ?',{customAction: name, objectname: objectname });
|
|
}
|
|
this.confirmBox = new LSconfirmBox({
|
|
text: text,
|
|
title: title,
|
|
startElement: a,
|
|
onConfirm: this.executeCustomActionFromA.bind(this,a),
|
|
onClose: this.onConfirmBoxClose.bind(this)
|
|
});
|
|
}
|
|
}
|
|
},
|
|
|
|
executeCustomActionFromA: function(a) {
|
|
document.location = a.href+'&valid';
|
|
}
|
|
|
|
});
|
|
window.addEvent(window.ie ? 'load' : 'domready', function() {
|
|
varLSview = new LSview();
|
|
});
|