This commit is contained in:
Misode
2019-12-20 21:57:57 +01:00
8 changed files with 175 additions and 4 deletions
+109
View File
@@ -1,4 +1,18 @@
.help-tooltip {
width: 30px;
height: 30px;
padding: 6px 0px;
border-radius: 20px;
text-align: center;
font-size: 1rem;
line-height: 1;
margin: auto;
background-color: #E9ECEF;
border-width: 1px;
border-color: #CED4DA;
}
.card.bg-info {
background-color: #91cdd6 !important;
color: black !important;
@@ -70,3 +84,98 @@ textarea.invalid:focus {
overflow-wrap: normal;
overflow-x: scroll;
}
body[data-style="dark"] {
background-color: #222529;
}
body[data-style="dark"] #source {
background-color: #181a1d;
border-color: #646b72;
color: #ddd;
}
body[data-style="dark"] .form-control {
background-color: #343a40;
color: #ddd;
border-color: #24282c;
}
body[data-style="dark"] .input-group-text {
background-color: #2d3236;
color: #fff;
border-color: #24282c;
}
body[data-style="dark"] .btn-outline-secondary {
background-color: #343a40 !important;
color: #ddd;
border-color: #24282c;
}
body[data-style="dark"] .btn-outline-dark {
filter: invert();
}
body[data-style="dark"] .custom-control-label {
color: #ddd;
}
body[data-style="dark"] .dropdown-menu {
background-color: #343a40;
color: #ddd;
}
body[data-style="dark"] .dropdown-item:hover {
background-color: #2d3236;
}
body[data-style="dark"] .card.bg-success {
background-color: #2f693e !important;
color: white !important;
}
body[data-style="dark"] .card.bg-light {
background-color: #32373c !important;
color: white !important;
}
body[data-style="dark"] .btn-light {
background-color: #282d31 !important;
color: white !important;
border-color: #282d31 !important;
}
body[data-style="dark"] .card.bg-secondary {
background-color: #707579 !important;
color: white !important;
}
body[data-style="dark"] .card.bg-info {
background-color: #2a707a !important;
color: black !important;
}
body[data-style="dark"] .card.bg-info .card.bg-info {
background-color: #3a929e !important;
color: black !important;
}
body[data-style="dark"] .card.bg-dark {
background-color: #4b4f54 !important;
color: white !important;
}
body[data-style="dark"] .card.bg-dark .card.bg-dark {
background-color: #565b60 !important;
}
body[data-style="dark"] .card.bg-dark .card.bg-dark .card.bg-dark {
background-color: #646b72 !important;
}
body[data-style="dark"] .help-tooltip {
background-color: #2d3236;
color: #fff;
border-color: #24282c;
}
+2 -2
View File
@@ -17,11 +17,11 @@ i18next
})
.then(() => {
jqueryI18next.init(i18next, $, { parseDefaultValueFromContent: false })
$('html').localize()
updateView()
})
function changeLng(code) {
i18next.changeLanguage(code).then(() => {
$('html').localize()
updateView()
})
}
+8 -1
View File
@@ -32,11 +32,18 @@
</div>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="" role="button" data-toggle="dropdown">
<a class="nav-link dropdown-toggle mr-2" href="" role="button" data-toggle="dropdown">
🌎 Language
</a>
<div id="lngList" class="dropdown-menu"></div>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="" role="button" data-toggle="dropdown" data-i18n="theme"></a>
<div class="dropdown-menu">
<a class="dropdown-item" onclick="changeTheme('light')" data-i18n="theme.light"></a>
<a class="dropdown-item" onclick="changeTheme('dark')" data-i18n="theme.dark"></a>
</div>
</li>
</ul>
<span class="ml-0 ml-md-2"><a href="https://github.com/misode/loot-table" style="color: #ddd;" data-i18n="author"></a></span>
</div>
+13
View File
@@ -218,6 +218,16 @@
"function.zoom": "Zoom",
"function_add": "Add Function",
"function_remove": "Remove Function",
"help.entry.expand": "If false, entry will return all contents of tag, otherwise entry will behave as multiple item entries",
"help.entry.type.alternatives": "Tests conditions of the child entries and executes the first that can run",
"help.entry.type.dynamic": "Gets block specific drops",
"help.entry.type.empty": "Adds nothing to the pool",
"help.entry.type.group": "Executes all child entries when own conditions pass",
"help.entry.type.item": "Adds a single item",
"help.entry.type.loot_table": "Adds the contents of another loot table",
"help.entry.type.sequence": "Executes child entries until the first one that can't run due to conditions",
"help.entry.type.tag": "Adds the contents of an item tag",
"help.pool.rolls": "The amount of entries that are randomly chosen",
"gamemode.adventure": "Adventure",
"gamemode.creative": "Creative",
"gamemode.spectator": "Spectator",
@@ -322,6 +332,9 @@
"tabs": "Tabs",
"term_add": "Add Term",
"term_remove": "Remove Term",
"theme": "Theme",
"theme.light": "Light",
"theme.dark": "Dark",
"title.loot-table": "Loot Table Generator",
"title.predicate": "Predicate Generator",
"true": "True",
+1
View File
@@ -53,6 +53,7 @@
"type": "enum",
"translate": "entry.type",
"translateValue": "entry.type",
"help": true,
"default": "minecraft:item",
"values": [
"minecraft:empty",
+4 -1
View File
@@ -34,7 +34,8 @@
{
"id": "rolls",
"type": "random",
"translate": "pool.rolls"
"translate": "pool.rolls",
"help": true
},
{
"id": "bonus_rolls",
@@ -75,6 +76,7 @@
"type": "enum",
"translate": "entry.type",
"translateValue": "entry.type",
"help": true,
"default": "minecraft:item",
"values": [
"minecraft:empty",
@@ -114,6 +116,7 @@
"type": "boolean",
"default": "false",
"translate": "entry.expand",
"help": true,
"require": [
"minecraft:tag"
]
+2
View File
@@ -86,6 +86,7 @@
"type": "enum",
"translate": "entry.type",
"translateValue": "entry.type",
"help": true,
"default": "minecraft:item",
"values": [
"minecraft:empty",
@@ -125,6 +126,7 @@
"type": "boolean",
"default": "false",
"translate": "entry.expand",
"help": true,
"require": [
"minecraft:tag"
]
+36
View File
@@ -32,6 +32,15 @@ function changeVersion(version) {
});
}
changeTheme(localStorage.getItem('theme'))
function changeTheme(theme) {
if (theme === null) {
theme = 'light';
}
$('body').attr('data-style', theme);
localStorage.setItem('theme', theme);
}
function updateView() {
if (structure) {
let {out: sourceOut, component: $component} = generateSourceAndView(table, structure);
@@ -113,6 +122,9 @@ function generateString(data, struct) {
$el.attr('data-index', struct.id);
$el.find('[data-name]').attr('data-i18n', struct.translate);
$el.find('input').val(data);
if (struct.help) {
$el.append(generateTooltip(struct.translate));
}
return {out: data, component: $el};
}
@@ -125,6 +137,9 @@ function generateBoolean(data, struct) {
} else if (data === false) {
$el.find('[value="false"]').addClass('active');
}
if (struct.help) {
$el.append(generateTooltip(struct.translate));
}
return {out: data, component: $el};
}
@@ -146,6 +161,9 @@ function generateRandom(data, struct) {
$el.find('.exact').removeClass('d-none');
$el.find('.exact').val(data);
}
if (struct.help) {
$el.append(generateTooltip(struct.translate));
}
return {out: data, component: $el};
}
@@ -161,6 +179,9 @@ function generateRange(data, struct) {
$el.find('.exact').removeClass('d-none');
$el.find('.exact').val(data);
}
if (struct.help) {
$el.append(generateTooltip(struct.translate));
}
return {out: data, component: $el};
}
@@ -172,6 +193,9 @@ function generateBoundary(data, struct) {
$el.find('.range.min').val(data.min);
$el.find('.range.max').val(data.max);
}
if (struct.help) {
$el.append(generateTooltip(struct.translate));
}
return {out: data, component: $el};
}
@@ -196,6 +220,9 @@ function generateEnum(data, struct) {
}
}
$el.find('select').val(collection.includes(data) ? data : correctNamespace(data));
if (struct.help) {
$el.append(generateTooltip(struct.translateValue + '.' + data.replace(/.*:/, '')));
}
return {out: data, component: $el};
}
@@ -273,6 +300,9 @@ function generateJson(data, struct) {
data = JSON.stringify(data);
}
$el.find('textarea').val(data).keydown(e => preventNewline(e));
if (struct.help) {
$el.append(generateTooltip(struct.translate));
}
return {out: data, component: $el};
}
@@ -450,6 +480,12 @@ function generateField(data, field, parent) {
return false;
}
function generateTooltip(str) {
let $el = $('<button type="button" class="btn help-tooltip ml-2" data-toggle="tooltip" data-help="' + str + '">?</button>');
$el.tooltip({title: i18next.t('help.' + str)});
return $el;
}
function preventNewline(e) {
if (e.which === 13) {
$(e.target).trigger('change');