Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

UI overhaul #383

Merged
merged 89 commits into from
Aug 31, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
89 commits
Select commit Hold shift + click to select a range
a38f327
Large number of UI updates
michael-j-green May 24, 2024
4c3a9a4
Many UI updates
michael-j-green May 25, 2024
8b3d690
More UI updates
michael-j-green May 25, 2024
742a598
Fix for broken style sheet loading
michael-j-green May 27, 2024
f79880f
Add migration counter
michael-j-green May 27, 2024
8c3ce0b
Added page size option. Closes #322
michael-j-green May 29, 2024
cc4919c
WIP
michael-j-green May 31, 2024
fafb619
WIP
michael-j-green Jun 6, 2024
dd80b87
WIP
michael-j-green Jun 9, 2024
8a0d1ea
RomInfo Delete button completed
michael-j-green Jun 10, 2024
ddb661b
Rominfo dialog completed
michael-j-green Jun 10, 2024
2038cb8
WIP
michael-j-green Jun 12, 2024
b11dde2
Preferences window complete
michael-j-green Jun 13, 2024
f5adb57
WIP
michael-j-green Jun 18, 2024
1311ce2
Fixed .gitignore
michael-j-green Jun 18, 2024
56e8777
Profile and account password dialog completed
michael-j-green Jun 20, 2024
27a7492
WIP
michael-j-green Jun 21, 2024
379c4de
Re-implemented uploading of save states
michael-j-green Jun 29, 2024
dccb972
Fix for First Run issue
michael-j-green Jun 29, 2024
c00e072
Extra logging when generating hashes
michael-j-green Jun 29, 2024
3c56c26
Reduce database errors
michael-j-green Jun 30, 2024
b682ffa
More logging in scheduled maintenance, server logs are now deleted in…
michael-j-green Jun 30, 2024
aa4c32d
Disable platform logo loading - these aren't used, added try/catch bl…
michael-j-green Jun 30, 2024
d631138
Update build process
michael-j-green Jun 30, 2024
c4d5106
More updates to build process
michael-j-green Jun 30, 2024
2b2e37b
Enhancements for background tasks display
michael-j-green Jun 30, 2024
f9254a8
Style changes to library summary
michael-j-green Jun 30, 2024
43834db
Updates to the system page
michael-j-green Jul 1, 2024
afa6237
Platform map update to include Famicom
michael-j-green Jul 1, 2024
10cbc2a
Upload window mostly complete - needs code to throttle uploads
michael-j-green Jul 4, 2024
8e838c0
Upload modal complete. Closes #73
michael-j-green Jul 4, 2024
0ef3f43
Removed console logs that leaked sensitive information
michael-j-green Jul 4, 2024
392c65d
Convert var to let
michael-j-green Jul 4, 2024
608d9f5
Favourites can now be set from the library. Closes #353
michael-j-green Jul 4, 2024
0f5b73d
Remove unneeded old upload modal
michael-j-green Jul 4, 2024
2efa96e
Added modal command to disable buttons
michael-j-green Jul 4, 2024
456c0c8
Re-ordered filter items. Closes #339
michael-j-green Jul 4, 2024
e36157a
All external links should now open in a new tab. Closes #338.
michael-j-green Jul 4, 2024
848bd87
WIP
michael-j-green Jul 5, 2024
e260920
Implemented changes from v1.7.4
michael-j-green Jul 12, 2024
620ca86
Added log cleanup log entry
michael-j-green Jul 12, 2024
4107229
Added click event to file upload
michael-j-green Jul 13, 2024
071b740
WIP
michael-j-green Jul 14, 2024
94323b8
Completed new library dialog
michael-j-green Jul 15, 2024
d483369
Speed improvements to Platform Mapping
michael-j-green Jul 16, 2024
2667dea
Block .. from path
michael-j-green Jul 16, 2024
7d6da49
Migration of library delete msgbox complete
michael-j-green Jul 16, 2024
f7de89a
Fixed Hasheous API key saving
michael-j-green Jul 16, 2024
3cd0f5c
WIP
michael-j-green Jul 17, 2024
90892ce
Update database scripts to match v1.7.5
michael-j-green Jul 17, 2024
e20cc3e
Added script files for each page
michael-j-green Jul 18, 2024
53295c6
Finished new user dialog
michael-j-green Jul 19, 2024
de3a77d
WIP
michael-j-green Jul 20, 2024
83d5d64
Fixed import of MAME style DATs (#400)
michael-j-green Jul 22, 2024
654406f
Library disk usage jazz up
michael-j-green Jul 22, 2024
9d7199a
Updated PlatformMap.json
michael-j-green Jul 22, 2024
db75078
Added missing ESRB EC logo
michael-j-green Jul 22, 2024
dd7a20b
Added ESRB EC to Child Age Group
michael-j-green Jul 22, 2024
8f8ff3f
WIP
michael-j-green Jul 23, 2024
c7b5ccd
WIP + Performance Improvements
michael-j-green Jul 26, 2024
090fe22
WIP
michael-j-green Jul 26, 2024
d1c566f
WIP
michael-j-green Jul 26, 2024
dd1f1df
WIP
michael-j-green Jul 27, 2024
08728ff
Account management is now complete
michael-j-green Jul 28, 2024
ad348d4
WIP
michael-j-green Aug 5, 2024
4da353e
Platform mapping and firmware dialogs complete
michael-j-green Aug 7, 2024
6d77cde
Removed more dialogs
michael-j-green Aug 7, 2024
4e147c9
WIP
michael-j-green Aug 10, 2024
ee53d4a
WIP
michael-j-green Aug 10, 2024
e05cd05
WIP
michael-j-green Aug 21, 2024
543fc3d
WIP
michael-j-green Aug 21, 2024
e26ad6e
WIP
michael-j-green Aug 21, 2024
873ec56
WIP
michael-j-green Aug 22, 2024
fbc74e1
WIP
michael-j-green Aug 22, 2024
ae63623
WIP
michael-j-green Aug 22, 2024
16a5f6d
WIP
michael-j-green Aug 22, 2024
0717bfd
WIP
michael-j-green Aug 24, 2024
6d4923a
WIP
michael-j-green Aug 26, 2024
56410ef
WIP
michael-j-green Aug 27, 2024
daea0f4
WIP
michael-j-green Aug 27, 2024
94b2c35
Game page complete
michael-j-green Aug 27, 2024
b8ce1cc
Completed login window
michael-j-green Aug 30, 2024
000a2f2
First install account creator completed
michael-j-green Aug 30, 2024
3965822
Added home page
michael-j-green Aug 31, 2024
53efe25
Fix for page loading
michael-j-green Aug 31, 2024
13c576d
WIP
michael-j-green Aug 31, 2024
6251a93
WIP
michael-j-green Aug 31, 2024
2403290
WIP
michael-j-green Aug 31, 2024
83a4f84
WIP
michael-j-green Aug 31, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 0 additions & 4 deletions .devcontainer/.env

This file was deleted.

4 changes: 2 additions & 2 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@ FROM mcr.microsoft.com/devcontainers/dotnet:1-8.0-bookworm

RUN apt-get update && apt-get install -y p7zip-full
RUN mkdir -p /workspace/gaseous-server/wwwroot/emulators/EmulatorJS
RUN wget https://cdn.emulatorjs.org/releases/4.0.11.7z
RUN 7z x -y -o/workspace/gaseous-server/wwwroot/emulators/EmulatorJS 4.0.11.7z
RUN wget https://cdn.emulatorjs.org/releases/4.0.12.7z
RUN 7z x -y -o/workspace/gaseous-server/wwwroot/emulators/EmulatorJS 4.0.12.7z
4 changes: 3 additions & 1 deletion .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,9 @@
"AndersEAndersen.html-class-suggestions",
"george-alisson.html-preview-vscode",
"ms-dotnettools.vscodeintellicode-csharp",
"Zignd.html-css-class-completion"
"Zignd.html-css-class-completion",
"PWABuilder.pwa-studio",
"ms-azuretools.vscode-docker"
]
}
}
Expand Down
10 changes: 6 additions & 4 deletions .devcontainer/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
services:
development:
build:
build:
context: .
dockerfile: Dockerfile
volumes:
Expand All @@ -11,13 +11,15 @@ services:
- dbhost=${DATABASE_HOST}
- dbuser=${DATABASE_USER}
- dbpass=${DATABASE_PASSWORD}
- igdbclientid=<clientid>
- igdbclientsecret=<clientsecret>
- igdbclientid=${IGDB_CLIENT_ID}
- igdbclientsecret=${IGDB_CLIENT_SECRET}
mariadb:
hostname: mariadb
image: mariadb:latest
ports:
- 3306:3306
environment:
- MARIADB_ROOT_PASSWORD=${DATABASE_PASSWORD}
- MARIADB_DATABASE=${DATABASE_DB}
- MARIADB_USER=${DATABASE_USER}
- MARIADB_PASSWORD=${DATABASE_PASSWORD}
- MARIADB_PASSWORD=${DATABASE_PASSWORD}
38 changes: 31 additions & 7 deletions .github/workflows/BuildDockerOnTag-Prerelease.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,14 @@ on:
jobs:
docker:
runs-on: ubuntu-latest
permissions:
packages: write
contents: read
attestations: write
id-token: write
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
submodules: 'true'
- name: Install dotnet tool
Expand All @@ -21,18 +26,37 @@ jobs:
- name: Sign in to Nuget
run: dotnet nuget add source --username michael-j-green --password ${{ secrets.NUGETKEY }} --store-password-in-clear-text --name github "https://nuget.pkg.github.com/gaseous-project/index.json"
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
uses: docker/setup-buildx-action@v3
- name: Login to Docker Hub
uses: docker/login-action@v2
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v4
- name: Login to GitHub Package Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push standard image
uses: docker/build-push-action@v6
with:
context: .
file: ./build/Dockerfile
platforms: linux/amd64,linux/arm64
push: true
tags: |
gaseousgames/gaseousserver:${{ github.ref_name}}
ghcr.io/gaseous-project/gaseousserver:${{ github.ref_name}}
- name: Build and push image with embedded mariadb
uses: docker/build-push-action@v6
with:
context: .
file: ./build/Dockerfile-EmbeddedDB
platforms: linux/amd64,linux/arm64
push: true
tags: gaseousgames/gaseousserver:${{ github.ref_name}}
tags: |
gaseousgames/gaseousserver:${{ github.ref_name}}-embeddeddb
ghcr.io/gaseous-project/gaseousserver:${{ github.ref_name}}-embeddeddb
40 changes: 33 additions & 7 deletions .github/workflows/BuildDockerOnTag-Release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,14 @@ on:
jobs:
docker:
runs-on: ubuntu-latest
permissions:
packages: write
contents: read
attestations: write
id-token: write
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
submodules: 'true'
- name: Install dotnet tool
Expand All @@ -20,18 +25,39 @@ jobs:
- name: Sign in to Nuget
run: dotnet nuget add source --username michael-j-green --password ${{ secrets.NUGETKEY }} --store-password-in-clear-text --name github "https://nuget.pkg.github.com/gaseous-project/index.json"
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
uses: docker/setup-buildx-action@v3
- name: Login to Docker Hub
uses: docker/login-action@v2
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v4
- name: Login to GitHub Package Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push standard image
uses: docker/build-push-action@v6
with:
context: .
file: ./build/Dockerfile
platforms: linux/amd64,linux/arm64
push: true
tags: |
gaseousgames/gaseousserver:latest
gaseousgames/gaseousserver:${{ github.ref_name}}
ghcr.io/gaseous-project/gaseousserver:latest
ghcr.io/gaseous-project/gaseousserver:${{ github.ref_name}}
- name: Build and push image with embedded mariadb
uses: docker/build-push-action@v6
with:
context: .
file: ./build/Dockerfile-EmbeddedDB
platforms: linux/amd64,linux/arm64
push: true
tags: gaseousgames/gaseousserver:latest,gaseousgames/gaseousserver:${{ github.ref_name}}
tags: |
gaseousgames/gaseousserver:${{ github.ref_name}}-embeddeddb
ghcr.io/gaseous-project/gaseousserver:${{ github.ref_name}}-embeddeddb
28 changes: 0 additions & 28 deletions Dockerfile

