mirror of
https://git.srhtnin.garden/sarah/srhtnin.github.io.git
synced 2026-10-13 18:38:11 +02:00
Added mutation duplication for QOL for admins (me).
This commit is contained in:
1 parent
3827c6cfa9
commit
1d8587744c
2 files changed
+244
No files matched your search
@@ -48,6 +48,20 @@ $PageSection = "Admin";
|
||||
>
|
||||
New mutation
|
||||
</button>
|
||||
|
||||
<label for="AdminMutationDuplicateSelect">
|
||||
Duplicate existing
|
||||
</label>
|
||||
|
||||
<select id="AdminMutationDuplicateSelect"></select>
|
||||
|
||||
<button
|
||||
id="AdminMutationDuplicateButton"
|
||||
class="ActionButton AdminInlineButton"
|
||||
type="button"
|
||||
>
|
||||
Duplicate
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<form
|
||||
|
||||
@@ -73,6 +73,13 @@ function BindAdminMutationEditor() {
|
||||
StartNewAdminMutation
|
||||
);
|
||||
|
||||
document.getElementById(
|
||||
"AdminMutationDuplicateButton"
|
||||
).addEventListener(
|
||||
"click",
|
||||
DuplicateAdminMutation
|
||||
);
|
||||
|
||||
document.getElementById(
|
||||
"AdminMutationResizeButton"
|
||||
).addEventListener(
|
||||
@@ -342,6 +349,7 @@ async function LoadAdminMutationData(
|
||||
PopulateAdminMutationPlantControls();
|
||||
RenderAdminMutationRelationChecklists();
|
||||
RenderAdminMutationSelect();
|
||||
RenderAdminMutationDuplicateSelect();
|
||||
|
||||
const Keys =
|
||||
GetSortedAdminMutationKeys();
|
||||
@@ -451,6 +459,70 @@ function RenderAdminMutationSelect() {
|
||||
}
|
||||
|
||||
|
||||
function RenderAdminMutationDuplicateSelect() {
|
||||
const Select =
|
||||
document.getElementById(
|
||||
"AdminMutationDuplicateSelect"
|
||||
);
|
||||
|
||||
if (Select === null) {
|
||||
return;
|
||||
}
|
||||
|
||||
const PreviousValue =
|
||||
Select.value;
|
||||
|
||||
Select.replaceChildren();
|
||||
|
||||
for (
|
||||
const MutationKey
|
||||
of GetSortedAdminMutationKeys()
|
||||
) {
|
||||
const Mutation =
|
||||
AdminMutationCatalogue[
|
||||
MutationKey
|
||||
];
|
||||
|
||||
const Option =
|
||||
document.createElement(
|
||||
"option"
|
||||
);
|
||||
|
||||
Option.value =
|
||||
MutationKey;
|
||||
|
||||
Option.textContent =
|
||||
String(
|
||||
Mutation.Id
|
||||
).padStart(
|
||||
3,
|
||||
"0"
|
||||
) +
|
||||
" — " +
|
||||
Mutation.Name +
|
||||
(
|
||||
Mutation.Archived === true
|
||||
? " (archived)"
|
||||
: ""
|
||||
);
|
||||
|
||||
Select.appendChild(
|
||||
Option
|
||||
);
|
||||
}
|
||||
|
||||
if (
|
||||
PreviousValue !== "" &&
|
||||
AdminMutationCatalogue[
|
||||
PreviousValue
|
||||
] !== undefined
|
||||
) {
|
||||
Select.value =
|
||||
PreviousValue;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function PopulateAdminMutationPlantControls() {
|
||||
for (
|
||||
const ElementId
|
||||
@@ -748,6 +820,164 @@ function LoadAdminMutationIntoForm(
|
||||
}
|
||||
|
||||
|
||||
function DuplicateAdminMutation() {
|
||||
const SourceMutationKey =
|
||||
document.getElementById(
|
||||
"AdminMutationDuplicateSelect"
|
||||
).value;
|
||||
|
||||
const SourceMutation =
|
||||
AdminMutationCatalogue[
|
||||
SourceMutationKey
|
||||
];
|
||||
|
||||
if (SourceMutation === undefined) {
|
||||
SetAdminMutationMessage(
|
||||
"Choose a mutation to duplicate."
|
||||
);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
AdminMutationEditingKey = null;
|
||||
|
||||
document.getElementById(
|
||||
"AdminMutationSelect"
|
||||
).value = "";
|
||||
|
||||
SetAdminMutationField(
|
||||
"AdminMutationId",
|
||||
GetNextAdminMutationId()
|
||||
);
|
||||
|
||||
SetAdminMutationField(
|
||||
"AdminMutationKey",
|
||||
""
|
||||
);
|
||||
|
||||
SetAdminMutationField(
|
||||
"AdminMutationName",
|
||||
""
|
||||
);
|
||||
|
||||
SetAdminMutationField(
|
||||
"AdminMutationDescription",
|
||||
SourceMutation.Description ?? ""
|
||||
);
|
||||
|
||||
SetAdminMutationField(
|
||||
"AdminMutationHint",
|
||||
SourceMutation.Hint ?? ""
|
||||
);
|
||||
|
||||
SetAdminMutationField(
|
||||
"AdminMutationPriority",
|
||||
Number(
|
||||
SourceMutation.Priority ?? 0
|
||||
)
|
||||
);
|
||||
|
||||
SetAdminMutationField(
|
||||
"AdminMutationChance",
|
||||
Number(
|
||||
SourceMutation.Chance ?? 1
|
||||
) * 100
|
||||
);
|
||||
|
||||
SetAdminMutationDurationFields(
|
||||
Number(
|
||||
SourceMutation.Cooldown ?? 0
|
||||
)
|
||||
);
|
||||
|
||||
SetAdminMutationField(
|
||||
"AdminMutationRotation",
|
||||
SourceMutation.Rotation ??
|
||||
"None"
|
||||
);
|
||||
|
||||
document.getElementById(
|
||||
"AdminMutationAllowImmature"
|
||||
).checked =
|
||||
SourceMutation.AllowImmature === true;
|
||||
|
||||
AdminMutationPattern =
|
||||
CloneAdminMutationMatrix(
|
||||
SourceMutation.Pattern,
|
||||
"Any"
|
||||
);
|
||||
|
||||
if (
|
||||
AdminMutationPattern.length === 0
|
||||
) {
|
||||
AdminMutationPattern = [
|
||||
["Any"]
|
||||
];
|
||||
}
|
||||
|
||||
AdminMutationResult =
|
||||
NormalizeAdminMutationMatrix(
|
||||
SourceMutation.Success,
|
||||
AdminMutationPattern[0]
|
||||
.length,
|
||||
AdminMutationPattern.length,
|
||||
"Keep"
|
||||
);
|
||||
|
||||
SetAdminMutationField(
|
||||
"AdminMutationWidth",
|
||||
AdminMutationPattern[0]
|
||||
.length
|
||||
);
|
||||
|
||||
SetAdminMutationField(
|
||||
"AdminMutationHeight",
|
||||
AdminMutationPattern.length
|
||||
);
|
||||
|
||||
LoadAdminMutationFailure(
|
||||
CloneAdminMutationValue(
|
||||
SourceMutation.Failure
|
||||
)
|
||||
);
|
||||
|
||||
SetAdminMutationRelations(
|
||||
CloneAdminMutationValue(
|
||||
SourceMutation.Relations ?? {}
|
||||
)
|
||||
);
|
||||
|
||||
document.getElementById(
|
||||
"AdminMutationId"
|
||||
).readOnly = false;
|
||||
|
||||
document.getElementById(
|
||||
"AdminMutationKey"
|
||||
).readOnly = false;
|
||||
|
||||
document.getElementById(
|
||||
"AdminMutationArchiveNote"
|
||||
).hidden = true;
|
||||
|
||||
AdminMutationSelectedCell = null;
|
||||
HideAdminMutationCellEditor();
|
||||
RenderAdminMutationGrids();
|
||||
UpdateAdminMutationFailureVisibility();
|
||||
UpdateAdminMutationCooldownHint();
|
||||
RenderAdminMutationJsonPreview();
|
||||
|
||||
document.getElementById(
|
||||
"AdminMutationName"
|
||||
).focus();
|
||||
|
||||
SetAdminMutationMessage(
|
||||
"Duplicated " +
|
||||
SourceMutation.Name +
|
||||
". Give the new mutation a name and Mutation Key before saving."
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
function StartNewAdminMutation() {
|
||||
AdminMutationEditingKey = null;
|
||||
|
||||
|
||||
Reference in new issue
Block a user