aboutsummaryrefslogtreecommitdiff
path: root/src/DevHive.Angular
diff options
context:
space:
mode:
authorSyndamia <kamen.d.mladenov@protonmail.com>2021-02-02 12:55:55 +0200
committerSyndamia <kamen.d.mladenov@protonmail.com>2021-02-02 12:55:55 +0200
commitfc0a94bcc6ad82b377f0d33f6d1037a6ddff6c41 (patch)
tree1542e644980e17833f2d61fd8c0b6ec05262ed6d /src/DevHive.Angular
parent97b3aa3cef122cf6e695a5122b75fdfcee9ebad3 (diff)
downloadDevHive-fc0a94bcc6ad82b377f0d33f6d1037a6ddff6c41.tar
DevHive-fc0a94bcc6ad82b377f0d33f6d1037a6ddff6c41.tar.gz
DevHive-fc0a94bcc6ad82b377f0d33f6d1037a6ddff6c41.zip
Added design and very small part of functionality for file uploading when creating a post
Diffstat (limited to 'src/DevHive.Angular')
-rw-r--r--src/DevHive.Angular/src/app/components/feed/feed.component.css90
-rw-r--r--src/DevHive.Angular/src/app/components/feed/feed.component.html32
-rw-r--r--src/DevHive.Angular/src/app/components/feed/feed.component.ts17
3 files changed, 119 insertions, 20 deletions
diff --git a/src/DevHive.Angular/src/app/components/feed/feed.component.css b/src/DevHive.Angular/src/app/components/feed/feed.component.css
index 73e1f3e..c3fee62 100644
--- a/src/DevHive.Angular/src/app/components/feed/feed.component.css
+++ b/src/DevHive.Angular/src/app/components/feed/feed.component.css
@@ -75,13 +75,9 @@
/* Top bar */
-form {
- width: 100%;
- height: 100%;
-}
-
#top-bar {
display: flex;
+ flex-direction: column;
width: 98%;
margin: 0 auto;
margin-bottom: .5em;
@@ -99,6 +95,29 @@ form {
width: inherit;
}
+#top-bar-open-chat {
+ /* Until implemented */
+ display: none;
+}
+
+#main-content {
+ display: flex;
+}
+
+/* Create post */
+
+#create-post-form {
+ width: 100%;
+ position: relative;
+ display: flex;
+ flex-direction: column;
+ box-sizing: border-box;
+}
+
+#form-inputs {
+ display: flex;
+}
+
#top-bar-create-post {
flex: 1;
font-size: inherit;
@@ -110,9 +129,64 @@ form {
border-radius: .6em;
}
-#top-bar-open-chat {
- /* Until implemented */
- display: none;
+#file-upload {
+ font-size: inherit;
+ color: transparent;
+ width: 1.5em;
+ height: 1.5em;
+}
+
+#file-upload:hover {
+ cursor: pointer;
+}
+
+#file-upload::-webkit-file-upload-button {
+ visibility: hidden;
+}
+
+#attachment-img {
+ height: 1.5em;
+ width: 1.5em;
+ position: absolute;
+ right: .4em;
+ pointer-events: none;
+}
+
+#attachments {
+ display: flex;
+ flex-wrap: wrap;
+ color: gray;
+ font-size: .75em;
+ margin: 0 .3em;
+}
+
+.attachment {
+ border: 2px solid black;
+ border-radius: .6em;
+ margin-top: .2em;
+ margin-right: .2em;
+ padding: .2em;
+ display: flex;
+ align-items: center;
+}
+
+.attachment:last-child {
+ margin-right: 0;
+}
+
+.remove-attachment {
+ font-size: .9em;
+ color: var(--failure);
+ background-color: white;
+ border-radius: .2em;
+ margin: 0 .2em;
+ padding: .2em;
+}
+
+.remove-attachment:hover {
+ color: white;
+ background-color: var(--failure);
+ cursor: pointer;
}
/* Posts */
diff --git a/src/DevHive.Angular/src/app/components/feed/feed.component.html b/src/DevHive.Angular/src/app/components/feed/feed.component.html
index 1ec040b..055ca16 100644
--- a/src/DevHive.Angular/src/app/components/feed/feed.component.html
+++ b/src/DevHive.Angular/src/app/components/feed/feed.component.html
@@ -15,15 +15,29 @@
<button class="submit-btn" (click)="logout()">Logout</button>
</nav>
<div id="feed-content">
- <nav id="top-bar" class="rounded-border">
- <img id="top-bar-profile-pic" class="round-image" [src]="user.imageUrl" alt="" (click)="goToProfile()">
- <form [formGroup]="createPostFormGroup" (ngSubmit)="createPost()">
- <input id="top-bar-create-post" type="text" formControlName="newPostMessage" placeholder="What's on your mind?"/>
- <input type="submit" style="display: none" /> <!-- You need this element, so when you press enter the request is sent -->
- </form>
- <a id="top-bar-open-chat" href="">
- <img src="assets/images/feed/chat-pic.png" alt=""/>
- </a>
+ <nav id="top-bar">
+ <div id="main-content">
+ <img id="top-bar-profile-pic" class="round-image" [src]="user.imageUrl" alt="" (click)="goToProfile()">
+ <form id="create-post-form" class="rounded-border" [formGroup]="createPostFormGroup" (ngSubmit)="createPost()">
+ <div id="form-inputs">
+ <input id="top-bar-create-post" type="text" formControlName="newPostMessage" placeholder="What's on your mind?"/>
+ <input type="submit" style="display: none" /> <!-- You need this element, so when you press enter the request is sent -->
+ <img id="attachment-img" src="assets/images/paper-clip.png">
+ <input id="file-upload" type="file" formControlName="fileUpload" (change)="onFileUpload($event)">
+ </div>
+ <div id="attachments">
+ <div *ngFor="let file of files" class="attachment">
+ {{ file.name }}
+ <div class="remove-attachment" (click)="removeAttachment(file.name)">
+ ☒
+ </div>
+ </div>
+ </div>
+ </form>
+ <a id="top-bar-open-chat" href="">
+ <img src="assets/images/feed/chat-pic.png" alt=""/>
+ </a>
+ </div>
</nav>
<div id="posts" class="scroll-standalone">
<div id="no-posts-msg" *ngIf="posts.length === 0">
diff --git a/src/DevHive.Angular/src/app/components/feed/feed.component.ts b/src/DevHive.Angular/src/app/components/feed/feed.component.ts
index 0684ddb..7ce1133 100644
--- a/src/DevHive.Angular/src/app/components/feed/feed.component.ts
+++ b/src/DevHive.Angular/src/app/components/feed/feed.component.ts
@@ -23,6 +23,7 @@ export class FeedComponent implements OnInit {
public user: User;
public posts: Post[];
public createPostFormGroup: FormGroup;
+ public files: File[];
constructor(private _titleService: Title, private _fb: FormBuilder, private _router: Router, private _userService: UserService, private _feedService: FeedService, private _postService: PostService, private _tokenService: TokenService) {
this._titleService.setTitle(this._title);
@@ -36,13 +37,15 @@ export class FeedComponent implements OnInit {
this.posts = [];
this.user = this._userService.getDefaultUser();
+ this.files = [];
const now = new Date();
now.setHours(now.getHours() + 2); // accounting for eastern european timezone
this._timeLoaded = now.toISOString();
this.createPostFormGroup = this._fb.group({
- newPostMessage: new FormControl('')
+ newPostMessage: new FormControl(''),
+ fileUpload: new FormControl('')
});
this._userService.getUserFromSessionStorageRequest().subscribe(
@@ -62,8 +65,7 @@ export class FeedComponent implements OnInit {
this.posts = Object.values(result)[0];
this.finishUserLoading();
},
- (err: HttpErrorResponse) => {
- const test = err.status;
+ (err) => {
this.finishUserLoading();
}
);
@@ -86,6 +88,15 @@ export class FeedComponent implements OnInit {
this._router.navigate(['/login']);
}
+ onFileUpload(event: any): void {
+ this.files.push(event.target.files[0]);
+ this.createPostFormGroup.get('fileUpload')?.reset();
+ }
+
+ removeAttachment(fileName: string): void {
+ this.files = this.files.filter(x => x.name !== fileName);
+ }
+
createPost(): void {
const postMessage = this.createPostFormGroup.get('newPostMessage')?.value;