This file was deleted.

6 changes: 3 additions & 3 deletions README.MD
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@ Version 1.7.0 and later contain user authentication, and can be exposed to the i
While we do our best to stay on top of server security, if you expose the server to the internet **you do so at your own risk**.

## Screenshots
![Library](./screenshots/Library.png)
![Game](./screenshots/Game.png)
![Emulator](./screenshots/Emulator.png)
![Library](./gaseous-server/wwwroot/screenshots/Library.png)
![Game](./gaseous-server/wwwroot/screenshots/Game.png)
![Emulator](./gaseous-server/wwwroot/screenshots/Emulator.png)


## Requirements
Expand Down
41 changes: 41 additions & 0 deletions build/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
FROM --platform=$BUILDPLATFORM mcr.microsoft.com/dotnet/sdk:8.0 AS build-env
ARG TARGETARCH
ARG BUILDPLATFORM
WORKDIR /App
EXPOSE 80

RUN echo "Target: $TARGETARCH"
RUN echo "Build: $BUILDPLATFORM"

# Copy everything
COPY .. ./
# Restore as distinct layers
RUN dotnet restore "gaseous-server/gaseous-server.csproj" -a $TARGETARCH
# Build and publish a release
RUN dotnet publish "gaseous-server/gaseous-server.csproj" --use-current-runtime --self-contained true -c Release -o out -a $TARGETARCH

