Commit 6ca04836 authored by Seth Falco's avatar Seth Falco 🐼
Browse files

Adding system theming support. #45 (WIP)

Removed PayPal from sponsor methods.
Updated dependencies and fixed deprecations.
parent 189c3cd9
Pipeline #187077195 passed with stages
in 14 minutes
......@@ -13,8 +13,6 @@ stages:
- deploy-docker
- deploy-k8s
# All cache are uploaded and downloaded everywhere to avoids
# tasks or other builds from removing eachothers files.
cache:
policy: pull-push
paths:
......
# Bug
<!--
A bug regarding this website, this can be visual or logical.
Please report any unexpected behavior here, however remember
this is not a place to ask for help, it's to report bugs regarding
this repository.
Please report any unexpected behavior here.
Errors caused by use of deprecated tools/APIs or legacy browsers will
not be considered bugs.
This is pre-filled with example values, feel free to
remove them before populating the template.
If you feel a heading is irrelevant, just remove it.
-->
## Description
<!-- Explain what this is about, try to use full sentences, and make your point clear. -->
## Motivation
## Steps to Reproduce
<!--
If possible, try to be as concise as possible!
If you're not 100% sure of the cause, for example it broken
on one user-agent, but not another, and you're not sure what the difference is,
then please just try to provide as much information as possible!
-->
## Expected Behavior
<!-- What were you expecting to happen here? -->
## Actual Behavior
<!-- What actually happened here? If it's intermittent, please specify roughly how often it occurs. -->
/label ~Bug
/label ~Bug
......@@ -4,9 +4,6 @@
be a small optimization of compliance related change, but
doesn't add any significant functionality.
This is pre-filled with example values, feel free to
remove them before populating the template.
If you feel a heading is irrelevant, just remove it.
-->
......@@ -15,4 +12,4 @@
## Motivation
/label ~Improvement
/label ~Improvement
......@@ -2,9 +2,6 @@
<!--
This is for new features which don't exist on the site yet.
This is pre-filled with example values, feel free to
remove them before populating the template.
If you feel a heading is irrelevant, just remove it.
-->
......@@ -19,4 +16,4 @@
-->
## Interface
/label ~"New Feature"
/label ~"New Feature"
......@@ -7,20 +7,20 @@
## About
This is the frontend for the Elypia website.
# Requirements
## Requirements
* [Elypia API]
* [Angular 9+]
* [NodeJS 12.15.0]
* [Angular 10+][Angular]
* [NodeJS 12.15.0][NodeJS]
## Open-Source
This project is open-source under the [Apache 2.0]!
This project is open-source under the [Apache 2.0]!
While not legal advice, you can find a [TL;DR] that sums up what you're
allowed and not allowed to do along with any requirements if you want
to use or derive work from this source code.
to use or derive work from this repository.
**The repository includes our trade name and registered trademarks,
which are not granted under the license. Please do not use these
except as required to describe the origin of work.**
**The repository includes our trade name and registered trademarks,
which are not granted under the license. Please do not use these
except as required to describe the origin of work.**
[matrix-community]: https://matrix.to/#/+elypia:matrix.org "Matrix Invite"
[discord-guild]: https://discord.com/invite/hprGMaM "Discord Invite"
......@@ -28,8 +28,8 @@ except as required to describe the origin of work.**
[gitlab]: https://gitlab.com/Elypia/elypia-website/commits/master "Repository on GitLab"
[elypia-donate]: https://elypia.org/donate "Donate to Elypia"
[Elypia API]: https://gitlab.com/Elypia/elypia-api "Elypia API"
[NodeJS 12.15.0]: https://nodejs.org/en/ "NodeJS"
[Angular 9+]: https://angular.io "Angular CLI"
[NodeJS]: https://nodejs.org/en/ "NodeJS"
[Angular]: https://angular.io "Angular CLI"
[Apache 2.0]: https://www.apache.org/licenses/LICENSE-2.0 "Apache 2.0 License"
[TL;DR]: https://tldrlegal.com/license/apache-license-2.0-(apache-2.0) "TL;DR of Apache 2.0"
......
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -17,60 +17,62 @@
"lint": "ng lint",
"e2e": "ng e2e",
"xi18n": "ng xi18n --format=xlf --output-path ./locales/ --out-file messages.en-US.xlf",
"check": "npm run lint && npm run test && npm run e2e && npm run docker:dev",
"docker:dev": "npm run build && docker build -t elypia/elypia-website:dev .",
"docker:dev": "docker build -t elypia/elypia-website:dev .",
"nginx:dev": "npm run docker:dev && docker run -p 80:80 elypia/elypia-website:dev",
"check": "npm run lint && npm run test && npm run e2e",
"assemble": "npm run check && npm run build",
"assemble:image": "npm run assemble && npm run docker:dev",
"postinstall": "ngcc"
},
"dependencies": {
"@angular/animations": "^10.0.2",
"@angular/cdk": "^10.0.1",
"@angular/common": "^10.0.2",
"@angular/compiler": "^10.0.2",
"@angular/core": "^10.0.2",
"@angular/forms": "^10.0.2",
"@angular/localize": "^10.0.2",
"@angular/material": "^10.0.1",
"@angular/platform-browser": "^10.0.2",
"@angular/platform-browser-dynamic": "^10.0.2",
"@angular/router": "^10.0.2",
"@angular/animations": "^10.1.0",
"@angular/cdk": "^10.2.0",
"@angular/common": "^10.1.0",
"@angular/compiler": "^10.1.0",
"@angular/core": "^10.1.0",
"@angular/forms": "^10.1.0",
"@angular/localize": "^10.1.0",
"@angular/material": "^10.2.0",
"@angular/platform-browser": "^10.1.0",
"@angular/platform-browser-dynamic": "^10.1.0",
"@angular/router": "^10.1.0",
"@elypia/ng-elypian": "^1.1.1",
"@fortawesome/angular-fontawesome": "^0.6.1",
"@fortawesome/fontawesome-pro": "^5.13.1",
"@fortawesome/fontawesome-svg-core": "^1.2.29",
"@fortawesome/free-brands-svg-icons": "^5.13.1",
"@fortawesome/pro-duotone-svg-icons": "^5.13.1",
"@fortawesome/pro-regular-svg-icons": "^5.13.1",
"@fortawesome/pro-solid-svg-icons": "^5.13.1",
"@types/sha1": "^1.1.2",
"@fortawesome/angular-fontawesome": "^0.7.0",
"@fortawesome/fontawesome-pro": "^5.14.0",
"@fortawesome/fontawesome-svg-core": "^1.2.30",
"@fortawesome/free-brands-svg-icons": "^5.14.0",
"@fortawesome/pro-duotone-svg-icons": "^5.14.0",
"@fortawesome/pro-regular-svg-icons": "^5.14.0",
"@fortawesome/pro-solid-svg-icons": "^5.14.0",
"core-js": "^2.6.11",
"ngx-logger": "^4.1.9",
"ngx-markdown": "^9.1.1",
"rxjs": "^6.5.5",
"tslib": "^2.0.0",
"ngx-markdown": "^10.1.1",
"rxjs": "^6.6.3",
"tslib": "^2.0.1",
"zone.js": "^0.10.3"
},
"devDependencies": {
"@angular-devkit/build-angular": "^0.1000.0",
"@angular/cli": "^10.0.0",
"@angular/compiler-cli": "^10.0.2",
"@angular/language-service": "^10.0.2",
"@schematics/angular": "^9.1.9",
"@types/jasmine": "^2.8.17",
"@angular-devkit/build-angular": "^0.1001.0",
"@angular/cli": "^10.1.0",
"@angular/compiler-cli": "^10.1.0",
"@angular/language-service": "^10.1.0",
"@schematics/angular": "^10.1.0",
"@types/jasmine": "^3.5.14",
"@types/jasminewd2": "^2.0.8",
"@types/node": "^12.12.47",
"@types/node": "^14.6.4",
"@types/sha1": "^1.1.2",
"codelyzer": "^5.2.2",
"jasmine-core": "~3.5.0",
"jasmine-core": "^3.6.0",
"jasmine-spec-reporter": "~5.0.0",
"karma": "~5.0.0",
"karma": "^5.2.1",
"karma-chrome-launcher": "~3.1.0",
"karma-coverage-istanbul-reporter": "~3.0.2",
"karma-jasmine": "~3.3.0",
"karma-jasmine": "^4.0.1",
"karma-spec-reporter": "0.0.32",
"protractor": "~7.0.0",
"puppeteer": "^2.1.1",
"puppeteer": "^5.2.1",
"ts-node": "~7.0.0",
"tslint": "~6.1.0",
"typescript": "~3.9.5"
"tslint": "^6.1.3",
"typescript": "^3.9.7"
}
}
......@@ -14,7 +14,7 @@
~ limitations under the License.
-->
<div id="elypia-app" class="mat-app-background" [ngClass]="themeService.selectedTheme.class">
<div id="elypia-app" class="mat-app-background" [attr.data-theme]="themeService.selectedTheme?.class">
<app-toolbar class="non-content" [MenuTree]="MenuTree"></app-toolbar>
<main id="content">
<router-outlet></router-outlet>
......
......@@ -14,7 +14,7 @@
* limitations under the License.
*/
import {async, TestBed} from '@angular/core/testing';
import {TestBed, waitForAsync} from '@angular/core/testing';
import {AppComponent} from './app.component';
import {CommonModule} from '@angular/common';
import {RouterTestingModule} from '@angular/router/testing';
......@@ -32,7 +32,7 @@ import {ToolbarModule} from './toolbar/toolbar.module';
import {FooterModule} from './footer/footer.module';
describe('AppComponent', () => {
beforeEach(async(() => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
declarations: [
AppComponent
......
......@@ -71,7 +71,6 @@ import {faInfoCircle} from '@fortawesome/pro-solid-svg-icons/faInfoCircle';
import {faCopyright} from '@fortawesome/pro-regular-svg-icons/faCopyright';
import {faUniversity} from '@fortawesome/pro-solid-svg-icons/faUniversity';
import {faCreditCard} from '@fortawesome/pro-solid-svg-icons/faCreditCard';
import {faPaypal} from '@fortawesome/free-brands-svg-icons/faPaypal';
import {faTshirt} from '@fortawesome/pro-solid-svg-icons/faTshirt';
import {faDownload} from '@fortawesome/pro-solid-svg-icons/faDownload';
import {faPaste} from '@fortawesome/pro-duotone-svg-icons/faPaste';
......@@ -194,7 +193,6 @@ export class AppModule {
faLinkedin,
faMastodon,
faPaste,
faPaypal,
faRedditAlien,
faStar,
faTshirt,
......
......@@ -14,7 +14,7 @@
* limitations under the License.
*/
import {async, ComponentFixture, TestBed} from '@angular/core/testing';
import {ComponentFixture, TestBed, waitForAsync} from '@angular/core/testing';
import {ArticlePageComponent} from './article-page.component';
import {ElyLoadableModule, ElyTimestampModule} from '@elypia/ng-elypian';
import {ArticleComponent} from '../article/article.component';
......@@ -30,7 +30,7 @@ describe('ArticlePageComponent', () => {
let component: ArticlePageComponent;
let fixture: ComponentFixture<ArticlePageComponent>;
beforeEach(async(() => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
declarations: [
ArticlePageComponent,
......
......@@ -14,7 +14,7 @@
* limitations under the License.
*/
import {async, ComponentFixture, TestBed} from '@angular/core/testing';
import {ComponentFixture, TestBed, waitForAsync} from '@angular/core/testing';
import {ArticleComponent} from './article.component';
import {RouterTestingModule} from '@angular/router/testing';
......@@ -29,7 +29,7 @@ describe('ArticleComponent', () => {
let component: ArticleComponent;
let fixture: ComponentFixture<ArticleComponent>;
beforeEach(async(() => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
declarations: [ ArticleComponent ],
imports: [
......
......@@ -14,7 +14,7 @@
* limitations under the License.
*/
import {async, ComponentFixture, TestBed} from '@angular/core/testing';
import {ComponentFixture, TestBed, waitForAsync} from '@angular/core/testing';
import {CommentComponent} from './comment.component';
import {CommonModule} from '@angular/common';
......@@ -27,7 +27,7 @@ describe('CommentComponent', () => {
let component: CommentComponent;
let fixture: ComponentFixture<CommentComponent>;
beforeEach(async(() => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
declarations: [
CommentComponent
......
......@@ -14,7 +14,7 @@
* limitations under the License.
*/
import {async, ComponentFixture, TestBed} from '@angular/core/testing';
import {ComponentFixture, TestBed, waitForAsync} from '@angular/core/testing';
import {DonateMethodComponent} from './donate-method.component';
import {MatCardModule} from '@angular/material/card';
......@@ -26,7 +26,7 @@ describe('DonateMethodComponent', () => {
let component: DonateMethodComponent;
let fixture: ComponentFixture<DonateMethodComponent>;
beforeEach(async(() => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
declarations: [ DonateMethodComponent ],
imports: [
......
......@@ -92,14 +92,6 @@
</p>
<fa-icon class="funding-icon" [icon]="['fas', 'credit-card']"></fa-icon>
</app-donate-method>
<app-donate-method url="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=DBXVG4F28J4FW&source=url"
i18n-name name="PayPal">
<p class="description" i18n>
If you have a PayPal account you can donate using the attached
credit/debit card, bank account, or PayPal balance.
</p>
<fa-icon class="funding-icon" [icon]="['fab', 'paypal']"></fa-icon>
</app-donate-method>
<app-donate-method url="https://www.humblebundle.com/?partner=elypia"
i18n-name name="Humble Bundle">
<p class="description" i18n>
......
......@@ -14,7 +14,7 @@
* limitations under the License.
*/
import {async, ComponentFixture, TestBed} from '@angular/core/testing';
import {ComponentFixture, TestBed, waitForAsync} from '@angular/core/testing';
import {DonatePageComponent} from './donate-page.component';
import {DonateMethodComponent} from '../donate-method/donate-method.component';
......@@ -28,7 +28,7 @@ describe('DonatePageComponent', () => {
let component: DonatePageComponent;
let fixture: ComponentFixture<DonatePageComponent>;
beforeEach(async(() => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
declarations: [
DonatePageComponent,
......
......@@ -31,7 +31,7 @@ export class DonatePageComponent {
private static readonly Description: MetaDefinition = {
name: 'description',
content: 'Support Elypia by using any of the methods to donate which include bank transfer, ' +
'card, PayPal, or buying merchandise on Redbubble.'
'card, or buying merchandise on Redbubble.'
};
constructor(private titleService: Title, private meta: Meta, private matSnackBar: MatSnackBar) {
......
......@@ -14,7 +14,7 @@
* limitations under the License.
*/
import {async, ComponentFixture, TestBed} from '@angular/core/testing';
import {ComponentFixture, TestBed, waitForAsync} from '@angular/core/testing';
import {FooterComponent} from './footer.component';
import {SocialComponent} from '../social/social.component';
......@@ -26,7 +26,7 @@ describe('FooterComponent', () => {
let component: FooterComponent;
let fixture: ComponentFixture<FooterComponent>;
beforeEach(async(() => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
declarations: [
FooterComponent,
......
......@@ -14,7 +14,7 @@
* limitations under the License.
*/
import {async, ComponentFixture, TestBed} from '@angular/core/testing';
import {ComponentFixture, TestBed, waitForAsync} from '@angular/core/testing';
import {SocialComponent} from './social.component';
import {FontAwesomeTestingModule} from '@fortawesome/angular-fontawesome/testing';
......@@ -23,7 +23,7 @@ describe('SocialComponent', () => {
let component: SocialComponent;
let fixture: ComponentFixture<SocialComponent>;
beforeEach(async(() => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
declarations: [
SocialComponent
......
......@@ -14,7 +14,7 @@
* limitations under the License.
*/
import {async, ComponentFixture, TestBed} from '@angular/core/testing';
import {ComponentFixture, TestBed, waitForAsync} from '@angular/core/testing';
import {AboutPageComponent} from './about-page.component';
import {MatCardModule} from '@angular/material/card';
......@@ -23,7 +23,7 @@ describe('AboutComponent', () => {
let component: AboutPageComponent;
let fixture: ComponentFixture<AboutPageComponent>;
beforeEach(async(() => {
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
declarations: [ AboutPageComponent ],
imports: [
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment