Newer
Older
Sonia Zorba
committed
(function ($) {
function eventHandlerFactory(handler) {
return function (event) {
if (event.status === 'success') {
var jsupdates = event.responseXML.getElementById('jsupdates');
if (jsupdates) {
jsupdates = jsupdates.childNodes;
var sourceId = event.source.getAttribute('id');
for (var i = 0; i < jsupdates.length; i++) {
var jsupdate = jsupdates[i];
if (jsupdate.getAttribute('src') === sourceId) {
handler(event.source, jsupdate.innerText || jsupdate.textContent);
return;
}
Sonia Zorba
committed
};
}
Sonia Zorba
committed
window.global = {
textInputChanged: eventHandlerFactory(function (srcElement, response) {
$(srcElement).toggleClass('changed', response === 'true');
}),
columnChanged: function (event) {
if (event.status === 'success') {
var $li = $(event.source).closest('li');
$li.closest('ul').find('li').removeClass('active');
$li.addClass('active');
Sonia Zorba
committed
},
stopPropagation: function (event) {
event.stopPropagation();
event.preventDefault();
return false;
},
columnRemoved: eventHandlerFactory(function (srcElement, response) {
response = JSON.parse(response);
var $ul = $(srcElement).closest('ul');
if (response.hideRemoved) {
$(srcElement).closest('li').remove();
} else {
$(srcElement).closest('a').find('span').addClass('strikeout');
$(srcElement).prop('disabled', true);
}
Sonia Zorba
committed
if (response.selectedColumn !== null) {
$ul.find('li').removeClass('active');
$ul.find('li:nth-child(' + (response.selectedColumn + 1) + ')').addClass('active');
Sonia Zorba
committed
if (response.hideRemoved) {
// Restore correct ids
$ul.find('li').each(function (index, element) {
var $a = $(element).find('a');
var baseId = 'main:columns-list:' + index;
$a.attr('id', baseId + ':column-selector');
$a.find('input').attr('id', baseId + ':column-remover');
Sonia Zorba
committed
}
}),
columnRemovalUndo: eventHandlerFactory(function (srcElement, response) {
var $a = $('#main\\:columns-list\\:' + response + '\\:column-selector');
$a.find('input').prop('disabled', false);
$a.find('.strikeout').removeClass('strikeout');
}),
ucdTextKeyDown: function (event) {
if (event.keyCode === 13) {
$('#ucd_search_form\\:search_UCD_btn').click();
}
},
openAddablesModal: function (event) {
if (event.status === 'success') {
$('#addablesModal').modal('show');
}
},
entitiesAdded: function (event) {
if (event.status === 'success') {
$('#addablesModal').modal('hide');
}
},
openSearchUCDModal: function (event) {
if (event.status === 'success') {
$('#searchUCDModal').modal('show');
}
},
closeSearchUCDModal: function (event) {
if (event.status === 'success') {
Sonia Zorba
committed
}
}
};
Sonia Zorba
committed
})(jQuery);