diff --git a/package.json b/package.json
index 02be5cbc..d99e4e54 100644
--- a/package.json
+++ b/package.json
@@ -48,7 +48,7 @@
"autoprefixer": "^10.4.4",
"babel-loader": "^8.2.4",
"babel-plugin-dynamic-import-node": "^2.3.3",
- "chromedriver": "^99.0.0",
+ "chromedriver": "^101.0.0",
"cli-progress": "^3.10.0",
"colors": "^1.4.0",
"copy-webpack-plugin": "^10.2.4",
diff --git a/src/web/HTMLOperation.mjs b/src/web/HTMLOperation.mjs
index 04e9b3cc..67c07788 100755
--- a/src/web/HTMLOperation.mjs
+++ b/src/web/HTMLOperation.mjs
@@ -46,7 +46,7 @@ class HTMLOperation {
* @returns {string}
*/
toStubHtml(removeIcon) {
- let html = "
${titleFromWikiLink(this.infoURL)}` : "";
@@ -58,6 +58,12 @@ class HTMLOperation {
html += ">" + this.name;
+ html += `
+
+ `;
+
if (removeIcon) {
html += "delete";
}
@@ -83,6 +89,9 @@ class HTMLOperation {
html += `
+ arrow_downward
+ arrow_upward
+ delete
pause
not_interested
diff --git a/src/web/Manager.mjs b/src/web/Manager.mjs
index e1e07dfd..779546c1 100755
--- a/src/web/Manager.mjs
+++ b/src/web/Manager.mjs
@@ -93,6 +93,7 @@ class Manager {
this.bindings.updateKeybList();
this.background.registerChefWorker();
this.seasonal.load();
+ this.options.load();
}
@@ -126,6 +127,7 @@ class Manager {
// Operations
this.addMultiEventListener("#search", "keyup paste search", this.ops.searchOperations, this.ops);
this.addDynamicListener(".op-list li.operation", "dblclick", this.ops.operationDblclick, this.ops);
+ this.addDynamicListener(".op-list li.operation button i", "click", this.ops.operationAdd, this.ops);
document.getElementById("edit-favourites").addEventListener("click", this.ops.editFavouritesClick.bind(this.ops));
document.getElementById("save-favourites").addEventListener("click", this.ops.saveFavouritesClick.bind(this.ops));
document.getElementById("reset-favourites").addEventListener("click", this.ops.resetFavouritesClick.bind(this.ops));
@@ -137,6 +139,9 @@ class Manager {
this.addDynamicListener(".arg[type=checkbox], .arg[type=radio], select.arg", "change", this.recipe.ingChange, this.recipe);
this.addDynamicListener(".disable-icon", "click", this.recipe.disableClick, this.recipe);
this.addDynamicListener(".breakpoint", "click", this.recipe.breakpointClick, this.recipe);
+ this.addDynamicListener(".remove-icon", "click", this.recipe.removeClick, this.recipe);
+ this.addDynamicListener(".move-down", "click", this.recipe.moveDownClick, this.recipe);
+ this.addDynamicListener(".move-up", "click", this.recipe.moveUpClick, this.recipe);
this.addDynamicListener("#rec-list li.operation", "dblclick", this.recipe.operationDblclick, this.recipe);
this.addDynamicListener("#rec-list li.operation > div", "dblclick", this.recipe.operationChildDblclick, this.recipe);
this.addDynamicListener("#rec-list .dropdown-menu.toggle-dropdown a", "click", this.recipe.dropdownToggleClick, this.recipe);
@@ -233,6 +238,7 @@ class Manager {
document.getElementById("theme").addEventListener("change", this.options.themeChange.bind(this.options));
document.getElementById("logLevel").addEventListener("change", this.options.logLevelChange.bind(this.options));
document.getElementById("imagePreview").addEventListener("change", this.input.renderFileThumb.bind(this.input));
+ document.getElementById("accessibleUX").addEventListener("change", this.options.uxChange.bind(this.options));
// Misc
window.addEventListener("keydown", this.bindings.parseInput.bind(this.bindings));
diff --git a/src/web/html/index.html b/src/web/html/index.html
index 8a7adac7..59a6b9b4 100755
--- a/src/web/html/index.html
+++ b/src/web/html/index.html
@@ -584,6 +584,13 @@
Keep the current tab in sync between the input and output
+
+
+
+