function updateIpsFromPolling(ips, type) {
      let haveChanges = false;

      // Update existing IPs
      haveChanges = updateIpsWithIpsFromApi(ips, type) || haveChanges;
      // Add new IPs, and delete removed IPs
      haveChanges = addOrDeleteIpsWithIpsFromApi(ips, type) || haveChanges;

      self.refreshLinks();

      if (haveChanges) {
        self.saveToUserPref();
      }
      return $q.when(ips);
    }
/**
     *  Triggered by polling: Update IPs list
     *
     *  /!\ take care to don't update all datas, user can be in edition for example.
     */
Triggered by polling: Update IPs list
/!\ take care to don't update all datas, user can be in edition for example.
Triggered by polling : Update IPs list / ! \ take care to don ' t update all datas user can be in edition for example .
function updateIpsFromPolling(ips, type) {
      let haveChanges = false;
      haveChanges = updateIpsWithIpsFromApi(ips, type) || haveChanges;
      haveChanges = addOrDeleteIpsWithIpsFromApi(ips, type) || haveChanges;
      self.refreshLinks();
      if (haveChanges) {
        self.saveToUserPref();
      }
      return $q.when(ips);
    }
function updateIpsFromPolling ( ips , type ) { let haveChanges = false ; haveChanges = updateIpsWithIpsFromApi ( ips , type ) || haveChanges ; haveChanges = addOrDeleteIpsWithIpsFromApi ( ips , type ) || haveChanges ; self . refreshLinks ( ) ; if ( haveChanges ) { self . saveToUserPref ( ) ; } return $q . when ( ips ) ; }
Triggered by polling: Update IPs list
  /!\ take care to don't update all datas, user can be in edition for example.
Triggered by polling : Update IPs list / ! \ take care to don ' t update all datas user can be in edition for example .
// Update existing IPs // Add new IPs, and delete removed IPs