2017-06-17 4 views
0

Ich habe ein jHipster-Projekt mit der Version 4.5.1 (Angular 1) und es macht wirklich einen schönen Job. Allerdings modifiziere ich bereits den generierten Frontend-Code, der für alle Entitäten CRUD-fokussiert ist und viele davon vereinheitlichen will.Konfigurieren der zu alarmierenden Entitäten in JHipster

Das gesagt, ich möchte in der Lage sein zu wählen, welche Entitäten über die Verwendung von UI-Bootstrap warnen. Wenn ich jetzt EntityA speichere, das EntityB in derselben Ansicht verwaltet, erhalte ich für jede Entität zwei Warnungen. Ich möchte nur die Nachricht über den ersten bekommen.

Gibt es eine Möglichkeit, es zu tun? Oder einfach besser, die automatische Nachrichtenübertragung zu deaktivieren und manuell in den Controllern zu machen?

Antwort

0

Die Interpektoren für die eckigen HTTP-Anfragen werden in app/blocks/interceptor gespeichert. Dort gibt es eine Datei notification.interceptor.js und es gibt keinen Filter für die Entitäten genannt werden angezeigt, so müssen wir es in irgendeiner Weise konfigurieren:

(function() { 
    'use strict'; 

    angular 
     .module('myApp') 
     .factory('notificationInterceptor', notificationInterceptor); 

    notificationInterceptor.$inject = ['$q', 'AlertService']; 

    function notificationInterceptor ($q, AlertService) { 
     var service = { 
      response: response 
     }; 

     return service; 

     function response (response) { 
      var headers = Object.keys(response.headers()).filter(function (header) { 
       return header.indexOf('app-alert', header.length - 'app-alert'.length) !== -1 || header.indexOf('app-params', header.length - 'app-params'.length) !== -1; 
      }).sort(); 
      var alertKey = response.headers(headers[0]); 
      if (angular.isString(alertKey) && alertKey.indexOf('myEntityToBeDisplayed') !== -1) { 
       AlertService.success(alertKey, { param : response.headers(headers[1])}); 
      } 
      return response; 
     } 
    } 
})(); 

Wenn dann wollen wir auch Warnungen zeigen oder die Fehlerreaktionen aus dem Protokoll Server, der errorhandler.interceptor.js abfängt jede der Fehler Antworten passiert. Tuning es ein wenig, gibt es die Möglichkeit, Benachrichtigungen zu zeigen, für alle von ihnen:

(function() { 
    'use strict'; 

    angular 
     .module('myApp') 
     .factory('errorHandlerInterceptor', errorHandlerInterceptor); 

    errorHandlerInterceptor.$inject = ['$q', '$rootScope']; 

    function errorHandlerInterceptor ($q, $rootScope) { 
     var service = { 
      responseError: responseError 
     }; 

     return service; 

     function responseError (response) { 
      if (!(response.status === 401)) { 
       $rootScope.$emit('myApp.httpError', response); 
      } 
      return $q.reject(response); 
     } 
    } 
})(); 

Siehe auch:

Verwandte Themen