Load shared html

This commit is contained in:
Misode
2019-12-29 17:03:58 +01:00
parent 9cbe9ce7db
commit cab0885fc0
3 changed files with 185 additions and 1 deletions

130
components.html Normal file
View File

@@ -0,0 +1,130 @@
<div id="components" class="d-none">
<div class="input-group mt-3" data-type="string">
<div class="input-group-prepend">
<span class="input-group-text" data-name></span>
</div>
<input type="text" class="form-control" onchange="updateField(this)" onfocus="this.select()">
</div>
<div class="input-group mt-3" data-type="enum">
<div class="input-group-prepend">
<span class="input-group-text" data-name></span>
</div>
<select class="form-control" onchange="updateField(this)">
</select>
</div>
<div class="input-group mt-3" data-type="random">
<div class="input-group-prepend">
<span class="input-group-text" data-name></span>
<button type="button" class="btn btn-outline-secondary bg-light dropdown-toggle dropdown-toggle-split"
data-toggle="dropdown"></button>
<div class="dropdown-menu">
<a class="dropdown-item" value="exact" onclick="updateRangeType(this)" data-i18n="range.exact"></a>
<a class="dropdown-item" value="range" onclick="updateRangeType(this)" data-i18n="range.uniform"></a>
<a class="dropdown-item" value="binomial" onclick="updateRangeType(this)"
data-i18n="range.binomial"></a>
</div>
</div>
<input type="text" class="form-control exact d-none rounded-right" value="1" onchange="updateField(this)"
onfocus="this.select()">
<span class="input-group-text rounded-0 range d-none" data-i18n="range.min"></span>
<input type="text" class="form-control range min d-none" value="1" onchange="updateField(this)"
onfocus="this.select()">
<span class="input-group-text rounded-0 range d-none" data-i18n="range.max"></span>
<input type="text" class="form-control range max d-none rounded-right" value="2" onchange="updateField(this)"
onfocus="this.select()">
<span class="input-group-text rounded-0 binomial d-none" data-i18n="range.n"></span>
<input type="text" class="form-control binomial n d-none" value="1" onchange="updateField(this)"
onfocus="this.select()">
<span class="input-group-text rounded-0 binomial d-none" data-i18n="range.p"></span>
<input type="text" class="form-control binomial p d-none rounded-right" value="0.5" onchange="updateField(this)"
onfocus="this.select()">
</div>
<div class="input-group mt-3" data-type="range">
<div class="input-group-prepend">
<span class="input-group-text" data-name></span>
<button type="button" class="btn btn-outline-secondary bg-light dropdown-toggle dropdown-toggle-split"
data-toggle="dropdown"></button>
<div class="dropdown-menu">
<a class="dropdown-item" value="exact" onclick="updateRangeType(this)" data-i18n="range.exact"></a>
<a class="dropdown-item" value="range" onclick="updateRangeType(this)" data-i18n="range.range"></a>
</div>
</div>
<input type="text" class="form-control exact d-none rounded-right" value="1" onchange="updateField(this)"
onfocus="this.select()">
<span class="input-group-text rounded-0 range d-none" data-i18n="range.min"></span>
<input type="text" class="form-control range min d-none" value="1" onchange="updateField(this)"
onfocus="this.select()">
<span class="input-group-text rounded-0 range d-none" data-i18n="range.max"></span>
<input type="text" class="form-control range max d-none rounded-right" value="2" onchange="updateField(this)"
onfocus="this.select()">
</div>
<div class="input-group mt-3" data-type="boundary">
<div class="input-group-prepend">
<span class="input-group-text" data-name></span>
</div>
<span class="input-group-text rounded-0 range" data-i18n="range.min"></span>
<input type="text" class="form-control range min" onchange="updateField(this)" onfocus="this.select()">
<span class="input-group-text rounded-0 range" data-i18n="range.max"></span>
<input type="text" class="form-control range max rounded-right" onchange="updateField(this)"
onfocus="this.select()">
</div>
<div class="input-group mt-3" data-type="boolean">
<div class="input-group-prepend">
<span class="input-group-text" data-name></span>
</div>
<div class="btn-group">
<button type="button" value="false" class="btn btn-secondary rounded-0" onclick="updateField(this)"
data-i18n="false"></button>
<button type="button" value="true" class="btn btn-secondary" onclick="updateField(this)"
data-i18n="true"></button>
</div>
</div>
<div class="input-group mt-3" data-type="json">
<div class="input-group-prepend">
<span class="input-group-text" data-name></span>
</div>
<textarea type="text" class="form-control code" onchange="updateField(this)" onfocus="this.select()"
style="height: 38px"></textarea>
</div>
<div class="input-group mt-3" data-type="json-list">
<textarea class="form-control code" onchange="updateField(this)" rows=3></textarea>
</div>
<div class="input-group mt-3" data-type="nbt">
<div class="input-group-prepend">
<span class="input-group-text" data-name></span>
</div>
<textarea type="text" class="form-control code" onchange="updateField(this)" onfocus="this.select()"
style="height: 38px"></textarea>
</div>
<div class="input-group mt-3" data-type="error">
<div class="input-group-prepend">
<span class="input-group-text text-danger" data-i18n="error"></span>
</div>
<input type="text" class="form-control bg-light text-danger" data-name readonly></input>
</div>
<div class="mt-3" data-type="set">
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text" data-name></span>
</div>
<div class="input-group-append">
<button type="button"
class="btn btn-outline-secondary bg-light dropdown-toggle dropdown-toggle-split rounded-right"
data-toggle="dropdown"></button>
<div class="dropdown-menu scrollable-menu">
</div>
</div>
</div>
</div>
<div data-type="map">
<div class="input-group mt-3">
<div class="input-group-prepend">
<label class="input-group-text" data-name="1"></label>
</div>
<input type="text" class="form-control">
<div class="input-group-append">
<button class="btn btn-dark" type="button" onclick="addToMap(this)" data-name="2"></button>
</div>
</div>
</div>
</div>

