Files

690 lines
22 KiB
PHP

<?php
$PageTitle = "Profile";
?>
<!DOCTYPE html>
<html lang="en" data-palette="CatppuccinMocha">
<?php require __DIR__ . "/Bits/Head.php"; ?>
<body>
<?php require __DIR__ . "/Bits/Navbar.php"; ?>
<main class="MainContainer">
<h1>Profile</h1>
<p>
Manage your Garden profile and display settings,
view your statistics, move your account between
devices, and find the Garden contact addresses.
</p>
<section
id="Player"
class="Panel ProfileSection InteractivePanel"
>
<h2 class="PanelHeader PanelHeaderInset">Player</h2>
<form id="ProfileUsernameForm">
<label
for="ProfileUsernameInput"
>
Username
</label>
<div class="ProfileFormRow">
<input
id="ProfileUsernameInput"
type="text"
minlength="3"
maxlength="24"
autocomplete="username"
placeholder="Username"
required
>
<button type="submit">
Save username
</button>
</div>
<p
id="ProfileUsernameMessage"
class="ProfileMessage"
></p>
</form>
<form id="ProfileColourForm">
<label
for="ProfileColourInput"
>
Colour
</label>
<div class="ProfileFormRow">
<input
id="ProfileColourInput"
class="ProfileColourInput"
type="color"
value="#000000"
>
<strong
id="ProfileColourPreview"
class="ProfileColourPreview"
>
Preview
</strong>
<button type="submit">
Save colour
</button>
<button
id="ResetProfileColourButton"
type="button"
>
Reset
</button>
</div>
<p
id="ProfileColourMessage"
class="ProfileMessage"
></p>
</form>
</section>
<section
id="GardenerProfile"
class="Panel ProfileSection InteractivePanel"
>
<h2 class="PanelHeader PanelHeaderInset">Gardener profile</h2>
<form id="ProfileDescriptionForm">
<label
for="ProfileDescriptionInput"
>
Description
</label>
<textarea
id="ProfileDescriptionInput"
rows="4"
maxlength="500"
placeholder="Write a short description..."
></textarea>
<div class="ProfileButtonRow">
<button type="submit">
Save description
</button>
</div>
<p
id="ProfileDescriptionMessage"
class="ProfileMessage"
></p>
</form>
<h3>Profile picture</h3>
<p>
Choose any plant you have discovered.
The selected growth stage is used anywhere
your Gardener profile picture is shown.
</p>
<div class="ProfilePictureSelectionRow">
<div>
<span class="ProfilePictureSelectionLabel">
Selected
</span>
<strong id="ProfilePictureSelectedName">
None
</strong>
</div>
<label
class="ProfilePictureGrowthStageLabel"
for="ProfilePictureGrowthStageSelect"
>
Growth stage
<select
id="ProfilePictureGrowthStageSelect"
disabled
>
<option value="">None</option>
</select>
</label>
<button
id="SaveProfilePictureButton"
type="button"
disabled
>
Save
</button>
</div>
<div
class="CatalogueControls"
aria-label="Profile picture plant search and sorting"
>
<input
id="ProfilePictureSearchInput"
type="search"
placeholder="Search plants..."
aria-label="Search profile picture plants"
autocomplete="off"
>
<select
id="ProfilePictureSortSelect"
aria-label="Sort profile picture plants"
>
<option value="IdAsc">ID</option>
<option value="NameAsc">Name A-Z</option>
<option value="GrowthAsc">Growth short-long</option>
<option value="GrowthDesc">Growth long-short</option>
<option value="CostAsc">Cost low-high</option>
<option value="CostDesc">Cost high-low</option>
<option value="RewardAsc">Reward low-high</option>
<option value="RewardDesc">Reward high-low</option>
<option value="DphDesc">DPH high-low</option>
<option value="DphAsc">DPH low-high</option>
</select>
</div>
<div
id="ProfilePictureGrid"
class="ProfilePictureGrid"
></div>
<p
id="ProfilePictureCatalogueMessage"
class="ProfileMessage"
aria-live="polite"
>
Loading discovered plants...
</p>
<p
id="ProfilePictureMessage"
class="ProfileMessage"
aria-live="polite"
></p>
<h3>Privacy</h3>
<p>
Choose which parts of your Gardener profile
other players will be able to use or view.
Hiding statistics also removes you from the
public Dew leaderboard.
</p>
<div class="ProfileButtonRow">
<button
id="ToggleGardenPreviewsButton"
type="button"
>
Garden previews: On
</button>
<button
id="ToggleCommentsButton"
type="button"
>
Comments: On
</button>
<button
id="ToggleDewDonationsButton"
type="button"
>
Dew donations: On
</button>
<button
id="ToggleProfileStatsButton"
type="button"
>
Statistics: On
</button>
</div>
<p
id="ProfilePrivacyMessage"
class="ProfileMessage"
aria-live="polite"
></p>
</section>
<section
id="GardenDisplay"
class="Panel ProfileSection InteractivePanel"
>
<h2 class="PanelHeader PanelHeaderInset">Garden display</h2>
<h3>Tool selection</h3>
<p>
Choose which Garden actions automatically change
your selected seed or tool.
</p>
<div class="ProfileButtonRow">
<button
id="ToggleSelectQuickBoughtPlantButton"
type="button"
>
Select bought plant when you quick-buy one: On
</button>
<button
id="ToggleSelectTrowelWithInventoryPlantButton"
type="button"
>
Select trowel when you select an inventory plant: On
</button>
</div>
<h3>Plant information</h3>
<p>
Choose which Plant information details are
shown on Garden plots.
</p>
<div class="ProfileButtonRow">
<button
id="TogglePlantNamesButton"
type="button"
>
Plant names: Locked
</button>
<button
id="ToggleGrowthTimersButton"
type="button"
>
Growth timers: Locked
</button>
</div>
<p
id="GardenDisplayMessage"
class="ProfileMessage"
>
Unlock Plant information in the Shop
to use these settings.
</p>
<h3>Plot rotation</h3>
<p>
Choose whether plot directions are shown
beside plot timers.
</p>
<div class="ProfileButtonRow">
<button
id="TogglePlotRotationButton"
type="button"
>
Plot rotation: Locked
</button>
</div>
<p
id="PlotRotationDisplayMessage"
class="ProfileMessage"
>
Unlock Plot rotation in the Shop
to use this setting.
</p>
<h3>Garden overview</h3>
<p>
Choose which Garden overview lines are
shown in the Garden status box.
</p>
<div class="ProfileButtonRow">
<button
id="ToggleNextHarvestButton"
type="button"
>
Next harvest: Locked
</button>
<button
id="ToggleGardenSizeButton"
type="button"
>
Garden size: Locked
</button>
<button
id="ToggleEmptyPlotsButton"
type="button"
>
Empty plots: Locked
</button>
<button
id="TogglePlantedPlotsButton"
type="button"
>
Planted plots: Locked
</button>
<button
id="ToggleGrowingPlotsButton"
type="button"
>
Growing: Locked
</button>
<button
id="ToggleReadyPlotsButton"
type="button"
>
Ready to harvest: Locked
</button>
</div>
<p
id="GardenOverviewDisplayMessage"
class="ProfileMessage"
>
Unlock Garden overview in the Shop
to use these settings.
</p>
</section>
<section
id="Statistics"
class="Panel ProfileSection InteractivePanel"
>
<h3 class="PanelHeader PanelHeaderInset">Statistics</h3>
<div class="ProfileStatistics">
<div class="ProfileStatistic">
<span class="ProfileStatisticName">
Current Dew
</span>
<strong id="ProfileCurrentDew">
...
</strong>
</div>
<div class="ProfileStatistic">
<span class="ProfileStatisticName">
Lifetime Dew
</span>
<strong id="ProfileLifetimeDew">
...
</strong>
</div>
<div class="ProfileStatistic">
<span class="ProfileStatisticName">
Plants discovered
</span>
<strong id="ProfilePlantsDiscovered">
...
</strong>
</div>
<div class="ProfileStatistic">
<span class="ProfileStatisticName">
Mutations discovered
</span>
<strong id="ProfileMutationsDiscovered">
...
</strong>
</div>
<div class="ProfileStatistic">
<span class="ProfileStatisticName">
Gardens owned
</span>
<strong id="ProfileGardensOwned">
...
</strong>
</div>
<div class="ProfileStatistic">
<span class="ProfileStatisticName">
Active Garden size
</span>
<strong id="ProfileGardenSize">
...
</strong>
</div>
</div>
</section>
<section
id="Contact"
class="Panel ProfileSection InteractivePanel"
>
<h2 class="PanelHeader PanelHeaderInset">Contact</h2>
<p>
For general Garden questions, email
<a href="mailto:[email protected]">[email protected]</a>.
</p>
<p>
Bug reports can be sent to
<a href="mailto:[email protected]">[email protected]</a>,
while ideas and suggestions can be sent to
<a href="mailto:[email protected]">[email protected]</a>.
</p>
</section>
<section
id="Account"
class="Panel ProfileSection InteractivePanel"
>
<h2 class="PanelHeader PanelHeaderInset">Account</h2>
<p>
Your Account Key is the secret key used
to identify your Garden account.
</p>
<p>
You can use the same Account Key on
another device to access the same
username, save, and leaderboard entry.
</p>
<p>
<strong>
Anyone with your Account Key can
access your Garden account.
</strong>
Keep it private and treat it like a
password.
</p>
<details class="AccountKeySpoiler">
<summary>
Show Account Key
</summary>
<div class="AccountKeyContent">
<p>
Do not share this key with
anyone you do not trust.
</p>
<code id="AccountKeyDisplay">
Loading...
</code>
<div class="ProfileButtonRow">
<button
id="CopyAccountKeyButton"
type="button"
>
Copy Account Key
</button>
<button
id="ExportAccountKeyButton"
type="button"
>
Export Account Key
</button>
</div>
<p
id="AccountKeyMessage"
class="ProfileMessage"
></p>
</div>
</details>
<h3>Account data</h3>
<p>
Download a JSON copy of the Garden account
data currently stored on the server. The
Account Key is not included in this export.
</p>
<div class="ProfileButtonRow">
<button
id="ExportAccountDataButton"
type="button"
>
Export account data
</button>
</div>
<h3>Delete account</h3>
<p class="ProfileDangerText">
Permanently delete this Garden account from
the server and clear its Account Key and save
from this browser. This cannot be undone.
</p>
<div class="ProfileButtonRow">
<button
id="DeleteAccountButton"
class="ProfileDangerButton"
type="button"
>
Delete account
</button>
</div>
<p
id="AccountDataMessage"
class="ProfileMessage"
></p>
</section>
<section
id="Import"
class="Panel ProfileSection InteractivePanel"
>
<h3 class="PanelHeader PanelHeaderInset">Import Account</h3>
<p>
To use an existing Garden account on
this device, paste its Account Key
below.
</p>
<p>
Importing an Account Key will replace
the account currently used by this
browser. It will not delete the old
account or its server save.
</p>
<form id="ImportAccountForm">
<label
for="ImportAccountKeyInput"
>
Account Key
</label>
<textarea
id="ImportAccountKeyInput"
rows="3"
spellcheck="false"
autocomplete="off"
placeholder="Paste Account Key here"
required
></textarea>
<div class="ProfileButtonRow">
<button type="submit">
Import Account
</button>
<button
id="ImportAccountKeyFileButton"
type="button"
>
Import From File
</button>
</div>
<input
id="ImportAccountKeyFile"
type="file"
accept=".txt,text/plain"
hidden
>
<p
id="ImportAccountMessage"
class="ProfileMessage"
></p>
</form>
</section>
</main>
<script src="/Scripts/Garden/PlantImages.js"></script>
<script src="/Scripts/Garden/Plants.js"></script>
<script src="/Scripts/Garden/Mutations.js"></script>
<script src="/Scripts/Garden/Save.js"></script>
<script src="/Scripts/Garden/Content.js"></script>
<script src="/Scripts/Garden/Upgrades.js"></script>
<script src="/Scripts/Garden/Users.js"></script>
<script src="/Scripts/Garden/Economy.js"></script>
<script src="/Scripts/Garden/PlantCatalogue.js"></script>
<script src="/Scripts/Garden/Profile.js"></script>
<script src="/Scripts/Garden/Account.js"></script>
</body>
</html>