@easyquery/ui 7.2.5 → 7.3.0-rc02
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 +480 -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 +343 -0
- package/dist/easyquery.ui.cjs.js +252 -192
- package/dist/easyquery.ui.esm.js +216 -156
- 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/columnspanel/column_renderer_cp.d.ts +1 -0
- package/dist/types/widgets/renderers/querypanel/datetime_expression_render.d.ts +1 -1
- package/package.json +5 -5
- package/dist/assets/css/eq-icons-default.css +0 -140
- package/dist/assets/css/eq-icons-files.css +0 -91
- 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.cjs.js
CHANGED
|
@@ -29,64 +29,9 @@ function safeFocus(element) {
|
|
|
29
29
|
}
|
|
30
30
|
const eqCssPrefix = 'eqjs';
|
|
31
31
|
const eqCssMobile = 'eqjs-mobile';
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
let _isFirefox = null;
|
|
36
|
-
function isIE() {
|
|
37
|
-
const ua = window.navigator.userAgent;
|
|
38
|
-
return ua.includes('MSIE') || ua.includes('Trident');
|
|
39
|
-
}
|
|
40
|
-
browserUtils.isIE = isIE;
|
|
41
|
-
function isFirefox() {
|
|
42
|
-
if (_isFirefox === null) {
|
|
43
|
-
const ua = navigator.userAgent;
|
|
44
|
-
_isFirefox = ua.toLowerCase().indexOf('firefox') > -1;
|
|
45
|
-
}
|
|
46
|
-
return _isFirefox;
|
|
47
|
-
}
|
|
48
|
-
browserUtils.isFirefox = isFirefox;
|
|
49
|
-
let _detectedIsMobileMode = false;
|
|
50
|
-
let _isMobileMode = undefined;
|
|
51
|
-
let detectIsMobileMode = () => {
|
|
52
|
-
const oldValue = isMobileMode();
|
|
53
|
-
_detectedIsMobileMode = window.matchMedia('only screen and (max-width: 840px)').matches
|
|
54
|
-
|| window.matchMedia('only screen and (max-height: 420px)').matches;
|
|
55
|
-
const newValue = isMobileMode();
|
|
56
|
-
if (newValue !== oldValue && mobileModeChangeHandler) {
|
|
57
|
-
mobileModeChangeHandler(newValue);
|
|
58
|
-
}
|
|
59
|
-
};
|
|
60
|
-
detectIsMobileMode();
|
|
61
|
-
window.addEventListener('resize', () => detectIsMobileMode());
|
|
62
|
-
function isMobileMode() {
|
|
63
|
-
if (_isMobileMode !== undefined) {
|
|
64
|
-
return _isMobileMode;
|
|
65
|
-
}
|
|
66
|
-
else {
|
|
67
|
-
return _detectedIsMobileMode;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
browserUtils.isMobileMode = isMobileMode;
|
|
71
|
-
function setIsMobileMode(value) {
|
|
72
|
-
const oldValue = isMobileMode();
|
|
73
|
-
_isMobileMode = value;
|
|
74
|
-
const newValue = isMobileMode();
|
|
75
|
-
if (newValue !== oldValue && mobileModeChangeHandler) {
|
|
76
|
-
mobileModeChangeHandler(newValue);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
browserUtils.setIsMobileMode = setIsMobileMode;
|
|
80
|
-
let mobileModeChangeHandler;
|
|
81
|
-
function onMobileModeChanged(callback) {
|
|
82
|
-
mobileModeChangeHandler = callback;
|
|
83
|
-
}
|
|
84
|
-
browserUtils.onMobileModeChanged = onMobileModeChanged;
|
|
85
|
-
function getMobileCssClass() {
|
|
86
|
-
return isMobileMode() ? eqCssMobile : null;
|
|
87
|
-
}
|
|
88
|
-
browserUtils.getMobileCssClass = getMobileCssClass;
|
|
89
|
-
})(exports.browserUtils || (exports.browserUtils = {}));
|
|
32
|
+
function getMobileCssClass() {
|
|
33
|
+
return ui.browserUtils.isMobileMode() ? eqCssMobile : null;
|
|
34
|
+
}
|
|
90
35
|
|
|
91
36
|
/**
|
|
92
37
|
* The entities panel wiget, implemented without JQuery.
|
|
@@ -185,7 +130,7 @@ class EntitiesPanel extends core.Widget {
|
|
|
185
130
|
let model = this.context.getModel();
|
|
186
131
|
this.clear();
|
|
187
132
|
this.panel.classList.add(`${this.cssPrefix}-panel`);
|
|
188
|
-
this.panel.classList.add(
|
|
133
|
+
this.panel.classList.add(getMobileCssClass());
|
|
189
134
|
this.rootEntityBlock = document.createElement('div');
|
|
190
135
|
if (model != null && !model.isEmpty()) {
|
|
191
136
|
let entTree = model.getEntitiesTree({
|
|
@@ -216,10 +161,10 @@ class EntitiesPanel extends core.Widget {
|
|
|
216
161
|
let entityBlock;
|
|
217
162
|
let entityNode = document.createElement('div');
|
|
218
163
|
entityNode.classList.add(`${this.cssPrefix}-entity-node`);
|
|
219
|
-
entityNode.classList.add(
|
|
164
|
+
entityNode.classList.add(getMobileCssClass());
|
|
220
165
|
let entityChildren = document.createElement('div');
|
|
221
166
|
entityChildren.classList.add(`${this.cssPrefix}-entity-children`);
|
|
222
|
-
entityChildren.classList.add(
|
|
167
|
+
entityChildren.classList.add(getMobileCssClass());
|
|
223
168
|
let nodeLabel = document.createElement('label');
|
|
224
169
|
nodeLabel.classList.add(`${this.cssPrefix}-entity-node-label`);
|
|
225
170
|
let nodeInput = document.createElement('input');
|
|
@@ -243,7 +188,7 @@ class EntitiesPanel extends core.Widget {
|
|
|
243
188
|
entityBlock = document.createElement('div');
|
|
244
189
|
}
|
|
245
190
|
entityBlock.classList.add(`${this.cssPrefix}-entity`);
|
|
246
|
-
entityBlock.classList.add(
|
|
191
|
+
entityBlock.classList.add(getMobileCssClass());
|
|
247
192
|
if (entity.id && entity.id != "") {
|
|
248
193
|
nodeLabel.innerText = entity.text;
|
|
249
194
|
entityNode.appendChild(nodeLabel); //caption
|
|
@@ -414,7 +359,7 @@ class EntitiesPanel extends core.Widget {
|
|
|
414
359
|
createFilterBox() {
|
|
415
360
|
this.filterBoxBlock = document.createElement('div');
|
|
416
361
|
this.filterBoxBlock.classList.add(`${this.cssPrefix}-filter-box`);
|
|
417
|
-
this.filterBoxBlock.classList.add(
|
|
362
|
+
this.filterBoxBlock.classList.add(getMobileCssClass());
|
|
418
363
|
this.filterBoxInput = document.createElement('input');
|
|
419
364
|
this.filterBoxInput.classList.add(`${this.cssPrefix}-filter-box-input`);
|
|
420
365
|
this.filterBoxInput.addEventListener('input', (e) => {
|
|
@@ -447,7 +392,7 @@ class EntitiesPanel extends core.Widget {
|
|
|
447
392
|
let defClass = `${this.cssPrefix}-tool-panel`;
|
|
448
393
|
let toolPanelBlock = document.createElement('div');
|
|
449
394
|
toolPanelBlock.classList.add(defClass);
|
|
450
|
-
toolPanelBlock.classList.add(
|
|
395
|
+
toolPanelBlock.classList.add(getMobileCssClass());
|
|
451
396
|
let toolSelectAll = document.createElement('div');
|
|
452
397
|
toolSelectAll.classList.add(`${defClass}-select-all`);
|
|
453
398
|
toolSelectAll.title = 'Select all';
|
|
@@ -660,7 +605,7 @@ class EntitiesPanel extends core.Widget {
|
|
|
660
605
|
renderProgressBlock() {
|
|
661
606
|
this.progressBlock = document.createElement('div');
|
|
662
607
|
this.progressBlock.classList.add(`${eqCssPrefix}-progress-win8`);
|
|
663
|
-
this.progressBlock.classList.add(
|
|
608
|
+
this.progressBlock.classList.add(getMobileCssClass());
|
|
664
609
|
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>';
|
|
665
610
|
}
|
|
666
611
|
clear() {
|
|
@@ -717,7 +662,7 @@ class MenuLevel {
|
|
|
717
662
|
const isSubQuery = this.parentMenu.options.isSubQuery;
|
|
718
663
|
//add base DIV element which is also used to show the shadow
|
|
719
664
|
const baseDivBuilder = ui.domel('div')
|
|
720
|
-
.addClass(
|
|
665
|
+
.addClass(getMobileCssClass());
|
|
721
666
|
if (this.parentMenu.options.useDefaultStyles) {
|
|
722
667
|
baseDivBuilder
|
|
723
668
|
.setStyle('backgroundColor', itemBgColor)
|
|
@@ -841,7 +786,7 @@ class MenuLevel {
|
|
|
841
786
|
scrollDiv.tabIndex = 1;
|
|
842
787
|
ui.domel(scrollDiv)
|
|
843
788
|
.addClass(`${this.cssPrefix}-scrollDiv`)
|
|
844
|
-
.addClass(
|
|
789
|
+
.addClass(getMobileCssClass());
|
|
845
790
|
scrollDiv.style.overflowX = "hidden";
|
|
846
791
|
scrollDiv.style.overflowY = "auto";
|
|
847
792
|
scrollDiv.style.position = "relative";
|
|
@@ -893,7 +838,7 @@ class MenuLevel {
|
|
|
893
838
|
event.preventDefault(); // prevent the default action (scroll / move caret)
|
|
894
839
|
};
|
|
895
840
|
scrollDiv.addEventListener("keydown", scrollDivKeyDownHandler);
|
|
896
|
-
if (
|
|
841
|
+
if (ui.browserUtils.isMobileMode()) {
|
|
897
842
|
this.closeDiv =
|
|
898
843
|
ui.domel('div', baseDiv)
|
|
899
844
|
.addClass('eqjs-menu-close-btn')
|
|
@@ -1038,7 +983,7 @@ class MenuLevel {
|
|
|
1038
983
|
const itemDiv = document.createElement("div");
|
|
1039
984
|
ui.domel(itemDiv)
|
|
1040
985
|
.addClass(`${this.cssPrefix}-itemDiv`)
|
|
1041
|
-
.addClass(
|
|
986
|
+
.addClass(getMobileCssClass());
|
|
1042
987
|
if (item.selected && this.showSelected && !multiselect) {
|
|
1043
988
|
itemDiv.classList.add(`${this.cssPrefix}-selected`);
|
|
1044
989
|
}
|
|
@@ -1221,7 +1166,7 @@ class MenuLevel {
|
|
|
1221
1166
|
const itemDiv = document.createElement("div");
|
|
1222
1167
|
ui.domel(itemDiv)
|
|
1223
1168
|
.addClass(`${this.cssPrefix}-itemDiv`)
|
|
1224
|
-
.addClass(
|
|
1169
|
+
.addClass(getMobileCssClass());
|
|
1225
1170
|
itemDiv.style.marginLeft = `${level * 10}px`;
|
|
1226
1171
|
if (item.selected && !multiselect) {
|
|
1227
1172
|
itemDiv.classList.add(`${this.cssPrefix}-selected`);
|
|
@@ -1356,7 +1301,7 @@ class MenuLevel {
|
|
|
1356
1301
|
return content;
|
|
1357
1302
|
}
|
|
1358
1303
|
renderItems(filter) {
|
|
1359
|
-
if (!filter && !
|
|
1304
|
+
if (!filter && !ui.browserUtils.isMobileMode()) {
|
|
1360
1305
|
this.renderItemsWithoutFilter();
|
|
1361
1306
|
}
|
|
1362
1307
|
else {
|
|
@@ -1566,7 +1511,7 @@ class MenuLevel {
|
|
|
1566
1511
|
this.parentElement.appendChild(this.levelDiv);
|
|
1567
1512
|
ui.domel(this.levelDiv)
|
|
1568
1513
|
.addClass(`${this.cssPrefix}-levelDiv`)
|
|
1569
|
-
.addClass(
|
|
1514
|
+
.addClass(getMobileCssClass());
|
|
1570
1515
|
this.initialized = true;
|
|
1571
1516
|
}
|
|
1572
1517
|
}
|
|
@@ -1813,7 +1758,7 @@ class PopupMenu {
|
|
|
1813
1758
|
}
|
|
1814
1759
|
this.active = true;
|
|
1815
1760
|
this.setSelectedItems(this.options.items, selectedIds);
|
|
1816
|
-
if (
|
|
1761
|
+
if (ui.browserUtils.isMobileMode()) {
|
|
1817
1762
|
this.rootLevel.showAt(0, 0, true, true);
|
|
1818
1763
|
this.rootLevel.levelDiv.style.top = '0px';
|
|
1819
1764
|
this.rootLevel.levelDiv.style.bottom = '0px';
|
|
@@ -2009,7 +1954,7 @@ class ColumnRendererCP {
|
|
|
2009
1954
|
.replaceChild(builder.toDOM(), this.element);
|
|
2010
1955
|
}
|
|
2011
1956
|
this.element = builder.toDOM();
|
|
2012
|
-
if (this.panel.options.allowDragDrop && !
|
|
1957
|
+
if (this.panel.options.allowDragDrop && !ui.browserUtils.isMobileMode()) {
|
|
2013
1958
|
ui.eqDragManager.registerDraggableItem({
|
|
2014
1959
|
element: this.element,
|
|
2015
1960
|
scope: "entityAttrSort",
|
|
@@ -2042,75 +1987,95 @@ class ColumnRendererCP {
|
|
|
2042
1987
|
this.createButtonMenu();
|
|
2043
1988
|
builder
|
|
2044
1989
|
.addClass(this.getClassesToAdd())
|
|
2045
|
-
.addClass(
|
|
1990
|
+
.addClass(getMobileCssClass())
|
|
2046
1991
|
.addChildElement(this.renderCheckbox())
|
|
2047
1992
|
//start sort button
|
|
2048
1993
|
.addChild('div', builder => builder
|
|
2049
1994
|
.addClass(`${eqCssPrefix}-button-placeholder`, `${this.cssPrefix}-button-placeholder`, `${this.cssPrefix}-colelement`, `${this.cssPrefix}-sortbutton-placeholder`)
|
|
2050
|
-
.addChildElement(this.sortingButton))
|
|
2051
|
-
|
|
2052
|
-
|
|
2053
|
-
if (this.panel.options.showColumnTitles !== false && !
|
|
1995
|
+
.addChildElement(this.sortingButton));
|
|
1996
|
+
// end sort button
|
|
1997
|
+
builder.addChildElement(this.renderExpressionBlock());
|
|
1998
|
+
if (this.panel.options.showColumnTitles !== false && !ui.browserUtils.isMobileMode()) {
|
|
2054
1999
|
builder
|
|
2055
2000
|
.addChildElement(this.renderCaptionBlock());
|
|
2056
2001
|
}
|
|
2002
|
+
let buttonsIndex = 0;
|
|
2003
|
+
let buttonsList = '';
|
|
2057
2004
|
builder
|
|
2058
2005
|
//start buttons
|
|
2059
2006
|
.addChild('div', builder => {
|
|
2060
2007
|
builder
|
|
2061
2008
|
.addClass(`${eqCssPrefix}-column-buttonsBlock`, `${this.cssPrefix}-buttonsBlock`)
|
|
2062
|
-
.addClass(
|
|
2009
|
+
.addClass(getMobileCssClass());
|
|
2063
2010
|
//start enable button
|
|
2064
2011
|
if (this.getButtonsToShow().indexOf("enable") >= 0 && !this.column.isReadOnly()) {
|
|
2065
2012
|
builder.addChildElement(this.renderEnabledButton());
|
|
2013
|
+
buttonsIndex++;
|
|
2014
|
+
buttonsList += 'Enable';
|
|
2066
2015
|
}
|
|
2067
2016
|
//end enable button
|
|
2068
2017
|
//start aggr func button
|
|
2069
2018
|
if (this.getButtonsToShow().indexOf("type") >= 0 && this.columnEnabled) {
|
|
2070
2019
|
builder.addChildElement(this.renderColumnTypeButton());
|
|
2020
|
+
buttonsIndex++;
|
|
2021
|
+
buttonsList += 'Type';
|
|
2071
2022
|
}
|
|
2072
2023
|
//end aggr func button
|
|
2073
2024
|
//start format selector button
|
|
2074
2025
|
if (this.getButtonsToShow().indexOf("format") >= 0 && this.columnEnabled) {
|
|
2075
2026
|
builder.addChildElement(this.renderColumnFormatButton());
|
|
2027
|
+
buttonsIndex++;
|
|
2028
|
+
buttonsList += 'Format';
|
|
2076
2029
|
}
|
|
2077
2030
|
//end format selector button
|
|
2078
2031
|
//start delete button
|
|
2079
2032
|
if (this.getButtonsToShow().indexOf("delete") >= 0 && !this.column.isReadOnly()) {
|
|
2080
2033
|
builder.addChildElement(this.renderDeleteButton());
|
|
2034
|
+
buttonsIndex++;
|
|
2035
|
+
buttonsList += 'Delete';
|
|
2081
2036
|
}
|
|
2082
2037
|
//end delete button
|
|
2083
2038
|
//start menu button
|
|
2084
2039
|
if (this.getButtonsToShow().indexOf("menu") >= 0 && !this.column.isReadOnly()) {
|
|
2085
2040
|
builder.addChildElement(this.renderMenuButton());
|
|
2041
|
+
buttonsIndex++;
|
|
2042
|
+
buttonsList += 'Menu';
|
|
2086
2043
|
}
|
|
2087
2044
|
//end menu button
|
|
2088
2045
|
});
|
|
2089
|
-
//end buttons
|
|
2090
|
-
|
|
2046
|
+
//end buttons
|
|
2047
|
+
builder.addClass(`eqjs-buttons-in-block-${buttonsIndex}`);
|
|
2048
|
+
builder.addClass(`eqjs-buttons-in-block-${buttonsList}`);
|
|
2049
|
+
if (!ui.browserUtils.isMobileMode()) {
|
|
2091
2050
|
//start event listeners
|
|
2092
2051
|
builder
|
|
2093
2052
|
.on('mouseenter', this.onMouseEnter.bind(this))
|
|
2094
2053
|
.on('mouseleave', this.onMouseLeave.bind(this));
|
|
2095
2054
|
//end event listeners
|
|
2096
2055
|
}
|
|
2097
|
-
if (this.panel.options.accentActiveColumn ||
|
|
2056
|
+
if (this.panel.options.accentActiveColumn || ui.browserUtils.isMobileMode()) {
|
|
2098
2057
|
builder
|
|
2099
2058
|
.on('click', this.onMouseClick.bind(this)); //touchstart
|
|
2100
2059
|
}
|
|
2101
2060
|
if (this.panel.options.alwaysShowButtons) {
|
|
2102
2061
|
this.showButtons();
|
|
2103
2062
|
}
|
|
2063
|
+
if (this.panel.options.showCheckboxes === false) {
|
|
2064
|
+
builder.addClass("eqjs-no-checkbox");
|
|
2065
|
+
}
|
|
2104
2066
|
return this.element;
|
|
2105
2067
|
}
|
|
2106
2068
|
onMouseClick(ev) {
|
|
2107
2069
|
ev.stopPropagation();
|
|
2070
|
+
this.activate();
|
|
2071
|
+
return false;
|
|
2072
|
+
}
|
|
2073
|
+
activate() {
|
|
2108
2074
|
this.panel.toggleColumnPicked(this.column);
|
|
2109
2075
|
this.adjustButtonsVisibility();
|
|
2110
|
-
if (!
|
|
2076
|
+
if (!ui.browserUtils.isMobileMode()) {
|
|
2111
2077
|
this.element.dispatchEvent(ui.createBrowserEvent("mouseenter"));
|
|
2112
2078
|
}
|
|
2113
|
-
return false;
|
|
2114
2079
|
}
|
|
2115
2080
|
fireColumnChanged() {
|
|
2116
2081
|
this.column.fireChangedEvent();
|
|
@@ -2121,7 +2086,7 @@ class ColumnRendererCP {
|
|
|
2121
2086
|
renderCaptionBlock() {
|
|
2122
2087
|
const builder = ui.domel('div')
|
|
2123
2088
|
.addClass(`${this.cssPrefix}-colelement`, `${this.cssPrefix}-captionelement`)
|
|
2124
|
-
.addClass(
|
|
2089
|
+
.addClass(getMobileCssClass());
|
|
2125
2090
|
if (this.isEditable()) {
|
|
2126
2091
|
builder
|
|
2127
2092
|
.addChild('a', builder => builder
|
|
@@ -2130,6 +2095,7 @@ class ColumnRendererCP {
|
|
|
2130
2095
|
.text(this.column.caption)
|
|
2131
2096
|
.on('click', (ev) => {
|
|
2132
2097
|
ev.stopPropagation();
|
|
2098
|
+
this.activate();
|
|
2133
2099
|
const element = ev.target;
|
|
2134
2100
|
const inputEl = element.parentElement.querySelector('input');
|
|
2135
2101
|
if (inputEl) {
|
|
@@ -2204,7 +2170,7 @@ class ColumnRendererCP {
|
|
|
2204
2170
|
sortButtonDirectionCssClass = `${sortButtonCssClass}-none`;
|
|
2205
2171
|
break;
|
|
2206
2172
|
}
|
|
2207
|
-
if (!this.isEditable()) {
|
|
2173
|
+
if (!this.isEditable() || ui.browserUtils.isMobileMode()) {
|
|
2208
2174
|
if (sorting === core.SortDirection.Ascending
|
|
2209
2175
|
|| sorting === core.SortDirection.Descending)
|
|
2210
2176
|
return ui.domel('div')
|
|
@@ -2220,11 +2186,12 @@ class ColumnRendererCP {
|
|
|
2220
2186
|
.attr('tabIndex', '0')
|
|
2221
2187
|
.on('click', (ev) => {
|
|
2222
2188
|
ev.stopPropagation();
|
|
2189
|
+
this.activate();
|
|
2223
2190
|
this.keepShowingButtons = true;
|
|
2224
2191
|
const menu = this.getUIS() ? this.panel.sortMenu || this.panel.moveMenu : this.panel.moveMenu;
|
|
2225
2192
|
menu.showMenu({
|
|
2226
2193
|
anchor: this.sortingButton,
|
|
2227
|
-
selectedIds: this.column.isHidden() ? ['IsHidden'] : null,
|
|
2194
|
+
selectedIds: this.getButtonMenuSelectedItems(), // this.column.isHidden() ? ['IsHidden'] : null,
|
|
2228
2195
|
itemSelectedCallback: (data, items) => {
|
|
2229
2196
|
let action;
|
|
2230
2197
|
switch (data.id) {
|
|
@@ -2311,7 +2278,7 @@ class ColumnRendererCP {
|
|
|
2311
2278
|
.addClass(`${eqCssPrefix}-button`, `${eqCssPrefix}-column-button`, `${eqCssPrefix}-column-button-menu`)
|
|
2312
2279
|
.title(core.i18n.getText('ButtonMenu'))
|
|
2313
2280
|
.attr('tabIndex', '0')
|
|
2314
|
-
.on('click', evt => this.buttonMenuHandler(exports.ColumnAction.Menu, evt)) //touchstart
|
|
2281
|
+
.on('click', evt => this.buttonMenuHandler(exports.ColumnAction.Menu, evt)) //touchstart
|
|
2315
2282
|
.on('keypress', evt => { if (evt.keyCode == 13) {
|
|
2316
2283
|
evt.target.click();
|
|
2317
2284
|
} }))
|
|
@@ -2337,6 +2304,7 @@ class ColumnRendererCP {
|
|
|
2337
2304
|
.attr('tabIndex', '0')
|
|
2338
2305
|
.on('click', (ev) => {
|
|
2339
2306
|
ev.stopPropagation();
|
|
2307
|
+
this.activate();
|
|
2340
2308
|
this.keepShowingButtons = true;
|
|
2341
2309
|
this.changeTypeHandler(ev);
|
|
2342
2310
|
})
|
|
@@ -2444,7 +2412,7 @@ class ColumnRendererCP {
|
|
|
2444
2412
|
}
|
|
2445
2413
|
adjustButtonsVisibility() {
|
|
2446
2414
|
if (this.panel.options.alwaysShowButtons ||
|
|
2447
|
-
((this.panel.options.accentActiveColumn ||
|
|
2415
|
+
((this.panel.options.accentActiveColumn || ui.browserUtils.isMobileMode())
|
|
2448
2416
|
&& this.isColumnActive())) {
|
|
2449
2417
|
this.showButtons();
|
|
2450
2418
|
}
|
|
@@ -2545,6 +2513,7 @@ class ColumnRendererCP {
|
|
|
2545
2513
|
curQuery.fireColumnsChangedEvent(core.QueryChangeAction.Delete, this.column);
|
|
2546
2514
|
break;
|
|
2547
2515
|
case exports.ColumnAction.Enable:
|
|
2516
|
+
this.activate();
|
|
2548
2517
|
this.columnEnabled = !this.columnEnabled;
|
|
2549
2518
|
this.fireColumnChanged();
|
|
2550
2519
|
break;
|
|
@@ -2579,6 +2548,7 @@ class ColumnRendererCP {
|
|
|
2579
2548
|
case exports.ColumnAction.Menu:
|
|
2580
2549
|
const colMenu = this.buttonMenu;
|
|
2581
2550
|
this.keepShowingButtons = true;
|
|
2551
|
+
this.activate();
|
|
2582
2552
|
colMenu.showMenu({
|
|
2583
2553
|
anchor: evt ? evt.target : null,
|
|
2584
2554
|
selectedIds: this.getButtonMenuSelectedItems(),
|
|
@@ -2613,7 +2583,7 @@ class ColumnRendererCP {
|
|
|
2613
2583
|
action = exports.ColumnAction.SortingAsc;
|
|
2614
2584
|
break;
|
|
2615
2585
|
case "Descending":
|
|
2616
|
-
action = exports.ColumnAction.
|
|
2586
|
+
action = exports.ColumnAction.SortingDesc;
|
|
2617
2587
|
break;
|
|
2618
2588
|
}
|
|
2619
2589
|
this.buttonMenuHandler(action, evt);
|
|
@@ -2643,26 +2613,26 @@ class ColumnRendererCP {
|
|
|
2643
2613
|
if (menuId) {
|
|
2644
2614
|
menuId += '-ButtonMenu';
|
|
2645
2615
|
}
|
|
2646
|
-
const
|
|
2647
|
-
|
|
2616
|
+
const Appearance = [];
|
|
2617
|
+
Appearance.push({
|
|
2648
2618
|
id: "enable",
|
|
2649
2619
|
text: core.i18n.getText('MenuEnable')
|
|
2650
2620
|
});
|
|
2651
2621
|
if (this.panel.options.allowHiddenColumns) {
|
|
2652
|
-
|
|
2622
|
+
Appearance.push({
|
|
2653
2623
|
id: "hidden",
|
|
2654
2624
|
text: core.i18n.getText('CmdHiddenColumn')
|
|
2655
2625
|
});
|
|
2656
2626
|
}
|
|
2657
|
-
|
|
2627
|
+
Appearance.push({
|
|
2658
2628
|
id: "delete",
|
|
2659
2629
|
text: core.i18n.getText('CmdDelete')
|
|
2660
2630
|
});
|
|
2661
2631
|
let items = [];
|
|
2662
2632
|
items.push({
|
|
2663
2633
|
id: '__group',
|
|
2664
|
-
text: '
|
|
2665
|
-
items:
|
|
2634
|
+
text: core.i18n.getText('CmdGroupAppearance'),
|
|
2635
|
+
items: Appearance
|
|
2666
2636
|
});
|
|
2667
2637
|
const sortItems = this.panel.options.allowSorting ?
|
|
2668
2638
|
[
|
|
@@ -2721,6 +2691,17 @@ class ColumnRendererCP {
|
|
|
2721
2691
|
if (this.column.isHidden()) {
|
|
2722
2692
|
arrSelected.push("hidden");
|
|
2723
2693
|
}
|
|
2694
|
+
switch (this.column.sorting) {
|
|
2695
|
+
case core.SortDirection.None:
|
|
2696
|
+
arrSelected.push("None");
|
|
2697
|
+
break;
|
|
2698
|
+
case core.SortDirection.Ascending:
|
|
2699
|
+
arrSelected.push("Ascending");
|
|
2700
|
+
break;
|
|
2701
|
+
case core.SortDirection.Descending:
|
|
2702
|
+
arrSelected.push("Descending");
|
|
2703
|
+
break;
|
|
2704
|
+
}
|
|
2724
2705
|
const formats = this.panel
|
|
2725
2706
|
.getContext()
|
|
2726
2707
|
.getModel()
|
|
@@ -2741,10 +2722,10 @@ class AttrColumnRendererCP extends ColumnRendererCP {
|
|
|
2741
2722
|
renderExpressionBlock() {
|
|
2742
2723
|
return ui.domel("div")
|
|
2743
2724
|
.addClass(`${this.cssPrefix}-expr-block`)
|
|
2744
|
-
.addClass(
|
|
2725
|
+
.addClass(getMobileCssClass())
|
|
2745
2726
|
.addChild('div', builder => builder
|
|
2746
2727
|
.addClass(`${this.cssPrefix}-colelement`, `${this.cssPrefix}-attrelement`)
|
|
2747
|
-
.addClass(
|
|
2728
|
+
.addClass(getMobileCssClass())
|
|
2748
2729
|
.addChildElement(this.renderBaseExpression()))
|
|
2749
2730
|
.toDOM();
|
|
2750
2731
|
}
|
|
@@ -2762,6 +2743,7 @@ class AttrColumnRendererCP extends ColumnRendererCP {
|
|
|
2762
2743
|
.text(attrCaption) //TO DO:add localization
|
|
2763
2744
|
.on('click', (ev) => {
|
|
2764
2745
|
ev.stopPropagation();
|
|
2746
|
+
this.activate();
|
|
2765
2747
|
this.panel.showEntitiesMenu({
|
|
2766
2748
|
anchor: ev.target,
|
|
2767
2749
|
selectedIds: null,
|
|
@@ -2914,7 +2896,7 @@ class AggrFuncColumnRendererCP extends AttrColumnRendererCP {
|
|
|
2914
2896
|
const model = this.panel.getContext().getModel();
|
|
2915
2897
|
const exprBlockBuilder = ui.domel("div")
|
|
2916
2898
|
.addClass(`${this.cssPrefix}-expr-block`, `${this.cssPrefix}-expr-block-aggr`)
|
|
2917
|
-
.addClass(
|
|
2899
|
+
.addClass(getMobileCssClass());
|
|
2918
2900
|
const format = model.getAggrFunctionFormat(this.column.expr.func);
|
|
2919
2901
|
if (!format || format === '')
|
|
2920
2902
|
return;
|
|
@@ -2932,6 +2914,7 @@ class AggrFuncColumnRendererCP extends AttrColumnRendererCP {
|
|
|
2932
2914
|
.text(item.text)
|
|
2933
2915
|
.on('click', (ev) => {
|
|
2934
2916
|
ev.stopPropagation();
|
|
2917
|
+
this.activate();
|
|
2935
2918
|
this.functionMenu.showMenu({
|
|
2936
2919
|
anchor: functionLink.toDOM(),
|
|
2937
2920
|
selectedIds: null,
|
|
@@ -2950,14 +2933,14 @@ class AggrFuncColumnRendererCP extends AttrColumnRendererCP {
|
|
|
2950
2933
|
exprBlockBuilder
|
|
2951
2934
|
.addChild('div', builder => builder
|
|
2952
2935
|
.addClass(`${this.cssPrefix}-colelement`, `${this.cssPrefix}-aggrfuncelement`)
|
|
2953
|
-
.addClass(
|
|
2936
|
+
.addClass(getMobileCssClass())
|
|
2954
2937
|
.addChildElement(functionLink.toDOM()));
|
|
2955
2938
|
}
|
|
2956
2939
|
else {
|
|
2957
2940
|
exprBlockBuilder
|
|
2958
2941
|
.addChild('div', b => b
|
|
2959
2942
|
.addClass(`${this.cssPrefix}-colelement`, `${this.cssPrefix}-aggrfuncelement`)
|
|
2960
|
-
.addClass(
|
|
2943
|
+
.addClass(getMobileCssClass())
|
|
2961
2944
|
.addChild('span', b => b
|
|
2962
2945
|
.text(item.text)
|
|
2963
2946
|
.title(item.text)));
|
|
@@ -2967,14 +2950,14 @@ class AggrFuncColumnRendererCP extends AttrColumnRendererCP {
|
|
|
2967
2950
|
exprBlockBuilder
|
|
2968
2951
|
.addChild('div', builder => builder
|
|
2969
2952
|
.addClass(`${this.cssPrefix}-colelement`, `${this.cssPrefix}-attrelement`)
|
|
2970
|
-
.addClass(
|
|
2953
|
+
.addClass(getMobileCssClass())
|
|
2971
2954
|
.addChildElement(this.renderBaseExpression()));
|
|
2972
2955
|
}
|
|
2973
2956
|
else if (item.type === 3) {
|
|
2974
2957
|
exprBlockBuilder
|
|
2975
2958
|
.addChild('span', builder => builder
|
|
2976
2959
|
.addClass(`${this.cssPrefix}-colelement`)
|
|
2977
|
-
.addClass(
|
|
2960
|
+
.addClass(getMobileCssClass())
|
|
2978
2961
|
.text(item.text)
|
|
2979
2962
|
.title(item.text));
|
|
2980
2963
|
}
|
|
@@ -3056,12 +3039,12 @@ class EditableColumnRendererCP extends AttrColumnRendererCP {
|
|
|
3056
3039
|
renderExpressionBlock() {
|
|
3057
3040
|
const exprBlock = ui.domel("div")
|
|
3058
3041
|
.addClass(`${this.cssPrefix}-expr-block`)
|
|
3059
|
-
.addClass(
|
|
3042
|
+
.addClass(getMobileCssClass())
|
|
3060
3043
|
.toDOM();
|
|
3061
3044
|
//Attribute element
|
|
3062
3045
|
let builder = ui.domel('div', exprBlock)
|
|
3063
3046
|
.addClass(`${this.cssPrefix}-colelement`, `${this.cssPrefix}-attrelement`)
|
|
3064
|
-
.addClass(
|
|
3047
|
+
.addClass(getMobileCssClass());
|
|
3065
3048
|
if (this.isEditable()) {
|
|
3066
3049
|
builder
|
|
3067
3050
|
.addChild('a', b => b
|
|
@@ -3137,7 +3120,7 @@ class EditableColumnRendererCP extends AttrColumnRendererCP {
|
|
|
3137
3120
|
// DataType element
|
|
3138
3121
|
builder = ui.domel('div', exprBlock)
|
|
3139
3122
|
.addClass(`${this.cssPrefix}-colelement`, `${this.cssPrefix}-attrelement`)
|
|
3140
|
-
.addClass(
|
|
3123
|
+
.addClass(getMobileCssClass());
|
|
3141
3124
|
if (this.isEditable()) {
|
|
3142
3125
|
this.createDataTypeMenu();
|
|
3143
3126
|
builder
|
|
@@ -3387,8 +3370,18 @@ class ColumnsPanel extends core.Widget {
|
|
|
3387
3370
|
const headerBuilder = ui.domel('div', this.slot)
|
|
3388
3371
|
.hide()
|
|
3389
3372
|
.addClass(`${this.cssPrefix}-header`)
|
|
3390
|
-
.addClass(
|
|
3391
|
-
|
|
3373
|
+
.addClass(getMobileCssClass());
|
|
3374
|
+
if (!this.options.alwaysShowButtons) {
|
|
3375
|
+
headerBuilder.addClass("eqjs-no-buttons");
|
|
3376
|
+
}
|
|
3377
|
+
if (this.options.showCheckboxes) {
|
|
3378
|
+
headerBuilder.addChild('div', builder => builder
|
|
3379
|
+
.setStyle('margin-left', '30px')); //quick fix to adjust title column header when showCheckboxes is on
|
|
3380
|
+
}
|
|
3381
|
+
else {
|
|
3382
|
+
headerBuilder.addClass("eqjs-no-checkbox");
|
|
3383
|
+
}
|
|
3384
|
+
headerBuilder.addChild('div', builder => builder
|
|
3392
3385
|
.addClass(`${this.cssPrefix}-header-expression`)
|
|
3393
3386
|
.text(core$1.i18n.getText('HeaderExpression')));
|
|
3394
3387
|
if (this.options.showColumnTitles !== false) {
|
|
@@ -3403,13 +3396,13 @@ class ColumnsPanel extends core.Widget {
|
|
|
3403
3396
|
this.columnsBlock =
|
|
3404
3397
|
ui.domel('div', this.slot)
|
|
3405
3398
|
.addClass(`${this.cssPrefix}-columns`)
|
|
3406
|
-
.addClass(
|
|
3399
|
+
.addClass(getMobileCssClass())
|
|
3407
3400
|
.toDOM();
|
|
3408
3401
|
if (this.options.showAddRow) {
|
|
3409
3402
|
this.addRowElement =
|
|
3410
3403
|
ui.domel('div', this.slot)
|
|
3411
3404
|
.addClass(`${eqCssPrefix}-addrow`, `${this.cssPrefix}-addrow`, `${eqCssPrefix}-addrow-empty`)
|
|
3412
|
-
.addClass(
|
|
3405
|
+
.addClass(getMobileCssClass())
|
|
3413
3406
|
.addChild('a', builder => builder
|
|
3414
3407
|
.attr('href', 'javascript:void(0)')
|
|
3415
3408
|
.text(core$1.i18n.getText('CmdClickToAddColumn'))
|
|
@@ -3599,8 +3592,8 @@ class ColumnsPanel extends core.Widget {
|
|
|
3599
3592
|
if (options.titleElementFormat) {
|
|
3600
3593
|
this.context.options.columnTitleFormat = options.titleElementFormat;
|
|
3601
3594
|
}
|
|
3602
|
-
if (
|
|
3603
|
-
this.options.buttons = ["menu"];
|
|
3595
|
+
if (ui.browserUtils.isMobileMode()) {
|
|
3596
|
+
this.options.buttons = ["menu", "sorting"];
|
|
3604
3597
|
this.options.showHeader = false;
|
|
3605
3598
|
}
|
|
3606
3599
|
}
|
|
@@ -3631,7 +3624,7 @@ class ColumnsPanel extends core.Widget {
|
|
|
3631
3624
|
this.agjustHeaderVisibility();
|
|
3632
3625
|
ui.domel(this.slot)
|
|
3633
3626
|
.removeClass(eqCssMobile)
|
|
3634
|
-
.addClass(
|
|
3627
|
+
.addClass(getMobileCssClass());
|
|
3635
3628
|
const query = this.context.getQuery();
|
|
3636
3629
|
const columns = query.getColumns();
|
|
3637
3630
|
for (let column of columns) {
|
|
@@ -3949,7 +3942,7 @@ class ColumnsPanel extends core.Widget {
|
|
|
3949
3942
|
renderProgressBlock() {
|
|
3950
3943
|
this.progressBlock = document.createElement('div');
|
|
3951
3944
|
this.progressBlock.classList.add(`${eqCssPrefix}-progress-win8`);
|
|
3952
|
-
this.progressBlock.classList.add(
|
|
3945
|
+
this.progressBlock.classList.add(getMobileCssClass());
|
|
3953
3946
|
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>';
|
|
3954
3947
|
}
|
|
3955
3948
|
}
|
|
@@ -3999,10 +3992,10 @@ class ColumnRendererCB {
|
|
|
3999
3992
|
}
|
|
4000
3993
|
builder
|
|
4001
3994
|
.addClass(this.getClassesToAdd())
|
|
4002
|
-
.addClass(
|
|
3995
|
+
.addClass(getMobileCssClass())
|
|
4003
3996
|
.addChildElement(this.renderCaptionBlock())
|
|
4004
3997
|
.addChildElement(this.renderSortingImage());
|
|
4005
|
-
if (!
|
|
3998
|
+
if (!ui.browserUtils.isMobileMode()) {
|
|
4006
3999
|
builder
|
|
4007
4000
|
.addChildElement(this.renderButtonsBlock());
|
|
4008
4001
|
}
|
|
@@ -4011,7 +4004,7 @@ class ColumnRendererCB {
|
|
|
4011
4004
|
.on('mouseenter', this.onMouseEnter.bind(this))
|
|
4012
4005
|
.on('mouseleave', this.onMouseLeave.bind(this));
|
|
4013
4006
|
//end event listeners
|
|
4014
|
-
if (this.bar.options.accentActiveColumn ||
|
|
4007
|
+
if (this.bar.options.accentActiveColumn || ui.browserUtils.isMobileMode()) {
|
|
4015
4008
|
builder
|
|
4016
4009
|
.on('touchstart click', this.onMouseClick.bind(this));
|
|
4017
4010
|
}
|
|
@@ -4040,7 +4033,7 @@ class ColumnRendererCB {
|
|
|
4040
4033
|
if (!this.isEditable()) {
|
|
4041
4034
|
return ui.domel('div')
|
|
4042
4035
|
.addClass(`${this.cssPrefix}-colelement`, `${this.cssPrefix}-captionelement`)
|
|
4043
|
-
.addClass(
|
|
4036
|
+
.addClass(getMobileCssClass())
|
|
4044
4037
|
.addChild('div', b => b
|
|
4045
4038
|
.title(caption)
|
|
4046
4039
|
.text(caption)
|
|
@@ -4074,7 +4067,7 @@ class ColumnRendererCB {
|
|
|
4074
4067
|
}); //TO DO:add localization and input field);
|
|
4075
4068
|
return ui.domel('div')
|
|
4076
4069
|
.addClass(`${this.cssPrefix}-colelement`, `${this.cssPrefix}-captionelement`)
|
|
4077
|
-
.addClass(
|
|
4070
|
+
.addClass(getMobileCssClass())
|
|
4078
4071
|
.addChild('a', builder => builder
|
|
4079
4072
|
.attr('href', 'javascript:void(0)')
|
|
4080
4073
|
.title(this.column.caption)
|
|
@@ -4150,7 +4143,7 @@ class ColumnRendererCB {
|
|
|
4150
4143
|
else {
|
|
4151
4144
|
return ui.domel('div')
|
|
4152
4145
|
.addClass(`${this.cssPrefix}-colelement`, `${this.cssPrefix}-sortimage-placeholder`)
|
|
4153
|
-
.addClass(
|
|
4146
|
+
.addClass(getMobileCssClass())
|
|
4154
4147
|
.addChild('div', builder => builder
|
|
4155
4148
|
.addClass(`${this.cssPrefix}-img-sorting`, sortButtonDirectionCssClass)
|
|
4156
4149
|
.title(core$1.i18n.getText('ButtonSorting')))
|
|
@@ -4327,7 +4320,7 @@ class ColumnRendererCB {
|
|
|
4327
4320
|
this.adjustButtonsVisibility();
|
|
4328
4321
|
}
|
|
4329
4322
|
onMouseEnter(e) {
|
|
4330
|
-
if (
|
|
4323
|
+
if (ui.browserUtils.isMobileMode())
|
|
4331
4324
|
return;
|
|
4332
4325
|
this.isMouseOverBlock = true;
|
|
4333
4326
|
this.enterButtonBlock();
|
|
@@ -4335,7 +4328,7 @@ class ColumnRendererCB {
|
|
|
4335
4328
|
return false;
|
|
4336
4329
|
}
|
|
4337
4330
|
onMouseLeave(e) {
|
|
4338
|
-
if (
|
|
4331
|
+
if (ui.browserUtils.isMobileMode())
|
|
4339
4332
|
return;
|
|
4340
4333
|
this.isMouseOverBlock = false;
|
|
4341
4334
|
this.leaveButtonBlock();
|
|
@@ -4346,7 +4339,7 @@ class ColumnRendererCB {
|
|
|
4346
4339
|
return this.element.classList.contains("active");
|
|
4347
4340
|
}
|
|
4348
4341
|
hideButtons() {
|
|
4349
|
-
if (
|
|
4342
|
+
if (ui.browserUtils.isMobileMode()) {
|
|
4350
4343
|
if (this.onHideButtonsMobile) {
|
|
4351
4344
|
this.onHideButtonsMobile();
|
|
4352
4345
|
}
|
|
@@ -4356,7 +4349,7 @@ class ColumnRendererCB {
|
|
|
4356
4349
|
}
|
|
4357
4350
|
}
|
|
4358
4351
|
showButtons() {
|
|
4359
|
-
if (
|
|
4352
|
+
if (ui.browserUtils.isMobileMode()) {
|
|
4360
4353
|
if (this.onShowButtonsMobile) {
|
|
4361
4354
|
this.onShowButtonsMobile();
|
|
4362
4355
|
}
|
|
@@ -4367,7 +4360,7 @@ class ColumnRendererCB {
|
|
|
4367
4360
|
}
|
|
4368
4361
|
adjustButtonsVisibility() {
|
|
4369
4362
|
if (this.bar.options.alwaysShowButtons
|
|
4370
|
-
|| ((this.bar.options.accentActiveColumn ||
|
|
4363
|
+
|| ((this.bar.options.accentActiveColumn || ui.browserUtils.isMobileMode())
|
|
4371
4364
|
&& this.isColumnActive())) {
|
|
4372
4365
|
this.showButtons();
|
|
4373
4366
|
}
|
|
@@ -4642,6 +4635,7 @@ class ColumnsBar extends core.Widget {
|
|
|
4642
4635
|
sortEntities: false,
|
|
4643
4636
|
columnRenderedCallback: null,
|
|
4644
4637
|
customExpressionText: 0,
|
|
4638
|
+
showAddAllForEntity: false
|
|
4645
4639
|
};
|
|
4646
4640
|
this.landingSlot = ui.domel('div')
|
|
4647
4641
|
.addClass(`${eqCssPrefix}-highlight`)
|
|
@@ -4661,7 +4655,7 @@ class ColumnsBar extends core.Widget {
|
|
|
4661
4655
|
];
|
|
4662
4656
|
ui.domel(this.slot)
|
|
4663
4657
|
.addClass(`${this.cssPrefix}-panel`)
|
|
4664
|
-
.addClass(
|
|
4658
|
+
.addClass(getMobileCssClass());
|
|
4665
4659
|
this.group = core.WidgetGroup.Query;
|
|
4666
4660
|
this.customQuery = customQuery;
|
|
4667
4661
|
}
|
|
@@ -4880,7 +4874,7 @@ class ColumnsBar extends core.Widget {
|
|
|
4880
4874
|
renderAddRowButton() {
|
|
4881
4875
|
ui.domel(this.addRowButton)
|
|
4882
4876
|
.addClass(`${eqCssPrefix}-addrow`, `${this.cssPrefix}-addrow`, `${eqCssPrefix}-addrow-empty`)
|
|
4883
|
-
.addClass(
|
|
4877
|
+
.addClass(getMobileCssClass())
|
|
4884
4878
|
.title(core$1.i18n.getText('CmdClickToAddColumn'))
|
|
4885
4879
|
.addChild('a', builder => builder
|
|
4886
4880
|
.attr('href', 'javascript:void(0)')
|
|
@@ -4890,13 +4884,18 @@ class ColumnsBar extends core.Widget {
|
|
|
4890
4884
|
anchor: e.target,
|
|
4891
4885
|
selectedIds: null,
|
|
4892
4886
|
itemSelectedCallback: (data, items) => {
|
|
4893
|
-
|
|
4894
|
-
|
|
4887
|
+
if (data.id === '__AddAll__' && data.extra && Array.isArray(data.extra.ids)) {
|
|
4888
|
+
data.extra.ids.forEach(attrId => this.addNewColumn(attrId));
|
|
4889
|
+
}
|
|
4890
|
+
else {
|
|
4891
|
+
const attrid = data.id;
|
|
4892
|
+
this.addNewColumn(attrid);
|
|
4893
|
+
}
|
|
4895
4894
|
return false;
|
|
4896
4895
|
}
|
|
4897
4896
|
});
|
|
4898
4897
|
}));
|
|
4899
|
-
if (
|
|
4898
|
+
if (ui.browserUtils.isMobileMode()) {
|
|
4900
4899
|
ui.domel(this.columnsBlock)
|
|
4901
4900
|
.addChildElement(this.addRowButton);
|
|
4902
4901
|
}
|
|
@@ -4910,13 +4909,13 @@ class ColumnsBar extends core.Widget {
|
|
|
4910
4909
|
this.columnsBlock =
|
|
4911
4910
|
ui.domel('div')
|
|
4912
4911
|
.addClass(`${this.cssPrefix}-columns`)
|
|
4913
|
-
.addClass(
|
|
4912
|
+
.addClass(getMobileCssClass())
|
|
4914
4913
|
.toDOM();
|
|
4915
4914
|
if (this.options.showAddRow) {
|
|
4916
4915
|
this.addRowButton =
|
|
4917
4916
|
ui.domel('div')
|
|
4918
4917
|
.toDOM();
|
|
4919
|
-
if (
|
|
4918
|
+
if (ui.browserUtils.isMobileMode()) {
|
|
4920
4919
|
ui.domel(this.columnsBlock)
|
|
4921
4920
|
.addChildElement(this.addRowButton);
|
|
4922
4921
|
}
|
|
@@ -4940,7 +4939,7 @@ class ColumnsBar extends core.Widget {
|
|
|
4940
4939
|
this.columnButtonsBlockMobileArrow = ui.domel('i').toDOM();
|
|
4941
4940
|
this.columnButtonsBlockMobile = ui.domel('div')
|
|
4942
4941
|
.addClass(`${this.cssPrefix}-column-buttonsBlock`)
|
|
4943
|
-
.addClass(
|
|
4942
|
+
.addClass(getMobileCssClass())
|
|
4944
4943
|
.addChildElement(this.columnButtonsBlockMobileArrow)
|
|
4945
4944
|
.hide()
|
|
4946
4945
|
.toDOM();
|
|
@@ -5160,6 +5159,23 @@ class ColumnsBar extends core.Widget {
|
|
|
5160
5159
|
showEntitiesMenu(menuOptions) {
|
|
5161
5160
|
this.entitiesMenu && this.entitiesMenu.showMenu(menuOptions);
|
|
5162
5161
|
}
|
|
5162
|
+
addAllColumnsToEntitiesList(list) {
|
|
5163
|
+
const attrIds = list.filter(item => !item.isEntity).map(item => item.id);
|
|
5164
|
+
if (attrIds.length > 0) {
|
|
5165
|
+
list.unshift({
|
|
5166
|
+
id: '__AddAll__',
|
|
5167
|
+
text: core$1.i18n.getText('AddAllForEntityText'),
|
|
5168
|
+
extra: {
|
|
5169
|
+
ids: attrIds
|
|
5170
|
+
}
|
|
5171
|
+
});
|
|
5172
|
+
}
|
|
5173
|
+
list.forEach(item => {
|
|
5174
|
+
if (item.items) {
|
|
5175
|
+
this.addAllColumnsToEntitiesList(item.items);
|
|
5176
|
+
}
|
|
5177
|
+
});
|
|
5178
|
+
}
|
|
5163
5179
|
createEntitiesMenu() {
|
|
5164
5180
|
const model = this.getContext().getModel();
|
|
5165
5181
|
if (!model || model.isEmpty())
|
|
@@ -5169,6 +5185,10 @@ class ColumnsBar extends core.Widget {
|
|
|
5169
5185
|
menuId += '-EntitiesMenu';
|
|
5170
5186
|
}
|
|
5171
5187
|
const entitiesList = model.getEntitiesTree({ addUIC: false, addUIR: true, addUIS: false, attrPlacement: this.options.attrPlacement, sortEntities: this.options.sortEntities });
|
|
5188
|
+
// add [Add all columns] items
|
|
5189
|
+
if (this.options.showAddAllForEntity) {
|
|
5190
|
+
this.addAllColumnsToEntitiesList(entitiesList);
|
|
5191
|
+
}
|
|
5172
5192
|
const options = { items: entitiesList, adjustHeight: this.options.adjustEntitiesMenuHeight, id: menuId, domWriteItemsId: this.options.domWriteItemsId };
|
|
5173
5193
|
core$1.utils.assign(options, this.options.menuOptions);
|
|
5174
5194
|
this.entitiesMenu = new PopupMenu(options);
|
|
@@ -5297,7 +5317,7 @@ class ColumnRendererSB {
|
|
|
5297
5317
|
}
|
|
5298
5318
|
builder
|
|
5299
5319
|
.addClass(this.getClassesToAdd())
|
|
5300
|
-
.addClass(
|
|
5320
|
+
.addClass(getMobileCssClass())
|
|
5301
5321
|
.addChildElement(this.renderCaptionBlock());
|
|
5302
5322
|
if (this.isEditable()) {
|
|
5303
5323
|
builder
|
|
@@ -5335,7 +5355,7 @@ class ColumnRendererSB {
|
|
|
5335
5355
|
}
|
|
5336
5356
|
return ui.domel('div')
|
|
5337
5357
|
.addClass(`${this.cssPrefix}-colelement`, `${this.cssPrefix}-captionelement`)
|
|
5338
|
-
.addClass(
|
|
5358
|
+
.addClass(getMobileCssClass())
|
|
5339
5359
|
.addChild('div', b => b
|
|
5340
5360
|
.title(this.column.caption)
|
|
5341
5361
|
.text(text))
|
|
@@ -5357,7 +5377,7 @@ class ColumnRendererSB {
|
|
|
5357
5377
|
}
|
|
5358
5378
|
const builder = ui.domel('div')
|
|
5359
5379
|
.addClass(`${this.cssPrefix}-colelement`, `${this.cssPrefix}-sortimage-placeholder`)
|
|
5360
|
-
.addClass(
|
|
5380
|
+
.addClass(getMobileCssClass())
|
|
5361
5381
|
.addChild('div', builder => builder
|
|
5362
5382
|
.addClass(`${this.cssPrefix}-img-sorting`, sortButtonDirectionCssClass)
|
|
5363
5383
|
.title(core$1.i18n.getText('ButtonSorting')))
|
|
@@ -5448,7 +5468,7 @@ class SortingBar extends core.Widget {
|
|
|
5448
5468
|
this.landingIndex = -1;
|
|
5449
5469
|
ui.domel(this.slot)
|
|
5450
5470
|
.addClass(`${this.cssPrefix}-panel`)
|
|
5451
|
-
.addClass(
|
|
5471
|
+
.addClass(getMobileCssClass());
|
|
5452
5472
|
this.group = core.WidgetGroup.Query;
|
|
5453
5473
|
}
|
|
5454
5474
|
getWidgetType() {
|
|
@@ -5531,7 +5551,7 @@ class SortingBar extends core.Widget {
|
|
|
5531
5551
|
renderAddRowButton() {
|
|
5532
5552
|
ui.domel(this.addRowButton)
|
|
5533
5553
|
.addClass(`${eqCssPrefix}-addrow`, `${this.cssPrefix}-addrow`, `${eqCssPrefix}-addrow-empty`)
|
|
5534
|
-
.addClass(
|
|
5554
|
+
.addClass(getMobileCssClass())
|
|
5535
5555
|
.title(core$1.i18n.getText('CmdClickToAddColumn'))
|
|
5536
5556
|
.addChild('a', builder => builder
|
|
5537
5557
|
.attr('href', 'javascript:void(0)')
|
|
@@ -5547,7 +5567,7 @@ class SortingBar extends core.Widget {
|
|
|
5547
5567
|
}
|
|
5548
5568
|
});
|
|
5549
5569
|
}));
|
|
5550
|
-
if (
|
|
5570
|
+
if (ui.browserUtils.isMobileMode()) {
|
|
5551
5571
|
ui.domel(this.columnsBlock)
|
|
5552
5572
|
.addChildElement(this.addRowButton);
|
|
5553
5573
|
}
|
|
@@ -5587,13 +5607,13 @@ class SortingBar extends core.Widget {
|
|
|
5587
5607
|
this.columnsBlock =
|
|
5588
5608
|
ui.domel('div')
|
|
5589
5609
|
.addClass(`${this.cssPrefix}-columns`)
|
|
5590
|
-
.addClass(
|
|
5610
|
+
.addClass(getMobileCssClass())
|
|
5591
5611
|
.toDOM();
|
|
5592
5612
|
if (this.options.showAddRow) {
|
|
5593
5613
|
this.addRowButton =
|
|
5594
5614
|
ui.domel('div')
|
|
5595
5615
|
.toDOM();
|
|
5596
|
-
if (
|
|
5616
|
+
if (ui.browserUtils.isMobileMode()) {
|
|
5597
5617
|
ui.domel(this.columnsBlock)
|
|
5598
5618
|
.addChildElement(this.addRowButton);
|
|
5599
5619
|
}
|
|
@@ -5768,7 +5788,7 @@ class TextRenderer {
|
|
|
5768
5788
|
ui.domel(this.element)
|
|
5769
5789
|
.html('')
|
|
5770
5790
|
.addClass(this.getClassesToAdd())
|
|
5771
|
-
.addClass(
|
|
5791
|
+
.addClass(getMobileCssClass())
|
|
5772
5792
|
.addChild('span', builder => builder
|
|
5773
5793
|
.text(this.text)
|
|
5774
5794
|
.title(this.text))
|
|
@@ -5829,7 +5849,7 @@ class SimpleConditionRenderer extends ConditionRenderer {
|
|
|
5829
5849
|
let result = `${this.cssPrefix}-row ${this.cssPrefix}-row-condition`;
|
|
5830
5850
|
result += this.condition.isInJoin() ? ` ${this.cssPrefix}-condition-injoin` : '';
|
|
5831
5851
|
result += this.condition.isParameterized() ? ` ${this.cssPrefix}-condition-parameterized` : '';
|
|
5832
|
-
if (!
|
|
5852
|
+
if (!ui.browserUtils.isMobileMode()) {
|
|
5833
5853
|
const level = this.condition.getLevel();
|
|
5834
5854
|
if (level > 0)
|
|
5835
5855
|
result += ` ${this.cssPrefix}-level-${level}`;
|
|
@@ -5854,7 +5874,7 @@ class SimpleConditionRenderer extends ConditionRenderer {
|
|
|
5854
5874
|
this.element = builder.toDOM();
|
|
5855
5875
|
builder
|
|
5856
5876
|
.addClass(this.getClassesToAdd())
|
|
5857
|
-
.addClass(
|
|
5877
|
+
.addClass(getMobileCssClass())
|
|
5858
5878
|
.data('id', this.condition.id)
|
|
5859
5879
|
.data('condrow', '')
|
|
5860
5880
|
.addChildElement(this.renderCheckbox())
|
|
@@ -5887,12 +5907,12 @@ class SimpleConditionRenderer extends ConditionRenderer {
|
|
|
5887
5907
|
builder.addChildElement(new TextRenderer(this.panel, item.text).render());
|
|
5888
5908
|
}
|
|
5889
5909
|
}
|
|
5890
|
-
if (this.panel.options.accentActiveCondition ||
|
|
5910
|
+
if (this.panel.options.accentActiveCondition || ui.browserUtils.isMobileMode()) {
|
|
5891
5911
|
builder.on('click', ev => {
|
|
5892
5912
|
ev.stopPropagation();
|
|
5893
5913
|
this.panel.toggleConditionPicked(this.condition);
|
|
5894
5914
|
this.adjustButtonsVisibility();
|
|
5895
|
-
if (!
|
|
5915
|
+
if (!ui.browserUtils.isMobileMode()) {
|
|
5896
5916
|
this.element.dispatchEvent(ui.createBrowserEvent("mouseenter"));
|
|
5897
5917
|
}
|
|
5898
5918
|
return false;
|
|
@@ -5900,7 +5920,7 @@ class SimpleConditionRenderer extends ConditionRenderer {
|
|
|
5900
5920
|
}
|
|
5901
5921
|
builder
|
|
5902
5922
|
.addChildElement(this.renderButtonsBlock());
|
|
5903
|
-
if (!
|
|
5923
|
+
if (!ui.browserUtils.isMobileMode()) {
|
|
5904
5924
|
builder
|
|
5905
5925
|
.on('mouseenter', event => {
|
|
5906
5926
|
this.isMouseOverBlock = true;
|
|
@@ -6128,7 +6148,7 @@ class SimpleConditionRenderer extends ConditionRenderer {
|
|
|
6128
6148
|
};
|
|
6129
6149
|
const builder = ui.domel("div")
|
|
6130
6150
|
.addClass(`${this.cssPrefix}-condition-buttonsBlock`)
|
|
6131
|
-
.addClass(
|
|
6151
|
+
.addClass(getMobileCssClass());
|
|
6132
6152
|
this.buttonsBlock = builder.toDOM();
|
|
6133
6153
|
if (this.condition.isReadOnly()) {
|
|
6134
6154
|
return this.buttonsBlock;
|
|
@@ -6221,7 +6241,7 @@ class SimpleConditionRenderer extends ConditionRenderer {
|
|
|
6221
6241
|
.data("button", "")
|
|
6222
6242
|
.title(core$1.i18n.getText('ButtonMenu'))
|
|
6223
6243
|
.on('click', evt => this.conditionMenuHandler(exports.ConditionAction.Menu, evt));
|
|
6224
|
-
if (!
|
|
6244
|
+
if (!ui.browserUtils.isMobileMode()) {
|
|
6225
6245
|
b
|
|
6226
6246
|
.on('keypress', evt => { if (evt.keyCode == 13) {
|
|
6227
6247
|
evt.target.click();
|
|
@@ -6292,7 +6312,7 @@ class ConditionGroupRenderer extends ConditionRenderer {
|
|
|
6292
6312
|
coreRender(autoAppear) {
|
|
6293
6313
|
ui.domel(this.element)
|
|
6294
6314
|
.addClass(this.getClassesToAdd())
|
|
6295
|
-
.addClass(
|
|
6315
|
+
.addClass(getMobileCssClass())
|
|
6296
6316
|
.addChildElement(this.renderGroupRow())
|
|
6297
6317
|
.addChildElement(this.renderConditions(autoAppear))
|
|
6298
6318
|
.data('id', this.condition.id)
|
|
@@ -6310,7 +6330,7 @@ class ConditionGroupRenderer extends ConditionRenderer {
|
|
|
6310
6330
|
const builder = ui.domel('div');
|
|
6311
6331
|
builder
|
|
6312
6332
|
.addClass(`${this.cssPrefix}-conditions`)
|
|
6313
|
-
.addClass(`${
|
|
6333
|
+
.addClass(`${getMobileCssClass()}`)
|
|
6314
6334
|
.data('conditions', '');
|
|
6315
6335
|
if (this.isRoot) {
|
|
6316
6336
|
builder.addClass(`${this.cssPrefix}-conditions-root`);
|
|
@@ -6352,7 +6372,7 @@ class ConditionGroupRowRenderer extends SimpleConditionRenderer {
|
|
|
6352
6372
|
coreRender(autoAppear) {
|
|
6353
6373
|
const builder = ui.domel(this.element)
|
|
6354
6374
|
.addClass(this.getClassesToAdd())
|
|
6355
|
-
.addClass(
|
|
6375
|
+
.addClass(getMobileCssClass())
|
|
6356
6376
|
.data('group-row', '')
|
|
6357
6377
|
.addChildElement(this.renderCheckbox())
|
|
6358
6378
|
.addChildElement(this.renderConjunction());
|
|
@@ -6364,14 +6384,14 @@ class ConditionGroupRowRenderer extends SimpleConditionRenderer {
|
|
|
6364
6384
|
builder.on('click', ev => {
|
|
6365
6385
|
this.panel.toggleConditionPicked(this.condition);
|
|
6366
6386
|
this.adjustButtonsVisibility();
|
|
6367
|
-
if (!
|
|
6387
|
+
if (!ui.browserUtils.isMobileMode()) {
|
|
6368
6388
|
builder.toDOM().dispatchEvent(ui.createBrowserEvent("mouseenter"));
|
|
6369
6389
|
}
|
|
6370
6390
|
});
|
|
6371
6391
|
}
|
|
6372
6392
|
builder
|
|
6373
6393
|
.addChildElement(this.renderButtonsBlock());
|
|
6374
|
-
if (!
|
|
6394
|
+
if (!ui.browserUtils.isMobileMode()) {
|
|
6375
6395
|
builder
|
|
6376
6396
|
.on('mouseenter', event => {
|
|
6377
6397
|
this.isMouseOverBlock = true;
|
|
@@ -6391,7 +6411,7 @@ class ConditionGroupRowRenderer extends SimpleConditionRenderer {
|
|
|
6391
6411
|
}
|
|
6392
6412
|
getGroupTitle() {
|
|
6393
6413
|
let result;
|
|
6394
|
-
if (this.isRoot && !
|
|
6414
|
+
if (this.isRoot && !ui.browserUtils.isMobileMode()) {
|
|
6395
6415
|
result = core$1.i18n.getText('RootConditionGroupTitle');
|
|
6396
6416
|
if (!result) {
|
|
6397
6417
|
//to support old text key
|
|
@@ -6488,7 +6508,7 @@ class BaseElementRenderer {
|
|
|
6488
6508
|
ui.domel(this.element)
|
|
6489
6509
|
.html('')
|
|
6490
6510
|
.addClass(this.getClassesToAdd())
|
|
6491
|
-
.addClass(
|
|
6511
|
+
.addClass(getMobileCssClass())
|
|
6492
6512
|
.addChildElement(this.labelElement);
|
|
6493
6513
|
if (this.isEditable()) {
|
|
6494
6514
|
this.renderEditor();
|
|
@@ -6652,7 +6672,7 @@ class InputExpressionRenderer extends ExpressionRenderer {
|
|
|
6652
6672
|
}
|
|
6653
6673
|
showEditor() {
|
|
6654
6674
|
const MIN_WIDTH = 200;
|
|
6655
|
-
if (!
|
|
6675
|
+
if (!ui.browserUtils.isMobileMode()) {
|
|
6656
6676
|
let left = this.element.offsetLeft;
|
|
6657
6677
|
let width = this.element.offsetWidth > MIN_WIDTH ? this.element.offsetWidth : MIN_WIDTH;
|
|
6658
6678
|
let maxWidth = this.element.parentElement.clientWidth - left - 55;
|
|
@@ -7040,7 +7060,7 @@ class AttributeExpressionRenderer extends ListExpressionRenderer {
|
|
|
7040
7060
|
return `${this.cssPrefix}-condelement ${this.cssPrefix}-attrelement`;
|
|
7041
7061
|
}
|
|
7042
7062
|
adjustWidth() {
|
|
7043
|
-
if (
|
|
7063
|
+
if (ui.browserUtils.isMobileMode()) {
|
|
7044
7064
|
return;
|
|
7045
7065
|
}
|
|
7046
7066
|
const elWidth = this.element.clientWidth;
|
|
@@ -7246,7 +7266,7 @@ class DateTimeExpressionRenderer extends ExpressionRenderer {
|
|
|
7246
7266
|
dateTime = model.getTimeMacroValue(value);
|
|
7247
7267
|
}
|
|
7248
7268
|
else {
|
|
7249
|
-
dateTime = this.convertFromInternalFormat(value);
|
|
7269
|
+
dateTime = this.convertFromInternalFormat(value, new Date());
|
|
7250
7270
|
}
|
|
7251
7271
|
this.dtp.setDateTime(dateTime);
|
|
7252
7272
|
this.dtp.show(this.element);
|
|
@@ -7276,8 +7296,13 @@ class DateTimeExpressionRenderer extends ExpressionRenderer {
|
|
|
7276
7296
|
return super.isEditable()
|
|
7277
7297
|
&& ((this.panel.options.editableParts & exports.QPEditablePart.Value) === exports.QPEditablePart.Value);
|
|
7278
7298
|
}
|
|
7279
|
-
convertFromInternalFormat(
|
|
7280
|
-
|
|
7299
|
+
convertFromInternalFormat(dateTimeStr, defautValue) {
|
|
7300
|
+
try {
|
|
7301
|
+
return core$1.utils.strToDateTime(dateTimeStr, this.internalDateFormat + ' ' + this.internalTimeFormat);
|
|
7302
|
+
}
|
|
7303
|
+
catch (_a) {
|
|
7304
|
+
return defautValue || new Date();
|
|
7305
|
+
}
|
|
7281
7306
|
}
|
|
7282
7307
|
convertToInternalFormat(dateTime) {
|
|
7283
7308
|
return core$1.i18n.dateTimeToStr(dateTime, this.internalDateFormat + ' ' + this.internalTimeFormat);
|
|
@@ -7791,7 +7816,7 @@ class QueryPanel extends core.Widget {
|
|
|
7791
7816
|
if (typeof this.options.editableParts === "undefined") {
|
|
7792
7817
|
this.options.editableParts = exports.QPEditablePart.All;
|
|
7793
7818
|
}
|
|
7794
|
-
if (
|
|
7819
|
+
if (ui.browserUtils.isMobileMode()) {
|
|
7795
7820
|
this.options.buttons = this.options.buttons || {};
|
|
7796
7821
|
this.options.buttons.condition = ["menu"];
|
|
7797
7822
|
this.options.buttons.group = ["menu"];
|
|
@@ -7809,7 +7834,7 @@ class QueryPanel extends core.Widget {
|
|
|
7809
7834
|
.toDOM();
|
|
7810
7835
|
ui.domel(this.slot)
|
|
7811
7836
|
.removeClass(eqCssMobile)
|
|
7812
|
-
.addClass(
|
|
7837
|
+
.addClass(getMobileCssClass());
|
|
7813
7838
|
const query = this.getQuery();
|
|
7814
7839
|
const root = query.getRootCondition();
|
|
7815
7840
|
const renderer = this.getConditionRenderer(root, this.rootContainer);
|
|
@@ -8128,7 +8153,7 @@ class QueryPanel extends core.Widget {
|
|
|
8128
8153
|
renderProgressBlock() {
|
|
8129
8154
|
this.progressBlock = document.createElement('div');
|
|
8130
8155
|
this.progressBlock.classList.add(`${eqCssPrefix}-progress-win8`);
|
|
8131
|
-
this.progressBlock.classList.add(
|
|
8156
|
+
this.progressBlock.classList.add(getMobileCssClass());
|
|
8132
8157
|
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>';
|
|
8133
8158
|
}
|
|
8134
8159
|
clonePanel(slot, query) {
|
|
@@ -8244,7 +8269,7 @@ class FilterBar extends core.Widget {
|
|
|
8244
8269
|
render() {
|
|
8245
8270
|
ui.domel(this.slot)
|
|
8246
8271
|
.addClass(`${this.cssPrefix}-container`)
|
|
8247
|
-
.addClass(
|
|
8272
|
+
.addClass(getMobileCssClass())
|
|
8248
8273
|
.addChild('div', builder => this.headerElement = builder
|
|
8249
8274
|
.addClass(`${this.cssPrefix}-header`)
|
|
8250
8275
|
.addChild('div', builder => this.headerIconElement = builder
|
|
@@ -8290,14 +8315,14 @@ class FilterBar extends core.Widget {
|
|
|
8290
8315
|
.toDOM())
|
|
8291
8316
|
.addChild('div', builder => this.qpBlock = builder
|
|
8292
8317
|
.addClass(`${this.cssPrefix}-querypanelblock`)
|
|
8293
|
-
.addClass(
|
|
8318
|
+
.addClass(getMobileCssClass())
|
|
8294
8319
|
.hide()
|
|
8295
8320
|
.addChildElement(this.qpElement)
|
|
8296
8321
|
.toDOM());
|
|
8297
8322
|
if (this.options.showApplyButton || this.options.showClearButton) {
|
|
8298
8323
|
this.buttonsBlock = ui.domel('div', this.qpBlock)
|
|
8299
8324
|
.addClass(`${this.cssPrefix}-buttonsblock`)
|
|
8300
|
-
.addClass(
|
|
8325
|
+
.addClass(getMobileCssClass())
|
|
8301
8326
|
.toDOM();
|
|
8302
8327
|
}
|
|
8303
8328
|
if (this.options.showApplyButton) {
|
|
@@ -9082,7 +9107,7 @@ class ResultFacet {
|
|
|
9082
9107
|
let b = ui.domel('div')
|
|
9083
9108
|
.addClass('kfrm-form')
|
|
9084
9109
|
.addChild('div', b => fieldsContainer = b
|
|
9085
|
-
.addClass(`${
|
|
9110
|
+
.addClass(`${ui.browserUtils.isIE()
|
|
9086
9111
|
? 'kfrm-fields-ie col-ie-1-4 label-align-right'
|
|
9087
9112
|
: 'kfrm-fields col-a-1 label-align-right'}`)
|
|
9088
9113
|
.toDOM());
|
|
@@ -9091,7 +9116,7 @@ class ResultFacet {
|
|
|
9091
9116
|
}
|
|
9092
9117
|
renderFormFields(form, fieldsContainer) {
|
|
9093
9118
|
let cont = fieldsContainer;
|
|
9094
|
-
if (
|
|
9119
|
+
if (ui.browserUtils.isIE()) {
|
|
9095
9120
|
cont = ui.domel('div', fieldsContainer)
|
|
9096
9121
|
.addClass('kfrm-field-ie')
|
|
9097
9122
|
.toDOM();
|
|
@@ -9894,7 +9919,7 @@ class ChartFacet extends ResultFacet {
|
|
|
9894
9919
|
}
|
|
9895
9920
|
renderFormFields(form, fieldsContainer) {
|
|
9896
9921
|
super.renderFormFields(form, fieldsContainer);
|
|
9897
|
-
const isIE =
|
|
9922
|
+
const isIE = ui.browserUtils.isIE();
|
|
9898
9923
|
const horizClass = isIE ? 'kfrm-fields-ie is-horizontal' : 'kfrm-fields is-horizontal';
|
|
9899
9924
|
// Chart type
|
|
9900
9925
|
let chartTypeSelector = document.createElement('select');
|
|
@@ -10086,6 +10111,7 @@ class PivotTableFacet extends ResultFacet {
|
|
|
10086
10111
|
this.title = core$1.i18n.getText('Facets', 'Pivot', 'FacetTitle');
|
|
10087
10112
|
this.dialogTitle = core$1.i18n.getText('Facets', 'Pivot', 'DlgTitle');
|
|
10088
10113
|
this.pivotTable = new core$1.EasyDataTable();
|
|
10114
|
+
this.settings = {};
|
|
10089
10115
|
}
|
|
10090
10116
|
init(slot) {
|
|
10091
10117
|
super.init(slot);
|
|
@@ -10218,7 +10244,7 @@ class PivotTableFacet extends ResultFacet {
|
|
|
10218
10244
|
core$1.DataType.Int64, core$1.DataType.Word, core$1.DataType.Byte];
|
|
10219
10245
|
const fieldTypes = [core$1.DataType.String, core$1.DataType.Float, core$1.DataType.Int32,
|
|
10220
10246
|
core$1.DataType.Int64, core$1.DataType.Word, core$1.DataType.Byte, core$1.DataType.Currency];
|
|
10221
|
-
const isIE =
|
|
10247
|
+
const isIE = ui.browserUtils.isIE();
|
|
10222
10248
|
let current = fieldsContainer;
|
|
10223
10249
|
const horizClass = isIE ? 'kfrm-fields-ie is-horizontal' : 'kfrm-fields is-horizontal';
|
|
10224
10250
|
const getCurrent = () => {
|
|
@@ -10366,14 +10392,14 @@ class PivotTableFacet extends ResultFacet {
|
|
|
10366
10392
|
saveToData() {
|
|
10367
10393
|
const data = super.saveToData();
|
|
10368
10394
|
if (this.settings) {
|
|
10369
|
-
core$1.utils.
|
|
10395
|
+
core$1.utils.assign(data, this.settings);
|
|
10370
10396
|
}
|
|
10371
10397
|
return data;
|
|
10372
10398
|
}
|
|
10373
10399
|
loadFromData(data) {
|
|
10374
10400
|
super.loadFromData(data);
|
|
10375
10401
|
if (data) {
|
|
10376
|
-
this.settings = core$1.utils.
|
|
10402
|
+
this.settings = core$1.utils.assign(this.settings, data);
|
|
10377
10403
|
if (this.settings.aggrFunc == 'AVERAGE') {
|
|
10378
10404
|
this.settings.aggrFunc = AggrFunc.Average;
|
|
10379
10405
|
}
|
|
@@ -10962,7 +10988,7 @@ class ResultFacetsPanel extends FacetContainer {
|
|
|
10962
10988
|
this._processBlock = ui.domel('div')
|
|
10963
10989
|
.addClass(`${this.cssPrefix}-spinner`)
|
|
10964
10990
|
.addChild('div', b => b
|
|
10965
|
-
.addClass(`${eqCssPrefix}-progress-win8`,
|
|
10991
|
+
.addClass(`${eqCssPrefix}-progress-win8`, getMobileCssClass())
|
|
10966
10992
|
.addHtml(html))
|
|
10967
10993
|
.toDOM();
|
|
10968
10994
|
}
|
|
@@ -11934,7 +11960,7 @@ class AggregationBar extends core.Widget {
|
|
|
11934
11960
|
}
|
|
11935
11961
|
render() {
|
|
11936
11962
|
this.slot.classList.add(`${this.cssPrefix}-panel`);
|
|
11937
|
-
const mobClass =
|
|
11963
|
+
const mobClass = getMobileCssClass();
|
|
11938
11964
|
if (mobClass) {
|
|
11939
11965
|
this.slot.classList.add(mobClass);
|
|
11940
11966
|
}
|
|
@@ -12067,7 +12093,7 @@ class QueryNameWidget extends core.Widget {
|
|
|
12067
12093
|
}
|
|
12068
12094
|
render() {
|
|
12069
12095
|
this.slot.classList.add(`${this.cssPrefix}`);
|
|
12070
|
-
const mobClass =
|
|
12096
|
+
const mobClass = getMobileCssClass();
|
|
12071
12097
|
if (mobClass) {
|
|
12072
12098
|
this.slot.classList.add(mobClass);
|
|
12073
12099
|
}
|
|
@@ -12175,7 +12201,7 @@ class View {
|
|
|
12175
12201
|
}
|
|
12176
12202
|
initOptions(options) {
|
|
12177
12203
|
options = core$1.utils.assignDeep(this.defaultViewOptions, options);
|
|
12178
|
-
// support old format
|
|
12204
|
+
// support old format
|
|
12179
12205
|
if (!options.widgets.easyGrid) {
|
|
12180
12206
|
options.widgets.easyGrid = options.widgets.resultGrid || {};
|
|
12181
12207
|
}
|
|
@@ -12405,7 +12431,7 @@ class View {
|
|
|
12405
12431
|
this._spinnerDiv = ui.domel('div')
|
|
12406
12432
|
.addClass(`eqjs-result-spinner`)
|
|
12407
12433
|
.addChild('div', b => b
|
|
12408
|
-
.addClass(`${eqCssPrefix}-progress-win8`,
|
|
12434
|
+
.addClass(`${eqCssPrefix}-progress-win8`, getMobileCssClass())
|
|
12409
12435
|
.addHtml(html))
|
|
12410
12436
|
.toDOM();
|
|
12411
12437
|
}
|
|
@@ -12629,6 +12655,9 @@ class View {
|
|
|
12629
12655
|
this.domRoots = [document];
|
|
12630
12656
|
this.resetContext();
|
|
12631
12657
|
}
|
|
12658
|
+
refreshWidgets(groups) {
|
|
12659
|
+
this.context.refreshWidgets(groups);
|
|
12660
|
+
}
|
|
12632
12661
|
}
|
|
12633
12662
|
|
|
12634
12663
|
/**
|
|
@@ -12906,8 +12935,12 @@ class AdvancedSearchView extends View {
|
|
|
12906
12935
|
});
|
|
12907
12936
|
}
|
|
12908
12937
|
clearQueryButtonClick() {
|
|
12909
|
-
this.
|
|
12910
|
-
|
|
12938
|
+
this.showQueryClearDialog((result) => {
|
|
12939
|
+
if (result) {
|
|
12940
|
+
this.context.clearQuery();
|
|
12941
|
+
this.context.refreshWidgets(core.WidgetGroup.Statement);
|
|
12942
|
+
}
|
|
12943
|
+
});
|
|
12911
12944
|
}
|
|
12912
12945
|
createNewQuery(options) {
|
|
12913
12946
|
return this.context.newQuery(options);
|
|
@@ -12937,22 +12970,43 @@ class AdvancedSearchView extends View {
|
|
|
12937
12970
|
saveCurrentQuery(copyQuery = false, callback) {
|
|
12938
12971
|
const query = this.context.getQuery();
|
|
12939
12972
|
if (query.isNewbie || copyQuery) {
|
|
12940
|
-
this.showSaveQueryDialog((
|
|
12941
|
-
if (!
|
|
12973
|
+
this.showSaveQueryDialog((newQueryName) => new Promise(resolve => {
|
|
12974
|
+
if (!newQueryName)
|
|
12942
12975
|
return;
|
|
12943
|
-
|
|
12944
|
-
|
|
12945
|
-
|
|
12946
|
-
|
|
12947
|
-
|
|
12948
|
-
|
|
12949
|
-
|
|
12976
|
+
this.checkSaveQueryName(newQueryName)
|
|
12977
|
+
.then(() => {
|
|
12978
|
+
query.regenerateId();
|
|
12979
|
+
query.setName(newQueryName);
|
|
12980
|
+
query.fireChangedEvent({
|
|
12981
|
+
part: core.QueryChangePart.Properties,
|
|
12982
|
+
wasModified: true
|
|
12983
|
+
});
|
|
12984
|
+
this.saveQuery(() => { resolve({ success: true }); }, (error) => resolve({ success: false, message: error }));
|
|
12985
|
+
}, (message) => resolve({ success: false, message }));
|
|
12950
12986
|
}));
|
|
12951
12987
|
}
|
|
12952
12988
|
else {
|
|
12953
12989
|
this.saveQuery(callback);
|
|
12954
12990
|
}
|
|
12955
12991
|
}
|
|
12992
|
+
checkSaveQueryName(name) {
|
|
12993
|
+
return new Promise((resolve, reject) => {
|
|
12994
|
+
this.context.loadQueryList({
|
|
12995
|
+
success: (queryList) => {
|
|
12996
|
+
const found = queryList.filter(item => item.name.toLowerCase() == name.toLowerCase());
|
|
12997
|
+
if (found.length == 0) {
|
|
12998
|
+
resolve();
|
|
12999
|
+
}
|
|
13000
|
+
else {
|
|
13001
|
+
reject("Can't save the query. A query with this name already exists.");
|
|
13002
|
+
}
|
|
13003
|
+
},
|
|
13004
|
+
error: (message) => {
|
|
13005
|
+
reject(message);
|
|
13006
|
+
}
|
|
13007
|
+
});
|
|
13008
|
+
});
|
|
13009
|
+
}
|
|
12956
13010
|
checkIfQueryModified(callback) {
|
|
12957
13011
|
if (this.context.getQuery().isModified()
|
|
12958
13012
|
&& !this.viewOptions.disableConfirmationOnQueryChange) {
|
|
@@ -13031,6 +13085,10 @@ class AdvancedSearchView extends View {
|
|
|
13031
13085
|
}
|
|
13032
13086
|
});
|
|
13033
13087
|
}
|
|
13088
|
+
showQueryClearDialog(callback) {
|
|
13089
|
+
const ds = this.getDialogService();
|
|
13090
|
+
ds.openConfirm(core$1.i18n.getText('QueryChangedTitle'), core$1.i18n.getText('QueryClearContent'), callback);
|
|
13091
|
+
}
|
|
13034
13092
|
showQueryChangedDialog(callback) {
|
|
13035
13093
|
const ds = this.getDialogService();
|
|
13036
13094
|
ds.openConfirm(core$1.i18n.getText('QueryChangedTitle'), core$1.i18n.getText('QueryChangedContent'), callback);
|
|
@@ -13124,7 +13182,7 @@ class AdvancedSearchView extends View {
|
|
|
13124
13182
|
});
|
|
13125
13183
|
}
|
|
13126
13184
|
renderSaveToFileDialogBody(name, format = "json") {
|
|
13127
|
-
const isIE =
|
|
13185
|
+
const isIE = ui.browserUtils.isIE();
|
|
13128
13186
|
const fieldsClass = isIE
|
|
13129
13187
|
? 'kfrm-fields-ie col-ie-1-4 label-align-right'
|
|
13130
13188
|
: 'kfrm-fields col-a-1 label-align-right';
|
|
@@ -13419,7 +13477,7 @@ class ReportView extends View {
|
|
|
13419
13477
|
this.saveReportButtonClickHandler = this.saveReportButtonClick.bind(this);
|
|
13420
13478
|
this.removeReportButtonClickHandler = this.removeReportButtonClick.bind(this);
|
|
13421
13479
|
this.reloadReportDataButtonClickHandler = this.reloadReportDataButtonClick.bind(this);
|
|
13422
|
-
|
|
13480
|
+
ui.browserUtils.onMobileModeChanged(_ => {
|
|
13423
13481
|
document.location.reload();
|
|
13424
13482
|
});
|
|
13425
13483
|
}
|
|
@@ -14190,6 +14248,7 @@ function addEasyQueryUITexts() {
|
|
|
14190
14248
|
CmdDeleteColumn: 'Delete column',
|
|
14191
14249
|
CmdDeleteSorting: 'Delete sorting',
|
|
14192
14250
|
CmdDescending: 'Descending',
|
|
14251
|
+
CmdGroupAppearance: 'Appearance',
|
|
14193
14252
|
CmdGroupSort: 'Sorting',
|
|
14194
14253
|
CmdGroupFormat: 'Display format',
|
|
14195
14254
|
CmdNotSorted: 'Not sorted',
|
|
@@ -14237,6 +14296,7 @@ function addEasyQueryUITexts() {
|
|
|
14237
14296
|
SaveQueryDefName: '{queryName} copy',
|
|
14238
14297
|
QueryChangedTitle: 'Confirmation',
|
|
14239
14298
|
QueryChangedContent: 'The query was changed. Do you want to save it first?',
|
|
14299
|
+
QueryClearContent: 'The query will cleared. Do you want to continue?',
|
|
14240
14300
|
UpdateQuerySelector: '[click here to load the query]',
|
|
14241
14301
|
FileNameLabel: 'File name: ',
|
|
14242
14302
|
SaveQueryToFileDlgTitle: 'Save query to file',
|