mirror of
https://github.com/got-feedBack/feedBack.git
synced 2026-08-11 19:29:33 +00:00
Clean release snapshot
This commit is contained in:
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"id": "app_tour_settings",
|
||||
"name": "Settings Tour",
|
||||
"version": "1.0.0",
|
||||
"bundled": true,
|
||||
"script": "script.js",
|
||||
"tour": "tour.json"
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
(function () {
|
||||
'use strict';
|
||||
|
||||
var PLUGIN_ID = 'app_tour_settings';
|
||||
var SCREENS = ['settings'];
|
||||
|
||||
function _register() {
|
||||
try {
|
||||
window.slopsmithTour.register(PLUGIN_ID, { screens: SCREENS });
|
||||
} catch (e) {
|
||||
console.warn('[app_tour_settings] register failed', e);
|
||||
}
|
||||
}
|
||||
|
||||
if (window.slopsmithTour && typeof window.slopsmithTour.register === 'function') {
|
||||
_register();
|
||||
} else {
|
||||
var deadline = performance.now() + 5000;
|
||||
var pollId = setInterval(function () {
|
||||
if (window.slopsmithTour && typeof window.slopsmithTour.register === 'function') {
|
||||
clearInterval(pollId);
|
||||
_register();
|
||||
} else if (performance.now() > deadline) {
|
||||
clearInterval(pollId);
|
||||
}
|
||||
}, 100);
|
||||
}
|
||||
|
||||
// ── Layout nudge ──────────────────────────────────────────────────────
|
||||
// Tuner plugin parks a FAB at `fixed bottom-5 right-5` on every screen;
|
||||
// tour engine's ? button sits at bottom:12px right:12px — same corner.
|
||||
// Nudge the tour UI up when the settings screen is active.
|
||||
var NUDGE_CLASS = 'app-tour-settings-nudge';
|
||||
var STYLE_ID = 'app-tour-settings-nudge-style';
|
||||
|
||||
function _ensureStyle() {
|
||||
if (document.getElementById(STYLE_ID)) return;
|
||||
var s = document.createElement('style');
|
||||
s.id = STYLE_ID;
|
||||
s.textContent =
|
||||
'body.' + NUDGE_CLASS + ' .slopsmith-tour-menu-btn { bottom: 68px; }' +
|
||||
'body.' + NUDGE_CLASS + ' .slopsmith-tour-menu-popover { bottom: 112px; }' +
|
||||
'body.' + NUDGE_CLASS + ' .slopsmith-tour-prompt { bottom: 112px; }';
|
||||
document.head.appendChild(s);
|
||||
}
|
||||
|
||||
function _applyNudge(screenId) {
|
||||
if (!document.body) return;
|
||||
document.body.classList.toggle(NUDGE_CLASS, screenId === 'settings');
|
||||
}
|
||||
|
||||
function _initNudge() {
|
||||
_ensureStyle();
|
||||
var active = document.querySelector('.screen.active');
|
||||
_applyNudge(active ? active.id : null);
|
||||
if (window.slopsmith && typeof window.slopsmith.on === 'function') {
|
||||
window.slopsmith.on('screen:changed', function (ev) {
|
||||
_applyNudge(ev && ev.detail && ev.detail.id);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
if (document.readyState === 'loading') {
|
||||
document.addEventListener('DOMContentLoaded', _initNudge, { once: true });
|
||||
} else {
|
||||
_initNudge();
|
||||
}
|
||||
})();
|
||||
@@ -0,0 +1,84 @@
|
||||
{
|
||||
"version": 1,
|
||||
"tour": [
|
||||
{
|
||||
"id": "welcome",
|
||||
"title": "Settings tour",
|
||||
"content": "Quick walk through the controls that matter most on first setup. You can re-run any time from the ? button.",
|
||||
"shape": "bubble",
|
||||
"position": "auto"
|
||||
},
|
||||
{
|
||||
"id": "dlc-path",
|
||||
"selector": "#dlc-path",
|
||||
"title": "Library folder",
|
||||
"content": "Point Slopsmith at your library folder. Songs here become your library. Hit Save after changing.",
|
||||
"shape": "spotlight",
|
||||
"position": "bottom"
|
||||
},
|
||||
{
|
||||
"id": "default-arrangement",
|
||||
"selector": "#default-arrangement",
|
||||
"title": "Default arrangement",
|
||||
"content": "Which arrangement to land on when a song loads — Lead, Rhythm, Bass, or Auto (pick whatever the song has).",
|
||||
"shape": "spotlight",
|
||||
"position": "bottom"
|
||||
},
|
||||
{
|
||||
"id": "av-offset",
|
||||
"selector": "#setting-av-offset",
|
||||
"title": "A/V sync offset",
|
||||
"content": "Shift audio against the note highway in milliseconds. Use the note_detect plugin's auto-calibrate (or [ / ] keys in the player) to dial it in.",
|
||||
"shape": "spotlight",
|
||||
"position": "bottom"
|
||||
},
|
||||
{
|
||||
"id": "rescan",
|
||||
"selector": "#btn-rescan",
|
||||
"title": "Rescan library",
|
||||
"content": "Picks up new songs you've dropped into the DLC folder. Full Rescan rebuilds metadata from scratch — slower, only needed after upgrades or corruption.",
|
||||
"shape": "spotlight",
|
||||
"position": "bottom"
|
||||
},
|
||||
{
|
||||
"id": "backup",
|
||||
"selector": "#btn-export-settings",
|
||||
"title": "Backup and restore",
|
||||
"content": "Export bundles your core settings plus every plugin's opt-in state into a single file. Import on a fresh install to migrate. Plugin authors declare what gets included via settings.server_files.",
|
||||
"shape": "spotlight",
|
||||
"position": "bottom"
|
||||
},
|
||||
{
|
||||
"id": "diagnostics",
|
||||
"selector": "#btn-diag-export",
|
||||
"title": "Export Diagnostics",
|
||||
"content": "Builds a troubleshooting bundle (system info, logs, plugin diagnostics) for bug reports. Use the checkboxes above to control what's included; Redact strips paths and identifiers.",
|
||||
"shape": "spotlight",
|
||||
"position": "top"
|
||||
},
|
||||
{
|
||||
"id": "plugins",
|
||||
"selector": "#plugin-settings-area",
|
||||
"title": "Per-plugin settings",
|
||||
"content": "Every installed plugin with its own settings shows up here as a collapsible section. Plugin updates are surfaced at the top of this block.",
|
||||
"shape": "spotlight",
|
||||
"position": "top",
|
||||
"waitFor": "#plugin-settings-area"
|
||||
},
|
||||
{
|
||||
"id": "about",
|
||||
"selector": "#app-version-about",
|
||||
"title": "About",
|
||||
"content": "Version, source code, and license. Slopsmith is AGPL-3.0 — if you fork it, the source has to stay open.",
|
||||
"shape": "spotlight",
|
||||
"position": "top"
|
||||
},
|
||||
{
|
||||
"id": "outro",
|
||||
"title": "Done",
|
||||
"content": "Plugins ship their own tours too — the ? button surfaces whichever ones apply to the current screen.",
|
||||
"shape": "bubble",
|
||||
"position": "auto"
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user