blob: 7f7694bc11d7b329fd088c9a405c3d88475b023d [file] [log] [blame]
Akron2d0d96d2019-11-18 19:49:50 +01001/**
2 * The query panel
3 *
4 * @author Nils Diewald
5 */
Akron14f3ee92020-10-19 11:59:40 +02006"use strict";
7
Akron2d0d96d2019-11-18 19:49:50 +01008define([
Akrondac5f132024-12-11 14:33:23 +01009 'panel',
10 'state'
11], function (panelClass, stateClass) {
Akron2d0d96d2019-11-18 19:49:50 +010012
13 const d = document;
14
15 // Localization values
16 const loc = KorAP.Locale;
17
18 return {
Akron386f1222022-12-21 16:26:11 +010019 type : 'query',
20
Akron2d0d96d2019-11-18 19:49:50 +010021 create : function (opened) {
22 return Object.create(panelClass)._init(['query']).upgradeTo(this)._init(opened);
23 },
24
25 // Initialize panel
26 _init : function (opened) {
27 this._opened = opened;
Akron37ea1192021-07-28 10:40:14 +020028 const a = this.actions();
Akrondac5f132024-12-11 14:33:23 +010029
30 // Add glimpse button
31 const s = stateClass.create([true,false]);
32 const cof = document.getElementById("q-cutoff-field");
33 const colabel = document.getElementById("glimpse").parentNode;
34
35 let glimpseChange = {
36 setState : function (val) {
37 cof.checked = val;
38 }
39 };
40 s.associate(glimpseChange);
41 s.set(cof.checked);
42
43 a.addToggle(
44 "Glimpse", {
45 'cls':['glimpse'],
46 'desc':colabel.getAttribute('title')
47 },
48 s
49 );
50
51 // Don't show default glimpse
52 colabel.style.display = "none";
53
hebastaf6adf8d2019-11-26 14:04:10 +010054
Akron2d0d96d2019-11-18 19:49:50 +010055 // If plugins are enabled, add all buttons for the query panel
56 if (KorAP.Plugin) {
Akron2d0d96d2019-11-18 19:49:50 +010057
58 // Add all matchbuttons in order
Akron14f3ee92020-10-19 11:59:40 +020059 KorAP.Plugin
60 .buttonGroup("query")
61 .forEach(i => a.add.apply(a, i));
Akron2d0d96d2019-11-18 19:49:50 +010062
hebastaf6adf8d2019-11-26 14:04:10 +010063 KorAP.Plugin.clearButtonGroup("query")
Akron2d0d96d2019-11-18 19:49:50 +010064 };
65
66 return this;
67 }
68 }
69});