mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-01-13 19:12:13 +00:00
42 lines
1.6 KiB
Plaintext
42 lines
1.6 KiB
Plaintext
SUBSYSTEM_DEF(bugreports)
|
|
name = "Bug Reports"
|
|
flags = SS_NO_FIRE
|
|
|
|
/datum/controller/subsystem/bugreports/Initialize()
|
|
// We just want to load all bug reports into the
|
|
var/datum/db_query/query_bug_reports = SSdbcore.NewQuery("SELECT * FROM bug_reports")
|
|
if(!query_bug_reports.warn_execute())
|
|
log_debug("Failed to load stored bug reports from DB")
|
|
qdel(query_bug_reports)
|
|
return
|
|
while(query_bug_reports.NextRow())
|
|
// Create a new bug report form an load the details from the current row into it
|
|
var/datum/tgui_bug_report_form/bug_report = new()
|
|
GLOB.bug_reports += bug_report
|
|
bug_report.db_uid = query_bug_reports.item[1]
|
|
bug_report.initial_key = query_bug_reports.item[2]
|
|
bug_report.bug_report_data = json_decode(query_bug_reports.item[5])
|
|
bug_report.awaiting_approval = TRUE
|
|
qdel(query_bug_reports)
|
|
|
|
/datum/controller/subsystem/bugreports/Shutdown()
|
|
record_bug_reports()
|
|
|
|
/datum/controller/subsystem/bugreports/proc/record_bug_reports()
|
|
for(var/datum/tgui_bug_report_form/bug_report in GLOB.bug_reports)
|
|
var/datum/db_query/bug_query = SSdbcore.NewQuery({"
|
|
INSERT IGNORE INTO bug_reports (db_uid, author_ckey, title, round_id, contents_json) VALUES (:db_uid, :author_ckey, :title, :round_id, :contents_json)
|
|
"},
|
|
list(
|
|
"db_uid" = bug_report.db_uid,
|
|
"author_ckey" = bug_report.initial_key,
|
|
"title" = bug_report.bug_report_data["title"],
|
|
"round_id" = bug_report.bug_report_data["round_id"],
|
|
"contents_json" = json_encode(bug_report.bug_report_data),
|
|
)
|
|
)
|
|
bug_query.warn_execute()
|
|
qdel(bug_query)
|
|
GLOB.bug_reports -= bug_report
|
|
qdel(bug_report)
|