# disabled for 1.7.4 as the next version EmulatorJS is not yet available
# # update apt-get
# RUN apt-get update

# # download and unzip EmulatorJS from CDN
# RUN apt-get install -y p7zip-full
# RUN mkdir -p out/wwwroot/emulators/EmulatorJS
# RUN wget https://cdn.emulatorjs.org/releases/4.0.12.7z
# RUN 7z x -y -oout/wwwroot/emulators/EmulatorJS 4.0.12.7z
RUN wget --recursive --no-parent https://cdn.emulatorjs.org/latest/
RUN mkdir -p out/wwwroot/emulators/EmulatorJS
RUN cp -fr cdn.emulatorjs.org/latest/* out/wwwroot/emulators/EmulatorJS
RUN rm -Rf cdn.emulatorjs.org

# clean up apt-get
RUN apt-get clean && rm -rf /var/lib/apt/lists

# Build runtime image
FROM mcr.microsoft.com/dotnet/aspnet:8.0
ENV INDOCKER=1
WORKDIR /App
COPY --from=build-env /App/out .

# start gaseous-server
ENTRYPOINT ["dotnet", "gaseous-server.dll"]
61 changes: 61 additions & 0 deletions build/Dockerfile-EmbeddedDB
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
FROM --platform=$BUILDPLATFORM mcr.microsoft.com/dotnet/sdk:8.0 AS build-env
ARG TARGETARCH
ARG BUILDPLATFORM
WORKDIR /App
EXPOSE 80

RUN echo "Target: $TARGETARCH"
RUN echo "Build: $BUILDPLATFORM"

# Copy everything
COPY .. ./
# Restore as distinct layers
RUN dotnet restore "gaseous-server/gaseous-server.csproj" -a $TARGETARCH
# Build and publish a release
RUN dotnet publish "gaseous-server/gaseous-server.csproj" --use-current-runtime --self-contained true -c Release -o out -a $TARGETARCH

# disabled for 1.7.4 as the next version EmulatorJS is not yet available
# # update apt-get
# RUN apt-get update

# # download and unzip EmulatorJS from CDN
# RUN apt-get install -y p7zip-full
# RUN mkdir -p out/wwwroot/emulators/EmulatorJS
# RUN wget https://cdn.emulatorjs.org/releases/4.0.12.7z
# RUN 7z x -y -oout/wwwroot/emulators/EmulatorJS 4.0.12.7z
RUN wget --recursive --no-parent https://cdn.emulatorjs.org/latest/
RUN mkdir -p out/wwwroot/emulators/EmulatorJS
RUN cp -fr cdn.emulatorjs.org/latest/* out/wwwroot/emulators/EmulatorJS
RUN rm -Rf cdn.emulatorjs.org

# Build runtime image
FROM mcr.microsoft.com/dotnet/aspnet:8.0
ENV INDOCKER=1
WORKDIR /App
COPY --from=build-env /App/out .

# variables
ENV dbhost=localhost
ENV dbuser=root
ENV dbpass=gaseous
ENV MARIADB_ROOT_PASSWORD=$dbpass

# install mariadb
RUN DEBIAN_FRONTEND=noninteractive && \
apt-get update && apt-get install -y mariadb-server
RUN mkdir -p /run/mysqld
COPY ../build/mariadb.sh /usr/sbin/start-mariadb.sh
RUN chmod +x /usr/sbin/start-mariadb.sh

# install supervisord
RUN apt-get install -y supervisor
COPY ../build/supervisord.conf /etc/supervisor/conf.d/supervisord.conf

# clean up apt-get
RUN apt-get clean && rm -rf /var/lib/apt/lists

# volumes
VOLUME /root/.gaseous-server /var/lib/mysql

# start services
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"]
9 changes: 9 additions & 0 deletions build/mariadb.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#!/bin/bash

# Wait for the service to start
while ! mysqladmin ping -h localhost --silent; do
sleep 1
done

# Set the root password
mariadb -e "ALTER USER 'root'@'localhost' IDENTIFIED BY '$MARIADB_ROOT_PASSWORD';"
31 changes: 31 additions & 0 deletions build/supervisord.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
[supervisord]
user=root
nodaemon=true
logfile=/dev/null
logfile_maxbytes=0
pidfile=/var/run/supervisord.pid
loglevel = INFO

[program:mariadb]
command=/usr/sbin/mariadbd --user=root
autostart=true
autorestart=true
redirect_stderr=true
stdout_logfile=/dev/fd/1
stdout_logfile_maxbytes=0

[program:mariadb-setup]
command=bash -c "/usr/sbin/start-mariadb.sh"
autostart=true
autorestart=false
redirect_stderr=true
stdout_logfile=/dev/fd/1
stdout_logfile_maxbytes=0

[program:gaseous-server]
command=dotnet /App/gaseous-server.dll
autostart=true
autorestart=true
redirect_stderr=true
stdout_logfile=/dev/fd/1
stdout_logfile_maxbytes=0
Binary file removed gaseous-server/.DS_Store
Binary file not shown.
2 changes: 1 addition & 1 deletion gaseous-server/Classes/Auth/Classes/IdentityUser.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,6 @@ public class ApplicationUser : IdentityUser
{
public SecurityProfileViewModel SecurityProfile { get; set; }
public List<UserPreferenceViewModel> UserPreferences { get; set; }
public Guid Avatar { get; set; }
public Guid ProfileId { get; set; }
}
}
Loading
Loading