View File

@@ -28,7 +28,7 @@ function loadGenerator(generator) {
versions.forEach(v => {
$('#versionList').append(`<a class="dropdown-item" onclick="changeVersion('${v}')">${v}</a>`)
});
const promises = [initLng(), loadVersion(generator, '1.15')];
const promises = [initShared(), initLng(), loadVersion(generator, '1.15')];
Promise.all(promises).then(() => {
invalidated()
});
@@ -48,6 +48,13 @@ function loadVersion(generator, version) {
});
}
async function initShared() {
const components = await fetch('../components.html').then(r => r.text());
const shared = await fetch('../shared.html').then(r => r.text());
$('body').append(components);
$('div.container').append(shared);
}
$("#source").val('');
$('#luckBased').prop('checked', false);
$('#tableType').val("minecraft:generic");

47
shared.html Normal file
View File

@@ -0,0 +1,47 @@
<div class="row my-4">
<div class="col-12 col-lg-7 mb-3 structure-container" data-index="root">
<div id="lootTableToolbar" class="input-group d-none mb-3">
<button type="button" class="btn btn-success d-block mr-3 float-left" onclick="addComponent(this, 'pools')"data-field="table" data-i18n="pool_add"></button>
<div class="input-group-prepend table-type">
<span class="input-group-text rounded-left" data-i18n="table.type"></span>
</div>
<select id="tableType" class="form-control mr-3 rounded-right table-type" style="max-width: 9em;" onchange="updateTableType(this)"></select>
<div class="custom-control custom-checkbox mr-3" style="margin: auto 0">
<input type="checkbox" class="custom-control-input" id="luckBased" onchange="updateLuckBased(this)">
<label class="custom-control-label" for="luckBased" data-i18n="luck_based"></label>
</div>
<div id="showSourceButton" class="ml-auto d-none">
<button type="button" class="btn btn-secondary" onclick="showSource()" data-i18n="show_source"></button>
</div>
</div>
<div id="structure" class="loot-table" data-index="root">
</div>
</div>
<div class="col-12 col-lg-5 source-container">
<div class="mb-3 float-lg-right source-menu">
<div class="input-group">
<div class="btn-group">
<button type="button" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown"
data-i18n="more"></button>
<div class="dropdown-menu">
<a class="dropdown-item" onclick="updateIndentation(2)" data-i18n="2_spaces"></a>
<a class="dropdown-item" onclick="updateIndentation(4)" data-i18n="4_spaces"></a>
<a class="dropdown-item" onclick="updateIndentation('\t')" data-i18n="tabs"></a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" onclick="hideSource()" data-i18n="hide_source"></a>
</div>
</div>
<button id="linkSource" type="button" class="btn btn-secondary ml-3" onclick="linkSource()"
data-i18n="share"></button>
<button type="button" class="btn btn-secondary ml-3" onclick="copySource()" data-i18n="copy"></button>
</div>
</div>
<div id="copyContainer" class="mb-3 d-none">
<input id="copyTextarea" rows="1" class="form-control"></input>
<button id="copy" type="button" class="btn btn-block btn-secondary mt-2" onclick="copyLink()"
data-i18n="copy"></button>
</div>
<textarea id="source" class="form-control code" onchange="updateSource()" rows="19"
spellcheck="false"></textarea>
</div>
</div>