Compare commits
8 Commits
icon
...
ecad5d9bde
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ecad5d9bde | ||
|
|
2bcc2c9585 | ||
|
|
c7236394d9 | ||
|
|
ef1dcce2e7 | ||
|
|
720ef83c2e | ||
|
|
5b1d107cac | ||
|
|
662257ebc5 | ||
|
|
ad48882bca |
|
Before Width: | Height: | Size: 7.5 KiB After Width: | Height: | Size: 33 KiB |
|
After Width: | Height: | Size: 9.1 KiB |
|
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 9.0 KiB After Width: | Height: | Size: 64 KiB |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 91 KiB |
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 122 KiB |
|
Before Width: | Height: | Size: 7.7 KiB After Width: | Height: | Size: 32 KiB |
|
After Width: | Height: | Size: 9.1 KiB |
|
Before Width: | Height: | Size: 4.0 KiB After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 9.6 KiB After Width: | Height: | Size: 65 KiB |
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 90 KiB |
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 119 KiB |
|
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 16 KiB |
@@ -1,5 +1,9 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
<background android:drawable="@color/ic_launcher_background"/>
|
<background>
|
||||||
<foreground android:drawable="@mipmap/ic_launcher_foreground"/>
|
<inset android:drawable="@mipmap/ic_launcher_background" android:inset="16.7%" />
|
||||||
|
</background>
|
||||||
|
<foreground>
|
||||||
|
<inset android:drawable="@mipmap/ic_launcher_foreground" android:inset="16.7%" />
|
||||||
|
</foreground>
|
||||||
</adaptive-icon>
|
</adaptive-icon>
|
||||||
@@ -1,5 +1,9 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
<background android:drawable="@color/ic_launcher_background"/>
|
<background>
|
||||||
<foreground android:drawable="@mipmap/ic_launcher_foreground"/>
|
<inset android:drawable="@mipmap/ic_launcher_background" android:inset="16.7%" />
|
||||||
|
</background>
|
||||||
|
<foreground>
|
||||||
|
<inset android:drawable="@mipmap/ic_launcher_foreground" android:inset="16.7%" />
|
||||||
|
</foreground>
|
||||||
</adaptive-icon>
|
</adaptive-icon>
|
||||||
|
After Width: | Height: | Size: 660 B |
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 5.1 KiB |
|
After Width: | Height: | Size: 296 B |
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 408 B |
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 1006 B |
|
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 7.5 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 9.6 KiB After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 18 KiB |
@@ -1,7 +1,7 @@
|
|||||||
<?xml version='1.0' encoding='utf-8'?>
|
<?xml version='1.0' encoding='utf-8'?>
|
||||||
<resources>
|
<resources>
|
||||||
<string name="app_name">allowance-planner-v2</string>
|
<string name="app_name">Allowance Planner V2</string>
|
||||||
<string name="title_activity_main">allowance-planner-v2</string>
|
<string name="title_activity_main">Allowance Planner V2</string>
|
||||||
<string name="package_name">io.ionic.starter</string>
|
<string name="package_name">io.ionic.starter</string>
|
||||||
<string name="custom_url_scheme">io.ionic.starter</string>
|
<string name="custom_url_scheme">io.ionic.starter</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 38 KiB |
|
Before Width: | Height: | Size: 163 KiB After Width: | Height: | Size: 163 KiB |
BIN
frontend/allowance-planner-v2/assets/splash.png
Normal file
|
After Width: | Height: | Size: 130 KiB |
@@ -2,7 +2,7 @@ import type { CapacitorConfig } from '@capacitor/cli';
|
|||||||
|
|
||||||
const config: CapacitorConfig = {
|
const config: CapacitorConfig = {
|
||||||
appId: 'io.ionic.starter',
|
appId: 'io.ionic.starter',
|
||||||
appName: 'allowance-planner-v2',
|
appName: 'Allowance Planner V2',
|
||||||
webDir: 'www'
|
webDir: 'www'
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -30,8 +30,7 @@ button {
|
|||||||
color: white;
|
color: white;
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
width: 250px;
|
width: 250px;
|
||||||
margin-top: auto;
|
margin-top: 100px;
|
||||||
margin-bottom: 50px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
button:disabled,
|
button:disabled,
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ export class AllowancePage implements ViewWillEnter {
|
|||||||
allowance[0].name = 'Main Allowance';
|
allowance[0].name = 'Main Allowance';
|
||||||
this.allowance$.next(allowance);
|
this.allowance$.next(allowance);
|
||||||
})
|
})
|
||||||
}, 50);
|
}, 100);
|
||||||
}
|
}
|
||||||
|
|
||||||
canFinishGoal(allowance: Allowance): boolean {
|
canFinishGoal(allowance: Allowance): boolean {
|
||||||
|
|||||||
@@ -7,11 +7,6 @@
|
|||||||
<ion-title *ngIf="isAddMode">Create Goal</ion-title>
|
<ion-title *ngIf="isAddMode">Create Goal</ion-title>
|
||||||
<ion-title *ngIf="!isAddMode && goalId != 0">Edit Goal</ion-title>
|
<ion-title *ngIf="!isAddMode && goalId != 0">Edit Goal</ion-title>
|
||||||
<ion-title *ngIf="!isAddMode && goalId == 0">Edit Allowance</ion-title>
|
<ion-title *ngIf="!isAddMode && goalId == 0">Edit Allowance</ion-title>
|
||||||
<button
|
|
||||||
*ngIf="!isAddMode && goalId !=0"
|
|
||||||
class="remove-button"
|
|
||||||
(click)="deleteAllowance()"
|
|
||||||
>Delete Goal</button>
|
|
||||||
</div>
|
</div>
|
||||||
</ion-toolbar>
|
</ion-toolbar>
|
||||||
</ion-header>
|
</ion-header>
|
||||||
@@ -43,5 +38,10 @@
|
|||||||
<span *ngIf="!isAddMode && goalId != 0">Update Goal</span>
|
<span *ngIf="!isAddMode && goalId != 0">Update Goal</span>
|
||||||
<span *ngIf="!isAddMode && goalId == 0">Update Allowance</span>
|
<span *ngIf="!isAddMode && goalId == 0">Update Allowance</span>
|
||||||
</button>
|
</button>
|
||||||
|
<button
|
||||||
|
*ngIf="!isAddMode && goalId !=0"
|
||||||
|
class="remove-button"
|
||||||
|
(click)="deleteAllowance()"
|
||||||
|
>Delete Goal</button>
|
||||||
</form>
|
</form>
|
||||||
</ion-content>
|
</ion-content>
|
||||||
|
|||||||
@@ -4,10 +4,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.remove-button {
|
.remove-button {
|
||||||
background-color: var(--ion-color-primary);
|
margin-top: 10px;
|
||||||
margin-right: 15px;
|
background-color: var(--negative-amount-color);
|
||||||
width: 100px;
|
|
||||||
margin-bottom: 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
form {
|
form {
|
||||||
@@ -47,8 +45,7 @@ button {
|
|||||||
color: white;
|
color: white;
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
width: 250px;
|
width: 250px;
|
||||||
margin-top: auto;
|
margin-top: 100px;
|
||||||
margin-bottom: 50px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
button:disabled,
|
button:disabled,
|
||||||
|
|||||||
@@ -6,11 +6,6 @@
|
|||||||
</div>
|
</div>
|
||||||
<ion-title *ngIf="isAddMode">Create Task</ion-title>
|
<ion-title *ngIf="isAddMode">Create Task</ion-title>
|
||||||
<ion-title *ngIf="!isAddMode">Edit Task</ion-title>
|
<ion-title *ngIf="!isAddMode">Edit Task</ion-title>
|
||||||
<button
|
|
||||||
*ngIf="!isAddMode"
|
|
||||||
class="remove-button"
|
|
||||||
(click)="deleteTask()"
|
|
||||||
>Delete task</button>
|
|
||||||
</div>
|
</div>
|
||||||
</ion-toolbar>
|
</ion-toolbar>
|
||||||
</ion-header>
|
</ion-header>
|
||||||
@@ -32,5 +27,10 @@
|
|||||||
<span *ngIf="isAddMode">Add Task</span>
|
<span *ngIf="isAddMode">Add Task</span>
|
||||||
<span *ngIf="!isAddMode">Update Task</span>
|
<span *ngIf="!isAddMode">Update Task</span>
|
||||||
</button>
|
</button>
|
||||||
|
<button
|
||||||
|
*ngIf="!isAddMode"
|
||||||
|
class="remove-button"
|
||||||
|
(click)="deleteTask()"
|
||||||
|
>Delete task</button>
|
||||||
</form>
|
</form>
|
||||||
</ion-content>
|
</ion-content>
|
||||||
|
|||||||
@@ -4,10 +4,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.remove-button {
|
.remove-button {
|
||||||
background-color: var(--ion-color-primary);
|
margin-top: 10px;
|
||||||
margin-right: 15px;
|
background-color: var(--negative-amount-color);
|
||||||
width: 95px;
|
|
||||||
margin-bottom: 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
form {
|
form {
|
||||||
@@ -36,8 +34,7 @@ button {
|
|||||||
color: white;
|
color: white;
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
width: 250px;
|
width: 250px;
|
||||||
margin-top: auto;
|
margin-top: 100px;
|
||||||
margin-bottom: 50px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
button:disabled,
|
button:disabled,
|
||||||
|
|||||||
@@ -8,6 +8,7 @@
|
|||||||
|
|
||||||
.left {
|
.left {
|
||||||
width: 70%;
|
width: 70%;
|
||||||
|
font-size: 18px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.date {
|
.date {
|
||||||
|
|||||||
@@ -18,8 +18,12 @@
|
|||||||
<div class="task" *ngFor="let task of tasks$ | async">
|
<div class="task" *ngFor="let task of tasks$ | async">
|
||||||
<button (click)="completeTask(task.id)">Done</button>
|
<button (click)="completeTask(task.id)">Done</button>
|
||||||
<div (click)="updateTask(task.id)" class="item">
|
<div (click)="updateTask(task.id)" class="item">
|
||||||
<div class="name">{{ task.name }}</div>
|
<div class="text">
|
||||||
<div class="assigned">{{ usernames[task.assigned ? task.assigned : 0] }}</div>
|
<div class="name">
|
||||||
|
{{ task.name }}
|
||||||
|
<span class="assigned">{{ usernames[task.assigned ? task.assigned : 0] }}</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div
|
<div
|
||||||
class="reward"
|
class="reward"
|
||||||
[ngClass]="{ 'negative': task.reward < 0 }"
|
[ngClass]="{ 'negative': task.reward < 0 }"
|
||||||
|
|||||||
@@ -31,6 +31,8 @@ mat-icon {
|
|||||||
align-items: center;
|
align-items: center;
|
||||||
border-bottom: 1px solid var(--line-color);
|
border-bottom: 1px solid var(--line-color);
|
||||||
padding: 5px;
|
padding: 5px;
|
||||||
|
padding-block: 10px;
|
||||||
|
font-size: 18px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.item {
|
.item {
|
||||||
@@ -41,7 +43,6 @@ mat-icon {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.name {
|
.name {
|
||||||
margin-left: 10px;
|
|
||||||
color: var(--font-color);
|
color: var(--font-color);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -49,6 +50,7 @@ mat-icon {
|
|||||||
margin-left: auto;
|
margin-left: auto;
|
||||||
margin-right: 15px;
|
margin-right: 15px;
|
||||||
color: var(--positive-amount-color);
|
color: var(--positive-amount-color);
|
||||||
|
font-size: 22px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.negative {
|
.negative {
|
||||||
@@ -56,21 +58,28 @@ mat-icon {
|
|||||||
}
|
}
|
||||||
|
|
||||||
button {
|
button {
|
||||||
width: 57px;
|
height: 45px;
|
||||||
height: 30px;
|
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
color: white;
|
color: white;
|
||||||
background: var(--confirm-button-color);
|
background: var(--confirm-button-color);
|
||||||
|
padding-inline: 15px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.add-button {
|
.add-button {
|
||||||
background-color: var(--ion-color-primary);
|
background-color: var(--ion-color-primary);
|
||||||
margin-right: 15px;
|
margin-right: 15px;
|
||||||
width: 75px;
|
height: 30px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.assigned {
|
.assigned {
|
||||||
color: var(--line-color);
|
color: var(--line-color);
|
||||||
margin-left: 3px;
|
margin-left: 3px;
|
||||||
font-size: 12px;
|
font-size: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
width: 60%;
|
||||||
|
margin-left: 10px;
|
||||||
}
|
}
|
||||||
@@ -33,7 +33,7 @@ export class TasksPage implements ViewWillEnter {
|
|||||||
this.taskService.getTaskList().subscribe(tasks => {
|
this.taskService.getTaskList().subscribe(tasks => {
|
||||||
this.tasks$.next(tasks);
|
this.tasks$.next(tasks);
|
||||||
});
|
});
|
||||||
}, 50);
|
}, 100);
|
||||||
}
|
}
|
||||||
|
|
||||||
createTask() {
|
createTask() {
|
||||||
|
|||||||
@@ -38,6 +38,7 @@
|
|||||||
|
|
||||||
ion-title {
|
ion-title {
|
||||||
color: var(--ion-color-primary);
|
color: var(--ion-color-primary);
|
||||||
|
font-size: 24px;
|
||||||
}
|
}
|
||||||
|
|
||||||
ion-header {
|
ion-header {
|
||||||
@@ -46,4 +47,15 @@ ion-header {
|
|||||||
|
|
||||||
button {
|
button {
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
ion-header.md {
|
||||||
|
ion-toolbar:first-child {
|
||||||
|
--padding-top: 27px;
|
||||||
|
height: 66px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
label {
|
||||||
|
font-size: 18px;
|
||||||
}
|
}
|
||||||