diff --git a/src/app/app.module.ts b/src/app/app.module.ts
index 3c26db7cd..967752a2c 100644
--- a/src/app/app.module.ts
+++ b/src/app/app.module.ts
@@ -8,12 +8,11 @@ import { ServiceWorkerModule } from '@angular/service-worker';
import { TranslateModule } from '@ngx-translate/core';
import { NgxChartsModule } from '@swimlane/ngx-charts';
-import { environment } from '../environments/environment';
+import { environment } from 'environments/environment';
import { WebAppComponent } from './web-app.component';
import { CoreModule } from './core/core.module';
-import { SharedModule } from './shared/shared.module';
import { NavigationModule } from './navigation/navigation.module';
import { HomeModule } from './home/home.module';
import { AboutModule } from './about/about.module';
@@ -37,7 +36,6 @@ import { SettingsModule } from './settings/settings.module';
TranslateModule.forRoot(),
NgxChartsModule,
CoreModule,
- SharedModule,
HomeModule,
NavigationModule,
AboutModule,
diff --git a/src/app/core/core.module.ts b/src/app/core/core.module.ts
index 20c9636a8..53c0f70df 100644
--- a/src/app/core/core.module.ts
+++ b/src/app/core/core.module.ts
@@ -1,5 +1,4 @@
import { NgModule, Optional, SkipSelf } from '@angular/core';
-import { CommonModule } from '@angular/common';
import { HTTP_INTERCEPTORS, HttpClient, HttpClientModule } from '@angular/common/http';
import { RouteReuseStrategy, RouterModule } from '@angular/router';
@@ -46,70 +45,32 @@ import { TranslateModule } from '@ngx-translate/core';
import { RouteReusableStrategy } from './route-reusable-strategy';
import { AuthenticationService } from './authentication/authentication.service';
import { AuthenticationGuard } from './authentication/authentication.guard';
-import { I18nService } from './i18n.service';
import { HttpService } from './http/http.service';
import { HttpCacheService } from './http/http-cache.service';
-import { ProgressBarService } from './progress-bar.service';
-import { ProgressInterceptor } from './progress.interceptor';
+import { ProgressBarService } from './progress-bar/progress-bar.service';
+import { ProgressInterceptor } from './progress-bar/progress.interceptor';
import { ApiPrefixInterceptor } from './http/api-prefix.interceptor';
import { ErrorHandlerInterceptor } from './http/error-handler.interceptor';
import { CacheInterceptor } from './http/cache.interceptor';
import { ShellComponent } from './shell/shell.component';
import { SidenavComponent } from './shell/sidenav/sidenav.component';
-import { ThemePickerComponent } from './shell/toolbar/theme-picker/theme-picker.component';
import { ToolbarComponent } from './shell/toolbar/toolbar.component';
import { ContentComponent } from './shell/content/content.component';
import { BreadcrumbComponent } from './shell/breadcrumb/breadcrumb.component';
import { AuthenticationInterceptor } from './authentication/authentication.interceptor';
+import { SharedModule } from '../shared';
@NgModule({
imports: [
- CommonModule,
+ SharedModule,
HttpClientModule,
TranslateModule,
- RouterModule,
- LayoutModule,
- FlexLayoutModule,
- MatCheckboxModule,
- MatCheckboxModule,
- MatButtonModule,
- MatInputModule,
- MatAutocompleteModule,
- MatDatepickerModule,
- MatNativeDateModule,
- MatFormFieldModule,
- MatRadioModule,
- MatSelectModule,
- MatSliderModule,
- MatSlideToggleModule,
- MatMenuModule,
- MatSidenavModule,
- MatToolbarModule,
- MatListModule,
- MatGridListModule,
- MatCardModule,
- MatStepperModule,
- MatTabsModule,
- MatExpansionModule,
- MatButtonToggleModule,
- MatChipsModule,
- MatIconModule,
- MatProgressSpinnerModule,
- MatProgressBarModule,
- MatDialogModule,
- MatTooltipModule,
- MatSnackBarModule,
- MatTableModule,
- MatTreeModule,
- MatSortModule,
- MatPaginatorModule,
- MatDividerModule
+ RouterModule
],
declarations: [
ShellComponent,
SidenavComponent,
- ThemePickerComponent,
ToolbarComponent,
ContentComponent,
BreadcrumbComponent
@@ -150,13 +111,11 @@ import { AuthenticationInterceptor } from './authentication/authentication.inter
MatTreeModule,
MatSortModule,
MatPaginatorModule,
- MatDividerModule,
- ThemePickerComponent
+ MatDividerModule
],
providers: [
AuthenticationService,
AuthenticationGuard,
- I18nService,
HttpCacheService,
ProgressBarService,
ProgressInterceptor,
diff --git a/src/app/core/i18n.service.ts b/src/app/core/i18n.service.ts
index 6ed9ed34d..2d5d03e31 100644
--- a/src/app/core/i18n.service.ts
+++ b/src/app/core/i18n.service.ts
@@ -20,7 +20,9 @@ export function extract(s: string) {
return s;
}
-@Injectable()
+@Injectable({
+ providedIn: 'root'
+})
export class I18nService {
defaultLanguage: string;
diff --git a/src/app/core/index.ts b/src/app/core/index.ts
index ee68fd0be..38fbfbea9 100644
--- a/src/app/core/index.ts
+++ b/src/app/core/index.ts
@@ -1,6 +1,5 @@
export * from './core.module';
export * from './authentication/authentication.service';
-// export * from './authentication/authentication.service.mock';
export * from './authentication/authentication.guard';
export * from './i18n.service';
export * from './http/http.service';
diff --git a/src/app/core/progress-bar.service.spec.ts b/src/app/core/progress-bar/progress-bar.service.spec.ts
similarity index 100%
rename from src/app/core/progress-bar.service.spec.ts
rename to src/app/core/progress-bar/progress-bar.service.spec.ts
diff --git a/src/app/core/progress-bar.service.ts b/src/app/core/progress-bar/progress-bar.service.ts
similarity index 100%
rename from src/app/core/progress-bar.service.ts
rename to src/app/core/progress-bar/progress-bar.service.ts
diff --git a/src/app/core/progress.interceptor.ts b/src/app/core/progress-bar/progress.interceptor.ts
similarity index 100%
rename from src/app/core/progress.interceptor.ts
rename to src/app/core/progress-bar/progress.interceptor.ts
diff --git a/src/app/core/shell/breadcrumb/breadcrumb.component.scss b/src/app/core/shell/breadcrumb/breadcrumb.component.scss
index a0ea2b443..a9a23f3e4 100644
--- a/src/app/core/shell/breadcrumb/breadcrumb.component.scss
+++ b/src/app/core/shell/breadcrumb/breadcrumb.component.scss
@@ -14,7 +14,7 @@
font-weight: 400;
}
- .separator:before {
+ .separator::before {
content: "";
border: 1.5px solid #000;
margin: 0 0.6rem;
@@ -30,19 +30,17 @@
a {
text-decoration: none;
color: #0275d8;
+
+ &:hover {
+ text-decoration: underline;
+ }
}
- a:hover {
- text-decoration: underline;
+
+ &::after {
+ content: "/";
+ margin: 0 0.4rem;
}
}
-
- .breadcrumb-link:after {
- content: "/";
- margin: 0 0.4rem;
- }
-
}
-
}
-
}
diff --git a/src/app/core/shell/breadcrumb/breadcrumb.component.ts b/src/app/core/shell/breadcrumb/breadcrumb.component.ts
index 3bbfefe52..445287974 100644
--- a/src/app/core/shell/breadcrumb/breadcrumb.component.ts
+++ b/src/app/core/shell/breadcrumb/breadcrumb.component.ts
@@ -1,10 +1,45 @@
+/** Angular Imports */
import { Component, OnInit } from '@angular/core';
import { ActivatedRoute, Router, NavigationEnd } from '@angular/router';
+/** rxjs Imports */
import { filter } from 'rxjs/operators';
+/** Custom Model */
import { Breadcrumb } from './breadcrumb.model';
+/**
+ * Route data property to generate breadcrumb using a static string.
+ *
+ * Example- breadcrumb: 'Home'
+ */
+const routeDataBreadcrumb = 'breadcrumb';
+/**
+ * Route data property to generate breadcrumb using given route parameter name.
+ *
+ * Example- routeParamBreadcrumb: 'id'
+ */
+const routeParamBreadcrumb = 'routeParamBreadcrumb';
+/**
+ * Route data property to generate breadcrumb using resolved data property name.
+ *
+ * Use array to specify name for a nested object property.
+ *
+ * Example- routeResolveBreadcrumb: ['user', 'username']
+ */
+const routeResolveBreadcrumb = 'routeResolveBreadcrumb';
+/**
+ * Route data property to specify whether generated breadcrumb should have a link.
+ *
+ * True by default. Specify false if a link is not required.
+ *
+ * Example- addBreadcrumbLink: false
+ */
+const routeAddBreadcrumbLink = 'addBreadcrumbLink';
+
+/**
+ * Generate breadcrumbs dynamically via route configuration.
+ */
@Component({
selector: 'mifosx-breadcrumb',
templateUrl: './breadcrumb.component.html',
@@ -12,19 +47,26 @@ import { Breadcrumb } from './breadcrumb.model';
})
export class BreadcrumbComponent implements OnInit {
+ /** Array of breadcrumbs. */
breadcrumbs: Breadcrumb[];
+ /**
+ * Generates the breadcrumbs.
+ * @param {ActivatedRoute} activatedRoute Activate Route.
+ * @param {Router} router Router for navigation.
+ */
constructor(private activatedRoute: ActivatedRoute,
private router: Router) {
this.generateBreadcrumbs();
}
- generateBreadcrumbs() {
- const routeDataBreadcrumb = 'breadcrumb';
- const routeParamBreadcrumb = 'routeParamBreadcrumb';
- const routeResolveBreadcrumb = 'routeResolveBreadcrumb';
- const routeAddBreadcrumbLink = 'addBreadcrumbLink';
+ ngOnInit() {
+ }
+ /**
+ * Generates the array of breadcrumbs for the visited route.
+ */
+ generateBreadcrumbs() {
const onNavigationEnd = this.router.events.pipe(filter(event => event instanceof NavigationEnd));
onNavigationEnd.subscribe(() => {
@@ -86,7 +128,4 @@ export class BreadcrumbComponent implements OnInit {
});
}
- ngOnInit() {
- }
-
}
diff --git a/src/app/core/shell/breadcrumb/breadcrumb.model.ts b/src/app/core/shell/breadcrumb/breadcrumb.model.ts
index e88fdb43e..2bbc0a497 100644
--- a/src/app/core/shell/breadcrumb/breadcrumb.model.ts
+++ b/src/app/core/shell/breadcrumb/breadcrumb.model.ts
@@ -1,3 +1,6 @@
+/**
+ * Breadcrumb model.
+ */
export interface Breadcrumb {
label: string;
url: string;
diff --git a/src/app/core/shell/content/content.component.html b/src/app/core/shell/content/content.component.html
index 0680b43f9..638208949 100644
--- a/src/app/core/shell/content/content.component.html
+++ b/src/app/core/shell/content/content.component.html
@@ -1 +1,2 @@
+
diff --git a/src/app/core/shell/content/content.component.ts b/src/app/core/shell/content/content.component.ts
index 35b20ea38..75dcba1ba 100644
--- a/src/app/core/shell/content/content.component.ts
+++ b/src/app/core/shell/content/content.component.ts
@@ -1,5 +1,9 @@
+/** Angular Imports */
import { Component, OnInit } from '@angular/core';
+/**
+ * Content component.
+ */
@Component({
selector: 'mifosx-content',
templateUrl: './content.component.html',
diff --git a/src/app/core/shell/shell.component.html b/src/app/core/shell/shell.component.html
index 8f2e2c495..c78a2f2ee 100644
--- a/src/app/core/shell/shell.component.html
+++ b/src/app/core/shell/shell.component.html
@@ -1,5 +1,7 @@
+
+