I have a last comment regarding this chunk of code. I see that this is reused from the code we already have in the filter() function. The point is that some of that functionality is not needed here and taking into consideration that the Call Log could host many entries I think we should try to lighten the processing as much as possible :-) Basically, since we are deleting a group there is no need to reset the 'groupFiltered' class (which is done in the filter() and unfilter() functions). On the other hand, we could leave the loop as soon as we find a missed call since in that case nothing more needs to be done. So my suggestion would be something like the following:

      // Count remaining missed calls
      if (self.callLogContainer.classList.contains('filter')) {
        var containers = self.callLogContainer.getElementsByTagName('ol');
        var totalMissedCalls = 0;
        for (var i = 0, l = containers.length; i < l; i++) {
          var noMissedCalls =
              containers[i].getElementsByClassName('missed-call').length;
          if (noMissedCalls) {
            totalMissedCalls += noMissedCalls;
            break;
          }
        }
        if (totalMissedCalls === 0) {
          self.renderEmptyCallLog(true);
        }
      }

What do you think, @mcirlanaru ?