Files
Bubberstation/interface/interface.dm
san7890 c5de743214 Migrates Issue Reporting to the New GitHub Template Format (#85909)
## About The Pull Request

Screenshots slightly outdated, check it out here for the latest:
https://github.com/san7890/bruhstation/blob/issue-reporting/.github/ISSUE_TEMPLATE/bug_report_form.yml

Gone are the days of copypasting markdowns and people leaving out
important information! A much cleaner form is upon us!

![image](https://github.com/user-attachments/assets/9639014d-5206-405a-901f-ddcba1f48c1e)

First off, the button will now automatically redirect people to the
forums for feature requests. No more accidental entries through blank
MDs, should be a lot cleaner.

If it is a valid issue report, you'll be navigated to this menu. No more
having to worry about putting comments in the input field as the
important information is fully visible in the form:

<details>
<summary>Template Image</summary>


![image](https://github.com/user-attachments/assets/580a0162-7e99-491d-9dc2-98e0c07e6eaf)
</details>

This will be the end result of filling in all the fields:
<details>
<summary>End Result</summary>


![image](https://github.com/user-attachments/assets/59dd1eb4-29ba-48f4-b989-7cbafcdab5e0)

```md
### Client Version

515.1642

### Issue Summary

insert blank here

### Round ID

_No response_

### Test Merges

perhaps

### Reproduction steps

alirght
```
</details>


I updated the BYOND-side code to ensure that this would work just as it
did prior, auto-filling the applicable fields that we generate ingame.
## Why It's Good For The Game

Far more clarity to people who wish to report issues, no more worrying
about comment formatting, can have mandatory fields, just a cleaner
experience overall.
## Changelog
🆑
qol: Reporting issues on the Github should now be a far more simpler
experience. Hitting the "Report Issue" button in the top-right of your
BYOND Client Screen will still autofill in the fields as expected.
/🆑

Ignore how dumb the commit history of this branch is.

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2024-08-18 21:59:59 +02:00

121 lines
4.2 KiB
Plaintext

//Please use mob or src (not usr) in these procs. This way they can be called in the same fashion as procs.
/client/verb/wiki(query as text)
set name = "wiki"
set desc = "Type what you want to know about. This will open the wiki in your web browser. Type nothing to go to the main page."
set hidden = TRUE
var/wikiurl = CONFIG_GET(string/wikiurl)
if(wikiurl)
if(query)
var/output = wikiurl + "/index.php?title=Special%3ASearch&profile=default&search=" + query
src << link(output)
else if (query != null)
src << link(wikiurl)
else
to_chat(src, span_danger("The wiki URL is not set in the server configuration."))
return
/client/verb/forum()
set name = "forum"
set desc = "Visit the forum."
set hidden = TRUE
var/forumurl = CONFIG_GET(string/forumurl)
if(forumurl)
if(tgui_alert(src, "This will open the forum in your browser. Are you sure?",, list("Yes","No"))!="Yes")
return
src << link(forumurl)
else
to_chat(src, span_danger("The forum URL is not set in the server configuration."))
return
/client/verb/rules()
set name = "rules"
set desc = "Show Server Rules."
set hidden = TRUE
var/rulesurl = CONFIG_GET(string/rulesurl)
if(rulesurl)
if(tgui_alert(src, "This will open the rules in your browser. Are you sure?",, list("Yes","No"))!="Yes")
return
src << link(rulesurl)
else
to_chat(src, span_danger("The rules URL is not set in the server configuration."))
return
/client/verb/github()
set name = "github"
set desc = "Visit Github"
set hidden = TRUE
var/githuburl = CONFIG_GET(string/githuburl)
if(githuburl)
if(tgui_alert(src, "This will open the Github repository in your browser. Are you sure?",, list("Yes","No"))!="Yes")
return
src << link(githuburl)
else
to_chat(src, span_danger("The Github URL is not set in the server configuration."))
return
/client/verb/reportissue()
set name = "report-issue"
set desc = "Report an issue"
set hidden = TRUE
var/githuburl = CONFIG_GET(string/githuburl)
if(!githuburl)
to_chat(src, span_danger("The Github URL is not set in the server configuration."))
return
var/testmerge_data = GLOB.revdata.testmerge
var/has_testmerge_data = (length(testmerge_data) != 0)
var/message = "This will open the Github issue reporter in your browser. Are you sure?"
if(has_testmerge_data)
message += "<br>The following experimental changes are active and are probably the cause of any new or sudden issues you may experience. If possible, please try to find a specific thread for your issue instead of posting to the general issue tracker:<br>"
message += GLOB.revdata.GetTestMergeInfo(FALSE)
// We still use tgalert here because some people were concerned that if someone wanted to report that tgui wasn't working
// then the report issue button being tgui-based would be problematic.
if(tgalert(src, message, "Report Issue","Yes","No") != "Yes")
return
var/base_link = githuburl + "/issues/new?template=bug_report_form.yml"
var/list/concatable = list(base_link)
var/client_version = "[byond_version].[byond_build]"
concatable += ("&reporting-version=" + client_version)
// the way it works is that we use the ID's that are baked into the template YML and replace them with values that we can collect in game.
if(GLOB.round_id)
concatable += ("&round-id=" + GLOB.round_id)
// Insert testmerges
if(has_testmerge_data)
var/list/all_tms = list()
for(var/entry in testmerge_data)
var/datum/tgs_revision_information/test_merge/tm = entry
all_tms += "- \[[tm.title]\]([githuburl]/pull/[tm.number])"
var/all_tms_joined = jointext(all_tms, "%0A") // %0A is a newline for URL encoding because i don't trust \n to not break
concatable += ("&test-merges=" + all_tms_joined)
DIRECT_OUTPUT(src, link(jointext(concatable, "")))
/client/verb/changelog()
set name = "Changelog"
set category = "OOC"
if(!GLOB.changelog_tgui)
GLOB.changelog_tgui = new /datum/changelog()
GLOB.changelog_tgui.ui_interact(mob)
if(prefs.lastchangelog != GLOB.changelog_hash)
prefs.lastchangelog = GLOB.changelog_hash
prefs.save_preferences()
winset(src, "infowindow.changelog", "font-style=;")
/client/verb/hotkeys_help()
set name = "Hotkeys Help"
set category = "OOC"
if(!GLOB.hotkeys_tgui)
GLOB.hotkeys_tgui = new /datum/hotkeys_help()
GLOB.hotkeys_tgui.ui_interact(mob)