add Xbox app log instructions, redesign UI to fit
This commit is contained in:
parent
6f05580191
commit
7e8d11ca3a
|
@ -17,7 +17,9 @@
|
||||||
* Improved translations. Thanks to ChulkyBow (added Ukrainian)!
|
* Improved translations. Thanks to ChulkyBow (added Ukrainian)!
|
||||||
|
|
||||||
* For the web UI:
|
* For the web UI:
|
||||||
|
* Added log instructions for Xbox app on Windows.
|
||||||
* Added log download option.
|
* Added log download option.
|
||||||
|
* Redesigned log instruction UI.
|
||||||
* Fixed log parser not correctly handling multiple mods having the exact same name.
|
* Fixed log parser not correctly handling multiple mods having the exact same name.
|
||||||
* Fixed JSON validator not recognizing manifest [update subkeys](https://stardewvalleywiki.com/Modding:Modder_Guide/APIs/Update_checks#Update_subkeys).
|
* Fixed JSON validator not recognizing manifest [update subkeys](https://stardewvalleywiki.com/Modding:Modder_Guide/APIs/Update_checks#Update_subkeys).
|
||||||
|
|
||||||
|
|
|
@ -23,13 +23,15 @@
|
||||||
{
|
{
|
||||||
<meta name="robots" content="noindex" />
|
<meta name="robots" content="noindex" />
|
||||||
}
|
}
|
||||||
<link rel="stylesheet" href="~/Content/css/file-upload.css?r=202002" />
|
<link rel="stylesheet" href="~/Content/css/file-upload.css" />
|
||||||
<link rel="stylesheet" href="~/Content/css/log-parser.css?r=202002" />
|
<link rel="stylesheet" href="~/Content/css/log-parser.css" />
|
||||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/tabbyjs@12.0.3/dist/css/tabby-ui-vertical.min.css" />
|
||||||
|
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/tabbyjs@12.0.3" crossorigin="anonymous"></script>
|
||||||
<script src="https://cdn.jsdelivr.net/npm/vue@2.6.11" crossorigin="anonymous"></script>
|
<script src="https://cdn.jsdelivr.net/npm/vue@2.6.11" crossorigin="anonymous"></script>
|
||||||
<script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1" crossorigin="anonymous"></script>
|
<script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1" crossorigin="anonymous"></script>
|
||||||
<script src="~/Content/js/file-upload.js?r=202002"></script>
|
<script src="~/Content/js/file-upload.js"></script>
|
||||||
<script src="~/Content/js/log-parser.js?r=202002"></script>
|
<script src="~/Content/js/log-parser.js"></script>
|
||||||
<script>
|
<script>
|
||||||
$(function() {
|
$(function() {
|
||||||
smapi.logParser({
|
smapi.logParser({
|
||||||
|
@ -41,6 +43,8 @@
|
||||||
enableFilters: @this.ForJson(!Model.ShowRaw),
|
enableFilters: @this.ForJson(!Model.ShowRaw),
|
||||||
screenIds: @this.ForJson(screenIds)
|
screenIds: @this.ForJson(screenIds)
|
||||||
}, '@this.Url.PlainAction("Index", "LogParser", values: null)');
|
}, '@this.Url.PlainAction("Index", "LogParser", values: null)');
|
||||||
|
|
||||||
|
new Tabby('[data-tabs]');
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
}
|
}
|
||||||
|
@ -91,51 +95,65 @@ else if (Model.ParsedLog?.IsValid == true)
|
||||||
@if (Model.ParsedLog == null)
|
@if (Model.ParsedLog == null)
|
||||||
{
|
{
|
||||||
<h2>Where do I find my SMAPI log?</h2>
|
<h2>Where do I find my SMAPI log?</h2>
|
||||||
<div>What system do you use?</div>
|
<div id="os-instructions">
|
||||||
<ul id="os-list">
|
<div>
|
||||||
@foreach (Platform platform in new[] { Platform.Android, Platform.Linux, Platform.Mac, Platform.Windows })
|
<ul data-tabs>
|
||||||
{
|
@foreach (Platform platform in new[] {Platform.Android, Platform.Linux, Platform.Mac, Platform.Windows})
|
||||||
<li>
|
{
|
||||||
<input type="radio" name="os" value="@platform" id="os-@platform" checked="@(Model.DetectedPlatform == platform)" />
|
@if (platform == Platform.Windows)
|
||||||
<label for="os-@platform">@platform</label>
|
{
|
||||||
</li>
|
<li><a data-tabby-default href="#@(platform)-steamgog">@platform (Steam or GOG)</a></li>
|
||||||
}
|
<li><a href="#@(platform)-xbox">@platform (Xbox app)</a></li>
|
||||||
</ul>
|
}
|
||||||
<div data-os="@Platform.Android">
|
else
|
||||||
On Android:
|
{
|
||||||
<ol>
|
<li><a href="#@platform">@platform</a></li>
|
||||||
<li>Open a file app (like My Files or MT Manager).</li>
|
}
|
||||||
<li>Find the <code>StardewValley</code> folder on your internal storage.</li>
|
}
|
||||||
<li>Open the <code>ErrorLogs</code> subfolder.</li>
|
</ul>
|
||||||
<li>The log file is <code>SMAPI-crash.txt</code> if it exists, otherwise <code>SMAPI-latest.txt</code>.</li>
|
</div>
|
||||||
</ol>
|
<div>
|
||||||
</div>
|
<div id="@Platform.Android">
|
||||||
<div data-os="@Platform.Linux">
|
<ol>
|
||||||
On Linux:
|
<li>Open a file app (like My Files or MT Manager).</li>
|
||||||
<ol>
|
<li>Find the <code>StardewValley</code> folder on your internal storage.</li>
|
||||||
<li>Open the Files app.</li>
|
<li>Open the <code>ErrorLogs</code> subfolder.</li>
|
||||||
<li>Click the options menu (might be labeled <em>Go</em> or <code>⋮</code>).</li>
|
<li>The log file is <code>SMAPI-crash.txt</code> if it exists, otherwise <code>SMAPI-latest.txt</code>.</li>
|
||||||
<li>Choose <em>Enter Location</em>.</li>
|
</ol>
|
||||||
<li>Enter this exact text: <pre>~/.config/StardewValley/ErrorLogs</pre></li>
|
</div>
|
||||||
<li>The log file is <code>SMAPI-crash.txt</code> if it exists, otherwise <code>SMAPI-latest.txt</code>.</li>
|
<div id="@Platform.Linux">
|
||||||
</ol>
|
<ol>
|
||||||
</div>
|
<li>Open the Files app.</li>
|
||||||
<div data-os="@Platform.Mac">
|
<li>Click the options menu (might be labeled <em>Go</em> or <code>⋮</code>).</li>
|
||||||
On macOS:
|
<li>Choose <em>Enter Location</em>.</li>
|
||||||
<ol>
|
<li>Enter this exact text: <pre>~/.config/StardewValley/ErrorLogs</pre></li>
|
||||||
<li>Open the Finder app.</li>
|
<li>The log file is <code>SMAPI-crash.txt</code> if it exists, otherwise <code>SMAPI-latest.txt</code>.</li>
|
||||||
<li>Click <em>Go</em> at the top, then <em>Go to Folder</em>.</li>
|
</ol>
|
||||||
<li>Enter this exact text: <pre>~/.config/StardewValley/ErrorLogs</pre></li>
|
</div>
|
||||||
<li>The log file is <code>SMAPI-crash.txt</code> if it exists, otherwise <code>SMAPI-latest.txt</code>.</li>
|
<div id="@Platform.Mac">
|
||||||
</ol>
|
<ol>
|
||||||
</div>
|
<li>Open the Finder app.</li>
|
||||||
<div data-os="@Platform.Windows">
|
<li>Click <em>Go</em> at the top, then <em>Go to Folder</em>.</li>
|
||||||
On Windows:
|
<li>Enter this exact text: <pre>~/.config/StardewValley/ErrorLogs</pre></li>
|
||||||
<ol>
|
<li>The log file is <code>SMAPI-crash.txt</code> if it exists, otherwise <code>SMAPI-latest.txt</code>.</li>
|
||||||
<li>Press the <code>Windows</code> and <code>R</code> buttons at the same time.</li>
|
</ol>
|
||||||
<li>In the 'run' box that appears, enter this exact text: <pre>%appdata%\StardewValley\ErrorLogs</pre></li>
|
</div>
|
||||||
<li>The log file is <code>SMAPI-crash.txt</code> if it exists, otherwise <code>SMAPI-latest.txt</code>.</li>
|
<div id="@(Platform.Windows)-steamgog">
|
||||||
</ol>
|
<ol>
|
||||||
|
<li>Press the <kbd>Windows</kbd> and <kbd>R</kbd> buttons at the same time.</li>
|
||||||
|
<li>In the 'run' box that appears, enter this exact text: <pre>%appdata%\StardewValley\ErrorLogs</pre></li>
|
||||||
|
<li>The log file is <code>SMAPI-crash.txt</code> if it exists, otherwise <code>SMAPI-latest.txt</code>.</li>
|
||||||
|
</ol>
|
||||||
|
</div>
|
||||||
|
<div id="@(Platform.Windows)-xbox">
|
||||||
|
<ol>
|
||||||
|
<li>Press the <kbd>Windows</kbd> and <kbd>R</kbd> buttons at the same time.</li>
|
||||||
|
<li>In the 'run' box that appears, enter this exact text: <pre>%localappdata%\Packages\ConcernedApe.StardewValleyPC_0c8vynj4cqe4e\LocalCache\Roaming\StardewValley\ErrorLogs</pre></li>
|
||||||
|
<li>If you get an error with the title "Location is not available", try the "with Steam or GOG" instructions above.</li>
|
||||||
|
<li>Otherwise the log file is <code>SMAPI-crash.txt</code> if it exists, otherwise <code>SMAPI-latest.txt</code>.</li>
|
||||||
|
</ol>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<h2>How do I share my log?</h2>
|
<h2>How do I share my log?</h2>
|
||||||
|
|
|
@ -291,13 +291,29 @@ table caption {
|
||||||
|
|
||||||
|
|
||||||
/*********
|
/*********
|
||||||
** Upload form
|
** OS instructions
|
||||||
*********/
|
*********/
|
||||||
#os-list {
|
#os-instructions {
|
||||||
list-style: none;
|
display: grid;
|
||||||
|
grid-template-columns: minmax(16em, auto) 30em;
|
||||||
}
|
}
|
||||||
|
|
||||||
div[data-os] {
|
#os-instructions [role="tablist"] {
|
||||||
display: none;
|
border: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#os-instructions [role="tab"] {
|
||||||
|
display: block;
|
||||||
|
border: 0;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
#os-instructions [role="tab"][aria-selected="true"] {
|
||||||
|
font-weight: bold;
|
||||||
|
border-radius: 0 10px 10px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
[role="tab"][aria-selected="true"]::after {
|
||||||
|
content: "▶";
|
||||||
|
padding-left: 0.5em;
|
||||||
|
}
|
||||||
|
|
|
@ -115,17 +115,6 @@ smapi.logParser = function (data, sectionUrl) {
|
||||||
*********/
|
*********/
|
||||||
var input = $("#input");
|
var input = $("#input");
|
||||||
if (input.length) {
|
if (input.length) {
|
||||||
// instructions per OS
|
|
||||||
var systemOptions = $("input[name='os']");
|
|
||||||
var systemInstructions = $("div[data-os]");
|
|
||||||
|
|
||||||
var chooseSystem = function () {
|
|
||||||
systemInstructions.hide();
|
|
||||||
systemInstructions.filter("[data-os='" + $("input[name='os']:checked").val() + "']").show();
|
|
||||||
};
|
|
||||||
systemOptions.on("click", chooseSystem);
|
|
||||||
chooseSystem();
|
|
||||||
|
|
||||||
// file upload
|
// file upload
|
||||||
smapi.fileUpload({
|
smapi.fileUpload({
|
||||||
chooseFileLink: $("#choose-file-link"),
|
chooseFileLink: $("#choose-file-link"),
|
||||||
|
|
Loading…
Reference in New Issue