@easyquery/ui 7.2.5-rc03 → 7.3.0-rc01
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/css/aggr-settings.css +4 -8
- package/dist/assets/css/easychart.css +1 -3
- package/dist/assets/css/easyfacets.css +9 -5
- package/dist/assets/css/easyquery.css +36 -297
- package/dist/assets/css/easyquery.ui.css +435 -209
- package/dist/assets/css/eq-icons.css +81 -0
- package/dist/assets/css/eqview.css +6 -13
- package/dist/assets/css/themes.css +12 -0
- package/dist/assets/css/upgrade.css +298 -0
- package/dist/easyquery.ui.cjs.js +211 -186
- package/dist/easyquery.ui.esm.js +175 -150
- package/dist/types/public_api.d.ts +0 -1
- package/dist/types/utils/utils.d.ts +1 -0
- package/dist/types/views/adv_search_view.d.ts +2 -0
- package/dist/types/views/view.d.ts +2 -1
- package/dist/types/widgets/columns_bar.d.ts +1 -0
- package/dist/types/widgets/renderers/querypanel/datetime_expression_render.d.ts +1 -1
- package/package.json +6 -7
- package/dist/assets/css/eq-icons-default.css +0 -140
- package/dist/assets/css/eq-icons-files.css +0 -138
- package/dist/assets/css/images/ExportCSV.png +0 -0
- package/dist/assets/css/images/ExportExel.png +0 -0
- package/dist/assets/css/images/aggr_settings_cancel.png +0 -0
- package/dist/assets/css/images/aggr_settings_func.png +0 -0
- package/dist/assets/css/images/aggr_settings_group.png +0 -0
- package/dist/assets/css/images/ajax-loader.gif +0 -0
- package/dist/assets/css/images/chart-settings.png +0 -0
- package/dist/assets/css/images/checkbox_checked.png +0 -0
- package/dist/assets/css/images/checkbox_unchecked.png +0 -0
- package/dist/assets/css/images/clearButton.png +0 -0
- package/dist/assets/css/images/colbtn-aggrfunc.png +0 -0
- package/dist/assets/css/images/condbtn-addcondition.png +0 -0
- package/dist/assets/css/images/condbtn-addpredicate.png +0 -0
- package/dist/assets/css/images/condbtn-delete.png +0 -0
- package/dist/assets/css/images/condbtn-disabled.png +0 -0
- package/dist/assets/css/images/condbtn-enabled.png +0 -0
- package/dist/assets/css/images/condbtn-menu.png +0 -0
- package/dist/assets/css/images/condbtn-param.png +0 -0
- package/dist/assets/css/images/eqjs-ep-add-columns-hover.png +0 -0
- package/dist/assets/css/images/eqjs-ep-add-columns.png +0 -0
- package/dist/assets/css/images/eqjs-ep-add-cond-hover.png +0 -0
- package/dist/assets/css/images/eqjs-ep-add-cond.png +0 -0
- package/dist/assets/css/images/eqjs-ep-deselect-all-hover.png +0 -0
- package/dist/assets/css/images/eqjs-ep-deselect-all.png +0 -0
- package/dist/assets/css/images/eqjs-ep-select-all-hover.png +0 -0
- package/dist/assets/css/images/eqjs-ep-select-all.png +0 -0
- package/dist/assets/css/images/eqjs-fb-header-icon.png +0 -0
- package/dist/assets/css/images/execute.png +0 -0
- package/dist/assets/css/images/loadButton.png +0 -0
- package/dist/assets/css/images/logo.png +0 -0
- package/dist/assets/css/images/node-close.png +0 -0
- package/dist/assets/css/images/node-open.png +0 -0
- package/dist/assets/css/images/saveButton.png +0 -0
- package/dist/assets/css/images/sorting_asc.png +0 -0
- package/dist/assets/css/images/sorting_desc.png +0 -0
- package/dist/assets/css/images/sorting_none.png +0 -0
- package/dist/assets/css/images/ve-loader.gif +0 -0
- package/dist/types/utils/browser_utils.d.ts +0 -8
package/dist/easyquery.ui.esm.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { utils, i18n, DataType, EasyDataTable, AggregationSettings } from '@easydata/core';
|
|
2
2
|
import { Widget, WidgetGroup, QueryChangePart, QueryChangeAction, ExprTag, SortDirection, i18n as i18n$1, equtils, eqconsts, ConditionPart, DataKind, Query, Expression, CondTag, EqEditorTag, EqValueEditor, EqServiceProvider, createEqContext } from '@easyquery/core';
|
|
3
|
-
import { eqDragManager, getElementAbsolutePos, getScrollPos, getWinSize, getViewportSize, domel, DropEffect, createBrowserEvent, DomElementBuilder, DefaultDateTimePicker, slideDown, slideUp, EasyGrid, addCssClass, hideElement, showElement, isVisible, toggleVisibility, addElement, DefaultDialogService } from '@easydata/ui';
|
|
3
|
+
import { browserUtils, eqDragManager, getElementAbsolutePos, getScrollPos, getWinSize, getViewportSize, domel, DropEffect, createBrowserEvent, DomElementBuilder, DefaultDateTimePicker, slideDown, slideUp, EasyGrid, addCssClass, hideElement, showElement, isVisible, toggleVisibility, addElement, DefaultDialogService } from '@easydata/ui';
|
|
4
4
|
|
|
5
5
|
function findHighestZIndex(elem) {
|
|
6
6
|
let highest = 0;
|
|
@@ -27,64 +27,9 @@ function safeFocus(element) {
|
|
|
27
27
|
}
|
|
28
28
|
const eqCssPrefix = 'eqjs';
|
|
29
29
|
const eqCssMobile = 'eqjs-mobile';
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
let _isFirefox = null;
|
|
34
|
-
function isIE() {
|
|
35
|
-
const ua = window.navigator.userAgent;
|
|
36
|
-
return ua.includes('MSIE') || ua.includes('Trident');
|
|
37
|
-
}
|
|
38
|
-
browserUtils.isIE = isIE;
|
|
39
|
-
function isFirefox() {
|
|
40
|
-
if (_isFirefox === null) {
|
|
41
|
-
const ua = navigator.userAgent;
|
|
42
|
-
_isFirefox = ua.toLowerCase().indexOf('firefox') > -1;
|
|
43
|
-
}
|
|
44
|
-
return _isFirefox;
|
|
45
|
-
}
|
|
46
|
-
browserUtils.isFirefox = isFirefox;
|
|
47
|
-
let _detectedIsMobileMode = false;
|
|
48
|
-
let _isMobileMode = undefined;
|
|
49
|
-
let detectIsMobileMode = () => {
|
|
50
|
-
const oldValue = isMobileMode();
|
|
51
|
-
_detectedIsMobileMode = window.matchMedia('only screen and (max-width: 840px)').matches
|
|
52
|
-
|| window.matchMedia('only screen and (max-height: 420px)').matches;
|
|
53
|
-
const newValue = isMobileMode();
|
|
54
|
-
if (newValue !== oldValue && mobileModeChangeHandler) {
|
|
55
|
-
mobileModeChangeHandler(newValue);
|
|
56
|
-
}
|
|
57
|
-
};
|
|
58
|
-
detectIsMobileMode();
|
|
59
|
-
window.addEventListener('resize', () => detectIsMobileMode());
|
|
60
|
-
function isMobileMode() {
|
|
61
|
-
if (_isMobileMode !== undefined) {
|
|
62
|
-
return _isMobileMode;
|
|
63
|
-
}
|
|
64
|
-
else {
|
|
65
|
-
return _detectedIsMobileMode;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
browserUtils.isMobileMode = isMobileMode;
|
|
69
|
-
function setIsMobileMode(value) {
|
|
70
|
-
const oldValue = isMobileMode();
|
|
71
|
-
_isMobileMode = value;
|
|
72
|
-
const newValue = isMobileMode();
|
|
73
|
-
if (newValue !== oldValue && mobileModeChangeHandler) {
|
|
74
|
-
mobileModeChangeHandler(newValue);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
browserUtils.setIsMobileMode = setIsMobileMode;
|
|
78
|
-
let mobileModeChangeHandler;
|
|
79
|
-
function onMobileModeChanged(callback) {
|
|
80
|
-
mobileModeChangeHandler = callback;
|
|
81
|
-
}
|
|
82
|
-
browserUtils.onMobileModeChanged = onMobileModeChanged;
|
|
83
|
-
function getMobileCssClass() {
|
|
84
|
-
return isMobileMode() ? eqCssMobile : null;
|
|
85
|
-
}
|
|
86
|
-
browserUtils.getMobileCssClass = getMobileCssClass;
|
|
87
|
-
})(browserUtils || (browserUtils = {}));
|
|
30
|
+
function getMobileCssClass() {
|
|
31
|
+
return browserUtils.isMobileMode() ? eqCssMobile : null;
|
|
32
|
+
}
|
|
88
33
|
|
|
89
34
|
/**
|
|
90
35
|
* The entities panel wiget, implemented without JQuery.
|
|
@@ -183,13 +128,13 @@ class EntitiesPanel extends Widget {
|
|
|
183
128
|
let model = this.context.getModel();
|
|
184
129
|
this.clear();
|
|
185
130
|
this.panel.classList.add(`${this.cssPrefix}-panel`);
|
|
186
|
-
this.panel.classList.add(
|
|
131
|
+
this.panel.classList.add(getMobileCssClass());
|
|
187
132
|
this.rootEntityBlock = document.createElement('div');
|
|
188
133
|
if (model != null && !model.isEmpty()) {
|
|
189
134
|
let entTree = model.getEntitiesTree({
|
|
190
|
-
addUIC: this.options.showAttributes.useInConditions,
|
|
135
|
+
addUIC: this.options.showAttributes.useInConditions && !this.options.syncWithColumns,
|
|
191
136
|
addUIR: this.options.showAttributes.useInResult,
|
|
192
|
-
addUIS: this.options.showAttributes.useInSorting,
|
|
137
|
+
addUIS: this.options.showAttributes.useInSorting && !this.options.syncWithColumns,
|
|
193
138
|
attrPlacement: this.options.attrPlacement,
|
|
194
139
|
sortEntities: this.options.sortEntities,
|
|
195
140
|
includeRootData: true
|
|
@@ -214,10 +159,10 @@ class EntitiesPanel extends Widget {
|
|
|
214
159
|
let entityBlock;
|
|
215
160
|
let entityNode = document.createElement('div');
|
|
216
161
|
entityNode.classList.add(`${this.cssPrefix}-entity-node`);
|
|
217
|
-
entityNode.classList.add(
|
|
162
|
+
entityNode.classList.add(getMobileCssClass());
|
|
218
163
|
let entityChildren = document.createElement('div');
|
|
219
164
|
entityChildren.classList.add(`${this.cssPrefix}-entity-children`);
|
|
220
|
-
entityChildren.classList.add(
|
|
165
|
+
entityChildren.classList.add(getMobileCssClass());
|
|
221
166
|
let nodeLabel = document.createElement('label');
|
|
222
167
|
nodeLabel.classList.add(`${this.cssPrefix}-entity-node-label`);
|
|
223
168
|
let nodeInput = document.createElement('input');
|
|
@@ -241,7 +186,7 @@ class EntitiesPanel extends Widget {
|
|
|
241
186
|
entityBlock = document.createElement('div');
|
|
242
187
|
}
|
|
243
188
|
entityBlock.classList.add(`${this.cssPrefix}-entity`);
|
|
244
|
-
entityBlock.classList.add(
|
|
189
|
+
entityBlock.classList.add(getMobileCssClass());
|
|
245
190
|
if (entity.id && entity.id != "") {
|
|
246
191
|
nodeLabel.innerText = entity.text;
|
|
247
192
|
entityNode.appendChild(nodeLabel); //caption
|
|
@@ -288,7 +233,7 @@ class EntitiesPanel extends Widget {
|
|
|
288
233
|
const attr = model.getAttributeById(attrId);
|
|
289
234
|
const column = query.addColumn({
|
|
290
235
|
attribute: attr
|
|
291
|
-
});
|
|
236
|
+
}, true);
|
|
292
237
|
query.fireColumnsChangedEvent(QueryChangeAction.Add, column);
|
|
293
238
|
}
|
|
294
239
|
else {
|
|
@@ -320,7 +265,7 @@ class EntitiesPanel extends Widget {
|
|
|
320
265
|
attrNode.innerHTML = "";
|
|
321
266
|
attrNode.appendChild(attrLabel);
|
|
322
267
|
attrNode.setAttribute('data-id', item.id);
|
|
323
|
-
if (this.options.draggableAttributes) {
|
|
268
|
+
if (this.options.draggableAttributes && !this.options.syncWithColumns) {
|
|
324
269
|
eqDragManager.registerDraggableItem({
|
|
325
270
|
element: attrNode,
|
|
326
271
|
scope: "entityAttr",
|
|
@@ -391,7 +336,7 @@ class EntitiesPanel extends Widget {
|
|
|
391
336
|
}
|
|
392
337
|
if (element.checked) {
|
|
393
338
|
for (const attrId of attrList) {
|
|
394
|
-
query.addColumn({ attributeId: attrId });
|
|
339
|
+
query.addColumn({ attributeId: attrId }, true);
|
|
395
340
|
}
|
|
396
341
|
}
|
|
397
342
|
else {
|
|
@@ -412,7 +357,7 @@ class EntitiesPanel extends Widget {
|
|
|
412
357
|
createFilterBox() {
|
|
413
358
|
this.filterBoxBlock = document.createElement('div');
|
|
414
359
|
this.filterBoxBlock.classList.add(`${this.cssPrefix}-filter-box`);
|
|
415
|
-
this.filterBoxBlock.classList.add(
|
|
360
|
+
this.filterBoxBlock.classList.add(getMobileCssClass());
|
|
416
361
|
this.filterBoxInput = document.createElement('input');
|
|
417
362
|
this.filterBoxInput.classList.add(`${this.cssPrefix}-filter-box-input`);
|
|
418
363
|
this.filterBoxInput.addEventListener('input', (e) => {
|
|
@@ -445,7 +390,7 @@ class EntitiesPanel extends Widget {
|
|
|
445
390
|
let defClass = `${this.cssPrefix}-tool-panel`;
|
|
446
391
|
let toolPanelBlock = document.createElement('div');
|
|
447
392
|
toolPanelBlock.classList.add(defClass);
|
|
448
|
-
toolPanelBlock.classList.add(
|
|
393
|
+
toolPanelBlock.classList.add(getMobileCssClass());
|
|
449
394
|
let toolSelectAll = document.createElement('div');
|
|
450
395
|
toolSelectAll.classList.add(`${defClass}-select-all`);
|
|
451
396
|
toolSelectAll.title = 'Select all';
|
|
@@ -658,7 +603,7 @@ class EntitiesPanel extends Widget {
|
|
|
658
603
|
renderProgressBlock() {
|
|
659
604
|
this.progressBlock = document.createElement('div');
|
|
660
605
|
this.progressBlock.classList.add(`${eqCssPrefix}-progress-win8`);
|
|
661
|
-
this.progressBlock.classList.add(
|
|
606
|
+
this.progressBlock.classList.add(getMobileCssClass());
|
|
662
607
|
this.progressBlock.innerHTML = '<div class="wBall" id="wBall_1"><div class="wInnerBall"></div></div><div class="wBall" id="wBall_2"><div class="wInnerBall"></div></div><div class="wBall" id="wBall_3"><div class="wInnerBall"></div></div><div class="wBall" id="wBall_4"><div class="wInnerBall"></div></div><div class="wBall" id="wBall_5"><div class="wInnerBall"></div></div>';
|
|
663
608
|
}
|
|
664
609
|
clear() {
|
|
@@ -715,7 +660,7 @@ class MenuLevel {
|
|
|
715
660
|
const isSubQuery = this.parentMenu.options.isSubQuery;
|
|
716
661
|
//add base DIV element which is also used to show the shadow
|
|
717
662
|
const baseDivBuilder = domel('div')
|
|
718
|
-
.addClass(
|
|
663
|
+
.addClass(getMobileCssClass());
|
|
719
664
|
if (this.parentMenu.options.useDefaultStyles) {
|
|
720
665
|
baseDivBuilder
|
|
721
666
|
.setStyle('backgroundColor', itemBgColor)
|
|
@@ -839,7 +784,7 @@ class MenuLevel {
|
|
|
839
784
|
scrollDiv.tabIndex = 1;
|
|
840
785
|
domel(scrollDiv)
|
|
841
786
|
.addClass(`${this.cssPrefix}-scrollDiv`)
|
|
842
|
-
.addClass(
|
|
787
|
+
.addClass(getMobileCssClass());
|
|
843
788
|
scrollDiv.style.overflowX = "hidden";
|
|
844
789
|
scrollDiv.style.overflowY = "auto";
|
|
845
790
|
scrollDiv.style.position = "relative";
|
|
@@ -1036,7 +981,7 @@ class MenuLevel {
|
|
|
1036
981
|
const itemDiv = document.createElement("div");
|
|
1037
982
|
domel(itemDiv)
|
|
1038
983
|
.addClass(`${this.cssPrefix}-itemDiv`)
|
|
1039
|
-
.addClass(
|
|
984
|
+
.addClass(getMobileCssClass());
|
|
1040
985
|
if (item.selected && this.showSelected && !multiselect) {
|
|
1041
986
|
itemDiv.classList.add(`${this.cssPrefix}-selected`);
|
|
1042
987
|
}
|
|
@@ -1219,7 +1164,7 @@ class MenuLevel {
|
|
|
1219
1164
|
const itemDiv = document.createElement("div");
|
|
1220
1165
|
domel(itemDiv)
|
|
1221
1166
|
.addClass(`${this.cssPrefix}-itemDiv`)
|
|
1222
|
-
.addClass(
|
|
1167
|
+
.addClass(getMobileCssClass());
|
|
1223
1168
|
itemDiv.style.marginLeft = `${level * 10}px`;
|
|
1224
1169
|
if (item.selected && !multiselect) {
|
|
1225
1170
|
itemDiv.classList.add(`${this.cssPrefix}-selected`);
|
|
@@ -1564,7 +1509,7 @@ class MenuLevel {
|
|
|
1564
1509
|
this.parentElement.appendChild(this.levelDiv);
|
|
1565
1510
|
domel(this.levelDiv)
|
|
1566
1511
|
.addClass(`${this.cssPrefix}-levelDiv`)
|
|
1567
|
-
.addClass(
|
|
1512
|
+
.addClass(getMobileCssClass());
|
|
1568
1513
|
this.initialized = true;
|
|
1569
1514
|
}
|
|
1570
1515
|
}
|
|
@@ -2040,7 +1985,7 @@ class ColumnRendererCP {
|
|
|
2040
1985
|
this.createButtonMenu();
|
|
2041
1986
|
builder
|
|
2042
1987
|
.addClass(this.getClassesToAdd())
|
|
2043
|
-
.addClass(
|
|
1988
|
+
.addClass(getMobileCssClass())
|
|
2044
1989
|
.addChildElement(this.renderCheckbox())
|
|
2045
1990
|
//start sort button
|
|
2046
1991
|
.addChild('div', builder => builder
|
|
@@ -2057,7 +2002,7 @@ class ColumnRendererCP {
|
|
|
2057
2002
|
.addChild('div', builder => {
|
|
2058
2003
|
builder
|
|
2059
2004
|
.addClass(`${eqCssPrefix}-column-buttonsBlock`, `${this.cssPrefix}-buttonsBlock`)
|
|
2060
|
-
.addClass(
|
|
2005
|
+
.addClass(getMobileCssClass());
|
|
2061
2006
|
//start enable button
|
|
2062
2007
|
if (this.getButtonsToShow().indexOf("enable") >= 0 && !this.column.isReadOnly()) {
|
|
2063
2008
|
builder.addChildElement(this.renderEnabledButton());
|
|
@@ -2084,7 +2029,7 @@ class ColumnRendererCP {
|
|
|
2084
2029
|
}
|
|
2085
2030
|
//end menu button
|
|
2086
2031
|
});
|
|
2087
|
-
//end buttons
|
|
2032
|
+
//end buttons
|
|
2088
2033
|
if (!browserUtils.isMobileMode()) {
|
|
2089
2034
|
//start event listeners
|
|
2090
2035
|
builder
|
|
@@ -2099,6 +2044,9 @@ class ColumnRendererCP {
|
|
|
2099
2044
|
if (this.panel.options.alwaysShowButtons) {
|
|
2100
2045
|
this.showButtons();
|
|
2101
2046
|
}
|
|
2047
|
+
if (this.panel.options.showCheckboxes === false) {
|
|
2048
|
+
builder.addClass("eqjs-no-checkbox");
|
|
2049
|
+
}
|
|
2102
2050
|
return this.element;
|
|
2103
2051
|
}
|
|
2104
2052
|
onMouseClick(ev) {
|
|
@@ -2119,7 +2067,7 @@ class ColumnRendererCP {
|
|
|
2119
2067
|
renderCaptionBlock() {
|
|
2120
2068
|
const builder = domel('div')
|
|
2121
2069
|
.addClass(`${this.cssPrefix}-colelement`, `${this.cssPrefix}-captionelement`)
|
|
2122
|
-
.addClass(
|
|
2070
|
+
.addClass(getMobileCssClass());
|
|
2123
2071
|
if (this.isEditable()) {
|
|
2124
2072
|
builder
|
|
2125
2073
|
.addChild('a', builder => builder
|
|
@@ -2309,7 +2257,7 @@ class ColumnRendererCP {
|
|
|
2309
2257
|
.addClass(`${eqCssPrefix}-button`, `${eqCssPrefix}-column-button`, `${eqCssPrefix}-column-button-menu`)
|
|
2310
2258
|
.title(i18n$1.getText('ButtonMenu'))
|
|
2311
2259
|
.attr('tabIndex', '0')
|
|
2312
|
-
.on('click', evt => this.buttonMenuHandler(ColumnAction.Menu, evt)) //touchstart
|
|
2260
|
+
.on('click', evt => this.buttonMenuHandler(ColumnAction.Menu, evt)) //touchstart
|
|
2313
2261
|
.on('keypress', evt => { if (evt.keyCode == 13) {
|
|
2314
2262
|
evt.target.click();
|
|
2315
2263
|
} }))
|
|
@@ -2739,10 +2687,10 @@ class AttrColumnRendererCP extends ColumnRendererCP {
|
|
|
2739
2687
|
renderExpressionBlock() {
|
|
2740
2688
|
return domel("div")
|
|
2741
2689
|
.addClass(`${this.cssPrefix}-expr-block`)
|
|
2742
|
-
.addClass(
|
|
2690
|
+
.addClass(getMobileCssClass())
|
|
2743
2691
|
.addChild('div', builder => builder
|
|
2744
2692
|
.addClass(`${this.cssPrefix}-colelement`, `${this.cssPrefix}-attrelement`)
|
|
2745
|
-
.addClass(
|
|
2693
|
+
.addClass(getMobileCssClass())
|
|
2746
2694
|
.addChildElement(this.renderBaseExpression()))
|
|
2747
2695
|
.toDOM();
|
|
2748
2696
|
}
|
|
@@ -2912,7 +2860,7 @@ class AggrFuncColumnRendererCP extends AttrColumnRendererCP {
|
|
|
2912
2860
|
const model = this.panel.getContext().getModel();
|
|
2913
2861
|
const exprBlockBuilder = domel("div")
|
|
2914
2862
|
.addClass(`${this.cssPrefix}-expr-block`, `${this.cssPrefix}-expr-block-aggr`)
|
|
2915
|
-
.addClass(
|
|
2863
|
+
.addClass(getMobileCssClass());
|
|
2916
2864
|
const format = model.getAggrFunctionFormat(this.column.expr.func);
|
|
2917
2865
|
if (!format || format === '')
|
|
2918
2866
|
return;
|
|
@@ -2948,14 +2896,14 @@ class AggrFuncColumnRendererCP extends AttrColumnRendererCP {
|
|
|
2948
2896
|
exprBlockBuilder
|
|
2949
2897
|
.addChild('div', builder => builder
|
|
2950
2898
|
.addClass(`${this.cssPrefix}-colelement`, `${this.cssPrefix}-aggrfuncelement`)
|
|
2951
|
-
.addClass(
|
|
2899
|
+
.addClass(getMobileCssClass())
|
|
2952
2900
|
.addChildElement(functionLink.toDOM()));
|
|
2953
2901
|
}
|
|
2954
2902
|
else {
|
|
2955
2903
|
exprBlockBuilder
|
|
2956
2904
|
.addChild('div', b => b
|
|
2957
2905
|
.addClass(`${this.cssPrefix}-colelement`, `${this.cssPrefix}-aggrfuncelement`)
|
|
2958
|
-
.addClass(
|
|
2906
|
+
.addClass(getMobileCssClass())
|
|
2959
2907
|
.addChild('span', b => b
|
|
2960
2908
|
.text(item.text)
|
|
2961
2909
|
.title(item.text)));
|
|
@@ -2965,14 +2913,14 @@ class AggrFuncColumnRendererCP extends AttrColumnRendererCP {
|
|
|
2965
2913
|
exprBlockBuilder
|
|
2966
2914
|
.addChild('div', builder => builder
|
|
2967
2915
|
.addClass(`${this.cssPrefix}-colelement`, `${this.cssPrefix}-attrelement`)
|
|
2968
|
-
.addClass(
|
|
2916
|
+
.addClass(getMobileCssClass())
|
|
2969
2917
|
.addChildElement(this.renderBaseExpression()));
|
|
2970
2918
|
}
|
|
2971
2919
|
else if (item.type === 3) {
|
|
2972
2920
|
exprBlockBuilder
|
|
2973
2921
|
.addChild('span', builder => builder
|
|
2974
2922
|
.addClass(`${this.cssPrefix}-colelement`)
|
|
2975
|
-
.addClass(
|
|
2923
|
+
.addClass(getMobileCssClass())
|
|
2976
2924
|
.text(item.text)
|
|
2977
2925
|
.title(item.text));
|
|
2978
2926
|
}
|
|
@@ -3054,12 +3002,12 @@ class EditableColumnRendererCP extends AttrColumnRendererCP {
|
|
|
3054
3002
|
renderExpressionBlock() {
|
|
3055
3003
|
const exprBlock = domel("div")
|
|
3056
3004
|
.addClass(`${this.cssPrefix}-expr-block`)
|
|
3057
|
-
.addClass(
|
|
3005
|
+
.addClass(getMobileCssClass())
|
|
3058
3006
|
.toDOM();
|
|
3059
3007
|
//Attribute element
|
|
3060
3008
|
let builder = domel('div', exprBlock)
|
|
3061
3009
|
.addClass(`${this.cssPrefix}-colelement`, `${this.cssPrefix}-attrelement`)
|
|
3062
|
-
.addClass(
|
|
3010
|
+
.addClass(getMobileCssClass());
|
|
3063
3011
|
if (this.isEditable()) {
|
|
3064
3012
|
builder
|
|
3065
3013
|
.addChild('a', b => b
|
|
@@ -3135,7 +3083,7 @@ class EditableColumnRendererCP extends AttrColumnRendererCP {
|
|
|
3135
3083
|
// DataType element
|
|
3136
3084
|
builder = domel('div', exprBlock)
|
|
3137
3085
|
.addClass(`${this.cssPrefix}-colelement`, `${this.cssPrefix}-attrelement`)
|
|
3138
|
-
.addClass(
|
|
3086
|
+
.addClass(getMobileCssClass());
|
|
3139
3087
|
if (this.isEditable()) {
|
|
3140
3088
|
this.createDataTypeMenu();
|
|
3141
3089
|
builder
|
|
@@ -3385,8 +3333,18 @@ class ColumnsPanel extends Widget {
|
|
|
3385
3333
|
const headerBuilder = domel('div', this.slot)
|
|
3386
3334
|
.hide()
|
|
3387
3335
|
.addClass(`${this.cssPrefix}-header`)
|
|
3388
|
-
.addClass(
|
|
3389
|
-
|
|
3336
|
+
.addClass(getMobileCssClass());
|
|
3337
|
+
if (!this.options.alwaysShowButtons) {
|
|
3338
|
+
headerBuilder.addClass("eqjs-no-buttons");
|
|
3339
|
+
}
|
|
3340
|
+
if (this.options.showCheckboxes) {
|
|
3341
|
+
headerBuilder.addChild('div', builder => builder
|
|
3342
|
+
.setStyle('margin-left', '30px')); //quick fix to adjust title column header when showCheckboxes is on
|
|
3343
|
+
}
|
|
3344
|
+
else {
|
|
3345
|
+
headerBuilder.addClass("eqjs-no-checkbox");
|
|
3346
|
+
}
|
|
3347
|
+
headerBuilder.addChild('div', builder => builder
|
|
3390
3348
|
.addClass(`${this.cssPrefix}-header-expression`)
|
|
3391
3349
|
.text(i18n.getText('HeaderExpression')));
|
|
3392
3350
|
if (this.options.showColumnTitles !== false) {
|
|
@@ -3401,13 +3359,13 @@ class ColumnsPanel extends Widget {
|
|
|
3401
3359
|
this.columnsBlock =
|
|
3402
3360
|
domel('div', this.slot)
|
|
3403
3361
|
.addClass(`${this.cssPrefix}-columns`)
|
|
3404
|
-
.addClass(
|
|
3362
|
+
.addClass(getMobileCssClass())
|
|
3405
3363
|
.toDOM();
|
|
3406
3364
|
if (this.options.showAddRow) {
|
|
3407
3365
|
this.addRowElement =
|
|
3408
3366
|
domel('div', this.slot)
|
|
3409
3367
|
.addClass(`${eqCssPrefix}-addrow`, `${this.cssPrefix}-addrow`, `${eqCssPrefix}-addrow-empty`)
|
|
3410
|
-
.addClass(
|
|
3368
|
+
.addClass(getMobileCssClass())
|
|
3411
3369
|
.addChild('a', builder => builder
|
|
3412
3370
|
.attr('href', 'javascript:void(0)')
|
|
3413
3371
|
.text(i18n.getText('CmdClickToAddColumn'))
|
|
@@ -3629,7 +3587,7 @@ class ColumnsPanel extends Widget {
|
|
|
3629
3587
|
this.agjustHeaderVisibility();
|
|
3630
3588
|
domel(this.slot)
|
|
3631
3589
|
.removeClass(eqCssMobile)
|
|
3632
|
-
.addClass(
|
|
3590
|
+
.addClass(getMobileCssClass());
|
|
3633
3591
|
const query = this.context.getQuery();
|
|
3634
3592
|
const columns = query.getColumns();
|
|
3635
3593
|
for (let column of columns) {
|
|
@@ -3947,7 +3905,7 @@ class ColumnsPanel extends Widget {
|
|
|
3947
3905
|
renderProgressBlock() {
|
|
3948
3906
|
this.progressBlock = document.createElement('div');
|
|
3949
3907
|
this.progressBlock.classList.add(`${eqCssPrefix}-progress-win8`);
|
|
3950
|
-
this.progressBlock.classList.add(
|
|
3908
|
+
this.progressBlock.classList.add(getMobileCssClass());
|
|
3951
3909
|
this.progressBlock.innerHTML = '<div class="wBall" id="wBall_1"><div class="wInnerBall"></div></div><div class="wBall" id="wBall_2"><div class="wInnerBall"></div></div><div class="wBall" id="wBall_3"><div class="wInnerBall"></div></div><div class="wBall" id="wBall_4"><div class="wInnerBall"></div></div><div class="wBall" id="wBall_5"><div class="wInnerBall"></div></div>';
|
|
3952
3910
|
}
|
|
3953
3911
|
}
|
|
@@ -3997,7 +3955,7 @@ class ColumnRendererCB {
|
|
|
3997
3955
|
}
|
|
3998
3956
|
builder
|
|
3999
3957
|
.addClass(this.getClassesToAdd())
|
|
4000
|
-
.addClass(
|
|
3958
|
+
.addClass(getMobileCssClass())
|
|
4001
3959
|
.addChildElement(this.renderCaptionBlock())
|
|
4002
3960
|
.addChildElement(this.renderSortingImage());
|
|
4003
3961
|
if (!browserUtils.isMobileMode()) {
|
|
@@ -4038,7 +3996,7 @@ class ColumnRendererCB {
|
|
|
4038
3996
|
if (!this.isEditable()) {
|
|
4039
3997
|
return domel('div')
|
|
4040
3998
|
.addClass(`${this.cssPrefix}-colelement`, `${this.cssPrefix}-captionelement`)
|
|
4041
|
-
.addClass(
|
|
3999
|
+
.addClass(getMobileCssClass())
|
|
4042
4000
|
.addChild('div', b => b
|
|
4043
4001
|
.title(caption)
|
|
4044
4002
|
.text(caption)
|
|
@@ -4072,7 +4030,7 @@ class ColumnRendererCB {
|
|
|
4072
4030
|
}); //TO DO:add localization and input field);
|
|
4073
4031
|
return domel('div')
|
|
4074
4032
|
.addClass(`${this.cssPrefix}-colelement`, `${this.cssPrefix}-captionelement`)
|
|
4075
|
-
.addClass(
|
|
4033
|
+
.addClass(getMobileCssClass())
|
|
4076
4034
|
.addChild('a', builder => builder
|
|
4077
4035
|
.attr('href', 'javascript:void(0)')
|
|
4078
4036
|
.title(this.column.caption)
|
|
@@ -4148,7 +4106,7 @@ class ColumnRendererCB {
|
|
|
4148
4106
|
else {
|
|
4149
4107
|
return domel('div')
|
|
4150
4108
|
.addClass(`${this.cssPrefix}-colelement`, `${this.cssPrefix}-sortimage-placeholder`)
|
|
4151
|
-
.addClass(
|
|
4109
|
+
.addClass(getMobileCssClass())
|
|
4152
4110
|
.addChild('div', builder => builder
|
|
4153
4111
|
.addClass(`${this.cssPrefix}-img-sorting`, sortButtonDirectionCssClass)
|
|
4154
4112
|
.title(i18n.getText('ButtonSorting')))
|
|
@@ -4640,6 +4598,7 @@ class ColumnsBar extends Widget {
|
|
|
4640
4598
|
sortEntities: false,
|
|
4641
4599
|
columnRenderedCallback: null,
|
|
4642
4600
|
customExpressionText: 0,
|
|
4601
|
+
showAddAllForEntity: false
|
|
4643
4602
|
};
|
|
4644
4603
|
this.landingSlot = domel('div')
|
|
4645
4604
|
.addClass(`${eqCssPrefix}-highlight`)
|
|
@@ -4659,7 +4618,7 @@ class ColumnsBar extends Widget {
|
|
|
4659
4618
|
];
|
|
4660
4619
|
domel(this.slot)
|
|
4661
4620
|
.addClass(`${this.cssPrefix}-panel`)
|
|
4662
|
-
.addClass(
|
|
4621
|
+
.addClass(getMobileCssClass());
|
|
4663
4622
|
this.group = WidgetGroup.Query;
|
|
4664
4623
|
this.customQuery = customQuery;
|
|
4665
4624
|
}
|
|
@@ -4878,7 +4837,7 @@ class ColumnsBar extends Widget {
|
|
|
4878
4837
|
renderAddRowButton() {
|
|
4879
4838
|
domel(this.addRowButton)
|
|
4880
4839
|
.addClass(`${eqCssPrefix}-addrow`, `${this.cssPrefix}-addrow`, `${eqCssPrefix}-addrow-empty`)
|
|
4881
|
-
.addClass(
|
|
4840
|
+
.addClass(getMobileCssClass())
|
|
4882
4841
|
.title(i18n.getText('CmdClickToAddColumn'))
|
|
4883
4842
|
.addChild('a', builder => builder
|
|
4884
4843
|
.attr('href', 'javascript:void(0)')
|
|
@@ -4888,8 +4847,13 @@ class ColumnsBar extends Widget {
|
|
|
4888
4847
|
anchor: e.target,
|
|
4889
4848
|
selectedIds: null,
|
|
4890
4849
|
itemSelectedCallback: (data, items) => {
|
|
4891
|
-
|
|
4892
|
-
|
|
4850
|
+
if (data.id === '__AddAll__' && data.extra && Array.isArray(data.extra.ids)) {
|
|
4851
|
+
data.extra.ids.forEach(attrId => this.addNewColumn(attrId));
|
|
4852
|
+
}
|
|
4853
|
+
else {
|
|
4854
|
+
const attrid = data.id;
|
|
4855
|
+
this.addNewColumn(attrid);
|
|
4856
|
+
}
|
|
4893
4857
|
return false;
|
|
4894
4858
|
}
|
|
4895
4859
|
});
|
|
@@ -4908,7 +4872,7 @@ class ColumnsBar extends Widget {
|
|
|
4908
4872
|
this.columnsBlock =
|
|
4909
4873
|
domel('div')
|
|
4910
4874
|
.addClass(`${this.cssPrefix}-columns`)
|
|
4911
|
-
.addClass(
|
|
4875
|
+
.addClass(getMobileCssClass())
|
|
4912
4876
|
.toDOM();
|
|
4913
4877
|
if (this.options.showAddRow) {
|
|
4914
4878
|
this.addRowButton =
|
|
@@ -4938,7 +4902,7 @@ class ColumnsBar extends Widget {
|
|
|
4938
4902
|
this.columnButtonsBlockMobileArrow = domel('i').toDOM();
|
|
4939
4903
|
this.columnButtonsBlockMobile = domel('div')
|
|
4940
4904
|
.addClass(`${this.cssPrefix}-column-buttonsBlock`)
|
|
4941
|
-
.addClass(
|
|
4905
|
+
.addClass(getMobileCssClass())
|
|
4942
4906
|
.addChildElement(this.columnButtonsBlockMobileArrow)
|
|
4943
4907
|
.hide()
|
|
4944
4908
|
.toDOM();
|
|
@@ -5158,6 +5122,23 @@ class ColumnsBar extends Widget {
|
|
|
5158
5122
|
showEntitiesMenu(menuOptions) {
|
|
5159
5123
|
this.entitiesMenu && this.entitiesMenu.showMenu(menuOptions);
|
|
5160
5124
|
}
|
|
5125
|
+
addAllColumnsToEntitiesList(list) {
|
|
5126
|
+
const attrIds = list.filter(item => !item.isEntity).map(item => item.id);
|
|
5127
|
+
if (attrIds.length > 0) {
|
|
5128
|
+
list.unshift({
|
|
5129
|
+
id: '__AddAll__',
|
|
5130
|
+
text: i18n.getText('AddAllForEntityText'),
|
|
5131
|
+
extra: {
|
|
5132
|
+
ids: attrIds
|
|
5133
|
+
}
|
|
5134
|
+
});
|
|
5135
|
+
}
|
|
5136
|
+
list.forEach(item => {
|
|
5137
|
+
if (item.items) {
|
|
5138
|
+
this.addAllColumnsToEntitiesList(item.items);
|
|
5139
|
+
}
|
|
5140
|
+
});
|
|
5141
|
+
}
|
|
5161
5142
|
createEntitiesMenu() {
|
|
5162
5143
|
const model = this.getContext().getModel();
|
|
5163
5144
|
if (!model || model.isEmpty())
|
|
@@ -5167,6 +5148,10 @@ class ColumnsBar extends Widget {
|
|
|
5167
5148
|
menuId += '-EntitiesMenu';
|
|
5168
5149
|
}
|
|
5169
5150
|
const entitiesList = model.getEntitiesTree({ addUIC: false, addUIR: true, addUIS: false, attrPlacement: this.options.attrPlacement, sortEntities: this.options.sortEntities });
|
|
5151
|
+
// add [Add all columns] items
|
|
5152
|
+
if (this.options.showAddAllForEntity) {
|
|
5153
|
+
this.addAllColumnsToEntitiesList(entitiesList);
|
|
5154
|
+
}
|
|
5170
5155
|
const options = { items: entitiesList, adjustHeight: this.options.adjustEntitiesMenuHeight, id: menuId, domWriteItemsId: this.options.domWriteItemsId };
|
|
5171
5156
|
utils.assign(options, this.options.menuOptions);
|
|
5172
5157
|
this.entitiesMenu = new PopupMenu(options);
|
|
@@ -5295,7 +5280,7 @@ class ColumnRendererSB {
|
|
|
5295
5280
|
}
|
|
5296
5281
|
builder
|
|
5297
5282
|
.addClass(this.getClassesToAdd())
|
|
5298
|
-
.addClass(
|
|
5283
|
+
.addClass(getMobileCssClass())
|
|
5299
5284
|
.addChildElement(this.renderCaptionBlock());
|
|
5300
5285
|
if (this.isEditable()) {
|
|
5301
5286
|
builder
|
|
@@ -5333,7 +5318,7 @@ class ColumnRendererSB {
|
|
|
5333
5318
|
}
|
|
5334
5319
|
return domel('div')
|
|
5335
5320
|
.addClass(`${this.cssPrefix}-colelement`, `${this.cssPrefix}-captionelement`)
|
|
5336
|
-
.addClass(
|
|
5321
|
+
.addClass(getMobileCssClass())
|
|
5337
5322
|
.addChild('div', b => b
|
|
5338
5323
|
.title(this.column.caption)
|
|
5339
5324
|
.text(text))
|
|
@@ -5355,7 +5340,7 @@ class ColumnRendererSB {
|
|
|
5355
5340
|
}
|
|
5356
5341
|
const builder = domel('div')
|
|
5357
5342
|
.addClass(`${this.cssPrefix}-colelement`, `${this.cssPrefix}-sortimage-placeholder`)
|
|
5358
|
-
.addClass(
|
|
5343
|
+
.addClass(getMobileCssClass())
|
|
5359
5344
|
.addChild('div', builder => builder
|
|
5360
5345
|
.addClass(`${this.cssPrefix}-img-sorting`, sortButtonDirectionCssClass)
|
|
5361
5346
|
.title(i18n.getText('ButtonSorting')))
|
|
@@ -5446,7 +5431,7 @@ class SortingBar extends Widget {
|
|
|
5446
5431
|
this.landingIndex = -1;
|
|
5447
5432
|
domel(this.slot)
|
|
5448
5433
|
.addClass(`${this.cssPrefix}-panel`)
|
|
5449
|
-
.addClass(
|
|
5434
|
+
.addClass(getMobileCssClass());
|
|
5450
5435
|
this.group = WidgetGroup.Query;
|
|
5451
5436
|
}
|
|
5452
5437
|
getWidgetType() {
|
|
@@ -5529,7 +5514,7 @@ class SortingBar extends Widget {
|
|
|
5529
5514
|
renderAddRowButton() {
|
|
5530
5515
|
domel(this.addRowButton)
|
|
5531
5516
|
.addClass(`${eqCssPrefix}-addrow`, `${this.cssPrefix}-addrow`, `${eqCssPrefix}-addrow-empty`)
|
|
5532
|
-
.addClass(
|
|
5517
|
+
.addClass(getMobileCssClass())
|
|
5533
5518
|
.title(i18n.getText('CmdClickToAddColumn'))
|
|
5534
5519
|
.addChild('a', builder => builder
|
|
5535
5520
|
.attr('href', 'javascript:void(0)')
|
|
@@ -5585,7 +5570,7 @@ class SortingBar extends Widget {
|
|
|
5585
5570
|
this.columnsBlock =
|
|
5586
5571
|
domel('div')
|
|
5587
5572
|
.addClass(`${this.cssPrefix}-columns`)
|
|
5588
|
-
.addClass(
|
|
5573
|
+
.addClass(getMobileCssClass())
|
|
5589
5574
|
.toDOM();
|
|
5590
5575
|
if (this.options.showAddRow) {
|
|
5591
5576
|
this.addRowButton =
|
|
@@ -5617,7 +5602,7 @@ class SortingBar extends Widget {
|
|
|
5617
5602
|
attributeId: attrId,
|
|
5618
5603
|
justsorted: true,
|
|
5619
5604
|
sorting: SortDirection.Ascending
|
|
5620
|
-
});
|
|
5605
|
+
}, true);
|
|
5621
5606
|
query.fireChangedEvent({
|
|
5622
5607
|
part: QueryChangePart.SortingColumns,
|
|
5623
5608
|
action: QueryChangeAction.Add,
|
|
@@ -5766,7 +5751,7 @@ class TextRenderer {
|
|
|
5766
5751
|
domel(this.element)
|
|
5767
5752
|
.html('')
|
|
5768
5753
|
.addClass(this.getClassesToAdd())
|
|
5769
|
-
.addClass(
|
|
5754
|
+
.addClass(getMobileCssClass())
|
|
5770
5755
|
.addChild('span', builder => builder
|
|
5771
5756
|
.text(this.text)
|
|
5772
5757
|
.title(this.text))
|
|
@@ -5852,7 +5837,7 @@ class SimpleConditionRenderer extends ConditionRenderer {
|
|
|
5852
5837
|
this.element = builder.toDOM();
|
|
5853
5838
|
builder
|
|
5854
5839
|
.addClass(this.getClassesToAdd())
|
|
5855
|
-
.addClass(
|
|
5840
|
+
.addClass(getMobileCssClass())
|
|
5856
5841
|
.data('id', this.condition.id)
|
|
5857
5842
|
.data('condrow', '')
|
|
5858
5843
|
.addChildElement(this.renderCheckbox())
|
|
@@ -6126,7 +6111,7 @@ class SimpleConditionRenderer extends ConditionRenderer {
|
|
|
6126
6111
|
};
|
|
6127
6112
|
const builder = domel("div")
|
|
6128
6113
|
.addClass(`${this.cssPrefix}-condition-buttonsBlock`)
|
|
6129
|
-
.addClass(
|
|
6114
|
+
.addClass(getMobileCssClass());
|
|
6130
6115
|
this.buttonsBlock = builder.toDOM();
|
|
6131
6116
|
if (this.condition.isReadOnly()) {
|
|
6132
6117
|
return this.buttonsBlock;
|
|
@@ -6290,7 +6275,7 @@ class ConditionGroupRenderer extends ConditionRenderer {
|
|
|
6290
6275
|
coreRender(autoAppear) {
|
|
6291
6276
|
domel(this.element)
|
|
6292
6277
|
.addClass(this.getClassesToAdd())
|
|
6293
|
-
.addClass(
|
|
6278
|
+
.addClass(getMobileCssClass())
|
|
6294
6279
|
.addChildElement(this.renderGroupRow())
|
|
6295
6280
|
.addChildElement(this.renderConditions(autoAppear))
|
|
6296
6281
|
.data('id', this.condition.id)
|
|
@@ -6308,7 +6293,7 @@ class ConditionGroupRenderer extends ConditionRenderer {
|
|
|
6308
6293
|
const builder = domel('div');
|
|
6309
6294
|
builder
|
|
6310
6295
|
.addClass(`${this.cssPrefix}-conditions`)
|
|
6311
|
-
.addClass(`${
|
|
6296
|
+
.addClass(`${getMobileCssClass()}`)
|
|
6312
6297
|
.data('conditions', '');
|
|
6313
6298
|
if (this.isRoot) {
|
|
6314
6299
|
builder.addClass(`${this.cssPrefix}-conditions-root`);
|
|
@@ -6350,7 +6335,7 @@ class ConditionGroupRowRenderer extends SimpleConditionRenderer {
|
|
|
6350
6335
|
coreRender(autoAppear) {
|
|
6351
6336
|
const builder = domel(this.element)
|
|
6352
6337
|
.addClass(this.getClassesToAdd())
|
|
6353
|
-
.addClass(
|
|
6338
|
+
.addClass(getMobileCssClass())
|
|
6354
6339
|
.data('group-row', '')
|
|
6355
6340
|
.addChildElement(this.renderCheckbox())
|
|
6356
6341
|
.addChildElement(this.renderConjunction());
|
|
@@ -6486,7 +6471,7 @@ class BaseElementRenderer {
|
|
|
6486
6471
|
domel(this.element)
|
|
6487
6472
|
.html('')
|
|
6488
6473
|
.addClass(this.getClassesToAdd())
|
|
6489
|
-
.addClass(
|
|
6474
|
+
.addClass(getMobileCssClass())
|
|
6490
6475
|
.addChildElement(this.labelElement);
|
|
6491
6476
|
if (this.isEditable()) {
|
|
6492
6477
|
this.renderEditor();
|
|
@@ -7244,7 +7229,7 @@ class DateTimeExpressionRenderer extends ExpressionRenderer {
|
|
|
7244
7229
|
dateTime = model.getTimeMacroValue(value);
|
|
7245
7230
|
}
|
|
7246
7231
|
else {
|
|
7247
|
-
dateTime = this.convertFromInternalFormat(value);
|
|
7232
|
+
dateTime = this.convertFromInternalFormat(value, new Date());
|
|
7248
7233
|
}
|
|
7249
7234
|
this.dtp.setDateTime(dateTime);
|
|
7250
7235
|
this.dtp.show(this.element);
|
|
@@ -7274,8 +7259,13 @@ class DateTimeExpressionRenderer extends ExpressionRenderer {
|
|
|
7274
7259
|
return super.isEditable()
|
|
7275
7260
|
&& ((this.panel.options.editableParts & QPEditablePart.Value) === QPEditablePart.Value);
|
|
7276
7261
|
}
|
|
7277
|
-
convertFromInternalFormat(
|
|
7278
|
-
|
|
7262
|
+
convertFromInternalFormat(dateTimeStr, defautValue) {
|
|
7263
|
+
try {
|
|
7264
|
+
return utils.strToDateTime(dateTimeStr, this.internalDateFormat + ' ' + this.internalTimeFormat);
|
|
7265
|
+
}
|
|
7266
|
+
catch (_a) {
|
|
7267
|
+
return defautValue || new Date();
|
|
7268
|
+
}
|
|
7279
7269
|
}
|
|
7280
7270
|
convertToInternalFormat(dateTime) {
|
|
7281
7271
|
return i18n.dateTimeToStr(dateTime, this.internalDateFormat + ' ' + this.internalTimeFormat);
|
|
@@ -7807,7 +7797,7 @@ class QueryPanel extends Widget {
|
|
|
7807
7797
|
.toDOM();
|
|
7808
7798
|
domel(this.slot)
|
|
7809
7799
|
.removeClass(eqCssMobile)
|
|
7810
|
-
.addClass(
|
|
7800
|
+
.addClass(getMobileCssClass());
|
|
7811
7801
|
const query = this.getQuery();
|
|
7812
7802
|
const root = query.getRootCondition();
|
|
7813
7803
|
const renderer = this.getConditionRenderer(root, this.rootContainer);
|
|
@@ -8126,7 +8116,7 @@ class QueryPanel extends Widget {
|
|
|
8126
8116
|
renderProgressBlock() {
|
|
8127
8117
|
this.progressBlock = document.createElement('div');
|
|
8128
8118
|
this.progressBlock.classList.add(`${eqCssPrefix}-progress-win8`);
|
|
8129
|
-
this.progressBlock.classList.add(
|
|
8119
|
+
this.progressBlock.classList.add(getMobileCssClass());
|
|
8130
8120
|
this.progressBlock.innerHTML = '<div class="wBall" id="wBall_1"><div class="wInnerBall"></div></div><div class="wBall" id="wBall_2"><div class="wInnerBall"></div></div><div class="wBall" id="wBall_3"><div class="wInnerBall"></div></div><div class="wBall" id="wBall_4"><div class="wInnerBall"></div></div><div class="wBall" id="wBall_5"><div class="wInnerBall"></div></div>';
|
|
8131
8121
|
}
|
|
8132
8122
|
clonePanel(slot, query) {
|
|
@@ -8242,7 +8232,7 @@ class FilterBar extends Widget {
|
|
|
8242
8232
|
render() {
|
|
8243
8233
|
domel(this.slot)
|
|
8244
8234
|
.addClass(`${this.cssPrefix}-container`)
|
|
8245
|
-
.addClass(
|
|
8235
|
+
.addClass(getMobileCssClass())
|
|
8246
8236
|
.addChild('div', builder => this.headerElement = builder
|
|
8247
8237
|
.addClass(`${this.cssPrefix}-header`)
|
|
8248
8238
|
.addChild('div', builder => this.headerIconElement = builder
|
|
@@ -8288,14 +8278,14 @@ class FilterBar extends Widget {
|
|
|
8288
8278
|
.toDOM())
|
|
8289
8279
|
.addChild('div', builder => this.qpBlock = builder
|
|
8290
8280
|
.addClass(`${this.cssPrefix}-querypanelblock`)
|
|
8291
|
-
.addClass(
|
|
8281
|
+
.addClass(getMobileCssClass())
|
|
8292
8282
|
.hide()
|
|
8293
8283
|
.addChildElement(this.qpElement)
|
|
8294
8284
|
.toDOM());
|
|
8295
8285
|
if (this.options.showApplyButton || this.options.showClearButton) {
|
|
8296
8286
|
this.buttonsBlock = domel('div', this.qpBlock)
|
|
8297
8287
|
.addClass(`${this.cssPrefix}-buttonsblock`)
|
|
8298
|
-
.addClass(
|
|
8288
|
+
.addClass(getMobileCssClass())
|
|
8299
8289
|
.toDOM();
|
|
8300
8290
|
}
|
|
8301
8291
|
if (this.options.showApplyButton) {
|
|
@@ -8756,7 +8746,7 @@ class EasyGridWidget extends Grid {
|
|
|
8756
8746
|
const query = this.getContext().getQuery();
|
|
8757
8747
|
const col = query.addColumn({
|
|
8758
8748
|
attributeId: attrId
|
|
8759
|
-
});
|
|
8749
|
+
}, true);
|
|
8760
8750
|
query.fireChangedEvent({
|
|
8761
8751
|
part: QueryChangePart.Columns,
|
|
8762
8752
|
action: QueryChangeAction.Add,
|
|
@@ -10084,6 +10074,7 @@ class PivotTableFacet extends ResultFacet {
|
|
|
10084
10074
|
this.title = i18n.getText('Facets', 'Pivot', 'FacetTitle');
|
|
10085
10075
|
this.dialogTitle = i18n.getText('Facets', 'Pivot', 'DlgTitle');
|
|
10086
10076
|
this.pivotTable = new EasyDataTable();
|
|
10077
|
+
this.settings = {};
|
|
10087
10078
|
}
|
|
10088
10079
|
init(slot) {
|
|
10089
10080
|
super.init(slot);
|
|
@@ -10364,14 +10355,14 @@ class PivotTableFacet extends ResultFacet {
|
|
|
10364
10355
|
saveToData() {
|
|
10365
10356
|
const data = super.saveToData();
|
|
10366
10357
|
if (this.settings) {
|
|
10367
|
-
utils.
|
|
10358
|
+
utils.assign(data, this.settings);
|
|
10368
10359
|
}
|
|
10369
10360
|
return data;
|
|
10370
10361
|
}
|
|
10371
10362
|
loadFromData(data) {
|
|
10372
10363
|
super.loadFromData(data);
|
|
10373
10364
|
if (data) {
|
|
10374
|
-
this.settings = utils.
|
|
10365
|
+
this.settings = utils.assign(this.settings, data);
|
|
10375
10366
|
if (this.settings.aggrFunc == 'AVERAGE') {
|
|
10376
10367
|
this.settings.aggrFunc = AggrFunc.Average;
|
|
10377
10368
|
}
|
|
@@ -10960,7 +10951,7 @@ class ResultFacetsPanel extends FacetContainer {
|
|
|
10960
10951
|
this._processBlock = domel('div')
|
|
10961
10952
|
.addClass(`${this.cssPrefix}-spinner`)
|
|
10962
10953
|
.addChild('div', b => b
|
|
10963
|
-
.addClass(`${eqCssPrefix}-progress-win8`,
|
|
10954
|
+
.addClass(`${eqCssPrefix}-progress-win8`, getMobileCssClass())
|
|
10964
10955
|
.addHtml(html))
|
|
10965
10956
|
.toDOM();
|
|
10966
10957
|
}
|
|
@@ -11732,7 +11723,8 @@ class AggrSettingsRenderer {
|
|
|
11732
11723
|
const funcs = this.query.getModel().getAggrFunctions();
|
|
11733
11724
|
const items = [];
|
|
11734
11725
|
for (const func of funcs) {
|
|
11735
|
-
|
|
11726
|
+
//add all functions except those we don't process
|
|
11727
|
+
if (!func || func.id == 'MIN' || func.id == 'MAX' || func.id == 'CNTDST')
|
|
11736
11728
|
continue;
|
|
11737
11729
|
this.funcMap[func.id] = func;
|
|
11738
11730
|
const funcCaption = model
|
|
@@ -11931,7 +11923,7 @@ class AggregationBar extends Widget {
|
|
|
11931
11923
|
}
|
|
11932
11924
|
render() {
|
|
11933
11925
|
this.slot.classList.add(`${this.cssPrefix}-panel`);
|
|
11934
|
-
const mobClass =
|
|
11926
|
+
const mobClass = getMobileCssClass();
|
|
11935
11927
|
if (mobClass) {
|
|
11936
11928
|
this.slot.classList.add(mobClass);
|
|
11937
11929
|
}
|
|
@@ -12064,7 +12056,7 @@ class QueryNameWidget extends Widget {
|
|
|
12064
12056
|
}
|
|
12065
12057
|
render() {
|
|
12066
12058
|
this.slot.classList.add(`${this.cssPrefix}`);
|
|
12067
|
-
const mobClass =
|
|
12059
|
+
const mobClass = getMobileCssClass();
|
|
12068
12060
|
if (mobClass) {
|
|
12069
12061
|
this.slot.classList.add(mobClass);
|
|
12070
12062
|
}
|
|
@@ -12172,7 +12164,7 @@ class View {
|
|
|
12172
12164
|
}
|
|
12173
12165
|
initOptions(options) {
|
|
12174
12166
|
options = utils.assignDeep(this.defaultViewOptions, options);
|
|
12175
|
-
// support old format
|
|
12167
|
+
// support old format
|
|
12176
12168
|
if (!options.widgets.easyGrid) {
|
|
12177
12169
|
options.widgets.easyGrid = options.widgets.resultGrid || {};
|
|
12178
12170
|
}
|
|
@@ -12402,7 +12394,7 @@ class View {
|
|
|
12402
12394
|
this._spinnerDiv = domel('div')
|
|
12403
12395
|
.addClass(`eqjs-result-spinner`)
|
|
12404
12396
|
.addChild('div', b => b
|
|
12405
|
-
.addClass(`${eqCssPrefix}-progress-win8`,
|
|
12397
|
+
.addClass(`${eqCssPrefix}-progress-win8`, getMobileCssClass())
|
|
12406
12398
|
.addHtml(html))
|
|
12407
12399
|
.toDOM();
|
|
12408
12400
|
}
|
|
@@ -12626,6 +12618,9 @@ class View {
|
|
|
12626
12618
|
this.domRoots = [document];
|
|
12627
12619
|
this.resetContext();
|
|
12628
12620
|
}
|
|
12621
|
+
refreshWidgets(groups) {
|
|
12622
|
+
this.context.refreshWidgets(groups);
|
|
12623
|
+
}
|
|
12629
12624
|
}
|
|
12630
12625
|
|
|
12631
12626
|
/**
|
|
@@ -12903,8 +12898,12 @@ class AdvancedSearchView extends View {
|
|
|
12903
12898
|
});
|
|
12904
12899
|
}
|
|
12905
12900
|
clearQueryButtonClick() {
|
|
12906
|
-
this.
|
|
12907
|
-
|
|
12901
|
+
this.showQueryClearDialog((result) => {
|
|
12902
|
+
if (result) {
|
|
12903
|
+
this.context.clearQuery();
|
|
12904
|
+
this.context.refreshWidgets(WidgetGroup.Statement);
|
|
12905
|
+
}
|
|
12906
|
+
});
|
|
12908
12907
|
}
|
|
12909
12908
|
createNewQuery(options) {
|
|
12910
12909
|
return this.context.newQuery(options);
|
|
@@ -12934,22 +12933,43 @@ class AdvancedSearchView extends View {
|
|
|
12934
12933
|
saveCurrentQuery(copyQuery = false, callback) {
|
|
12935
12934
|
const query = this.context.getQuery();
|
|
12936
12935
|
if (query.isNewbie || copyQuery) {
|
|
12937
|
-
this.showSaveQueryDialog((
|
|
12938
|
-
if (!
|
|
12936
|
+
this.showSaveQueryDialog((newQueryName) => new Promise(resolve => {
|
|
12937
|
+
if (!newQueryName)
|
|
12939
12938
|
return;
|
|
12940
|
-
|
|
12941
|
-
|
|
12942
|
-
|
|
12943
|
-
|
|
12944
|
-
|
|
12945
|
-
|
|
12946
|
-
|
|
12939
|
+
this.checkSaveQueryName(newQueryName)
|
|
12940
|
+
.then(() => {
|
|
12941
|
+
query.regenerateId();
|
|
12942
|
+
query.setName(newQueryName);
|
|
12943
|
+
query.fireChangedEvent({
|
|
12944
|
+
part: QueryChangePart.Properties,
|
|
12945
|
+
wasModified: true
|
|
12946
|
+
});
|
|
12947
|
+
this.saveQuery(() => { resolve({ success: true }); }, (error) => resolve({ success: false, message: error }));
|
|
12948
|
+
}, (message) => resolve({ success: false, message }));
|
|
12947
12949
|
}));
|
|
12948
12950
|
}
|
|
12949
12951
|
else {
|
|
12950
12952
|
this.saveQuery(callback);
|
|
12951
12953
|
}
|
|
12952
12954
|
}
|
|
12955
|
+
checkSaveQueryName(name) {
|
|
12956
|
+
return new Promise((resolve, reject) => {
|
|
12957
|
+
this.context.loadQueryList({
|
|
12958
|
+
success: (queryList) => {
|
|
12959
|
+
const found = queryList.filter(item => item.name.toLowerCase() == name.toLowerCase());
|
|
12960
|
+
if (found.length == 0) {
|
|
12961
|
+
resolve();
|
|
12962
|
+
}
|
|
12963
|
+
else {
|
|
12964
|
+
reject("Can't save the query. A query with this name already exists.");
|
|
12965
|
+
}
|
|
12966
|
+
},
|
|
12967
|
+
error: (message) => {
|
|
12968
|
+
reject(message);
|
|
12969
|
+
}
|
|
12970
|
+
});
|
|
12971
|
+
});
|
|
12972
|
+
}
|
|
12953
12973
|
checkIfQueryModified(callback) {
|
|
12954
12974
|
if (this.context.getQuery().isModified()
|
|
12955
12975
|
&& !this.viewOptions.disableConfirmationOnQueryChange) {
|
|
@@ -13028,6 +13048,10 @@ class AdvancedSearchView extends View {
|
|
|
13028
13048
|
}
|
|
13029
13049
|
});
|
|
13030
13050
|
}
|
|
13051
|
+
showQueryClearDialog(callback) {
|
|
13052
|
+
const ds = this.getDialogService();
|
|
13053
|
+
ds.openConfirm(i18n.getText('QueryChangedTitle'), i18n.getText('QueryClearContent'), callback);
|
|
13054
|
+
}
|
|
13031
13055
|
showQueryChangedDialog(callback) {
|
|
13032
13056
|
const ds = this.getDialogService();
|
|
13033
13057
|
ds.openConfirm(i18n.getText('QueryChangedTitle'), i18n.getText('QueryChangedContent'), callback);
|
|
@@ -14234,6 +14258,7 @@ function addEasyQueryUITexts() {
|
|
|
14234
14258
|
SaveQueryDefName: '{queryName} copy',
|
|
14235
14259
|
QueryChangedTitle: 'Confirmation',
|
|
14236
14260
|
QueryChangedContent: 'The query was changed. Do you want to save it first?',
|
|
14261
|
+
QueryClearContent: 'The query will cleared. Do you want to continue?',
|
|
14237
14262
|
UpdateQuerySelector: '[click here to load the query]',
|
|
14238
14263
|
FileNameLabel: 'File name: ',
|
|
14239
14264
|
SaveQueryToFileDlgTitle: 'Save query to file',
|
|
@@ -14375,4 +14400,4 @@ if (!Array.prototype.findIndex) {
|
|
|
14375
14400
|
};
|
|
14376
14401
|
}
|
|
14377
14402
|
|
|
14378
|
-
export { AddRowRenderer, AdvancedSearchView, AggrFuncColumnRendererCB, AggrFuncColumnRendererCP, AggrSettingsDialog, AggrSettingsRenderer, AggregationBar, AttrColumnRendererCB, AttrColumnRendererCP, AttributeExpressionRenderer, BaseElementRenderer, ChartFacet, ChartJsWidget, ChartType, ChartWidget, ColumnAction, ColumnRendererCB, ColumnRendererCP, ColumnsBar, ColumnsPanel, ConditionAction, ConditionGroupRenderer, ConditionGroupRowRenderer, ConditionRenderer, ConstColumnRendererCP, CustomListExpressionRenderer, CustomSqlColumnRendererCP, DataFilterView, DataTableFacet, DateTimeExpressionRenderer, DomDropDownElementBuilder, DropDownRenderer, EasyGridWidget, EntitiesPanel, EqHtmlGrid, ExportDialog, ExportWidget, ExpressionRenderer, FacetContainer, FacetType, FilterBar, GoogleChartWidget, Grid, HtmlContentWidget, HtmlDataFilterView, InputExpressionRenderer, ListExpressionRenderer, ManageDrillDownWidget, OperatorRenderer, PivotTableFacet, PopupMenu, ProcessWidget, QPEditablePart, QueryPanel, ReportView, ResultFacet, ResultFacetsPanel, SimpleConditionRenderer, SortingBar, SqlListExpressionRenderer, StatementPanel, SubQueryExpressionRenderer, TextRenderer, View,
|
|
14403
|
+
export { AddRowRenderer, AdvancedSearchView, AggrFuncColumnRendererCB, AggrFuncColumnRendererCP, AggrSettingsDialog, AggrSettingsRenderer, AggregationBar, AttrColumnRendererCB, AttrColumnRendererCP, AttributeExpressionRenderer, BaseElementRenderer, ChartFacet, ChartJsWidget, ChartType, ChartWidget, ColumnAction, ColumnRendererCB, ColumnRendererCP, ColumnsBar, ColumnsPanel, ConditionAction, ConditionGroupRenderer, ConditionGroupRowRenderer, ConditionRenderer, ConstColumnRendererCP, CustomListExpressionRenderer, CustomSqlColumnRendererCP, DataFilterView, DataTableFacet, DateTimeExpressionRenderer, DomDropDownElementBuilder, DropDownRenderer, EasyGridWidget, EntitiesPanel, EqHtmlGrid, ExportDialog, ExportWidget, ExpressionRenderer, FacetContainer, FacetType, FilterBar, GoogleChartWidget, Grid, HtmlContentWidget, HtmlDataFilterView, InputExpressionRenderer, ListExpressionRenderer, ManageDrillDownWidget, OperatorRenderer, PivotTableFacet, PopupMenu, ProcessWidget, QPEditablePart, QueryPanel, ReportView, ResultFacet, ResultFacetsPanel, SimpleConditionRenderer, SortingBar, SqlListExpressionRenderer, StatementPanel, SubQueryExpressionRenderer, TextRenderer, View, dropdown };
|