diff --git a/src/app/projects/project-card/project-card.component.html b/src/app/projects/project-card/project-card.component.html index 6cc1921..b257702 100644 --- a/src/app/projects/project-card/project-card.component.html +++ b/src/app/projects/project-card/project-card.component.html @@ -1,4 +1,3 @@ -

{{project.title}}

-

{{project.description}}

+ {{project.title + " - " + project.date}}
\ No newline at end of file diff --git a/src/app/projects/project-card/project-card.component.scss b/src/app/projects/project-card/project-card.component.scss index d902910..11d9562 100644 --- a/src/app/projects/project-card/project-card.component.scss +++ b/src/app/projects/project-card/project-card.component.scss @@ -11,7 +11,7 @@ border: colors.$inklets-color-highlight-bg 2px dashed; background-color: colors.$inklets-color-fg; text-decoration: none; - padding: 0 20px 0 20px; + padding: 5px 20px 5px 20px; } a:hover { diff --git a/src/app/projects/project/project.component.html b/src/app/projects/project/project.component.html index dc66179..c6545ee 100644 --- a/src/app/projects/project/project.component.html +++ b/src/app/projects/project/project.component.html @@ -1,2 +1 @@ -

project works!

-{{project.title}} + diff --git a/src/app/projects/project/project.component.scss b/src/app/projects/project/project.component.scss index e69de29..7bfa459 100644 --- a/src/app/projects/project/project.component.scss +++ b/src/app/projects/project/project.component.scss @@ -0,0 +1,10 @@ +@use 'src/app/shared/styles/_variables.color' as colors; + +:host { + display: flex; + flex-direction: column; + flex-grow: 1; + overflow-y: auto; + padding: 0 20px 0 20px; + margin: 0 140px 10px 140px; +} \ No newline at end of file diff --git a/src/app/projects/project/project.component.ts b/src/app/projects/project/project.component.ts index ce93a3e..9325d51 100644 --- a/src/app/projects/project/project.component.ts +++ b/src/app/projects/project/project.component.ts @@ -1,4 +1,4 @@ -import { Component, OnDestroy, OnInit } from '@angular/core'; +import { Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core'; import { ActivatedRoute } from '@angular/router'; import { Subject } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; @@ -8,17 +8,18 @@ import { ProjectsService } from '../projects.service'; @Component({ selector: 'app-project', templateUrl: './project.component.html', + // encapsulation: ViewEncapsulation.None, styleUrls: ['./project.component.scss'] }) export class ProjectComponent implements OnInit, OnDestroy { _unsubscribe$: Subject = new Subject(); project: Project = { - title: '', - description: '', slug: '', - ct: '', - body: '', + title: '', + date: '', + category: '', + content: '', }; constructor( diff --git a/src/app/projects/projects.component.ts b/src/app/projects/projects.component.ts index 17af914..6da1e8b 100644 --- a/src/app/projects/projects.component.ts +++ b/src/app/projects/projects.component.ts @@ -26,7 +26,7 @@ export class ProjectsComponent implements OnInit, OnDestroy { .subscribe((result: Project[]) => { this.uncategorizedProjects = result; }); - this.projectsService.getInvoicesToApprove(); + this.projectsService.getProjects(); } ngOnDestroy(): void { diff --git a/src/app/projects/projects.service.ts b/src/app/projects/projects.service.ts index c77cffc..fc374fb 100644 --- a/src/app/projects/projects.service.ts +++ b/src/app/projects/projects.service.ts @@ -43,7 +43,7 @@ export class ProjectsService { * I am actively avoiding any kind of environment management, this is a very basic site and currently this is the only api call. */ - private PROJECT_API_URL = "https://cms.inkletblot.com/" + private PROJECT_API_URL = "https://cms.inkletblot.com" constructor(private http: HttpClient, private router: Router) { } @@ -53,9 +53,9 @@ export class ProjectsService { }) }; - getInvoicesToApprove(): void { + getProjects(): void { this.http - .get(`${this.PROJECT_API_URL}`, this.httpOptions) + .get(`${this.PROJECT_API_URL}/posts`, this.httpOptions) .subscribe( (response: Project[]) => { if (response) { @@ -71,6 +71,25 @@ export class ProjectsService { ); } + getSingleProject(id: string): void { + this.http + .get(`${this.PROJECT_API_URL}/post/${id}`, this.httpOptions) + .subscribe( + (response: Project) => { + if (response) { + // using text/plain so as to not get the preflight options request + // as such : Project[] does not work as expected and objects must be parsed. + this.currentProject = response; + // filter out different categories here currently only one + } + }, + (error) => { + this.apiErrored = true; + this.router.navigate(['not-found']) + } + ); + } + /** * This is not very efficient code but I'm not planning on having that many projects and (if this turns into a blog) blog posts * If this does become a general blog, then I will make this a bit more efficient. @@ -85,7 +104,7 @@ export class ProjectsService { } }) if (!found) { - this.router.navigate(['not-found']) + this.getSingleProject(id) } } } diff --git a/src/app/shared/models/project.model.ts b/src/app/shared/models/project.model.ts index 196064d..522b454 100644 --- a/src/app/shared/models/project.model.ts +++ b/src/app/shared/models/project.model.ts @@ -1,5 +1,6 @@ export interface Project { slug: string, + title: string, date: string, category: string, content: string diff --git a/src/styles.scss b/src/styles.scss index 9e71b2c..e5950b8 100644 --- a/src/styles.scss +++ b/src/styles.scss @@ -10,4 +10,94 @@ body { font-family: Roboto, 'Helvetica Neue', sans-serif; background-color: colors.$inklets-color-black; color: colors.$inklets-color-white; +} + +/* + + Codehilite styles for api content + +*/ +pre { line-height: 125%; } +td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +td.linenos .special { color: #979797; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +span.linenos.special { color: #979797; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +.codehilite .hll { background-color: #ffffcc } +.codehilite { background: #000000; padding: 5px; } +.codehilite .c { color: #408080; font-style: italic } /* Comment */ +.codehilite .err { border: 1px solid #FF0000 } /* Error */ +.codehilite .k { color: #008000; font-weight: bold } /* Keyword */ +.codehilite .o { color: #666666 } /* Operator */ +.codehilite .ch { color: #408080; font-style: italic } /* Comment.Hashbang */ +.codehilite .cm { color: #408080; font-style: italic } /* Comment.Multiline */ +.codehilite .cp { color: #BC7A00 } /* Comment.Preproc */ +.codehilite .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */ +.codehilite .c1 { color: #408080; font-style: italic } /* Comment.Single */ +.codehilite .cs { color: #408080; font-style: italic } /* Comment.Special */ +.codehilite .gd { color: #A00000 } /* Generic.Deleted */ +.codehilite .ge { font-style: italic } /* Generic.Emph */ +.codehilite .gr { color: #FF0000 } /* Generic.Error */ +.codehilite .gh { color: #000080; font-weight: bold } /* Generic.Heading */ +.codehilite .gi { color: #00A000 } /* Generic.Inserted */ +.codehilite .go { color: #888888 } /* Generic.Output */ +.codehilite .gp { color: #000080; font-weight: bold } /* Generic.Prompt */ +.codehilite .gs { font-weight: bold } /* Generic.Strong */ +.codehilite .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ +.codehilite .gt { color: #0044DD } /* Generic.Traceback */ +.codehilite .kc { color: #008000; font-weight: bold } /* Keyword.Constant */ +.codehilite .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */ +.codehilite .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */ +.codehilite .kp { color: #008000 } /* Keyword.Pseudo */ +.codehilite .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */ +.codehilite .kt { color: #B00040 } /* Keyword.Type */ +.codehilite .m { color: #666666 } /* Literal.Number */ +.codehilite .s { color: #BA2121 } /* Literal.String */ +.codehilite .na { color: #7D9029 } /* Name.Attribute */ +.codehilite .nb { color: #008000 } /* Name.Builtin */ +.codehilite .nc { color: #0000FF; font-weight: bold } /* Name.Class */ +.codehilite .no { color: #880000 } /* Name.Constant */ +.codehilite .nd { color: #AA22FF } /* Name.Decorator */ +.codehilite .ni { color: #999999; font-weight: bold } /* Name.Entity */ +.codehilite .ne { color: #D2413A; font-weight: bold } /* Name.Exception */ +.codehilite .nf { color: #0000FF } /* Name.Function */ +.codehilite .nl { color: #A0A000 } /* Name.Label */ +.codehilite .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */ +.codehilite .nt { color: #008000; font-weight: bold } /* Name.Tag */ +.codehilite .nv { color: #19177C } /* Name.Variable */ +.codehilite .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */ +.codehilite .w { color: #bbbbbb } /* Text.Whitespace */ +.codehilite .mb { color: #666666 } /* Literal.Number.Bin */ +.codehilite .mf { color: #666666 } /* Literal.Number.Float */ +.codehilite .mh { color: #666666 } /* Literal.Number.Hex */ +.codehilite .mi { color: #666666 } /* Literal.Number.Integer */ +.codehilite .mo { color: #666666 } /* Literal.Number.Oct */ +.codehilite .sa { color: #BA2121 } /* Literal.String.Affix */ +.codehilite .sb { color: #BA2121 } /* Literal.String.Backtick */ +.codehilite .sc { color: #BA2121 } /* Literal.String.Char */ +.codehilite .dl { color: #BA2121 } /* Literal.String.Delimiter */ +.codehilite .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */ +.codehilite .s2 { color: #BA2121 } /* Literal.String.Double */ +.codehilite .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */ +.codehilite .sh { color: #BA2121 } /* Literal.String.Heredoc */ +.codehilite .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */ +.codehilite .sx { color: #008000 } /* Literal.String.Other */ +.codehilite .sr { color: #BB6688 } /* Literal.String.Regex */ +.codehilite .s1 { color: #BA2121 } /* Literal.String.Single */ +.codehilite .ss { color: #19177C } /* Literal.String.Symbol */ +.codehilite .bp { color: #008000 } /* Name.Builtin.Pseudo */ +.codehilite .fm { color: #0000FF } /* Name.Function.Magic */ +.codehilite .vc { color: #19177C } /* Name.Variable.Class */ +.codehilite .vg { color: #19177C } /* Name.Variable.Global */ +.codehilite .vi { color: #19177C } /* Name.Variable.Instance */ +.codehilite .vm { color: #19177C } /* Name.Variable.Magic */ +.codehilite .il { color: #666666 } /* Literal.Number.Integer.Long */ + + +* a { + text-decoration: none; + color: colors.$inklets-color-fg; +} + +* a:hover { + color: colors.$inklets-color-highlight-fg; } \ No newline at end of file