[AMBARI-24945] [Log Search UI] Handling null or undefined value in log's level property. (#39)
diff --git a/ambari-logsearch-web/src/app/components/log-level/log-level.component.html b/ambari-logsearch-web/src/app/components/log-level/log-level.component.html
index d72c9d3..c2584a6 100644
--- a/ambari-logsearch-web/src/app/components/log-level/log-level.component.html
+++ b/ambari-logsearch-web/src/app/components/log-level/log-level.component.html
@@ -15,4 +15,4 @@
limitations under the License.
-->
<i class="fa {{cssClass}}"></i>
-{{logEntry.level}}
+{{('levels.' + (logEntry.level || 'unknown').toLowerCase()) | translate}}
diff --git a/ambari-logsearch-web/src/app/components/log-level/log-level.component.spec.ts b/ambari-logsearch-web/src/app/components/log-level/log-level.component.spec.ts
index c13d373..a735138 100644
--- a/ambari-logsearch-web/src/app/components/log-level/log-level.component.spec.ts
+++ b/ambari-logsearch-web/src/app/components/log-level/log-level.component.spec.ts
@@ -14,11 +14,13 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-import {DebugElement} from '@angular/core';
-import {async, ComponentFixture, TestBed} from '@angular/core/testing';
+import { DebugElement } from '@angular/core';
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
-import {LogLevelComponent} from './log-level.component';
-import {By} from '@angular/platform-browser';
+import { LogLevelComponent } from './log-level.component';
+import { By } from '@angular/platform-browser';
+
+import { TranslationModules } from '@app/test-config.spec';
describe('LogLevelComponent', () => {
let component: LogLevelComponent;
@@ -37,6 +39,9 @@
beforeEach(async(() => {
TestBed.configureTestingModule({
+ imports: [
+ ...TranslationModules
+ ],
declarations: [ LogLevelComponent ]
})
.compileComponents();
diff --git a/ambari-logsearch-web/src/app/components/service-logs-table/service-logs-table.component.html b/ambari-logsearch-web/src/app/components/service-logs-table/service-logs-table.component.html
index 31375ed..ee6b0da 100644
--- a/ambari-logsearch-web/src/app/components/service-logs-table/service-logs-table.component.html
+++ b/ambari-logsearch-web/src/app/components/service-logs-table/service-logs-table.component.html
@@ -95,7 +95,7 @@
{{log.logtime | amTz: timeZone | amDateFormat: timeFormat}}
</time>
</td>
- <td *ngIf="isColumnDisplayed('level')" [ngClass]="'log-level ' + log.level.toLowerCase()">
+ <td *ngIf="isColumnDisplayed('level')" [ngClass]="'log-level ' + (log.level ? log.level.toLowerCase() : '')">
<log-level [logEntry]="log"></log-level>
</td>
<td *ngIf="isColumnDisplayed('type')" [ngClass]="'log-type'">
@@ -138,7 +138,7 @@
<dropdown-button iconClass="fa fa-ellipsis-v action" [hideCaret]="true" [options]="logActions"
[listItemArguments]="[log]" [showSelectedValue]="false"></dropdown-button>
</div>
- <div *ngIf="isColumnDisplayed('level')" [ngClass]="'log-level ' + log.level.toLowerCase()">
+ <div *ngIf="isColumnDisplayed('level')" [ngClass]="'log-level ' + (log.level ? log.level.toLowerCase() : '')">
<log-level [logEntry]="log"></log-level>
</div>
<div *ngIf="isColumnDisplayed('type')" [ngClass]="'log-type'" [title]="log.type">