diff --git a/control-panel/frontend/generated/flow/generated-flow-imports.js b/control-panel/frontend/generated/flow/generated-flow-imports.js index bcb73da..c2b32dd 100644 --- a/control-panel/frontend/generated/flow/generated-flow-imports.js +++ b/control-panel/frontend/generated/flow/generated-flow-imports.js @@ -1,69 +1,88 @@ -import '@vaadin/tooltip/theme/lumo/vaadin-tooltip.js'; +import '@vaadin/common-frontend/ConnectionIndicator.js'; import '@vaadin/polymer-legacy-adapter/style-modules.js'; -import '@vaadin/icon/theme/lumo/vaadin-icon.js'; -import '@vaadin/icons/vaadin-iconset.js'; -import '@vaadin/horizontal-layout/theme/lumo/vaadin-horizontal-layout.js'; -import '@vaadin/button/theme/lumo/vaadin-button.js'; +import '@vaadin/accordion/src/vaadin-accordion.js'; +import '@vaadin/details/src/vaadin-details.js'; +import '@vaadin/accordion/src/vaadin-accordion-panel.js'; +import '@vaadin/app-layout/src/vaadin-app-layout.js'; +import '@vaadin/button/src/vaadin-button.js'; import 'Frontend/generated/jar-resources/buttonFunctions.js'; -import '@vaadin/notification/theme/lumo/vaadin-notification.js'; +import '@vaadin/app-layout/src/vaadin-drawer-toggle.js'; +import '@vaadin/avatar/src/vaadin-avatar.js'; +import '@vaadin/avatar-group/src/vaadin-avatar-group.js'; +import '@vaadin/checkbox/src/vaadin-checkbox.js'; +import '@vaadin/checkbox-group/src/vaadin-checkbox-group.js'; +import '@vaadin/combo-box/src/vaadin-combo-box.js'; import 'Frontend/generated/jar-resources/flow-component-renderer.js'; -import '@vaadin/side-nav/theme/lumo/vaadin-side-nav.js'; -import 'Frontend/generated/jar-resources/vaadin-grid-flow-selection-column.js'; -import '@vaadin/grid/theme/lumo/vaadin-grid-column.js'; -import '@vaadin/text-field/theme/lumo/vaadin-text-field.js'; -import '@vaadin/dialog/theme/lumo/vaadin-dialog.js'; -import '@vaadin/radio-group/theme/lumo/vaadin-radio-group.js'; -import '@vaadin/vertical-layout/theme/lumo/vaadin-vertical-layout.js'; -import '@vaadin/radio-group/theme/lumo/vaadin-radio-button.js'; -import '@vaadin/app-layout/theme/lumo/vaadin-app-layout.js'; -import '@vaadin/app-layout/theme/lumo/vaadin-drawer-toggle.js'; -import '@vaadin/side-nav/theme/lumo/vaadin-side-nav-item.js'; -import 'Frontend/generated/jar-resources/dndConnector.js'; -import '@vaadin/context-menu/theme/lumo/vaadin-context-menu.js'; +import 'Frontend/generated/jar-resources/comboBoxConnector.js'; +import '@vaadin/multi-select-combo-box/src/vaadin-multi-select-combo-box.js'; +import '@vaadin/confirm-dialog/src/vaadin-confirm-dialog.js'; +import '@vaadin/context-menu/src/vaadin-context-menu.js'; import 'Frontend/generated/jar-resources/contextMenuConnector.js'; import 'Frontend/generated/jar-resources/contextMenuTargetConnector.js'; -import '@vaadin/grid/theme/lumo/vaadin-grid.js'; -import '@vaadin/grid/theme/lumo/vaadin-grid-sorter.js'; -import '@vaadin/checkbox/theme/lumo/vaadin-checkbox.js'; +import '@vaadin/custom-field/src/vaadin-custom-field.js'; +import '@vaadin/date-picker/src/vaadin-date-picker.js'; +import 'Frontend/generated/jar-resources/datepickerConnector.js'; +import '@vaadin/date-time-picker/src/vaadin-date-time-picker.js'; +import '@vaadin/time-picker/src/vaadin-time-picker.js'; +import 'Frontend/generated/jar-resources/vaadin-time-picker/timepickerConnector.js'; +import '@vaadin/dialog/src/vaadin-dialog.js'; +import 'Frontend/generated/jar-resources/dndConnector.js'; +import '@vaadin/field-highlighter/src/vaadin-field-highlighter.js'; +import '@vaadin/form-layout/src/vaadin-form-layout.js'; +import '@vaadin/form-layout/src/vaadin-form-item.js'; +import '@vaadin/grid/src/vaadin-grid-column-group.js'; +import '@vaadin/grid/src/vaadin-grid.js'; +import '@vaadin/grid/src/vaadin-grid-column.js'; +import '@vaadin/grid/src/vaadin-grid-sorter.js'; import 'Frontend/generated/jar-resources/gridConnector.js'; -import '@vaadin/details/theme/lumo/vaadin-details.js'; -import '@vaadin/scroller/theme/lumo/vaadin-scroller.js'; -import '@vaadin/grid/theme/lumo/vaadin-grid-column-group.js'; +import '@vaadin/tooltip/src/vaadin-tooltip.js'; +import 'Frontend/generated/jar-resources/vaadin-grid-flow-selection-column.js'; +import '@vaadin/icon/src/vaadin-icon.js'; +import '@vaadin/icons/vaadin-iconset.js'; +import '@vaadin/list-box/src/vaadin-list-box.js'; +import '@vaadin/item/src/vaadin-item.js'; +import '@vaadin/login/src/vaadin-login-form.js'; +import '@vaadin/login/src/vaadin-login-overlay.js'; +import 'Frontend/generated/jar-resources/menubarConnector.js'; +import '@vaadin/menu-bar/src/vaadin-menu-bar.js'; +import '@vaadin/message-input/src/vaadin-message-input.js'; +import 'Frontend/generated/jar-resources/messageListConnector.js'; +import '@vaadin/message-list/src/vaadin-message-list.js'; +import '@vaadin/notification/src/vaadin-notification.js'; +import '@vaadin/horizontal-layout/src/vaadin-horizontal-layout.js'; +import '@vaadin/scroller/src/vaadin-scroller.js'; +import '@vaadin/vertical-layout/src/vaadin-vertical-layout.js'; +import '@vaadin/progress-bar/src/vaadin-progress-bar.js'; +import '@vaadin/radio-group/src/vaadin-radio-button.js'; +import '@vaadin/radio-group/src/vaadin-radio-group.js'; +import '@vaadin/select/src/vaadin-select.js'; +import 'Frontend/generated/jar-resources/selectConnector.js'; +import 'Frontend/generated/jar-resources/tooltip.ts'; +import '@vaadin/side-nav/src/vaadin-side-nav.js'; +import '@vaadin/side-nav/src/vaadin-side-nav-item.js'; +import '@vaadin/split-layout/src/vaadin-split-layout.js'; +import '@vaadin/tabs/src/vaadin-tab.js'; +import '@vaadin/tabsheet/src/vaadin-tabsheet.js'; +import '@vaadin/tabs/src/vaadin-tabs.js'; +import 'Frontend/generated/jar-resources/vaadin-big-decimal-field.js'; +import '@vaadin/email-field/src/vaadin-email-field.js'; +import '@vaadin/integer-field/src/vaadin-integer-field.js'; +import '@vaadin/number-field/src/vaadin-number-field.js'; +import '@vaadin/password-field/src/vaadin-password-field.js'; +import '@vaadin/text-area/src/vaadin-text-area.js'; +import '@vaadin/text-field/src/vaadin-text-field.js'; import 'Frontend/generated/jar-resources/lit-renderer.ts'; -import '@vaadin/common-frontend/ConnectionIndicator.js'; +import '@vaadin/grid/src/vaadin-grid-tree-toggle.js'; +import '@vaadin/upload/src/vaadin-upload.js'; +import '@vaadin/virtual-list/src/vaadin-virtual-list.js'; +import 'Frontend/generated/jar-resources/virtualListConnector.js'; import '@vaadin/vaadin-lumo-styles/color-global.js'; import '@vaadin/vaadin-lumo-styles/typography-global.js'; import '@vaadin/vaadin-lumo-styles/sizing.js'; import '@vaadin/vaadin-lumo-styles/spacing.js'; import '@vaadin/vaadin-lumo-styles/style.js'; import '@vaadin/vaadin-lumo-styles/vaadin-iconset.js'; - -const loadOnDemand = (key) => { - const pending = []; - if (key === 'ad3b749f8c176a86b14fa369887e22fef51afb8165384e5736c7046030b369fa') { - pending.push(import('./chunks/chunk-0c6ec94efe36378e73adb47fc438174852fa051b44271a0a2847a0db8ff19645.js')); - } - if (key === 'a7f0df9f1bf084521cb2f344b5b4a2bd632b352d0745369a572a88d4873662f3') { - pending.push(import('./chunks/chunk-442b7bb85666e65256bd58cc7f7cc0e32749668d262b0ca1e975d264e857a80d.js')); - } - if (key === '0953a3aba85bfd8d84ac16dfabaa1ff5b6a29348b23aa805384d5abc82efb666') { - pending.push(import('./chunks/chunk-8d8b0bd7d7a80985493227f01f00a96b95fd9e8bca2def1c68ee81d6438b887c.js')); - } - if (key === '32e6740ceb6c3f1c7b07d32e31339c9e61b3608e4a25949d7e1225ce64b34968') { - pending.push(import('./chunks/chunk-8d8b0bd7d7a80985493227f01f00a96b95fd9e8bca2def1c68ee81d6438b887c.js')); - } - if (key === '2cf06ca82cdfddb866b229a647575c62452d9c0ba3e877154ca74b3a22d738d6') { - pending.push(import('./chunks/chunk-81110d45df7602896d2ac4725b8b3a433f64232e266b2048d170ff2d85d9542e.js')); - } - if (key === '1f14de00b36692c96388e07da7b4d7d0aed00b531f10ad0a09b5ef8d7301712e') { - pending.push(import('./chunks/chunk-8d8b0bd7d7a80985493227f01f00a96b95fd9e8bca2def1c68ee81d6438b887c.js')); - } - if (key === 'db3150d824231c9214a3c1d91184b7f02395caebe481a16a29c63841121179ba') { - pending.push(import('./chunks/chunk-a8dc2de6451e2fb9ada5149099eca63bd44616fddc004af51e688c87f61700cf.js')); - } - return Promise.all(pending); -} - +const loadOnDemand = (key) => { return Promise.resolve(0); } window.Vaadin = window.Vaadin || {}; window.Vaadin.Flow = window.Vaadin.Flow || {}; window.Vaadin.Flow.loadOnDemand = loadOnDemand; \ No newline at end of file diff --git a/control-panel/frontend/generated/vaadin.ts b/control-panel/frontend/generated/vaadin.ts index aa27cb3..464e371 100644 --- a/control-panel/frontend/generated/vaadin.ts +++ b/control-panel/frontend/generated/vaadin.ts @@ -1,3 +1,5 @@ import './vaadin-featureflags.js'; import './index'; + +import 'Frontend/generated/jar-resources/vaadin-dev-tools/vaadin-dev-tools.js'; diff --git a/control-panel/src/main/java/ru/dragonestia/picker/cp/component/NodeList.java b/control-panel/src/main/java/ru/dragonestia/picker/cp/component/NodeList.java index ac3fa8b..1354ba3 100644 --- a/control-panel/src/main/java/ru/dragonestia/picker/cp/component/NodeList.java +++ b/control-panel/src/main/java/ru/dragonestia/picker/cp/component/NodeList.java @@ -7,6 +7,7 @@ import com.vaadin.flow.component.dialog.Dialog; import com.vaadin.flow.component.grid.ColumnTextAlign; import com.vaadin.flow.component.grid.Grid; import com.vaadin.flow.component.html.H2; +import com.vaadin.flow.component.html.Span; import com.vaadin.flow.component.icon.Icon; import com.vaadin.flow.component.icon.VaadinIcon; import com.vaadin.flow.component.orderedlayout.HorizontalLayout; @@ -15,8 +16,10 @@ import com.vaadin.flow.component.textfield.TextField; import com.vaadin.flow.data.value.ValueChangeMode; import lombok.Setter; import ru.dragonestia.picker.api.repository.NodeRepository; +import ru.dragonestia.picker.api.repository.details.NodeDetails; import ru.dragonestia.picker.api.repository.response.type.RNode; +import java.util.Comparator; import java.util.List; import java.util.function.Consumer; @@ -60,8 +63,18 @@ public class NodeList extends VerticalLayout implements RefreshableTable { private Grid createGrid() { var grid = new Grid<>(RNode.class, false); - grid.addColumn(RNode::getId).setHeader("Identifier").setSortable(true); + grid.addComponentColumn(node -> { + if (Boolean.parseBoolean(node.getDetails(NodeDetails.PERSIST))) { + return new Span(node.getId()); + } + + var result = new Span(node.getId()); + result.add(grayBadge("(temp)")); + return result; + }).setHeader("Identifier").setComparator(Comparator.comparing(RNode::getId)).setSortable(true); + grid.addColumn(node -> node.getMode().getName()).setHeader("Mode").setSortable(true); + grid.addComponentColumn(this::createManageButtons).setFrozenToEnd(true) .setTextAlign(ColumnTextAlign.END).setHeader(createRefreshButton()); @@ -138,4 +151,10 @@ public class NodeList extends VerticalLayout implements RefreshableTable { cachedNodes = nodeRepository.all(NodeRepository.ALL_DETAILS); applySearch(searchField.getValue()); } + + private Span grayBadge(String text) { + var span = new Span(text); + span.getElement().getThemeList().add("badge contrast"); + return span; + } }