mirror of
https://github.com/hrfee/jfa-go.git
synced 2024-12-28 03:50:10 +00:00
Compare commits
3 Commits
6e3d5dac19
...
93180302ae
Author | SHA1 | Date | |
---|---|---|---|
93180302ae | |||
8e8debd8a4 | |||
1b0ca34586 |
1
.gitignore
vendored
1
.gitignore
vendored
@ -13,3 +13,4 @@ jfa-go
|
|||||||
build/
|
build/
|
||||||
pkg/
|
pkg/
|
||||||
old/
|
old/
|
||||||
|
version.go
|
||||||
|
@ -16,6 +16,7 @@ before:
|
|||||||
- python3 scss/get_node_deps.py
|
- python3 scss/get_node_deps.py
|
||||||
- python3 scss/compile.py -y
|
- python3 scss/compile.py -y
|
||||||
- python3 mail/generate.py -y
|
- python3 mail/generate.py -y
|
||||||
|
- python3 version.py {{.Version}} version.go
|
||||||
builds:
|
builds:
|
||||||
- dir: ./
|
- dir: ./
|
||||||
env:
|
env:
|
||||||
|
7
Makefile
7
Makefile
@ -28,6 +28,9 @@ mail:
|
|||||||
echo "Generating email html"
|
echo "Generating email html"
|
||||||
python3 mail/generate.py
|
python3 mail/generate.py
|
||||||
|
|
||||||
|
version:
|
||||||
|
python3 version.py git version.go
|
||||||
|
|
||||||
compile:
|
compile:
|
||||||
echo "Downloading deps"
|
echo "Downloading deps"
|
||||||
go mod download
|
go mod download
|
||||||
@ -42,8 +45,8 @@ copy:
|
|||||||
install:
|
install:
|
||||||
cp -r build $(DESTDIR)/jfa-go
|
cp -r build $(DESTDIR)/jfa-go
|
||||||
|
|
||||||
all: configuration sass mail compile copy
|
all: configuration sass mail version compile copy
|
||||||
headless: configuration sass-headless mail-headless copy
|
headless: configuration sass-headless mail-headless version compile copy
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# ![jfa-go](images/jfa-go-banner-wide.svg)
|
# ![jfa-go](data/static/banner.svg)
|
||||||
|
|
||||||
jfa-go is a user management app for [Jellyfin](https://github.com/jellyfin/jellyfin) that provides invite-based account creation as well as other features that make one's instance much easier to manage.
|
jfa-go is a user management app for [Jellyfin](https://github.com/jellyfin/jellyfin) that provides invite-based account creation as well as other features that make one's instance much easier to manage.
|
||||||
|
|
||||||
|
@ -100,6 +100,7 @@ var userDefaultsModal = createModal('userDefaults');
|
|||||||
var usersModal = createModal('users');
|
var usersModal = createModal('users');
|
||||||
var restartModal = createModal('restartModal');
|
var restartModal = createModal('restartModal');
|
||||||
var refreshModal = createModal('refreshModal');
|
var refreshModal = createModal('refreshModal');
|
||||||
|
var aboutModal = createModal('aboutModal');
|
||||||
|
|
||||||
// Parsed invite: [<code>, <expires in _>, <1: Empty invite (no delete/link), 0: Actual invite>, <email address>, <remaining uses>, [<used-by>], <date created>, <notify on expiry>, <notify on creation>]
|
// Parsed invite: [<code>, <expires in _>, <1: Empty invite (no delete/link), 0: Actual invite>, <email address>, <remaining uses>, [<used-by>], <date created>, <notify on expiry>, <notify on creation>]
|
||||||
function parseInvite(invite, empty = false) {
|
function parseInvite(invite, empty = false) {
|
||||||
@ -606,6 +607,11 @@ document.getElementById('loginForm').onsubmit = function() {
|
|||||||
return false;
|
return false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
document.getElementById('openAbout').onclick = function() {
|
||||||
|
settingsModal.hide();
|
||||||
|
aboutModal.show();
|
||||||
|
};
|
||||||
|
|
||||||
document.getElementById('openDefaultsWizard').onclick = function() {
|
document.getElementById('openDefaultsWizard').onclick = function() {
|
||||||
this.disabled = true
|
this.disabled = true
|
||||||
this.innerHTML =
|
this.innerHTML =
|
||||||
|
283
data/static/banner.svg
Normal file
283
data/static/banner.svg
Normal file
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 58 KiB |
@ -168,6 +168,9 @@
|
|||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<ul class="list-group list-group-flush">
|
<ul class="list-group list-group-flush">
|
||||||
<p>Note: <sup class="text-danger">*</sup> Indicates required field, <sup class="text-danger">R</sup> Indicates changes require a restart.</p>
|
<p>Note: <sup class="text-danger">*</sup> Indicates required field, <sup class="text-danger">R</sup> Indicates changes require a restart.</p>
|
||||||
|
<button type="button" class="list-group-item list-group-item-action" id="openAbout">
|
||||||
|
About <i class="fa fa-info-circle"></i>
|
||||||
|
</button>
|
||||||
<button type="button" class="list-group-item list-group-item-action" id="openUsers">
|
<button type="button" class="list-group-item list-group-item-action" id="openUsers">
|
||||||
Users <i class="fa fa-user"></i>
|
Users <i class="fa fa-user"></i>
|
||||||
</button>
|
</button>
|
||||||
@ -256,6 +259,25 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="modal fade" id="aboutModal" role="dialog" aria-labelledby="About jfa-go" aria-hidden="true">
|
||||||
|
<div class="modal-dialog modal-dialog-centered" role="document">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<h5 class="modal-title">About</h5>
|
||||||
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||||
|
<span aria-hidden="true">×</span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<img src="banner.svg" alt="jfa-go banner">
|
||||||
|
<p><a href="https://github.com/hrfee/jfa-go"><i class="fa fa-github"></i> jfa-go</a></p>
|
||||||
|
<p>Version <i>{{ .version }}</i></p>
|
||||||
|
<p>Commit <i>{{ .commit }}</i></p>
|
||||||
|
<p><a href="https://github.com/hrfee/jfa-go/blob/main/LICENSE">Available under the MIT License.</a></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="pageContainer">
|
<div class="pageContainer">
|
||||||
<h1>
|
<h1>
|
||||||
Accounts admin
|
Accounts admin
|
||||||
|
File diff suppressed because one or more lines are too long
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 25 B |
1
images/jfa-go-banner-wide.svg
Symbolic link
1
images/jfa-go-banner-wide.svg
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../data/static/banner.svg
|
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 25 B |
1
main.go
1
main.go
@ -95,6 +95,7 @@ func setGinLogger(router *gin.Engine, debugMode bool) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
fmt.Printf("jfa-go version: %s (%s)\n", VERSION, COMMIT)
|
||||||
// app encompasses essentially all useful functions.
|
// app encompasses essentially all useful functions.
|
||||||
app := new(appContext)
|
app := new(appContext)
|
||||||
|
|
||||||
|
20
version.py
Normal file
20
version.py
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
import subprocess
|
||||||
|
import sys
|
||||||
|
import os
|
||||||
|
try:
|
||||||
|
version = sys.argv[1].replace('v', '')
|
||||||
|
except IndexError:
|
||||||
|
version = "git"
|
||||||
|
|
||||||
|
commit = subprocess.check_output("git rev-parse --short HEAD".split()).decode("utf-8").rstrip()
|
||||||
|
|
||||||
|
file = f'package main; const VERSION = "{version}"; const COMMIT = "{commit}";'
|
||||||
|
|
||||||
|
try:
|
||||||
|
writeto = sys.argv[2]
|
||||||
|
except IndexError:
|
||||||
|
writeto = "version.go"
|
||||||
|
|
||||||
|
with open(writeto, 'w') as f:
|
||||||
|
f.write(file)
|
||||||
|
|
2
views.go
2
views.go
@ -16,6 +16,8 @@ func (app *appContext) AdminPage(gc *gin.Context) {
|
|||||||
"contactMessage": "",
|
"contactMessage": "",
|
||||||
"email_enabled": emailEnabled,
|
"email_enabled": emailEnabled,
|
||||||
"notifications": notificationsEnabled,
|
"notifications": notificationsEnabled,
|
||||||
|
"version": VERSION,
|
||||||
|
"commit": COMMIT,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user