Support setting query form values via plugins

Change-Id: I75de9d725ab8be72acd03c5f84ac68355a0c45a1
diff --git a/dev/js/src/plugin/server.js b/dev/js/src/plugin/server.js
index c99f695..b47e75c 100644
--- a/dev/js/src/plugin/server.js
+++ b/dev/js/src/plugin/server.js
@@ -13,6 +13,8 @@
 
   KorAP.Panel = KorAP.Panel || {};
 
+  const d = document;
+
   // State manager undefined
   const states = KorAP.States ? KorAP.States :
 
@@ -69,6 +71,10 @@
      * Initialize the plugin manager
      */
     _init : function () {
+      this._ql     = d.getElementById("ql-field");
+      this._q      = d.getElementById("q-field")
+      this._cutoff = d.getElementById("q-cutoff-field");
+
       return this;
     },
 
@@ -548,6 +554,33 @@
 
         break;
 
+      case 'set':
+
+        // Get Query information from form
+        if (d.key == 'QueryForm') {
+          let v = d["value"];
+          if (v["q"] != undefined && this._q) {
+            this._q.value = v["q"];
+          };
+
+          // Set query language field
+          // Identical to tutorial.js
+          if (v[ql] != undefined && KorAP.QLmenu) {
+            KorAP.QLmenu.selectValue(ql);
+          }
+
+          else if (this._ql) {
+            let found = Array.from(this._ql.options).find(o => o.value === ql);
+            if (found)
+              found.selected = true;
+          };
+
+          window.scrollTo(0, 0);
+          // if (v["cq"] != undefined) {};
+        }
+
+        break;
+        
         // Redirect to a different page relative to the current
       case 'redirect':
         const url = new URL(window.location);