1
0
mirror of https://github.com/hrfee/jfa-go.git synced 2024-11-09 20:00:12 +00:00

Compare commits

...

2 Commits

Author SHA1 Message Date
51b59ae103
settings: add button to get logs 2021-12-30 17:54:27 +00:00
8888807780
remove debug print, add another 2021-12-30 17:30:29 +00:00
9 changed files with 35 additions and 2 deletions

11
api.go
View File

@ -536,6 +536,8 @@ func (app *appContext) newUser(req newUserDTO, confirmed bool) (f errorFunc, suc
} else {
app.info.Println("Created Ombi user")
}
} else {
app.debug.Printf("Skipping Ombi: Profile \"%s\" was empty", invite.Profile)
}
}
}
@ -2845,6 +2847,15 @@ func (app *appContext) restart(gc *gin.Context) {
}
}
// @Summary Returns the last 100 lines of the log.
// @Router /log [get]
// @Success 200 {object} LogDTO
// @Security Bearer
// @tags Other
func (app *appContext) GetLog(gc *gin.Context) {
gc.JSON(200, LogDTO{lineCache.String()})
}
// no need to syscall.exec anymore!
func (app *appContext) Restart() error {
if TRAY {

View File

@ -614,7 +614,6 @@ func (emailer *Emailer) deletedValues(reason string, app *appContext, noSub bool
template["reason"] = reason
template["message"] = app.config.Section("messages").Key("message").String()
}
fmt.Println("TTTT", template)
return template
}

View File

@ -71,6 +71,12 @@
<pre class="monospace">{{ .license }}</pre>
</div>
</div>
<div id="modal-logs" class="modal">
<div class="modal-content wide content card">
<span class="heading">{{ .strings.logs }}<span class="modal-close">&times;</span></span>
<pre class="monospace" id="log-area"></pre>
</div>
</div>
<div id="modal-modify-user" class="modal">
<form class="modal-content card" id="form-modify-user" href="">
<span class="heading"><span id="header-modify-user"></span> <span class="modal-close">&times;</span></span>
@ -635,6 +641,7 @@
</label>
</div>
<div>
<span class="button ~info !normal" id="settings-logs">{{ .strings.logs }}</span>
<span class="button ~neutral !normal" id="settings-restart">{{ .strings.settingsRestart }}</span>
<span class="button ~urge !normal unfocused" id="settings-save">{{ .strings.settingsSave }}</span>
</div>

View File

@ -48,6 +48,7 @@
"profile": "Profile",
"unknown": "Unknown",
"label": "Label",
"logs": "Logs",
"announce": "Announce",
"templates": "Templates",
"subject": "Subject",

View File

@ -341,3 +341,7 @@ type InternalPWR struct {
ID string `json:"id"`
Expiry time.Time `json:"expiry"`
}
type LogDTO struct {
Log string `json:"log"`
}

View File

@ -180,6 +180,7 @@ func (app *appContext) loadRoutes(router *gin.Engine) {
api.GET(p+"/config", app.GetConfig)
api.POST(p+"/config", app.ModifyConfig)
api.POST(p+"/restart", app.restart)
api.GET(p+"/logs", app.GetLog)
if telegramEnabled || discordEnabled || matrixEnabled {
api.GET(p+"/telegram/pin", app.TelegramGetPin)
api.GET(p+"/telegram/verified/:pin", app.TelegramVerified)

View File

@ -87,6 +87,8 @@ window.availableProfiles = window.availableProfiles || [];
window.modals.matrix = new Modal(document.getElementById("modal-matrix"));
window.modals.logs = new Modal(document.getElementById("modal-logs"));
if (window.telegramEnabled) {
window.modals.telegram = new Modal(document.getElementById("modal-telegram"));
}

View File

@ -634,6 +634,13 @@ export class settingsList {
}
});
private _showLogs = () => _get("/logs", null, (req: XMLHttpRequest) => {
if (req.readyState == 4 && req.status == 200) {
(document.getElementById("log-area") as HTMLPreElement).textContent = req.response["log"] as string;
window.modals.logs.show();
}
});
constructor() {
this._sections = {};
this._buttons = {};
@ -645,7 +652,7 @@ export class settingsList {
};
this._saveButton.onclick = this._save;
document.addEventListener("settings-requires-restart", () => { this._needsRestart = true; });
document.getElementById("settings-logs").onclick = this._showLogs;
const advancedEnableToggle = document.getElementById("settings-advanced-enabled") as HTMLInputElement;
advancedEnableToggle.onchange = () => {
document.dispatchEvent(new CustomEvent("settings-advancedState", { detail: advancedEnableToggle.checked }));

View File

@ -107,6 +107,7 @@ declare interface Modals {
discord: Modal;
matrix: Modal;
sendPWR?: Modal;
logs: Modal;
}
interface Invite {