Handle action enable/disable class checks on rows that are not currently rendered by checking their data

This commit is contained in:
nathangray 2018-07-17 10:16:35 -06:00
parent 3866369f07
commit 9e19baf492

View File

@ -492,7 +492,20 @@ egwAction.prototype.updateActions = function(_actions, _app)
*/ */
egwAction.prototype.not_disableClass = function(_action, _senders, _target) egwAction.prototype.not_disableClass = function(_action, _senders, _target)
{ {
return !jQuery(_target.iface.getDOMNode()).hasClass(_action.data.disableClass); if(_target.iface.getDOMNode())
{
return !jQuery(_target.iface.getDOMNode()).hasClass(_action.data.disableClass);
}
else if (_target.id)
{
// Checking on a something that doesn't have a DOM node, like a nm row
// that's not currently rendered
var data = egw.dataGetUIDdata(_target.id);
if(data && data.data && data.data.class)
{
return -1 === data.data.class.split(' ').indexOf(_action.data.disableClass);
}
}
}; };
/** /**
@ -505,7 +518,21 @@ egwAction.prototype.not_disableClass = function(_action, _senders, _target)
*/ */
egwAction.prototype.enableClass = function(_action, _senders, _target) egwAction.prototype.enableClass = function(_action, _senders, _target)
{ {
return jQuery(_target.iface.getDOMNode()).hasClass(_action.data.enableClass); if(_target.iface.getDOMNode())
{
return jQuery(_target.iface.getDOMNode()).hasClass(_action.data.enableClass);
}
else if (_target.id)
{
// Checking on a something that doesn't have a DOM node, like a nm row
// that's not currently rendered. Not as good as an actual DOM node check
// since things can get missed, but better than nothing.
var data = egw.dataGetUIDdata(_target.id);
if(data && data.data && data.data.class)
{
return -1 !== data.data.class.split(' ').indexOf(_action.data.enableClass);
}
}
}; };
/** /**