diff --git a/package-lock.json b/package-lock.json index d9effc80..7c1c84de 100644 --- a/package-lock.json +++ b/package-lock.json @@ -51,9 +51,9 @@ } }, "@angular/animations": { - "version": "4.4.5", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-4.4.5.tgz", - "integrity": "sha1-WlpVHXV+WlVgCY9vhTXBAtk5VNc=", + "version": "4.4.6", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-4.4.6.tgz", + "integrity": "sha1-+mYYmaik44y3xYPHpcl85l1ZKjU=", "requires": { "tslib": "1.7.1" } @@ -143,28 +143,28 @@ } }, "@angular/common": { - "version": "4.4.5", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-4.4.5.tgz", - "integrity": "sha1-vVF53JIq2/TD6m37Gec8uEn/3Dc=", + "version": "4.4.6", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-4.4.6.tgz", + "integrity": "sha1-S4FCByTggooOg5uVpV6xp+g5GPI=", "requires": { "tslib": "1.7.1" } }, "@angular/compiler": { - "version": "4.4.5", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-4.4.5.tgz", - "integrity": "sha1-hyGlkQ8rtS8J4tQEytJk817eWQI=", + "version": "4.4.6", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-4.4.6.tgz", + "integrity": "sha1-LuH68lt1fh0SiXkHS+f65SmzvCA=", "requires": { "tslib": "1.7.1" } }, "@angular/compiler-cli": { - "version": "4.4.5", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-4.4.5.tgz", - "integrity": "sha1-YfoDNqzRogjF8cXG1N9nnpmVMkg=", + "version": "4.4.6", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-4.4.6.tgz", + "integrity": "sha1-uv09HiYOmQh+uajPdTLb1gOrubE=", "dev": true, "requires": { - "@angular/tsc-wrapped": "4.4.5", + "@angular/tsc-wrapped": "4.4.6", "minimist": "1.2.0", "reflect-metadata": "0.1.10" }, @@ -178,9 +178,9 @@ } }, "@angular/core": { - "version": "4.4.5", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-4.4.5.tgz", - "integrity": "sha1-VKy8vaEXGfiDx4apBpdKvrEy8aA=", + "version": "4.4.6", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-4.4.6.tgz", + "integrity": "sha1-EwMf0Q3P5DiHVBmzjyESCVi8I1Q=", "requires": { "tslib": "1.7.1" } @@ -194,25 +194,25 @@ } }, "@angular/forms": { - "version": "4.4.5", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-4.4.5.tgz", - "integrity": "sha1-6VUghiMqqyzh0I7xmLYiBOoTxDs=", + "version": "4.4.6", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-4.4.6.tgz", + "integrity": "sha1-/mSs5CQ1wbgPSQNLfEHOjK8UpEo=", "requires": { "tslib": "1.7.1" } }, "@angular/http": { - "version": "4.4.5", - "resolved": "https://registry.npmjs.org/@angular/http/-/http-4.4.5.tgz", - "integrity": "sha1-LHNe2EJAH8I1ZBkmjiiNzyOW6E8=", + "version": "4.4.6", + "resolved": "https://registry.npmjs.org/@angular/http/-/http-4.4.6.tgz", + "integrity": "sha1-CvaAxnEL3AJtlA4iXP0PalwAXQw=", "requires": { "tslib": "1.7.1" } }, "@angular/language-service": { - "version": "4.4.5", - "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-4.4.5.tgz", - "integrity": "sha1-zO8Tm40+FoSwGvo1xvvyFy4rtnY=", + "version": "4.4.6", + "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-4.4.6.tgz", + "integrity": "sha1-SY7OlcX2BmQDv5/TxYMa9CtFYYs=", "dev": true }, "@angular/material": { @@ -224,33 +224,33 @@ } }, "@angular/platform-browser": { - "version": "4.4.5", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-4.4.5.tgz", - "integrity": "sha1-dOuRwLdYEm8m1T7lbHz0ZovZysU=", + "version": "4.4.6", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-4.4.6.tgz", + "integrity": "sha1-qYOcVH4bZU+h0kqJeAyLpquNzOA=", "requires": { "tslib": "1.7.1" } }, "@angular/platform-browser-dynamic": { - "version": "4.4.5", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-4.4.5.tgz", - "integrity": "sha1-d029wdkPd12/HjGfbtQrJgYjth8=", + "version": "4.4.6", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-4.4.6.tgz", + "integrity": "sha1-TT2aanvyzz3kBYphWuBZ7/ZB+jY=", "requires": { "tslib": "1.7.1" } }, "@angular/router": { - "version": "4.4.5", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-4.4.5.tgz", - "integrity": "sha1-9zEwz0h9mjLMGYiv2llmX0Siiok=", + "version": "4.4.6", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-4.4.6.tgz", + "integrity": "sha1-D2rSmuD/jSyeo3m9MgRHIXt+yGY=", "requires": { "tslib": "1.7.1" } }, "@angular/tsc-wrapped": { - "version": "4.4.5", - "resolved": "https://registry.npmjs.org/@angular/tsc-wrapped/-/tsc-wrapped-4.4.5.tgz", - "integrity": "sha1-MKDLtDpmOqddyphIlL5IE3eN3Jw=", + "version": "4.4.6", + "resolved": "https://registry.npmjs.org/@angular/tsc-wrapped/-/tsc-wrapped-4.4.6.tgz", + "integrity": "sha1-Fnh8u/UL3H5zgSOxnDJSfyROF40=", "dev": true, "requires": { "tsickle": "0.21.6" @@ -268,6 +268,11 @@ "integrity": "sha1-w6DFRNYjkqzCgTpCyKDcb1j4aSI=", "dev": true }, + "@ngx-translate/core": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@ngx-translate/core/-/core-8.0.0.tgz", + "integrity": "sha1-dR/WtRLYDzp0jS3o38lt/vopr+A=" + }, "@schematics/angular": { "version": "0.0.45", "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-0.0.45.tgz", diff --git a/package.json b/package.json index 7629db70..e0d9cc6d 100644 --- a/package.json +++ b/package.json @@ -16,18 +16,19 @@ "private": true, "dependencies": { "@agm/core": "1.0.0-beta.1", - "@angular/animations": "4.4.5", + "@angular/animations": "4.4.6", "@angular/cdk": "2.0.0-beta.12", - "@angular/common": "4.4.5", - "@angular/compiler": "4.4.5", - "@angular/core": "4.4.5", + "@angular/common": "4.4.6", + "@angular/compiler": "4.4.6", + "@angular/core": "4.4.6", "@angular/flex-layout": "2.0.0-beta.9", - "@angular/forms": "4.4.5", - "@angular/http": "4.4.5", + "@angular/forms": "4.4.6", + "@angular/http": "4.4.6", "@angular/material": "2.0.0-beta.12", - "@angular/platform-browser": "4.4.5", - "@angular/platform-browser-dynamic": "4.4.5", - "@angular/router": "4.4.5", + "@angular/platform-browser": "4.4.6", + "@angular/platform-browser-dynamic": "4.4.6", + "@angular/router": "4.4.6", + "@ngx-translate/core": "8.0.0", "@swimlane/ngx-charts": "6.0.2", "@swimlane/ngx-datatable": "9.3.1", "@swimlane/ngx-dnd": "3.0.0", @@ -49,8 +50,8 @@ }, "devDependencies": { "@angular/cli": "1.4.7", - "@angular/compiler-cli": "4.4.5", - "@angular/language-service": "4.4.5", + "@angular/compiler-cli": "4.4.6", + "@angular/language-service": "4.4.6", "@angularclass/hmr": "2.1.3", "@types/jasmine": "2.6.0", "@types/jasminewd2": "2.0.2", diff --git a/src/app/app.component.ts b/src/app/app.component.ts index 491dd3a0..29e2809f 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -1,5 +1,6 @@ import { Component } from '@angular/core'; import { FuseSplashScreenService } from './core/services/splash-screen.service'; +import { TranslateService } from '@ngx-translate/core'; @Component({ selector : 'fuse-root', @@ -8,7 +9,18 @@ import { FuseSplashScreenService } from './core/services/splash-screen.service'; }) export class AppComponent { - constructor(private fuseSplashScreen: FuseSplashScreenService) + constructor( + private fuseSplashScreen: FuseSplashScreenService, + private translate: TranslateService + ) { + // Add languages + this.translate.addLangs(['en', 'tr']); + + // Set the default language + this.translate.setDefaultLang('en'); + + // Use a language + this.translate.use('en'); } } diff --git a/src/app/app.module.ts b/src/app/app.module.ts index f47483ff..5de0a8e8 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -12,6 +12,7 @@ import { FuseSplashScreenService } from './core/services/splash-screen.service'; import { FuseConfigService } from './core/services/config.service'; import { FuseNavigationService } from './core/components/navigation/navigation.service'; import { FuseSampleModule } from './main/content/sample/sample.module'; +import { TranslateModule } from '@ngx-translate/core'; const appRoutes: Routes = [ { @@ -31,6 +32,7 @@ const appRoutes: Routes = [ BrowserAnimationsModule, RouterModule.forRoot(appRoutes), SharedModule, + TranslateModule.forRoot(), FuseMainModule, FuseSampleModule ], diff --git a/src/app/core/animations.ts b/src/app/core/animations.ts index 193b9e10..b5ff37d2 100644 --- a/src/app/core/animations.ts +++ b/src/app/core/animations.ts @@ -33,21 +33,21 @@ export const fuseAnimations = [ stagger('50ms', [ animateChild() ]) - ])), + ], {optional: true})), transition('void => 100', query('@*', [ stagger('100ms', [ animateChild() ]) - ])), + ], {optional: true})), transition('void => 200', query('@*', [ stagger('200ms', [ animateChild() ]) - ])) + ], {optional: true})) ]), trigger('fadeInOut', [ diff --git a/src/app/core/modules/shared.module.ts b/src/app/core/modules/shared.module.ts index 38051f01..13b33950 100644 --- a/src/app/core/modules/shared.module.ts +++ b/src/app/core/modules/shared.module.ts @@ -19,7 +19,9 @@ import { FuseHljsComponent } from '../components/hljs/hljs.component'; import { FusePerfectScrollbarDirective } from '../directives/fuse-perfect-scrollbar/fuse-perfect-scrollbar.directive'; import { FuseIfOnDomDirective } from '../directives/fuse-if-on-dom/fuse-if-on-dom.directive'; import { FuseMaterialColorPickerComponent } from '../components/material-color-picker/material-color-picker.component'; +import { FuseTranslationLoaderService } from '../services/translation-loader.service'; import { CookieService } from 'ngx-cookie-service'; +import { TranslateModule } from '@ngx-translate/core'; @NgModule({ declarations : [ @@ -59,7 +61,8 @@ import { CookieService } from 'ngx-cookie-service'; NgxDnDModule, NgxDatatableModule, FuseIfOnDomDirective, - FuseMaterialColorPickerComponent + FuseMaterialColorPickerComponent, + TranslateModule ], entryComponents: [ FuseConfirmDialogComponent @@ -68,7 +71,8 @@ import { CookieService } from 'ngx-cookie-service'; CookieService, FuseMatchMedia, FuseNavbarVerticalService, - FuseMatSidenavHelperService + FuseMatSidenavHelperService, + FuseTranslationLoaderService ] }) diff --git a/src/app/core/scss/partials/_page-layouts.scss b/src/app/core/scss/partials/_page-layouts.scss index 29d66d7f..083e0f80 100644 --- a/src/app/core/scss/partials/_page-layouts.scss +++ b/src/app/core/scss/partials/_page-layouts.scss @@ -222,6 +222,62 @@ $top-bg-image: url('assets/images/backgrounds/header-bg.png'); } } } + + // Tabbed + &.tabbed { + + > mat-sidenav-container { + + > .mat-sidenav-content, + > .mat-drawer-content { + width: calc(100% - 240px); + + .center { + width: calc(100% - 32px); + + @include media-breakpoint-down('md') { + width: calc(100% - 64px); + } + + .header { + flex: 1; + } + + .content-card { + + .content { + + .mat-tab-group { + overflow: hidden; + + .mat-tab-header { + + .mat-tab-label { + height: 64px; + } + } + + .mat-tab-body { + overflow: hidden; + + .mat-tab-body-content { + overflow: hidden; + + .tab-content { + position: relative; + width: 100%; + height: 100%; + overflow: auto; + } + } + } + } + } + } + } + } + } + } } // Left sidenav diff --git a/src/app/core/services/translation-loader.service.ts b/src/app/core/services/translation-loader.service.ts new file mode 100644 index 00000000..27283713 --- /dev/null +++ b/src/app/core/services/translation-loader.service.ts @@ -0,0 +1,27 @@ +import { Injectable } from '@angular/core'; +import { TranslateService } from '@ngx-translate/core'; + +export interface Locale +{ + lang: string; + data: Object; +} + +@Injectable() +export class FuseTranslationLoaderService +{ + constructor(private translate: TranslateService) + { + } + + public loadTranslations(...args: Locale[]): void + { + const locales = [...args]; + + locales.forEach((locale) => { + // use setTranslation() with the third argument set to true + // to append translations instead of replacing them + this.translate.setTranslation(locale.lang, locale.data, true); + }); + } +} diff --git a/src/app/fuse-fake-db/knowledge-base.ts b/src/app/fuse-fake-db/knowledge-base.ts new file mode 100644 index 00000000..0474428a --- /dev/null +++ b/src/app/fuse-fake-db/knowledge-base.ts @@ -0,0 +1,113 @@ +export class KnowledgeBaseFakeDb +{ + public static data = [ + { + 'title' : 'Your Account', + 'path' : '/pages/knowledge-base', + 'articlesCount' : 17, + 'featuredArticles': [ + { + 'title' : 'Account limits', + 'content': '

The standard Lorem Ipsum passage, used since the 1500s

\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna\n aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur\n sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\n

\n

Section 1.10.32 of "de Finibus Bonorum et Malorum", written by Cicero in 45 BC

\n

Sed ut perspiciatis unde omnis iste natus error sit\n voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et\n quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit\n aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est,\n qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt\n ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam\n corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui\n in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla\n pariatur?\n

\n

1914 translation by H. Rackham

\n

\n But I must explain to you how all this mistaken idea of denouncing pleasure\n and praising pain was born and I will give you a complete account of the system, and expound the actual teachings of\n the great explorer of the truth, the master-builder of human happiness. No one rejects, dislikes, or avoids pleasure\n itself, because it is pleasure, but because those who do not know how to pursue pleasure rationally encounter\n consequences that are extremely painful. Nor again is there anyone who loves or pursues or desires to obtain pain of\n itself, because it is pain, but because occasionally circumstances occur in which toil and pain can procure him some\n great pleasure. To take a trivial example, which of us ever undertakes laborious physical exercise, except to obtain\n some advantage from it? But who has any right to find fault with a man who chooses to enjoy a pleasure that has no\n annoying consequences, or one who avoids a pain that produces no resultant pleasure?\n

\n' + }, + { + 'title' : 'How do I change my username?', + 'content': '

The standard Lorem Ipsum passage, used since the 1500s

\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna\n aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur\n sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\n

\n

Section 1.10.32 of "de Finibus Bonorum et Malorum", written by Cicero in 45 BC

\n

Sed ut perspiciatis unde omnis iste natus error sit\n voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et\n quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit\n aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est,\n qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt\n ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam\n corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui\n in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla\n pariatur?\n

\n

1914 translation by H. Rackham

\n

\n But I must explain to you how all this mistaken idea of denouncing pleasure\n and praising pain was born and I will give you a complete account of the system, and expound the actual teachings of\n the great explorer of the truth, the master-builder of human happiness. No one rejects, dislikes, or avoids pleasure\n itself, because it is pleasure, but because those who do not know how to pursue pleasure rationally encounter\n consequences that are extremely painful. Nor again is there anyone who loves or pursues or desires to obtain pain of\n itself, because it is pain, but because occasionally circumstances occur in which toil and pain can procure him some\n great pleasure. To take a trivial example, which of us ever undertakes laborious physical exercise, except to obtain\n some advantage from it? But who has any right to find fault with a man who chooses to enjoy a pleasure that has no\n annoying consequences, or one who avoids a pain that produces no resultant pleasure?\n

\n' + }, + { + 'title' : 'How do I change my password?', + 'content': '

The standard Lorem Ipsum passage, used since the 1500s

\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna\n aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur\n sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\n

\n

Section 1.10.32 of "de Finibus Bonorum et Malorum", written by Cicero in 45 BC

\n

Sed ut perspiciatis unde omnis iste natus error sit\n voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et\n quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit\n aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est,\n qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt\n ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam\n corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui\n in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla\n pariatur?\n

\n

1914 translation by H. Rackham

\n

\n But I must explain to you how all this mistaken idea of denouncing pleasure\n and praising pain was born and I will give you a complete account of the system, and expound the actual teachings of\n the great explorer of the truth, the master-builder of human happiness. No one rejects, dislikes, or avoids pleasure\n itself, because it is pleasure, but because those who do not know how to pursue pleasure rationally encounter\n consequences that are extremely painful. Nor again is there anyone who loves or pursues or desires to obtain pain of\n itself, because it is pain, but because occasionally circumstances occur in which toil and pain can procure him some\n great pleasure. To take a trivial example, which of us ever undertakes laborious physical exercise, except to obtain\n some advantage from it? But who has any right to find fault with a man who chooses to enjoy a pleasure that has no\n annoying consequences, or one who avoids a pain that produces no resultant pleasure?\n

\n' + }, + { + 'title' : 'How do I change my email address?', + 'content': '

The standard Lorem Ipsum passage, used since the 1500s

\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna\n aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur\n sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\n

\n

Section 1.10.32 of "de Finibus Bonorum et Malorum", written by Cicero in 45 BC

\n

Sed ut perspiciatis unde omnis iste natus error sit\n voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et\n quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit\n aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est,\n qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt\n ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam\n corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui\n in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla\n pariatur?\n

\n

1914 translation by H. Rackham

\n

\n But I must explain to you how all this mistaken idea of denouncing pleasure\n and praising pain was born and I will give you a complete account of the system, and expound the actual teachings of\n the great explorer of the truth, the master-builder of human happiness. No one rejects, dislikes, or avoids pleasure\n itself, because it is pleasure, but because those who do not know how to pursue pleasure rationally encounter\n consequences that are extremely painful. Nor again is there anyone who loves or pursues or desires to obtain pain of\n itself, because it is pain, but because occasionally circumstances occur in which toil and pain can procure him some\n great pleasure. To take a trivial example, which of us ever undertakes laborious physical exercise, except to obtain\n some advantage from it? But who has any right to find fault with a man who chooses to enjoy a pleasure that has no\n annoying consequences, or one who avoids a pain that produces no resultant pleasure?\n

\n' + }, + { + 'title' : 'How do I close my account?', + 'content': '

The standard Lorem Ipsum passage, used since the 1500s

\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna\n aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur\n sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\n

\n

Section 1.10.32 of "de Finibus Bonorum et Malorum", written by Cicero in 45 BC

\n

Sed ut perspiciatis unde omnis iste natus error sit\n voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et\n quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit\n aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est,\n qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt\n ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam\n corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui\n in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla\n pariatur?\n

\n

1914 translation by H. Rackham

\n

\n But I must explain to you how all this mistaken idea of denouncing pleasure\n and praising pain was born and I will give you a complete account of the system, and expound the actual teachings of\n the great explorer of the truth, the master-builder of human happiness. No one rejects, dislikes, or avoids pleasure\n itself, because it is pleasure, but because those who do not know how to pursue pleasure rationally encounter\n consequences that are extremely painful. Nor again is there anyone who loves or pursues or desires to obtain pain of\n itself, because it is pain, but because occasionally circumstances occur in which toil and pain can procure him some\n great pleasure. To take a trivial example, which of us ever undertakes laborious physical exercise, except to obtain\n some advantage from it? But who has any right to find fault with a man who chooses to enjoy a pleasure that has no\n annoying consequences, or one who avoids a pain that produces no resultant pleasure?\n

\n' + } + ] + }, + { + 'title' : 'Selling', + 'path' : '/pages/knowledge-base', + 'articlesCount' : 12, + 'featuredArticles': [ + { + 'title' : 'A guide to the upload process', + 'content': '

The standard Lorem Ipsum passage, used since the 1500s

\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna\n aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur\n sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\n

\n

Section 1.10.32 of "de Finibus Bonorum et Malorum", written by Cicero in 45 BC

\n

Sed ut perspiciatis unde omnis iste natus error sit\n voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et\n quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit\n aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est,\n qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt\n ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam\n corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui\n in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla\n pariatur?\n

\n

1914 translation by H. Rackham

\n

\n But I must explain to you how all this mistaken idea of denouncing pleasure\n and praising pain was born and I will give you a complete account of the system, and expound the actual teachings of\n the great explorer of the truth, the master-builder of human happiness. No one rejects, dislikes, or avoids pleasure\n itself, because it is pleasure, but because those who do not know how to pursue pleasure rationally encounter\n consequences that are extremely painful. Nor again is there anyone who loves or pursues or desires to obtain pain of\n itself, because it is pain, but because occasionally circumstances occur in which toil and pain can procure him some\n great pleasure. To take a trivial example, which of us ever undertakes laborious physical exercise, except to obtain\n some advantage from it? But who has any right to find fault with a man who chooses to enjoy a pleasure that has no\n annoying consequences, or one who avoids a pain that produces no resultant pleasure?\n

\n' + }, + { + 'title' : 'Author collaboration', + 'content': '

The standard Lorem Ipsum passage, used since the 1500s

\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna\n aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur\n sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\n

\n

Section 1.10.32 of "de Finibus Bonorum et Malorum", written by Cicero in 45 BC

\n

Sed ut perspiciatis unde omnis iste natus error sit\n voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et\n quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit\n aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est,\n qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt\n ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam\n corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui\n in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla\n pariatur?\n

\n

1914 translation by H. Rackham

\n

\n But I must explain to you how all this mistaken idea of denouncing pleasure\n and praising pain was born and I will give you a complete account of the system, and expound the actual teachings of\n the great explorer of the truth, the master-builder of human happiness. No one rejects, dislikes, or avoids pleasure\n itself, because it is pleasure, but because those who do not know how to pursue pleasure rationally encounter\n consequences that are extremely painful. Nor again is there anyone who loves or pursues or desires to obtain pain of\n itself, because it is pain, but because occasionally circumstances occur in which toil and pain can procure him some\n great pleasure. To take a trivial example, which of us ever undertakes laborious physical exercise, except to obtain\n some advantage from it? But who has any right to find fault with a man who chooses to enjoy a pleasure that has no\n annoying consequences, or one who avoids a pain that produces no resultant pleasure?\n

\n' + }, + { + 'title' : 'Exclusivity policy', + 'content': '

The standard Lorem Ipsum passage, used since the 1500s

\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna\n aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur\n sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\n

\n

Section 1.10.32 of "de Finibus Bonorum et Malorum", written by Cicero in 45 BC

\n

Sed ut perspiciatis unde omnis iste natus error sit\n voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et\n quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit\n aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est,\n qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt\n ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam\n corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui\n in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla\n pariatur?\n

\n

1914 translation by H. Rackham

\n

\n But I must explain to you how all this mistaken idea of denouncing pleasure\n and praising pain was born and I will give you a complete account of the system, and expound the actual teachings of\n the great explorer of the truth, the master-builder of human happiness. No one rejects, dislikes, or avoids pleasure\n itself, because it is pleasure, but because those who do not know how to pursue pleasure rationally encounter\n consequences that are extremely painful. Nor again is there anyone who loves or pursues or desires to obtain pain of\n itself, because it is pain, but because occasionally circumstances occur in which toil and pain can procure him some\n great pleasure. To take a trivial example, which of us ever undertakes laborious physical exercise, except to obtain\n some advantage from it? But who has any right to find fault with a man who chooses to enjoy a pleasure that has no\n annoying consequences, or one who avoids a pain that produces no resultant pleasure?\n

\n' + }, + { + 'title' : 'Promises you make as an author', + 'content': '

The standard Lorem Ipsum passage, used since the 1500s

\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna\n aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur\n sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\n

\n

Section 1.10.32 of "de Finibus Bonorum et Malorum", written by Cicero in 45 BC

\n

Sed ut perspiciatis unde omnis iste natus error sit\n voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et\n quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit\n aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est,\n qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt\n ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam\n corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui\n in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla\n pariatur?\n

\n

1914 translation by H. Rackham

\n

\n But I must explain to you how all this mistaken idea of denouncing pleasure\n and praising pain was born and I will give you a complete account of the system, and expound the actual teachings of\n the great explorer of the truth, the master-builder of human happiness. No one rejects, dislikes, or avoids pleasure\n itself, because it is pleasure, but because those who do not know how to pursue pleasure rationally encounter\n consequences that are extremely painful. Nor again is there anyone who loves or pursues or desires to obtain pain of\n itself, because it is pain, but because occasionally circumstances occur in which toil and pain can procure him some\n great pleasure. To take a trivial example, which of us ever undertakes laborious physical exercise, except to obtain\n some advantage from it? But who has any right to find fault with a man who chooses to enjoy a pleasure that has no\n annoying consequences, or one who avoids a pain that produces no resultant pleasure?\n

\n' + }, + { + 'title' : 'An author’s introduction', + 'content': '

The standard Lorem Ipsum passage, used since the 1500s

\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna\n aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur\n sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\n

\n

Section 1.10.32 of "de Finibus Bonorum et Malorum", written by Cicero in 45 BC

\n

Sed ut perspiciatis unde omnis iste natus error sit\n voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et\n quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit\n aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est,\n qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt\n ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam\n corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui\n in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla\n pariatur?\n

\n

1914 translation by H. Rackham

\n

\n But I must explain to you how all this mistaken idea of denouncing pleasure\n and praising pain was born and I will give you a complete account of the system, and expound the actual teachings of\n the great explorer of the truth, the master-builder of human happiness. No one rejects, dislikes, or avoids pleasure\n itself, because it is pleasure, but because those who do not know how to pursue pleasure rationally encounter\n consequences that are extremely painful. Nor again is there anyone who loves or pursues or desires to obtain pain of\n itself, because it is pain, but because occasionally circumstances occur in which toil and pain can procure him some\n great pleasure. To take a trivial example, which of us ever undertakes laborious physical exercise, except to obtain\n some advantage from it? But who has any right to find fault with a man who chooses to enjoy a pleasure that has no\n annoying consequences, or one who avoids a pain that produces no resultant pleasure?\n

\n' + } + ] + }, + { + 'title' : 'Buying', + 'path' : '/pages/knowledge-base', + 'articlesCount' : 19, + 'featuredArticles': [ + { + 'title' : 'Where is my purchase code?', + 'content': '

The standard Lorem Ipsum passage, used since the 1500s

\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna\n aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur\n sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\n

\n

Section 1.10.32 of "de Finibus Bonorum et Malorum", written by Cicero in 45 BC

\n

Sed ut perspiciatis unde omnis iste natus error sit\n voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et\n quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit\n aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est,\n qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt\n ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam\n corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui\n in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla\n pariatur?\n

\n

1914 translation by H. Rackham

\n

\n But I must explain to you how all this mistaken idea of denouncing pleasure\n and praising pain was born and I will give you a complete account of the system, and expound the actual teachings of\n the great explorer of the truth, the master-builder of human happiness. No one rejects, dislikes, or avoids pleasure\n itself, because it is pleasure, but because those who do not know how to pursue pleasure rationally encounter\n consequences that are extremely painful. Nor again is there anyone who loves or pursues or desires to obtain pain of\n itself, because it is pain, but because occasionally circumstances occur in which toil and pain can procure him some\n great pleasure. To take a trivial example, which of us ever undertakes laborious physical exercise, except to obtain\n some advantage from it? But who has any right to find fault with a man who chooses to enjoy a pleasure that has no\n annoying consequences, or one who avoids a pain that produces no resultant pleasure?\n

\n' + }, + { + 'title' : 'Can I get a refund?', + 'content': '

The standard Lorem Ipsum passage, used since the 1500s

\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna\n aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur\n sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\n

\n

Section 1.10.32 of "de Finibus Bonorum et Malorum", written by Cicero in 45 BC

\n

Sed ut perspiciatis unde omnis iste natus error sit\n voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et\n quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit\n aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est,\n qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt\n ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam\n corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui\n in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla\n pariatur?\n

\n

1914 translation by H. Rackham

\n

\n But I must explain to you how all this mistaken idea of denouncing pleasure\n and praising pain was born and I will give you a complete account of the system, and expound the actual teachings of\n the great explorer of the truth, the master-builder of human happiness. No one rejects, dislikes, or avoids pleasure\n itself, because it is pleasure, but because those who do not know how to pursue pleasure rationally encounter\n consequences that are extremely painful. Nor again is there anyone who loves or pursues or desires to obtain pain of\n itself, because it is pain, but because occasionally circumstances occur in which toil and pain can procure him some\n great pleasure. To take a trivial example, which of us ever undertakes laborious physical exercise, except to obtain\n some advantage from it? But who has any right to find fault with a man who chooses to enjoy a pleasure that has no\n annoying consequences, or one who avoids a pain that produces no resultant pleasure?\n

\n' + }, + { + 'title' : 'Contact us', + 'content': '

The standard Lorem Ipsum passage, used since the 1500s

\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna\n aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur\n sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\n

\n

Section 1.10.32 of "de Finibus Bonorum et Malorum", written by Cicero in 45 BC

\n

Sed ut perspiciatis unde omnis iste natus error sit\n voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et\n quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit\n aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est,\n qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt\n ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam\n corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui\n in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla\n pariatur?\n

\n

1914 translation by H. Rackham

\n

\n But I must explain to you how all this mistaken idea of denouncing pleasure\n and praising pain was born and I will give you a complete account of the system, and expound the actual teachings of\n the great explorer of the truth, the master-builder of human happiness. No one rejects, dislikes, or avoids pleasure\n itself, because it is pleasure, but because those who do not know how to pursue pleasure rationally encounter\n consequences that are extremely painful. Nor again is there anyone who loves or pursues or desires to obtain pain of\n itself, because it is pain, but because occasionally circumstances occur in which toil and pain can procure him some\n great pleasure. To take a trivial example, which of us ever undertakes laborious physical exercise, except to obtain\n some advantage from it? But who has any right to find fault with a man who chooses to enjoy a pleasure that has no\n annoying consequences, or one who avoids a pain that produces no resultant pleasure?\n

\n' + }, + { + 'title' : 'How do I purchase an item?', + 'content': '

The standard Lorem Ipsum passage, used since the 1500s

\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna\n aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur\n sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\n

\n

Section 1.10.32 of "de Finibus Bonorum et Malorum", written by Cicero in 45 BC

\n

Sed ut perspiciatis unde omnis iste natus error sit\n voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et\n quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit\n aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est,\n qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt\n ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam\n corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui\n in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla\n pariatur?\n

\n

1914 translation by H. Rackham

\n

\n But I must explain to you how all this mistaken idea of denouncing pleasure\n and praising pain was born and I will give you a complete account of the system, and expound the actual teachings of\n the great explorer of the truth, the master-builder of human happiness. No one rejects, dislikes, or avoids pleasure\n itself, because it is pleasure, but because those who do not know how to pursue pleasure rationally encounter\n consequences that are extremely painful. Nor again is there anyone who loves or pursues or desires to obtain pain of\n itself, because it is pain, but because occasionally circumstances occur in which toil and pain can procure him some\n great pleasure. To take a trivial example, which of us ever undertakes laborious physical exercise, except to obtain\n some advantage from it? But who has any right to find fault with a man who chooses to enjoy a pleasure that has no\n annoying consequences, or one who avoids a pain that produces no resultant pleasure?\n

\n' + }, + { + 'title' : 'I\'m trying to find a specific item', + 'content': '

The standard Lorem Ipsum passage, used since the 1500s

\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna\n aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur\n sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\n

\n

Section 1.10.32 of "de Finibus Bonorum et Malorum", written by Cicero in 45 BC

\n

Sed ut perspiciatis unde omnis iste natus error sit\n voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et\n quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit\n aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est,\n qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt\n ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam\n corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui\n in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla\n pariatur?\n

\n

1914 translation by H. Rackham

\n

\n But I must explain to you how all this mistaken idea of denouncing pleasure\n and praising pain was born and I will give you a complete account of the system, and expound the actual teachings of\n the great explorer of the truth, the master-builder of human happiness. No one rejects, dislikes, or avoids pleasure\n itself, because it is pleasure, but because those who do not know how to pursue pleasure rationally encounter\n consequences that are extremely painful. Nor again is there anyone who loves or pursues or desires to obtain pain of\n itself, because it is pain, but because occasionally circumstances occur in which toil and pain can procure him some\n great pleasure. To take a trivial example, which of us ever undertakes laborious physical exercise, except to obtain\n some advantage from it? But who has any right to find fault with a man who chooses to enjoy a pleasure that has no\n annoying consequences, or one who avoids a pain that produces no resultant pleasure?\n

\n' + } + ] + }, + { + 'title' : 'Item Support', + 'path' : '/pages/knowledge-base', + 'articlesCount' : 24, + 'featuredArticles': [ + { + 'title' : 'What is Item Support?', + 'content': '

The standard Lorem Ipsum passage, used since the 1500s

\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna\n aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur\n sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\n

\n

Section 1.10.32 of "de Finibus Bonorum et Malorum", written by Cicero in 45 BC

\n

Sed ut perspiciatis unde omnis iste natus error sit\n voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et\n quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit\n aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est,\n qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt\n ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam\n corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui\n in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla\n pariatur?\n

\n

1914 translation by H. Rackham

\n

\n But I must explain to you how all this mistaken idea of denouncing pleasure\n and praising pain was born and I will give you a complete account of the system, and expound the actual teachings of\n the great explorer of the truth, the master-builder of human happiness. No one rejects, dislikes, or avoids pleasure\n itself, because it is pleasure, but because those who do not know how to pursue pleasure rationally encounter\n consequences that are extremely painful. Nor again is there anyone who loves or pursues or desires to obtain pain of\n itself, because it is pain, but because occasionally circumstances occur in which toil and pain can procure him some\n great pleasure. To take a trivial example, which of us ever undertakes laborious physical exercise, except to obtain\n some advantage from it? But who has any right to find fault with a man who chooses to enjoy a pleasure that has no\n annoying consequences, or one who avoids a pain that produces no resultant pleasure?\n

\n' + }, + { + 'title' : 'How to contact an author', + 'content': '

The standard Lorem Ipsum passage, used since the 1500s

\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna\n aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur\n sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\n

\n

Section 1.10.32 of "de Finibus Bonorum et Malorum", written by Cicero in 45 BC

\n

Sed ut perspiciatis unde omnis iste natus error sit\n voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et\n quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit\n aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est,\n qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt\n ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam\n corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui\n in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla\n pariatur?\n

\n

1914 translation by H. Rackham

\n

\n But I must explain to you how all this mistaken idea of denouncing pleasure\n and praising pain was born and I will give you a complete account of the system, and expound the actual teachings of\n the great explorer of the truth, the master-builder of human happiness. No one rejects, dislikes, or avoids pleasure\n itself, because it is pleasure, but because those who do not know how to pursue pleasure rationally encounter\n consequences that are extremely painful. Nor again is there anyone who loves or pursues or desires to obtain pain of\n itself, because it is pain, but because occasionally circumstances occur in which toil and pain can procure him some\n great pleasure. To take a trivial example, which of us ever undertakes laborious physical exercise, except to obtain\n some advantage from it? But who has any right to find fault with a man who chooses to enjoy a pleasure that has no\n annoying consequences, or one who avoids a pain that produces no resultant pleasure?\n

\n' + }, + { + 'title' : 'Rating or review removal policy', + 'content': '

The standard Lorem Ipsum passage, used since the 1500s

\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna\n aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur\n sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\n

\n

Section 1.10.32 of "de Finibus Bonorum et Malorum", written by Cicero in 45 BC

\n

Sed ut perspiciatis unde omnis iste natus error sit\n voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et\n quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit\n aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est,\n qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt\n ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam\n corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui\n in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla\n pariatur?\n

\n

1914 translation by H. Rackham

\n

\n But I must explain to you how all this mistaken idea of denouncing pleasure\n and praising pain was born and I will give you a complete account of the system, and expound the actual teachings of\n the great explorer of the truth, the master-builder of human happiness. No one rejects, dislikes, or avoids pleasure\n itself, because it is pleasure, but because those who do not know how to pursue pleasure rationally encounter\n consequences that are extremely painful. Nor again is there anyone who loves or pursues or desires to obtain pain of\n itself, because it is pain, but because occasionally circumstances occur in which toil and pain can procure him some\n great pleasure. To take a trivial example, which of us ever undertakes laborious physical exercise, except to obtain\n some advantage from it? But who has any right to find fault with a man who chooses to enjoy a pleasure that has no\n annoying consequences, or one who avoids a pain that produces no resultant pleasure?\n

\n' + }, + { + 'title' : 'Purchasing unsupported items', + 'content': '

The standard Lorem Ipsum passage, used since the 1500s

\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna\n aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur\n sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\n

\n

Section 1.10.32 of "de Finibus Bonorum et Malorum", written by Cicero in 45 BC

\n

Sed ut perspiciatis unde omnis iste natus error sit\n voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et\n quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit\n aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est,\n qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt\n ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam\n corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui\n in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla\n pariatur?\n

\n

1914 translation by H. Rackham

\n

\n But I must explain to you how all this mistaken idea of denouncing pleasure\n and praising pain was born and I will give you a complete account of the system, and expound the actual teachings of\n the great explorer of the truth, the master-builder of human happiness. No one rejects, dislikes, or avoids pleasure\n itself, because it is pleasure, but because those who do not know how to pursue pleasure rationally encounter\n consequences that are extremely painful. Nor again is there anyone who loves or pursues or desires to obtain pain of\n itself, because it is pain, but because occasionally circumstances occur in which toil and pain can procure him some\n great pleasure. To take a trivial example, which of us ever undertakes laborious physical exercise, except to obtain\n some advantage from it? But who has any right to find fault with a man who chooses to enjoy a pleasure that has no\n annoying consequences, or one who avoids a pain that produces no resultant pleasure?\n

\n' + }, + { + 'title' : 'Item installation guide', + 'content': '

The standard Lorem Ipsum passage, used since the 1500s

\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna\n aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur\n sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\n

\n

Section 1.10.32 of "de Finibus Bonorum et Malorum", written by Cicero in 45 BC

\n

Sed ut perspiciatis unde omnis iste natus error sit\n voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et\n quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit\n aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est,\n qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt\n ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam\n corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui\n in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla\n pariatur?\n

\n

1914 translation by H. Rackham

\n

\n But I must explain to you how all this mistaken idea of denouncing pleasure\n and praising pain was born and I will give you a complete account of the system, and expound the actual teachings of\n the great explorer of the truth, the master-builder of human happiness. No one rejects, dislikes, or avoids pleasure\n itself, because it is pleasure, but because those who do not know how to pursue pleasure rationally encounter\n consequences that are extremely painful. Nor again is there anyone who loves or pursues or desires to obtain pain of\n itself, because it is pain, but because occasionally circumstances occur in which toil and pain can procure him some\n great pleasure. To take a trivial example, which of us ever undertakes laborious physical exercise, except to obtain\n some advantage from it? But who has any right to find fault with a man who chooses to enjoy a pleasure that has no\n annoying consequences, or one who avoids a pain that produces no resultant pleasure?\n

\n' + } + ] + } + ]; +} diff --git a/src/app/main/content/apps/mail/i18n/en.ts b/src/app/main/content/apps/mail/i18n/en.ts new file mode 100644 index 00000000..1e3b4b34 --- /dev/null +++ b/src/app/main/content/apps/mail/i18n/en.ts @@ -0,0 +1,14 @@ +export const locale = { + lang: 'en', + data: { + 'MAIL': { + 'COMPOSE' : 'COMPOSE', + 'FOLDERS' : 'FOLDERS', + 'FILTERS' : 'FILTERS', + 'LABELS' : 'LABELS', + 'NO_MESSAGES' : 'There are no messages!', + 'SELECT_A_MESSAGE_TO_READ': 'Select a message to read', + 'SEARCH_PLACEHOLDER': 'Search for an e-mail or contact' + } + } +}; diff --git a/src/app/main/content/apps/mail/i18n/tr.ts b/src/app/main/content/apps/mail/i18n/tr.ts new file mode 100644 index 00000000..03a524de --- /dev/null +++ b/src/app/main/content/apps/mail/i18n/tr.ts @@ -0,0 +1,14 @@ +export const locale = { + lang: 'tr', + data: { + 'MAIL': { + 'COMPOSE' : 'YENİ E-POSTA', + 'FOLDERS' : 'KLASÖRLER', + 'FILTERS' : 'FİLTRELER', + 'LABELS' : 'ETİKETLER', + 'NO_MESSAGES' : 'Mesajiniz bulunmamakta!', + 'SELECT_A_MESSAGE_TO_READ': 'Okumak için bir mesaj seçin', + 'SEARCH_PLACEHOLDER' : 'E-mail yada bir kişi arayın' + } + } +}; diff --git a/src/app/main/content/components/multi-language/multi-language.component.html b/src/app/main/content/components/multi-language/multi-language.component.html new file mode 100644 index 00000000..76abc8f6 --- /dev/null +++ b/src/app/main/content/components/multi-language/multi-language.component.html @@ -0,0 +1,138 @@ +
+ + +
+
+
+ home + chevron_right + Components +
+
Multi Language
+
+
+ + + +
+ +

+ Fuse uses ngx-translate + module and supports multiple languages and translations. +

+ +

+ Since not everybody need multi-language setup for their apps, we decided NOT to put translations everywhere. + If you want to see the translations in action, visit + Mail app and then change the language from the Toolbar. +

+ Mail app is the only app that has translations for demonstration purposes. You can look at its source code + to see the usage. +

+ +
+

Usage

+

In order to use the translations, create your translation file within the module you want to use + the translations. For example, for the Mail app, create i18n/en.ts file inside the + apps/mail folder. +

+

+ The structure of the translation file is important and it must define the language id along with the + translation data: +

+ +

+ + + +

+
+ +
+

+ After you create your translation files, open the *.component.ts file for the module you + want to have translations, and register your translation file. For this example, we will use the + mail.component.ts file: +

+ +

+ + + +

+
+ +
+

Changing the language

+

+ Changing the current language can happen instantly. Simply call the use method from the + translate service: +

+

+ + + +

+

+ More detailed usage of the translation service can be found in the toolbar.component.ts + file. +

+
+ + +
+ +
+ diff --git a/src/app/main/content/components/multi-language/multi-language.component.scss b/src/app/main/content/components/multi-language/multi-language.component.scss new file mode 100644 index 00000000..48d549ab --- /dev/null +++ b/src/app/main/content/components/multi-language/multi-language.component.scss @@ -0,0 +1,13 @@ +:host { + + .content{ + max-width: 1100px; + + .warning-box{ + background: #FFFDE7; + border: 1px solid #FFC107; + padding: 16px; + } + } + +} diff --git a/src/app/main/content/components/multi-language/multi-language.component.ts b/src/app/main/content/components/multi-language/multi-language.component.ts new file mode 100644 index 00000000..fc9385a4 --- /dev/null +++ b/src/app/main/content/components/multi-language/multi-language.component.ts @@ -0,0 +1,13 @@ +import { Component } from '@angular/core'; + +@Component({ + selector : 'fuse-multi-language-docs', + templateUrl: './multi-language.component.html', + styleUrls : ['./multi-language.component.scss'] +}) +export class FuseMultiLanguageDocsComponent +{ + constructor() + { + } +} diff --git a/src/app/main/content/pages/knowledge-base/dialogs/article/article.component.html b/src/app/main/content/pages/knowledge-base/dialogs/article/article.component.html new file mode 100644 index 00000000..e276fbd2 --- /dev/null +++ b/src/app/main/content/pages/knowledge-base/dialogs/article/article.component.html @@ -0,0 +1,20 @@ +
+ + + {{data.article.title}} + + +
+
+
+ +
+ +
+ +
diff --git a/src/app/main/content/pages/knowledge-base/dialogs/article/article.component.scss b/src/app/main/content/pages/knowledge-base/dialogs/article/article.component.scss new file mode 100644 index 00000000..dad7b077 --- /dev/null +++ b/src/app/main/content/pages/knowledge-base/dialogs/article/article.component.scss @@ -0,0 +1,13 @@ +.knowledgebase-article-dialog { + + .mat-dialog-container { + padding: 0; + width: 720px; + } + + .dialog-content-wrapper { + max-height: 85vh; + display: flex; + flex-direction: column; + } +} diff --git a/src/app/main/content/pages/knowledge-base/dialogs/article/article.component.ts b/src/app/main/content/pages/knowledge-base/dialogs/article/article.component.ts new file mode 100644 index 00000000..0808a977 --- /dev/null +++ b/src/app/main/content/pages/knowledge-base/dialogs/article/article.component.ts @@ -0,0 +1,20 @@ +import { Component, ViewEncapsulation, Inject } from '@angular/core'; +import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material'; + +@Component({ + selector : 'fuse-knowledge-base-article', + templateUrl : './article.component.html', + styleUrls : ['./article.component.scss'], + encapsulation: ViewEncapsulation.None +}) +export class FuseKnowledgeBaseArticleComponent +{ + article: any; + + constructor( + public dialogRef: MatDialogRef, + @Inject(MAT_DIALOG_DATA) public data: any + ) + { + } +} diff --git a/src/app/main/content/pages/knowledge-base/knowledge-base.component.html b/src/app/main/content/pages/knowledge-base/knowledge-base.component.html new file mode 100644 index 00000000..ade919a6 --- /dev/null +++ b/src/app/main/content/pages/knowledge-base/knowledge-base.component.html @@ -0,0 +1,40 @@ +
+ + +
+ +
+

How can we help?

+

Welcome to our knowledge base

+
+ +
+ + + + + + +
diff --git a/src/app/main/content/pages/knowledge-base/knowledge-base.component.scss b/src/app/main/content/pages/knowledge-base/knowledge-base.component.scss new file mode 100644 index 00000000..6c087583 --- /dev/null +++ b/src/app/main/content/pages/knowledge-base/knowledge-base.component.scss @@ -0,0 +1,77 @@ +@import "../../../../core/scss/fuse"; + +#knowledgebase { + + .header { + flex: 1 0 auto; + height: 280px; + max-height: 280px; + background: #1A237E; + background: linear-gradient(to right, #0E2A3B 0%, #34306B 100%); + + @include media-breakpoint('xs') { + height: 240px; + padding: 16px; + } + + .hero-text { + + h1 { + color: white; + font-size: 48px; + font-weight: 300; + letter-spacing: 0.01em; + text-align: center; + margin-top: 0; + margin-bottom: 16px; + + @include media-breakpoint-down('xs') { + font-size: 24px; + } + } + + h3 { + color: rgba(255, 255, 255, 0.75); + max-width: 480px; + text-align: center; + font-weight: 300; + letter-spacing: 0.03em; + margin: 0; + + @include media-breakpoint-down('xs') { + font-size: 14px; + } + } + } + } + + .content { + max-width: 960px; + width: 100%; + margin: 0 auto; + + .articles-list { + width: 400px; + min-width: 400px; + margin: 16px; + padding: 16px; + + @include media-breakpoint-down('xs') { + min-width: 300px; + margin: 16px 0; + } + + .mat-list-item { + text-decoration: none !important; + + .mat-list-item-content { + + } + } + + .see-all-link { + font-size: 14px; + } + } + } +} diff --git a/src/app/main/content/pages/knowledge-base/knowledge-base.component.ts b/src/app/main/content/pages/knowledge-base/knowledge-base.component.ts new file mode 100644 index 00000000..62c9b822 --- /dev/null +++ b/src/app/main/content/pages/knowledge-base/knowledge-base.component.ts @@ -0,0 +1,47 @@ +import { Component, OnInit, OnDestroy, ViewEncapsulation} from '@angular/core'; +import { Subscription } from 'rxjs/Subscription'; +import { KnowledgeBaseService } from './knowledge-base.service'; +import { MatDialog } from '@angular/material'; +import { FuseKnowledgeBaseArticleComponent } from './dialogs/article/article.component'; + +@Component({ + selector : 'fuse-knowledge-base', + templateUrl : './knowledge-base.component.html', + styleUrls : ['./knowledge-base.component.scss'], + encapsulation: ViewEncapsulation.None +}) +export class FuseKnowledgeBaseComponent implements OnInit, OnDestroy +{ + knowledgeBase: any; + onKnowledgeBaseChanged: Subscription; + + constructor( + private knowledgeBaseService: KnowledgeBaseService, + private matDialog: MatDialog + ) + { + + } + + ngOnInit() + { + this.onKnowledgeBaseChanged = + this.knowledgeBaseService.onKnowledgeBaseChanged + .subscribe(response => { + this.knowledgeBase = response; + }); + } + + ngOnDestroy() + { + this.onKnowledgeBaseChanged.unsubscribe(); + } + + readArticle(article) + { + this.matDialog.open(FuseKnowledgeBaseArticleComponent, { + panelClass: 'knowledgebase-article-dialog', + data : {article: article} + }); + } +} diff --git a/src/app/main/content/pages/knowledge-base/knowledge-base.module.ts b/src/app/main/content/pages/knowledge-base/knowledge-base.module.ts new file mode 100644 index 00000000..a891cb47 --- /dev/null +++ b/src/app/main/content/pages/knowledge-base/knowledge-base.module.ts @@ -0,0 +1,36 @@ +import { NgModule } from '@angular/core'; +import { SharedModule } from '../../../../core/modules/shared.module'; +import { RouterModule } from '@angular/router'; +import { KnowledgeBaseService } from './knowledge-base.service'; +import { FuseKnowledgeBaseComponent } from './knowledge-base.component'; +import { FuseKnowledgeBaseArticleComponent } from './dialogs/article/article.component'; + +const routes = [ + { + path : 'pages/knowledge-base', + component: FuseKnowledgeBaseComponent, + resolve : { + knowledgeBase: KnowledgeBaseService + } + } +]; + +@NgModule({ + declarations : [ + FuseKnowledgeBaseComponent, + FuseKnowledgeBaseArticleComponent + ], + imports : [ + SharedModule, + RouterModule.forChild(routes) + ], + providers : [ + KnowledgeBaseService + ], + entryComponents: [ + FuseKnowledgeBaseArticleComponent + ] +}) +export class FuseKnowledgeBaseModule +{ +} diff --git a/src/app/main/content/pages/knowledge-base/knowledge-base.service.ts b/src/app/main/content/pages/knowledge-base/knowledge-base.service.ts new file mode 100644 index 00000000..845356a6 --- /dev/null +++ b/src/app/main/content/pages/knowledge-base/knowledge-base.service.ts @@ -0,0 +1,52 @@ +import { Injectable } from '@angular/core'; +import { ActivatedRouteSnapshot, Resolve, RouterStateSnapshot } from '@angular/router'; +import { Observable } from 'rxjs/Observable'; +import { HttpClient } from '@angular/common/http'; +import { BehaviorSubject } from 'rxjs/BehaviorSubject'; + +@Injectable() +export class KnowledgeBaseService implements Resolve +{ + knowledgeBase: any; + onKnowledgeBaseChanged: BehaviorSubject = new BehaviorSubject({}); + + constructor(private http: HttpClient) + { + } + + /** + * Resolve + * @param {ActivatedRouteSnapshot} route + * @param {RouterStateSnapshot} state + * @returns {Observable | Promise | any} + */ + resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable | Promise | any + { + return new Promise((resolve, reject) => { + Promise.all([ + this.getKnowledgeBase() + ]).then( + () => { + resolve(); + }, + reject + ); + }); + } + + /** + * Get knowledge base + */ + getKnowledgeBase(): Promise + { + return new Promise((resolve, reject) => { + + this.http.get('api/knowledge-base') + .subscribe((response: any) => { + this.knowledgeBase = response; + this.onKnowledgeBaseChanged.next(this.knowledgeBase); + resolve(this.knowledgeBase); + }, reject); + }); + } +} diff --git a/src/app/main/content/ui/page-layouts/carded/left-sidenav-2-tabbed/left-sidenav-2-tabbed.component.html b/src/app/main/content/ui/page-layouts/carded/left-sidenav-2-tabbed/left-sidenav-2-tabbed.component.html new file mode 100644 index 00000000..b6ec0879 --- /dev/null +++ b/src/app/main/content/ui/page-layouts/carded/left-sidenav-2-tabbed/left-sidenav-2-tabbed.component.html @@ -0,0 +1,151 @@ +
+ + +
+ + + + + + + + +
+

Sidenav header

+
+ + + +
+ + + +
+ + +
+ + + +
+ + +
+ +
+ + + +

Left sidenav with tabs and page scroll

+ +
+ +
+ + + +
+ + +
+ + + + +
+ + + +
+
+ + +
+ + + +
+
+ + +
+ + + +
+
+ + +
+ + + +
+
+ + +
+ + + +
+
+ + +
+ + + +
+
+ + +
+ + + +
+
+ + +
+ + + +
+
+ + +
+ + + +
+
+ + +
+ + + +
+
+ +
+ +
+ + +
+ + +
+ + +
+ +
\ No newline at end of file diff --git a/src/app/main/content/ui/page-layouts/carded/left-sidenav-2-tabbed/left-sidenav-2-tabbed.component.scss b/src/app/main/content/ui/page-layouts/carded/left-sidenav-2-tabbed/left-sidenav-2-tabbed.component.scss new file mode 100644 index 00000000..e69de29b diff --git a/src/app/main/content/ui/page-layouts/carded/left-sidenav-2-tabbed/left-sidenav-2-tabbed.component.ts b/src/app/main/content/ui/page-layouts/carded/left-sidenav-2-tabbed/left-sidenav-2-tabbed.component.ts new file mode 100644 index 00000000..8c03df33 --- /dev/null +++ b/src/app/main/content/ui/page-layouts/carded/left-sidenav-2-tabbed/left-sidenav-2-tabbed.component.ts @@ -0,0 +1,14 @@ +import { Component } from '@angular/core'; + +@Component({ + selector : 'fuse-carded-left-sidenav-2-tabbed', + templateUrl: './left-sidenav-2-tabbed.component.html', + styleUrls : ['./left-sidenav-2-tabbed.component.scss'] +}) +export class FuseCardedLeftSidenav2TabbedComponent +{ + constructor() + { + } + +} diff --git a/src/app/main/content/ui/page-layouts/carded/left-sidenav-tabbed/left-sidenav-tabbed.component.html b/src/app/main/content/ui/page-layouts/carded/left-sidenav-tabbed/left-sidenav-tabbed.component.html new file mode 100644 index 00000000..ab227d64 --- /dev/null +++ b/src/app/main/content/ui/page-layouts/carded/left-sidenav-tabbed/left-sidenav-tabbed.component.html @@ -0,0 +1,151 @@ +
+ + +
+ + + + + + + + +
+

Sidenav header

+
+ + + +
+ + + +
+ + +
+ + + +
+ + +
+ +
+ + + +

Left sidenav with tabs and content scroll

+ +
+ +
+ + + +
+ + +
+ + + + +
+ + + +
+
+ + +
+ + + +
+
+ + +
+ + + +
+
+ + +
+ + + +
+
+ + +
+ + + +
+
+ + +
+ + + +
+
+ + +
+ + + +
+
+ + +
+ + + +
+
+ + +
+ + + +
+
+ + +
+ + + +
+
+ +
+ +
+ + +
+ + +
+ + +
+ +
diff --git a/src/app/main/content/ui/page-layouts/carded/left-sidenav-tabbed/left-sidenav-tabbed.component.scss b/src/app/main/content/ui/page-layouts/carded/left-sidenav-tabbed/left-sidenav-tabbed.component.scss new file mode 100644 index 00000000..e69de29b diff --git a/src/app/main/content/ui/page-layouts/carded/left-sidenav-tabbed/left-sidenav-tabbed.component.ts b/src/app/main/content/ui/page-layouts/carded/left-sidenav-tabbed/left-sidenav-tabbed.component.ts new file mode 100644 index 00000000..0a44a54a --- /dev/null +++ b/src/app/main/content/ui/page-layouts/carded/left-sidenav-tabbed/left-sidenav-tabbed.component.ts @@ -0,0 +1,14 @@ +import { Component } from '@angular/core'; + +@Component({ + selector : 'fuse-carded-left-sidenav-tabbed', + templateUrl: './left-sidenav-tabbed.component.html', + styleUrls : ['./left-sidenav-tabbed.component.scss'] +}) +export class FuseCardedLeftSidenavTabbedComponent +{ + constructor() + { + } + +} diff --git a/src/app/main/content/ui/page-layouts/carded/right-sidenav-2-tabbed/right-sidenav-2-tabbed.component.html b/src/app/main/content/ui/page-layouts/carded/right-sidenav-2-tabbed/right-sidenav-2-tabbed.component.html new file mode 100644 index 00000000..fe4395a4 --- /dev/null +++ b/src/app/main/content/ui/page-layouts/carded/right-sidenav-2-tabbed/right-sidenav-2-tabbed.component.html @@ -0,0 +1,151 @@ +
+ + +
+ + + + + +
+ + +
+ +
+ + + +

Right sidenav with tabs and page scroll

+ +
+ +
+ + + +
+ + +
+ + + + +
+ + + +
+
+ + +
+ + + +
+
+ + +
+ + + +
+
+ + +
+ + + +
+
+ + +
+ + + +
+
+ + +
+ + + +
+
+ + +
+ + + +
+
+ + +
+ + + +
+
+ + +
+ + + +
+
+ + +
+ + + +
+
+ +
+ +
+ + +
+ + +
+ + + + + + +
+

Sidenav header

+
+ + + +
+ + + +
+ + +
+ + +
+ +
diff --git a/src/app/main/content/ui/page-layouts/carded/right-sidenav-2-tabbed/right-sidenav-2-tabbed.component.scss b/src/app/main/content/ui/page-layouts/carded/right-sidenav-2-tabbed/right-sidenav-2-tabbed.component.scss new file mode 100644 index 00000000..e69de29b diff --git a/src/app/main/content/ui/page-layouts/carded/right-sidenav-2-tabbed/right-sidenav-2-tabbed.component.ts b/src/app/main/content/ui/page-layouts/carded/right-sidenav-2-tabbed/right-sidenav-2-tabbed.component.ts new file mode 100644 index 00000000..ceaec07f --- /dev/null +++ b/src/app/main/content/ui/page-layouts/carded/right-sidenav-2-tabbed/right-sidenav-2-tabbed.component.ts @@ -0,0 +1,14 @@ +import { Component } from '@angular/core'; + +@Component({ + selector : 'fuse-carded-right-sidenav-2-tabbed', + templateUrl: './right-sidenav-2-tabbed.component.html', + styleUrls : ['./right-sidenav-2-tabbed.component.scss'] +}) +export class FuseCardedRightSidenav2TabbedComponent +{ + constructor() + { + } + +} diff --git a/src/app/main/content/ui/page-layouts/carded/right-sidenav-tabbed/right-sidenav-tabbed.component.html b/src/app/main/content/ui/page-layouts/carded/right-sidenav-tabbed/right-sidenav-tabbed.component.html new file mode 100644 index 00000000..98bfbf91 --- /dev/null +++ b/src/app/main/content/ui/page-layouts/carded/right-sidenav-tabbed/right-sidenav-tabbed.component.html @@ -0,0 +1,151 @@ +
+ + +
+ + + + + +
+ + +
+ +
+ + + +

Right sidenav with tabs and content scroll

+ +
+ +
+ + + +
+ + +
+ + + + +
+ + + +
+
+ + +
+ + + +
+
+ + +
+ + + +
+
+ + +
+ + + +
+
+ + +
+ + + +
+
+ + +
+ + + +
+
+ + +
+ + + +
+
+ + +
+ + + +
+
+ + +
+ + + +
+
+ + +
+ + + +
+
+ +
+ +
+ + +
+ + +
+ + + + + + +
+

Sidenav header

+
+ + + +
+ + + +
+ + +
+ + +
+ +
diff --git a/src/app/main/content/ui/page-layouts/carded/right-sidenav-tabbed/right-sidenav-tabbed.component.scss b/src/app/main/content/ui/page-layouts/carded/right-sidenav-tabbed/right-sidenav-tabbed.component.scss new file mode 100644 index 00000000..e69de29b diff --git a/src/app/main/content/ui/page-layouts/carded/right-sidenav-tabbed/right-sidenav-tabbed.component.ts b/src/app/main/content/ui/page-layouts/carded/right-sidenav-tabbed/right-sidenav-tabbed.component.ts new file mode 100644 index 00000000..371cb1ef --- /dev/null +++ b/src/app/main/content/ui/page-layouts/carded/right-sidenav-tabbed/right-sidenav-tabbed.component.ts @@ -0,0 +1,14 @@ +import { Component } from '@angular/core'; + +@Component({ + selector : 'fuse-carded-right-sidenav-tabbed', + templateUrl: './right-sidenav-tabbed.component.html', + styleUrls : ['./right-sidenav-tabbed.component.scss'] +}) +export class FuseCardedRightSidenavTabbedComponent +{ + constructor() + { + } + +} diff --git a/src/app/main/main.component.scss b/src/app/main/main.component.scss index 85dcb0f1..2c1b6977 100644 --- a/src/app/main/main.component.scss +++ b/src/app/main/main.component.scss @@ -6,12 +6,6 @@ fuse-main { width: 100%; height: 100%; - &.boxed { - max-width: 1200px; - margin: 0 auto; - @include mat-elevation(8); - } - > .mat-sidenav-container { display: flex; flex: 1; @@ -72,4 +66,10 @@ fuse-main { } } } + + &[fuse-layout-mode="boxed"] { + max-width: 1200px; + margin: 0 auto; + @include mat-elevation(8); + } } diff --git a/src/app/main/main.component.ts b/src/app/main/main.component.ts index c7896e3c..a8a7ce5c 100644 --- a/src/app/main/main.component.ts +++ b/src/app/main/main.component.ts @@ -14,7 +14,7 @@ export class FuseMainComponent implements OnInit, OnDestroy { onSettingsChanged: Subscription; fuseSettings: any; - @HostBinding('class.boxed') boxed; + @HostBinding('attr.fuse-layout-mode') layoutMode; constructor( private _renderer: Renderer2, @@ -29,7 +29,7 @@ export class FuseMainComponent implements OnInit, OnDestroy .subscribe( (newSettings) => { this.fuseSettings = newSettings; - this.boxed = this.fuseSettings.layout.mode === 'boxed'; + this.layoutMode = this.fuseSettings.layout.mode; } ); diff --git a/src/app/main/toolbar/toolbar.component.html b/src/app/main/toolbar/toolbar.component.html index 42d13d58..93b1f3ca 100644 --- a/src/app/main/toolbar/toolbar.component.html +++ b/src/app/main/toolbar/toolbar.component.html @@ -71,12 +71,20 @@ - + + +
diff --git a/src/app/main/toolbar/toolbar.component.ts b/src/app/main/toolbar/toolbar.component.ts index 5c7368e4..11727cc9 100644 --- a/src/app/main/toolbar/toolbar.component.ts +++ b/src/app/main/toolbar/toolbar.component.ts @@ -1,6 +1,7 @@ import { Component } from '@angular/core'; import { NavigationEnd, NavigationStart, Router } from '@angular/router'; import { FuseConfigService } from '../../core/services/config.service'; +import { TranslateService } from '@ngx-translate/core'; @Component({ selector : 'fuse-toolbar', @@ -18,7 +19,8 @@ export class FuseToolbarComponent constructor( private router: Router, - private fuseConfig: FuseConfigService + private fuseConfig: FuseConfigService, + private translate: TranslateService ) { this.userStatusOptions = [ @@ -55,11 +57,6 @@ export class FuseToolbarComponent 'title': 'English', 'flag' : 'us' }, - { - 'id' : 'es', - 'title': 'Spanish', - 'flag' : 'es' - }, { 'id' : 'tr', 'title': 'Turkish', @@ -92,4 +89,13 @@ export class FuseToolbarComponent // Do your search here... console.log(value); } + + setLanguage(lang) + { + // Set the selected language for toolbar + this.selectedLanguage = lang; + + // Use the selected language for translations + this.translate.use(lang.id); + } }