Skip to content
This repository was archived by the owner on Dec 18, 2024. It is now read-only.

Commit fd9c018

Browse files
committed
feat(faq): add faq view
Add faq view together with all dependencies, including SCSS styles for the view and the service for API connection. --- scss/include/modules/_faq.scss | 13 ++++++++++++ scss/style.scss | 1 + src/configuration/router-config.js | 3 ++- src/services/faqs/faq-service.js | 14 +++++++++++++ src/view-models/faqs/index.js | 20 +++++++++++++++++++ src/views/faqs/index.html | 33 +++++++++++++++++++++++++++++++ 6 files changed, 83 insertions(+), 1 deletion(-)
1 parent 574d52a commit fd9c018

File tree

6 files changed

+83
-1
lines changed

6 files changed

+83
-1
lines changed

scss/include/modules/_faq.scss

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
.faq-question {
2+
font-size: 18px;
3+
font-weight: 600;
4+
display: block;
5+
}
6+
7+
.faq-answer {
8+
background: #f3f3f4;
9+
border: 1px solid #e7eaec;
10+
border-radius: 3px;
11+
margin-top: 10px;
12+
padding: 15px;
13+
}

scss/style.scss

+1
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,6 @@
1414
@import "include/_animation";
1515

1616
/** modules **/
17+
@import "include/modules/_faq";
1718
@import "include/modules/_news";
1819
@import "include/modules/_profile";

src/configuration/router-config.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@ export default class {
2525
{route: ['auth/signin'], moduleId: 'view-models/auth/sign-in', title: 'Sign In'},
2626
{route: ['auth/signout'], moduleId: 'view-models/auth/sign-out', title: 'Sign Out'},
2727
{route: ['profiles/view/:id'], moduleId: 'view-models/profiles/view', title: 'Profile', auth: true},
28-
{route: ['profiles/edit'], moduleId: 'view-models/profiles/edit', title: 'Edit Profile', auth: true}
28+
{route: ['profiles/edit'], moduleId: 'view-models/profiles/edit', title: 'Edit Profile', auth: true},
29+
{route: ['faq', 'faq/index'], moduleId: 'view-models/faqs/index', title: 'FAQ'}
2930
]);
3031
config.mapUnknownRoutes('view-models/errors/error404');
3132
};

src/services/faqs/faq-service.js

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import {inject} from 'aurelia-framework';
2+
import {Endpoint} from 'aurelia-api';
3+
4+
@inject(Endpoint.of())
5+
export class FaqService {
6+
constructor(apiClient) {
7+
this.apiClient = apiClient;
8+
}
9+
10+
get() {
11+
return this.apiClient.find('faq')
12+
.catch(error => Promise.reject(error));
13+
}
14+
}

src/view-models/faqs/index.js

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import {inject} from 'aurelia-framework';
2+
import {FaqService} from '../../services/faqs/faq-service';
3+
4+
@inject(FaqService)
5+
export class Index {
6+
constructor(faqService) {
7+
this.faqService = faqService;
8+
this.faqs = [];
9+
}
10+
11+
activate() {
12+
return this.faqService.get()
13+
.then(faqs => {
14+
this.faqs = faqs;
15+
})
16+
.catch(() => {
17+
this.faqs = [];
18+
});
19+
}
20+
}

src/views/faqs/index.html

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
<template>
2+
<section class="au-animate">
3+
<div class="row">
4+
<div class="col-lg-12">
5+
<div class="card card-default card-block" if.bind="!faqs">
6+
<p class="card-text">
7+
At the moment, no FAQs are available.
8+
</p>
9+
</div>
10+
11+
<div id="accordion" role="tablist" aria-multiselectable="true">
12+
<div class="card card-default card-block" repeat.for="item of faqs">
13+
<div class="row">
14+
<div class="col-md-7">
15+
<a class="faq-question" data-toggle="collapse" data-parent="#accordion" href="#faq-${item.id}"
16+
aria-expanded="false" aria-controls="faq-${item.id}">${item.question}</a>
17+
<small>Added <i class="fa fa-clock-o"></i> ${item.created_at}</small>
18+
</div>
19+
</div>
20+
<div class="row">
21+
<div class="col-lg-12">
22+
<div id="faq-${item.id}" class="panel-collapse collapse" role="tabpanel"
23+
aria-labelledby="faq-${item.id}">
24+
<div class="faq-answer" innerhtml="${item.answer}"></div>
25+
</div>
26+
</div>
27+
</div>
28+
</div>
29+
</div>
30+
</div>
31+
</div>
32+
</section>
33+
</template>

0 commit comments

Comments
 (0)