Compare commits

...

166 Commits
4.3.4 ... main

Author SHA1 Message Date
jimtng 19c3a42d60
Script Editor: Add shortcut key Shift+Cmd+K/Shift+Ctrl+K to delete the current line (#3156)
This shortcut is quite well known from VS Code.
It is basically the same as Cmd+X / Ctrl X, but without putting the deleted stuff into the clipboard.

Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2025-04-20 14:48:40 +02:00
jimtng e3812d5105
Add Copy Thing YAML file definition & Refactor copy file definition code (#3130)
To support https://github.com/openhab/openhab-core/pull/4691

- Refactor file definition code into a mixin to create a consistent UI
in inbox, things-list, items-list, item-details, thing, details, single,
and multi-selection.
- Add `Copy` button in Things List which shows up when multi-selection
is active. This makes it in line with Items list and Inbox
- Standardize the list selection UI for inbox, things, items list.
Action buttons/links are closer together in the center now.
- Remove the selection counter off the buttons to make room. The
selection counter is shown in the list title.
- Use one "Copy" button which opens a dialog to select the file
definition format to export/copy to clipboard.

---------

Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2025-04-20 14:42:22 +02:00
Chris Jackson 0b6159401a
Show thing firmware status (#3158)
Refs #1427.

This adds a block to the thing information to provide the status of
firmware. It just shows if there are firmwares available, the current
firmware version and the status.

---------

Also-by: Florian Hotze <dev@florianhotze.com>
Signed-off-by: Chris Jackson <chris@cd-jackson.com>
2025-04-20 11:43:34 +02:00
jimtng 57a7f1dae4
Sidebar Search: Fix rules/scenes/scripts search result count (#3159)
Fixes #3157.

Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2025-04-20 11:14:56 +02:00
dependabot[bot] 4d00851a3e
Bump http-proxy-middleware from 2.0.7 to 2.0.9 in /bundles/org.openhab.ui/web (#3154)
Bumps
[http-proxy-middleware](https://github.com/chimurai/http-proxy-middleware)
from 2.0.7 to 2.0.9.

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-16 22:59:30 +02:00
Nadahar 270d80f022
Remove ESLintPlugin from webpack build (#3142)
Removed `ESLintPlugin` execution from the webpack build as discussed
at https://community.openhab.org/t/using-eclipse-with-openhab-webui/162923/30.

Signed-off-by: Ravi Nadahar <nadahar@rediffmail.com>
2025-04-16 22:51:58 +02:00
spacemanspiff2007 64a0bf08df
Item edit: Relabel category to icon (#3149)
Closes #3146.

Changed label from "Category" to "Icon" to make usage more clear and make it consistent with the documentation.

---------

Signed-off-by: Sebastian Gerber <github@sgerber.de>
2025-04-16 10:21:56 +02:00
Mark Herwege 0864b52e09
Persistence edit: Support configuring aliases (#3070)
Configuration in the UI for persistence alias changes introduced in
https://github.com/openhab/openhab-core/pull/4363.

Signed-off-by: Mark Herwege <mark.herwege@telenet.be>
2025-04-15 23:34:23 +02:00
Florian Hotze d8a31769d2
Layout edit: Fix details chevron up icon/link missing (#3153)
Signed-off-by: Florian Hotze <dev@florianhotze.com>
2025-04-15 22:07:14 +02:00
Florian Hotze 266f5dbbae
Align search behaviour in case of nothing found (#3152)
Signed-off-by: Florian Hotze <dev@florianhotze.com>
2025-04-15 19:09:12 +02:00
jimtng eaee49c9f6
Items List: Add select all / deselect all (#3144)
Also-by: Florian Hotze <dev@florianhotze.com>
Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2025-04-15 18:26:06 +02:00
Mark Herwege 9e3b377796
Create equipment from model: Use semanticEquipmentTag of Thing (#3124)
Refs https://github.com/openhab/openhab-core/pull/4617.

If the thing provides a default `semanticEquipmentTag`, this will be
used when creating an equipment from thing instead of the default
`Equipment`.

Signed-off-by: Mark Herwege <mark.herwege@telenet.be>
2025-04-15 17:43:42 +02:00
jimtng 56ee4d15e0
Inbox List: Add select all / deselect all (#3145)
Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2025-04-15 17:42:17 +02:00
jimtng df5f0e3cc2
[BasicUI] Add a setting to render buttons with rounded corners (#3147)
<img width="549" alt="image"
src="https://github.com/user-attachments/assets/75ec1b38-2cab-49bb-bfb2-e074f201e4a2"
/>

<img width="557" alt="image"
src="https://github.com/user-attachments/assets/2a8b2f90-8139-4c1f-92cd-4720f760453a"
/>


Default:
<img width="384" alt="image"
src="https://github.com/user-attachments/assets/6b2c421b-4306-48b5-8233-099b5ca43124"
/>

Rounded:
<img width="378" alt="image"
src="https://github.com/user-attachments/assets/06651f04-1aaa-413b-b08b-b60ddfc0712f"
/>


Pill:
<img width="378" alt="image"
src="https://github.com/user-attachments/assets/0e716d1e-f499-43f6-94f4-3fd992c65c5d"
/>

Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2025-04-13 12:16:11 +02:00
jimtng 0404c5eb47
[BasicUI] Remove top/bottom margins in buttons-multiline (#3148)
Before:
<img width="882" alt="image"
src="https://github.com/user-attachments/assets/cfd7b872-ecc0-487d-a1dd-4b56b3da03b7"
/>
condensed mode:
<img width="847" alt="image"
src="https://github.com/user-attachments/assets/54ee7e8e-f980-4505-b9ae-54f02562b331"
/>


After:

<img width="881" alt="image"
src="https://github.com/user-attachments/assets/2f75f02e-4dfe-4eba-84e3-005a07aefe95"
/>

condensed mode:
<img width="854" alt="image"
src="https://github.com/user-attachments/assets/f66904d7-25f5-4d14-85aa-0e1ec499211f"
/>


```java
sitemap test {
    Text item=TestString1 label="Test"
    Switch item=TestSwitch1 label="Test" mappings=[ON="ON Label", OFF="OFF label"]
    Text item=TestString1  label="Test"
    Switch item=TestSwitch1 label="Test" mappings=[ON="ON Label", OFF="OFF label"]
}
```

Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2025-04-12 16:28:18 +02:00
Florian Hotze ac6dff3941
Link add/edit: Fix config-sheet not properly re-rendered on profile type change (#3141)
Previously, autocomplete for parameter text sometimes did not properly
initialize due to receiving the old config descriptions of the previous
profile type.
This fixes this by making sure the config sheet is re-rendered when the
new profile type config has been loaded.

Signed-off-by: Florian Hotze <dev@florianhotze.com>
2025-04-08 22:19:48 +02:00
Nadahar 62aaf75c49
Parameter text: Improve support for multiple text values (#3092)
Previously, the text parameter used a text area and line breaks to separate multiple entries.
This has been reworked to now use a list of single line text fields, and autocompletion for multiple values has been enhanced as well.

Signed-off-by: Ravi Nadahar <nadahar@rediffmail.com>
2025-04-08 22:10:31 +02:00
Florian Hotze eb18d69a8e
Widget order: Fix string length considered, instead parse integer (#3138)
Signed-off-by: Florian Hotze <dev@florianhotze.com>
2025-04-07 21:20:01 +02:00
Mark Herwege d046319656
[blockly] Riemann sum persistence extension and js tern definitions (#2893)
Depends on https://github.com/openhab/openhab-js/pull/401
Depends on https://github.com/openhab/openhab-core/pull/4461

This PR extends the Blockly block getting a statistical value from
persistence to be aligned with core and js scripting extensions.
The added statistical function is Riemann sum. This is an approximation
of the integral value and can e.g. be used to calculate an approximation
for energy consumption (in kWh) when the instantanous power (in W) is
persisted.
The existing sum method calculates a naive sum, ignoring the time
dimension and is not applicable for this. It could be used only if the
persistence interval is constant by using the sum and multiplying with
the interval duration.

There are multiple types of Riemann sum calculations depending on which
value is used as an approximation in each bucket. The ones implemented
in core (and js scripting) are: left, right, trapezoidal and midpoint.
If the Riemann sum statistical method block is selected in the block, a
parameter for this will also be shown, defaulting to left.

As average, variance and deviation statistical methods are based on
Riemann sum calculations (the current average calculation assumes
Riemann sums of type left), these methods now also have this extra type
input parameter (defaulting to left).

Note that in most cases, the trapezoidal (or midpoint) methods would
result in better accuracy. However, for backward compatibility reasons,
the default has been kept on left.

---------

Also-by: Florian Hotze <dev@florianhotze.com>
Signed-off-by: Mark Herwege <mark.herwege@telenet.be>
2025-04-07 19:20:01 +02:00
Florian Hotze 299f300dbf
oh-chart-component: Register & Use configured locale for Echarts (#3136)
Fixes #3035.

Signed-off-by: Florian Hotze <dev@florianhotze.com>
2025-04-07 14:54:40 +02:00
Florian Hotze 606a20ad14
Upgrade (Vue) Echarts (#3137)
- Upgrade Echarts from 5.5.1 to 5.6.0, changelog:
https://github.com/apache/echarts/releases/tag/5.6.0
- Upgrade vue-echarts from 6.6.9 to 7.0.3, changelog:
https://github.com/ecomfe/vue-echarts/blob/main/CHANGELOG.md#703

---------

Signed-off-by: Florian Hotze <dev@florianhotze.com>
2025-04-07 14:47:33 +02:00
Florian Hotze 5c12f26dc1
Log viewer: Fix copy to clipboard not working (#3135)
Fixes #3017.

Signed-off-by: Florian Hotze <dev@florianhotze.com>
2025-04-07 12:57:55 +02:00
Florian Hotze fbc9c1ea6b
Link add/edit: Fix link String Items to any channel (#3134)
String Items can be linked to any channel, so allow this.

Signed-off-by: Florian Hotze <dev@florianhotze.com>
2025-04-07 12:32:05 +02:00
Florian Hotze 4b7f614b4f
Link add/edit: Fix link Dimmer/Switch Items to Color channel (#3133)
Fixes #3122.

Regression from #2941 and/or #2690.

Signed-off-by: Florian Hotze <dev@florianhotze.com>
2025-04-07 12:19:43 +02:00
Florian Hotze c874d4603a
oh-icon: Fix action not working for f7 & iconify icons (#3132)
Fixes #2664.

Also use pointer cursor if action is configured.

Signed-off-by: Florian Hotze <dev@florianhotze.com>
2025-04-07 11:09:54 +02:00
Florian Hotze e589cba69a
Widgets: Fix check for action not checking actionPropsParameterGroup (#3131)
The code that should check whether an action is configured did only take
the action prop into account, but an action can also be configured
through actionPropsParameterGroup.

Signed-off-by: Florian Hotze <dev@florianhotze.com>
2025-04-07 11:02:33 +02:00
jimtng 0049d501a3
oh-input: Fix editing a number item with unit & Several enhancements (#3050)
When oh-input is set to a Number item with unit, the f7-input in
'numeric' mode cannot set its numeric value to the item state because it
contains the unit.

This fixes the above issue and:

- Display the number's unit after the input field for numeric type
- Make numeric input field right-aligned
- Improve input-elements alignment
- Accept Enter key to send the value, with or without a sendButton
- Honor useDisplayState config
- Add `min` and `max` config
- If the stateDescription on the item specifies `minimum`, `maximum`, and `step`,
  they will be used as the default, but it can be overridden by the widget's config
- Tested against Dimensionless Percent
- Tested against patterns with multiple format specifiers, e.g. `Test
  format %1$.4f and %1$.2f %unit%`. The last format specifier will be used.

---------

Also-by: Florian Hotze <dev@florianhotze.com>
Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2025-04-06 00:13:32 +02:00
Florian Hotze c76a6d49b2
Help sidebar: Add log viewer docs (#3128)
Refs https://github.com/openhab/openhab-docs/pull/2481.

Signed-off-by: Florian Hotze <dev@florianhotze.com>
2025-04-05 18:17:34 +02:00
Florian Hotze 423b67d295
Don't use virtual lists where not necessary (#3127)
Don't use virtual lists for:

- persistence config filter picker
- persistence config strategy picker

Signed-off-by: Florian Hotze <dev@florianhotze.com>
2025-04-05 16:36:36 +02:00
Mark Herwege 0ddad83696
Sitemap editor: Add chart interpolation parameter (#3069)
Depends on https://github.com/openhab/openhab-core/pull/4610
Related to https://github.com/openhab/openhab-core/issues/3662

---------

Signed-off-by: Mark Herwege <mark.herwege@telenet.be>
2025-04-05 16:29:40 +02:00
Florian Hotze c8f579cc37
Thing & Channel pickers: Add Thing location/Channel description (#3126)
Closes #2128.
Replaces abandonded PR #2129.

Displays the Thing location (if any) in the Thing picker and the channel
description in the channel picker,
which improves UX greatly as it allows to distinguish Things easier and
know the channel functionality without having to lookup documentation.
Also disables virtual list for the Thing picker to avoid issues with the
height due to the different entry heights, as the Things page does not
use a virtual list, we should also be fine without here.

---------

Also-by: Dmitry P. (d51x) <dimonich110@gmail.com>
Signed-off-by: Florian Hotze <dev@florianhotze.com>
2025-04-05 16:26:52 +02:00
openhab-bot 1a24e8bc50
New Crowdin updates (#3115) 2025-04-05 15:27:53 +02:00
jimtng ee8c84768e
Addon Card: Give title has more room to avoid overflow (#3112)
Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2025-04-05 15:27:10 +02:00
dependabot[bot] 2219a783dd
Bump @babel/runtime from 7.25.0 to 7.26.10 in /bundles/org.openhab.ui/web (#3107)
Bumps
[@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime)
from 7.25.0 to 7.26.10.

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-03 19:38:43 +02:00
Holger Friedrich 8423149770
Improve GitHub Actions (#3120)
* upgrade relative-ci/agent-action from 2.1.10 to 2.2.0
https://github.com/relative-ci/agent-action/compare/v2.1.10...v2.2.0
* pin external action relative-ci/agent-action to specific SHA
* pin external action relative-ci/agent-upload-artifact-action to
specific SHA
* set global timeout
* comments

Signed-off-by: Holger Friedrich <mail@holger-friedrich.de>
2025-04-02 18:22:37 +02:00
Florian Hotze fbdcf55350
Main UI mvn build: Various enhancements to improve DX in Eclipse IDE (#3116)
- Do not always clean install, do only so in mvn `clean` phase.
- Built web app directly to mvn target dir.
- Perform all Main UI related executions in the `prepare-package` phase
to allow faster Java code compilation.

This improves the behaviour when using Eclipse IDE, as the M2E plugin
causes a recompilation "loop" due to the Main UI build writing to a mvn
source folder.

---------

Signed-off-by: Florian Hotze <dev@florianhotze.com>
2025-03-26 14:36:02 +01:00
Florian Hotze 729a70810b
oh-card: Indicate that card is clickable if action is configured (#3119)
Align with the style of the link-item class if an action is configured.

Signed-off-by: Florian Hotze <dev@florianhotze.com>
2025-03-25 23:45:36 +01:00
Florian Hotze 61a9269773
Persistence edit: Add missing dirty checking on edit (#3118)
Signed-off-by: Florian Hotze <dev@florianhotze.com>
2025-03-25 22:55:30 +01:00
jimtng d48aecff60
Developer sidebar: Add ability to search and pin widgets (#3110)
Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2025-03-22 16:06:23 +01:00
Mark Herwege f193ef9f1f
Persistence edit: Fix multiple selection (#3105)
Closes https://github.com/openhab/openhab-webui/issues/3104.

As the item picker keys where dependent on the length of the selection,
they got recreated each time something was selected. This made
multi-selection impossible.

---------

Signed-off-by: Mark Herwege <mark.herwege@telenet.be>
2025-03-21 18:55:24 +01:00
jimtng d3755905cd
Config sheet: Fix loading of multi-line default values (#3114)
Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2025-03-21 18:54:59 +01:00
jimtng 944b8f6201
Add-on card: Add tooltip to label (#3113)
This displays the title when the mouse hovers over.
Useful in case the title overflows and is hidden.

Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2025-03-21 18:51:49 +01:00
Holger Friedrich d714a1cd15
GH Action: Detection of new files (#3111)
This restores the behavior before tj-actions was removed. New untracked
files created during build will break the build.

Follow-up to #3106. Consistent to what we merged on core/distro.

Signed-off-by: Holger Friedrich <mail@holger-friedrich.de>
2025-03-17 15:25:41 +01:00
Florian Hotze 935d18a1cd
CI Build: Add version comment for stCarlolas/setup-maven action (#3109)
Signed-off-by: Florian Hotze <dev@florianhotze.com>
2025-03-15 18:56:48 +01:00
Florian Hotze e8931b91ca
CI Build: Pin stCarolas/setup-maven action version to commit hash (#3108)
Signed-off-by: Florian Hotze <dev@florianhotze.com>
2025-03-15 17:09:45 +01:00
Holger Friedrich 8e47356342
Replace GH Action from tj-actions by custom code (#3106)
The GitHub Actions build workflow includes external Actions from 3rd
party repositories. The functionality of tj-actions/verify-changed-files
was used to detect modifications of files under source control during
the build process. The external action is removed and replaced by custom
code. This is less flexible, but does not require an external action in
the build toolchain.

Signed-off-by: Holger Friedrich <mail@holger-friedrich.de>
2025-03-15 15:29:55 +01:00
jimtng ce53cc3e66
Developer tools: Add Copy DSL definition for Items and Things (#3085)
Resolve https://github.com/openhab/openhab-core/issues/4509.

Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2025-03-11 20:55:43 +01:00
jimtng 6c88932ef1
Item details & Items list: Add Copy DSL Definition button (#3084)
Add Copy DSL Definition for items, both in Item Details and Items List
using the definition provided by
https://github.com/openhab/openhab-core/pull/4569.

Resolves https://github.com/openhab/openhab-core/issues/4509.

---------

Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2025-03-11 20:50:08 +01:00
Florian Hotze 40a8de5052 Adjustments to the changes from #3086
Those were forgotten to submit during review.

Signed-off-by: Florian Hotze <dev@florianhotze.com>
2025-03-11 20:38:23 +01:00
jimtng a229c3d12b
Thing Details: Add Copy DSL Definition button (#3086)
Based on https://github.com/openhab/openhab-core/pull/4569.
Resolve https://github.com/openhab/openhab-core/issues/4509.

Also cleaned up / removed the previous attempt (from 5 years ago) to
create a textual definition. It was commented out and wasn't actually used.

---------

Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2025-03-11 20:35:48 +01:00
jimtng d6519450bb
Inbox: Add `Copy DSL Definition` (to clipboard) button & Add selection count (#3021)
Refs https://github.com/openhab/openhab-core/pull/4569.

This allows us to quickly create the Thing inside a .things file from the discovered Inbox items.
It works when clicking a single inbox entry, and also when multiple entries are selected.

It also adds a count for the number of the selected Things.

---------

Also-by: Florian Hotze <dev@florianhotze.com>
Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2025-03-10 15:16:10 +01:00
jimtng ed9aa3117e
Widget config/code editing: Add live update, dirty checking, make popups movable (#3039)
- Make Widget Config and Widget Code Editor popups draggable by the
navbar, so they can be moved out of the way to view the widget being
edited
- Preview changes immediately on the widget
- The changes can be reverted if desired by clicking the "Reset" link in
the navbar.
- The changes are reverted if the popup is closed without saving.
- Implement dirty checking confirmation

---------

Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2025-03-10 15:15:46 +01:00
Florian Hotze 394c704cb7
Event WS client: Filter by topic instead of type (#2997)
Depends on https://github.com/openhab/openhab-core/pull/4550.

Signed-off-by: Florian Hotze <dev@florianhotze.com>
2025-03-10 15:13:50 +01:00
Florian Hotze b34a3905fa
Location card: Support Lightbulb & LightStripes equipment for lights status badge (#3101)
Closes #1144.

Signed-off-by: Florian Hotze <dev@florianhotze.com>
2025-03-10 14:32:52 +01:00
Florian Hotze 3fd72739e0
Script edit: Fix minor styling issue in script details (#3100)
Signed-off-by: Florian Hotze <dev@florianhotze.com>
2025-03-10 13:59:34 +01:00
jimtng 2a7d531b0f
Layout edit: Move page settings to bottom of screen in edit mode (#3056)
This frees up screen real estate to see more widgets.
In Edit mode, remove the page settings from the top of editor page.
In createMode, it is still shown at the top as before, but a note added where to find the settings later.

---------

Also-by: Florian Hotze <dev@florianhotze.com>
Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2025-03-10 13:52:14 +01:00
jimtng 26ef1d9ccc
Things List: Add multiple search, select all & Inbox: Go to newly approved Thing(s) (#3020)
Things Filtering/Searching & Selection:

- The Thing count is updated to reflect the number of matches found when
performing search/filtering
- When filtering, the invisible Things (i.e. Things that do not meet the
filter criteria) will be deselected. Only Things within the filtered
result can be selected and acted upon (Remove, Disable, Enable). So if
you first selected all your things (e.g. 100 things) then perform
search/filtering which result in 5 things, then the total selected
Things will now be just 5, and when you hit Remove, only those 5 will be
removed.
- Add `Select All` / `Deselect All`. This also works in tandem with
search/filter. When the filtered result shows only 5 Things, Select All
will only select those 5 Things and not all the available Things on the
system.
- It is possible to search and display multiple Things by separating the
search terms with a comma.

## Preload Things List search

- This allows navigating to Things List page with a pre-defined search
terms, also to support the inbox approval feature

Inbox approval:

- `Add as Thing` and `Add as Thing (with Custom ID)` are merged into
just `Add as Thing`. The subsequent dialog will prompt for both the
Thing ID and the Label in one dialog, removing multiple steps.
- Thing UID / ID validation is performed within the Add a Thing dialog,
and the validation status displayed instantly under the Thing ID input
- It also checks against full UID conflicts against existing Things
- When multiple inbox items are selected and `Approve` is clicked, the
user will be redirected to the `Things List` page, with pre-set filter
to show all and only the approved Things.

---------

Also-by: Florian Hotze <dev@florianhotze.com>
Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2025-03-10 13:36:36 +01:00
jimtng 8d04f95b82
Model Item details: `View/Hide Details` instead of `Edit` for uneditable Items (#3089)
Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2025-03-10 12:43:19 +01:00
jimtng 40635e0962
Use a more specific browser title for each page (#3058)
Resolves #3054.

- Refactor how the current url is checked inside app.vue.
- Fix a bug where `Settings` menu item in the sidebar isn't highlighted
  when viewing the Transformation and Persistence sections.
- Add a new `browserTitle` config for pages other than the `overview` page
- Hide "Sidebar & Visibility" and "Tags" input for the `overview page`.
  This frees up some screen real estate for editing widgets
- Every page has a custom browser page title:
  - Pages will use its `browserTitle` || `label` config
  - Overview page will just use `label` since it's not used elsewhere
- For other pages, use the section menu's text, so if/when this gets
  internationalized, the title will also change
- Settings -> System Settings will use `Settings - <navbar title> -
  openHAB` and so it's also automatically localized as the navbar title gets localized.
- Settings -> Addon settings will use `<navbartitle> - openHAB` because
  the navbar title always starts with "Configure....". Adding "Settings -" in front of it would seem redundant.
- Things/Items/Widgets/Add-on Store/Pages/Rules/Scripts/Scenes will show
  `[X] - [uid] - openHAB` e.g. `Things - mqtt:topic:xxx - openHAB`

---------

Also-by: Florian Hotze <dev@florianhotze.com>
Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2025-03-10 12:29:03 +01:00
Mark Herwege 71d6e8b99c
Sitemap editor: Check for empty frames (#3090)
Check and warn for empty frames when saving a sitemap.

Signed-off-by: Mark Herwege <mark.herwege@telenet.be>
2025-03-10 12:24:10 +01:00
Florian Hotze aa14758cb7
i18n: Add support for loading locales from multiple scopes (#3099)
This allows to load locales from multiple sub dirs, e.g.:
```js
loadLocaleMessages(require.context('@/assets/i18n/about'), require.context('@/assets/i18n/empty-states'))
```

Signed-off-by: Florian Hotze <dev@florianhotze.com>
2025-03-10 12:21:11 +01:00
jimtng 219693fdfa
Location picker: Set default to system location, otherwise set to worldwide zoom level (#3047)
Resolves #2999.

Also-by: Florian Hotze <dev@florianhotze.com>
Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2025-03-10 12:00:26 +01:00
Florian Hotze a3deece99f
Script edit: Automatically update GraalJS mime type when opening script (#3098)
Signed-off-by: Florian Hotze <dev@florianhotze.com>
2025-03-10 11:32:48 +01:00
Florian Hotze 0c4c0aae5f
Minor enhancements to Main UI CI job (#3095)
Signed-off-by: Florian Hotze <dev@florianhotze.com>
2025-03-10 00:41:01 +01:00
jimtng 1cd53865c8
Add Alt-Shift-M shortcut key to toggle menu when unpinned (#3081)
It has always been a pain point when the menu is not pinned,
getting back to it is very difficult, involving several "back" clicks,
and sometimes it also gets lost and it became impossible without a full
browser refresh.

This adds a shortcut Alt-Shift-M (similar to Alt-Shift-D) to show the
menu whereever you are.

Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2025-03-08 00:54:12 +01:00
stefan-hoehn da66e4fd05
[blockly ]oh_taggeditems block: Fix multiple tags in vars & Add array support (#3082)
Fixes #3077.

- allows multiple tags variables
- adds array support
- more resilient by trimming away spaces in tags

Signed-off-by: Stefan Höhn <mail@stefanhoehn.com>
2025-03-08 00:51:32 +01:00
jimtng 4b77cd1c71
Script Editor: Fix editing RulesDSL scripts (#3087)
Regression from #3051

Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2025-03-08 00:48:22 +01:00
stefan-hoehn 8561b88836
[blockly] Add block to set value to key of dictionary (#3078)
Closes #3075.
Provides a block that allows to update a dictionary that was assigned to
a (named) variable.

Signed-off-by: Stefan Höhn <mail@stefanhoehn.com>
2025-03-08 00:46:42 +01:00
jimtng cceb4423e7
Downgrade vue-fragment to 1.5.1 (#3074)
Resolve #3072 
Regression from #3066

Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2025-02-24 18:04:27 +01:00
Wouter Born de89b6fc27
Use Spotless sortpom plug-in (#3073)
This simplifies the sortpom configuration and also allows for checking
and reformatting them using the spotless:check and spotless:apply Maven
goals.

Similar to openhab/openhab-core#4618

Signed-off-by: Wouter Born <github@maindrain.net>
2025-02-23 19:05:22 +01:00
jsjames 8b7f4700dd
Script edit: Display conditions (#3042)
Added support so conditions will be displayed when script rules are viewed.

Signed-off-by: Jeff James <jeff@james-online.com>
2025-02-18 11:41:37 +01:00
Mike Major 5ad2b2bf79
oh-label-cell: Fix issue with setting badge colour (#3068)
Signed-off-by: Mike Major <mike_j_major@hotmail.com>
2025-02-18 11:15:32 +01:00
Mark Herwege 2e285d7e71
Sitemap editor: Fix icon parsing error (#3048)
Icons with both : and - in the name where not parsed correctly in sitemap code.
See https://community.openhab.org/t/basic-ui-text-color-depending-of-item-string-content/162110/10.

Signed-off-by: Mark Herwege <mark.herwege@telenet.be>
2025-02-17 23:32:35 +01:00
Florian Hotze 1c84a5bd70
Upgrade some Main UI dependencies (#3066)
- Upgrade dependencies with vulnerabilities through `npm audit fix`.
- Upgrade caniuse-lite/browserslist-db.

Signed-off-by: Florian Hotze <dev@florianhotze.com>
2025-02-16 17:57:28 +01:00
Florian Hotze a9839ed90b
Fix oh-image-card styling affects all cards (#3065)
Regression from #3046.

Signed-off-by: Florian Hotze <dev@florianhotze.com>
2025-02-16 15:31:36 +01:00
jimtng 20ec71f992
Page Settings: Add Copy and Remove Page buttons (#3057)
This offers a more convenient way to create a temporary copy when
editing/experimenting with a page.

Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2025-02-16 15:03:29 +01:00
jsjames 792ff7fab8
Script edit: Add support for new python add-on & Refactor automation-languages definition (#3051)
- Added support in script-edit.vue for new/imminent graal python
binding.
- Removed hard-coding of commentChar and pulled from restructured
annotation-language.js definition.
- Refactored the annotation-language.js definition implementation.

---------

Signed-off-by: Jeff James <jeff@james-online.com>
2025-02-16 11:21:32 +01:00
jimtng fe7e9394c9
Condition Module Wizard: Add Interval condition to Time Condition (#3049)
Refs https://github.com/openhab/openhab-core/pull/4583.

Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2025-02-16 10:45:26 +01:00
Chris Jackson 481ef4dfcc
[logviewer] Support history (#3030)
This is the UI side of the enhancements to a) receive historical logs
from the OH server, and b) improve performance by receiving arrays of
log entries rather than just single entries.

It does work with the existing log system since it will work with both
single log entries (as currently used) and arrays of logs. Due to the
change in format, the filter requests do log a parse error since it now
uses a DTO with a number of bits of data rather than just an array of
loggers, but this doesn't impact anything else. Therefore it is safe to
merge this before the core is merged (although it's probably best to
wait a little to ensure there's no major comments to the core side!).

This also fixes a minor bug where the number of filtered logs may be
incorrectly displayed.

With this and the core changes, I can display full zigbee debug - it's
about 2000 lines in 15 seconds (or put another way, the log buffer shows
about 15 seconds of data). The log remains responsive (I can change the
logging levels back). Possibly the log buffer can/should be increased
more than 2000 entries, but that's for another day...

Core PR coming soon...

Signed-off-by: Chris Jackson <chris@cd-jackson.com>
2025-02-15 16:29:08 +01:00
Florian Hotze 3ec39a0b53
Tabbed Page: Fix label too large (#3064)
Regression from #3044.

Noticed on my iPhone that the font size of the label was way too large.

Signed-off-by: Florian Hotze <dev@florianhotze.com>
2025-02-15 16:27:34 +01:00
jimtng ed2e1c3dcf
UID Input: Add `Fix UID` button to normalize UID input (#3060)
Resolve #3052.
Also add automatic item name generation as the label is typed (only when
name hasn't been entered).

Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2025-02-15 14:02:49 +01:00
jimtng 6eb9f2271b
Item Detail: Fix search in developer sidebar (#3045)
Fix the following scenario:
- "search for usages of this item" for Item A is clicked
- Sidebar opens and sets `searchFor=itemA` preloads the search as
requested
- User then types new query in the sidebar, meanwhile the searchFor prop
remains unchanged
- Clicking on "search for usages of this item" for item A again, caused
no changes in `searchFor`, as a result, the watch for this prop didn't
fire

This PR fixes this situation by resetting the searchFor prop, therefore
causing the watch to perform the search again.

Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2025-02-15 13:44:45 +01:00
jimtng 91182e317d
Tabbed Page: Support Iconify and openHAB icons for tabs (#3044)
Resolves #2937.

Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2025-02-15 13:41:30 +01:00
openhab-bot d50dd4c527
New Crowdin updates (#2971) 2025-02-15 13:40:51 +01:00
openhab-bot c0cbf9eca2
New Crowdin updates (#3041) 2025-02-15 13:31:50 +01:00
jimtng 66df892538
Link Edit: Add dirty checking (#3040)
Resolves #2943.

Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2025-02-15 13:25:39 +01:00
jimtng 34679aa8b5
Fix oh-icon icon name type in widget def & docs (#3043)
Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2025-02-15 13:23:27 +01:00
jimtng c217b88adb
Interactive SVG Canvas: Fix embedding SVG errors (#3036)
Canvas Layout: Fix embedding SVG errors

- When imageUrl is not configured, don't show/log an error message
- When imageUrl is not an SVG file, or
- When there's an error fetching the SVG file, show a toast message
- When flashing the embedded svg
- Show a toast message when flashing, but no 'openhab' elements were
found

---------

Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2025-02-15 13:20:27 +01:00
jimtng a0ccaa33f1
Addons Store: Show tab bar when left panel is hidden (#3053)
When the left panel is hidden, there's no way to see uninstalled
add-ons, so we should show the tab bar.

Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2025-02-15 13:13:08 +01:00
jimtng a7cc8f762c
oh-image-card: Fix inconsistent image size when action is defined (#3046)
Fixes #3002.

Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2025-02-15 12:58:53 +01:00
Mark Herwege 6ce2d2e107
Sitemap editor: fix negative number parameters (#3055)
See: https://community.openhab.org/t/basic-ui-setpoint-negative-values/161011

Parameters with negative number where not parsed correctly. This is
because hyphen is defined as a token and therefore already recognized
before recognizing the number. Changing the order does not help as it
breaks chart period parsing.

This fix avoids recognizing numbers as tokens and handles numbers in the
lexer.

Signed-off-by: Mark Herwege <mark.herwege@telenet.be>
2025-02-15 12:54:12 +01:00
jimtng f5d26e6c0a
Thing Validation: Mustn't start with a dash, include dash in error message (#3059)
Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2025-02-15 12:52:36 +01:00
stefan-hoehn 4dff3977dc
Interactive SVG Canvas: Use percentage state for color state computing (#3062)
Fixes 
https://community.openhab.org/t/interactive-svg-background-expression-works-in-widgets-expression-tester-but-not-in-svg-object/162078/2.

Signed-off-by: Stefan Höhn <mail@stefanhoehn.com>
2025-02-15 12:51:09 +01:00
Holger Friedrich 0041fb699f
[cometvisu] Upgrade openapi generator to 7.0.1 (#2975) 2025-01-26 17:01:19 +01:00
Holger Friedrich 12f24d4f70
Upgrade plugins (#2974) 2025-01-26 16:59:47 +01:00
Holger Friedrich c346bcee92
Upgrade Karaf from 4.4.6 to 4.4.7 (#2798) 2025-01-26 16:06:44 +01:00
jimtng 95844d294b
Layout Editor: Fix invisible bottom part of the screen (#3033)
In non full-screen mode, the bottom of the screen was hidden behind the
bottom toolbar. This includes the "Add Masonry" button and any
components at the bottom of the screen.

Also-by: Florian Hotze <dev@florianhotze.com>
Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2025-01-23 18:54:50 +01:00
jimtng bb669d8172
Tag Input: Fix enter key on Android (#3031)
Fix #2890.
Fix #1440.

Tested it on browserstack:
- enter works on iphone 13
- enter works on pixel 7
- also works on my real android phone

Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2025-01-23 18:31:08 +01:00
jimtng d203a02d1f
Link to New Item: Prefix with Thing's label (#3034)
Resolve #3032

Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2025-01-23 17:26:59 +01:00
jimtng 7dd7f31cdd
Item Add: Navigate to the new Item once added (#3010)
Currently, if you go to Settings -> Items -> Add -> Save, you'll be
brought back to the Items list (back navigation).

This PR changes this behavior so that after the new item is saved/added,
the user is redirected to the Item Details page **of that new item**, so
they can immediately work on it.

Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2025-01-19 19:04:45 +01:00
jimtng 3e010ec300
Add-on Store: Extend search to add-on descriptions (#3028)
Resolves #2870.

Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2025-01-19 19:03:07 +01:00
jimtng 14a665fc1a
Channel Settings: Make long Channel UID fully visible (#3027)
Fixes #3023.

Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2025-01-19 19:00:55 +01:00
Florian Hotze d5b98631c0
Log viewer: Align logger name left (#3026)
Refs #3011.

Signed-off-by: Florian Hotze <dev@florianhotze.com>
2025-01-17 10:42:13 +01:00
David Tschida 8b4e6699c9
oh-slider: Fix handing of steps with many decimals when rounding state values (#3022)
Fixes #3019.

Signed-off-by: David Tschida <dmtschida1@gmail.com>
2025-01-16 19:17:23 +01:00
Florian Hotze a1ffc6c2ed
Page view: Fix title sometimes not centered & Fix Vue warn (#3024)
Fixes an issue, where the page title was not centered sometimes due to a
rendering issue (race condition?) in Framework7.

Fixes the following Vue warning:

```
 Avoid adding reactive properties to a Vue instance or its root $data at runtime - declare it upfront in the data option.
 ```

Signed-off-by: Florian Hotze <dev@florianhotze.com>
2025-01-16 19:08:44 +01:00
Florian Hotze cd09e5296d Minor cleanup for #3011
Signed-off-by: Florian Hotze <dev@florianhotze.com>
2025-01-16 17:32:52 +01:00
Florian Hotze 9885f09d8d
Log viewer: Fixed column width for timestamp, level & logger name (#3011)
When using the log viewer, I have regularly noticed that the time column
is wider than required, as well as the logger name column taking up much
space and making the message column move if a new log with a longer
logger name comes in.
This sets the width of the time, level and logger name columns to a
fixed value and limits the logger name length.

Signed-off-by: Florian Hotze <dev@florianhotze.com>
2025-01-15 18:48:43 +01:00
Chris Jackson bf2f2ee8dc
Add level icons to log viewer (#2968)
Following a discussion on the forum.

Also-by: Florian Hotze <dev@florianhotze.com>
Signed-off-by: Chris Jackson <chris@cd-jackson.com>
2025-01-15 00:38:36 +01:00
Jimmy Tanagra e59b71e49c Addons Store: Remove unused searchbar property
Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2025-01-14 21:08:12 +01:00
Jimmy Tanagra 162aaa6390 Addons Store: Also search the addon id
Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2025-01-14 21:07:11 +01:00
Jimmy Tanagra ec230c9c8d Addons Store: Show search term before loading addons
Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2025-01-14 21:07:11 +01:00
jimtng 3a034210f1
Thing Add: Navigate to the new Thing once added (#3014)
Resolve #3013

Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2025-01-14 21:01:10 +01:00
Florian Hotze 7ef5b6fe1c
Sitemap treeview: Fix arrows/chevrons shown if not expandable (#3007)
Regression from #2904.
Reported in https://github.com/openhab/openhab-webui/pull/2970#issuecomment-2585663931.

Signed-off-by: Florian Hotze <dev@florianhotze.com>
2025-01-13 13:13:22 +01:00
Florian Hotze 54a34981b0
Rule edit: Add descriptions to triggers, actions & conditions sections (#3008)
Closes https://github.com/openhab/openhab-core/issues/4503.

Signed-off-by: Florian Hotze <dev@florianhotze.com>
2025-01-13 13:11:39 +01:00
jimtng 9a9d363fb8
Thing Add: Validate Thing ID before saving (#3009)
Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2025-01-13 13:09:39 +01:00
jimtng e7d9b65bc2
Item Details: Add a link to search for the item in the developer bar (#3004)
Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2025-01-12 16:07:02 +01:00
jimtng 03a7fa1182
Developer Dock: Add tooltips to nav buttons (#3005)
Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2025-01-12 14:41:49 +01:00
jimtng 4b1ef3b4dc
Thing details: Add "Install Binding" button for HANDLER_MISSING_ERROR (#3003)
Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2025-01-12 11:03:36 +01:00
jimtng bd3f1c4e0d
Settings menu: Always show things count even when inbox is not empty (#3001)
Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2025-01-10 13:12:02 +01:00
jimtng f83116f447
Thing Details: broaden the criteria for hyperlinking thing status description (#3000)
Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2025-01-10 10:58:12 +01:00
jimtng d16fe3ac60
Thing details: Make link in Thing status description clickable (#2996)
Resolve #2994

Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2025-01-09 19:24:04 +01:00
Florian Hotze a9954c3ee9
WS client: Add convenience method to connect to the event WebSocket (#2993)
Also improve the WS client code in general.

Signed-off-by: Florian Hotze <dev@florianhotze.com>
2025-01-09 00:28:10 +01:00
Florian Hotze ea5121d77e
Chart page: Fix wrong height and top position in sheets (#2992)
Signed-off-by: Florian Hotze <dev@florianhotze.com>
2025-01-08 18:33:42 +01:00
Florian Hotze 7034ad9a0a
Chart page: Fix wrong height inside popups, popovers & sheets on iOS (#2991)
Fixes known limitation from #2717.
Reported on the community:
https://community.openhab.org/t/openhab-4-3-release-discussion/160888/155?u=florian-h05

Signed-off-by: Florian Hotze <dev@florianhotze.com>
2025-01-08 18:33:02 +01:00
jimtng aa572b772d
Tag Input: Fix automatic add on blur (#2982)
User inadvertently losing the entered new tag when they haven't realised
that they needed to press Enter. It seems that onblur was originally
intended to auto-add the typed tag, e.g. when user immediately clicked
"Save" (top right), but it was attached to the wrong element, thus the
event didn't fire.

Changes keypress to keyup event because the keypress is
missing the last letter otherwise. It wasn't a problem in the past
because it only worked with Enter key (being the last keypress). Missing
the last letter becomes a problem when adding it in the onblur event. So
keyup solved that.

Also removed `@keyPressed.native="keyPressed"`, not sure why it was needed.

Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2025-01-08 18:05:49 +01:00
jimtng 5cba1d80a0
Tag Input: Prevent user from adding a semantic tag (#2983)
When the tag input is supposed to filter out semantic tags, also prevent user from entering them.
It is up to the caller of tag-input form to determine whether it can accept semantic tags or not,
by specifying it in the `showSemanticTags` property.

Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2025-01-07 23:28:46 +01:00
jimtng 331ec6b79e
Thing Copy: Fix channel uid of copied Thing (#2984)
Fixes #2977.

Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2025-01-07 23:22:06 +01:00
Holger Friedrich 438854f482
Fix JavaDoc output directory (#2989)
Regression, fix issue introduced by #2972.
JavaDoc output dir changed from target/site to target/reports.
This will get it back to the known location.

Signed-off-by: Holger Friedrich <mail@holger-friedrich.de>
2025-01-07 21:48:58 +01:00
Wouter Born 824bbc4711
Start license headers with `/*` instead of `/**` (#2988)
Prevents JavaDoc tooling issues because these tools check comments
starting with `/**`.

Depends on #2987

Signed-off-by: Wouter Born <github@maindrain.net>
2025-01-07 18:49:02 +01:00
Wouter Born fe0be2e322
Upgrade SAT to 0.17.0 (#2987)
For release notes, see:

https://github.com/openhab/static-code-analysis/releases/tag/0.17.0

Signed-off-by: Wouter Born <github@maindrain.net>
2025-01-07 18:43:11 +01:00
Florian Hotze b69589bdb1
Developer tools: Add WS connection test (#2981)
Depends on https://github.com/openhab/openhab-core/pull/4540.

Signed-off-by: Florian Hotze <dev@florianhotze.com>
2025-01-06 20:00:21 +01:00
jimtng 7ac9838c9e
Fix Schedule page shows UTC instead of local timezone (#2969)
Reported in:
https://community.openhab.org/t/shown-time-in-schedule-view-is-wrong/161288
https://community.openhab.org/t/schedule-page-in-mainui-off-by-one-hour-since-4-3/161307

Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2025-01-04 21:59:35 +01:00
Florian Hotze 75e866792a
WS client: Remove trailing `=` from base64-encoded access token (#2976)
Follow-up for #2907.

Fixes WS client broken due to `=` being part of the base74-encoded
token, which is no allowed WS subprotocol value.

Signed-off-by: Florian Hotze <dev@florianhotze.com>
2025-01-04 18:11:27 +01:00
Florian Hotze 6104cba46d
Add Inbox approve menu to add Thing of binding page (#2973)
Supersedes #2921.

Signed-off-by: Florian Hotze <dev@florianhotze.com>
2025-01-04 17:06:42 +01:00
Florian Hotze f1c3896897
Widget expressions: Fix handling of Item name being `undefined` & Align behaviour for @ and @@ shorthands in that case (#2965)
Fixes #2956.
This fix creates the limitation that an Item must not be named
`undefined` - for an Item with this name, state tracking won't work.

---------

Signed-off-by: Florian Hotze <dev@florianhotze.com>
2025-01-04 16:13:18 +01:00
Holger Friedrich 4380671878
Upgrade plugins (#2972)
* frontend-maven-plugin to 1.15.1
* sortpom-maven-plugin to 4.0.0 (breaking change)
https://github.com/Ekryd/sortpom?tab=readme-ov-file#news
* license-maven-plugin to 4.6
https://github.com/mathieucarbou/license-maven-plugin/releases
* maven-clean-plugin to 3.4.0
https://github.com/apache/maven-clean-plugin/releases/tag/maven-clean-plugin-3.4.0
* maven-dependency-plugin to 3.8.1
* maven-enforcer-plugin to 3.5.0
https://github.com/apache/maven-enforcer/releases
* maven-install-plugin to 3.1.3
https://github.com/apache/maven-install-plugin/releases
* maven-jar-plugin to 3.4.2
https://github.com/apache/maven-jar-plugin/releases/tag/maven-jar-plugin-3.4.2
* maven-javadoc-plugin to 3.11.2
* maven-release-plugin to 3.1.1
* maven-site-plugin to 3.21.0
* maven-surefire-plugin to 3.5.2
* build-helper-maven-plugin to 3.6.0
https://github.com/mojohaus/build-helper-maven-plugin/releases/tag/3.6.0


leaving out the remaining
```
[INFO]   org.codehaus.mojo:jaxb2-maven-plugin ....................................................... 2.5.0 -> 3.2.0
[INFO]   org.openapitools:openapi-generator-maven-plugin ........................................... 4.3.0 -> 7.10.0
```
for now....

Signed-off-by: Holger Friedrich <mail@holger-friedrich.de>
2025-01-04 14:13:30 +01:00
Florian Hotze 095584a137
Model tabs: Fix left/right margin to small on mobile (#2964)
Signed-off-by: Florian Hotze <dev@florianhotze.com>
2025-01-01 19:25:13 +01:00
Wouter Born 4610a15ad1
Update license headers to 2025 (#2963)
Updates the license headers to 2025.

Signed-off-by: Wouter Born <github@maindrain.net>
2025-01-01 17:09:54 +01:00
Florian Hotze 85616e1fb5
Refactor websocket code to `$oh` namespace & Pass access token through header (#2907)
Depens on https://github.com/openhab/openhab-core/pull/4515.

This refactors the WebSocket connection code from #2884 to the `$oh`
namespace, same as it is for the SSE logic.
It also passes the access token as WebSocket subprotocol so it is sent
with the `Sec-WebSocket-Protocol` header.

---------

Signed-off-by: Florian Hotze <dev@florianhotze.com>
2024-12-31 17:02:06 +01:00
Florian Hotze f424e2b914
Layout pages: Safe area fixes & related code improvements (#2959)
Signed-off-by: Florian Hotze <dev@florianhotze.com>
2024-12-31 16:52:12 +01:00
Nadahar 0706f3a2b7
Enable additional chart types for `oh-data-series` (#2946)
This enables the use of all imported ECharts in (custom) widgets using `oh-data-series`.
2024-12-31 15:40:32 +01:00
openhab-bot f3a973e4d3
New Crowdin updates (#2955) 2024-12-31 15:39:39 +01:00
jimtng 2028872bfc
Allow item names to start with an underscore (#2958)
Reported in
https://community.openhab.org/t/openhab-4-3-item-name-starting-with-underscore/161244

Regression from #2658

Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2024-12-31 15:31:09 +01:00
Florian Hotze 512ecce304
Page: Add ability to edit current tab of tabbed page (#2953)
Closes #2899.

Signed-off-by: Florian Hotze <dev@florianhotze.com>
2024-12-28 15:54:22 +01:00
Florian Hotze 1f4673f415
Widget mixin: Fix JS error when using both trendline & stylesheet (#2952)
Fixes #1423.

Signed-off-by: Florian Hotze <dev@florianhotze.com>
2024-12-28 15:40:27 +01:00
Florian Hotze 802d41284a
Thing details: Show error message when modifying disabled Thing (#2951)
Do not fail silently.

Fixes #1590.

Signed-off-by: Florian Hotze <dev@florianhotze.com>
2024-12-28 15:10:01 +01:00
Florian Hotze ba1772c6c0
Thing details: Fix Z-Wave network map shown if not Z-Wave binding (#2950)
Fixes #2940.

Signed-off-by: Florian Hotze <dev@florianhotze.com>
2024-12-28 13:38:23 +01:00
Florian Hotze 5d7f35a824
Don't subscribe to Item events to reload model (#2949)
Related to #2584 and
https://github.com/openhab/openhab-core/issues/4466.

This avoids that the global SSE connection is always established, and
therefore reduces problems with the max parallel HTTP connections
limitation. The global SSE connection is now only established if the web
audio sink or the command Item are enabled.

Whilst this change potentially makes the UI not reload the model
automatically on change, practically the now removed mechanism might
haven't been really useful at all because the model is already reloaded
on Main UI start, and if SSE was not connected the moment an Item
changed the mechanism did not trigger.

Signed-off-by: Florian Hotze <dev@florianhotze.com>
2024-12-28 13:34:02 +01:00
openhab-bot ad971dc8bc
New Crowdin updates (#2916) 2024-12-28 13:21:56 +01:00
Mark Herwege 15463f894f
Sitemap editor: Add drag & drop (#2904)
This PR implements drag and drop in the sitemap tree, to make it easier
to graphically rearange sitemaps.
To achieve this, [Vue.Draggable](https://github.com/SortableJS/Vue.Draggable) (by itself
based on SortableJS) is included.

Signed-off-by: Mark Herwege <mark.herwege@telenet.be>
2024-12-28 13:20:52 +01:00
stefan-hoehn df02810c3b
Interactive SVG canvas: Add String Type support (#2948)
Adds String type support to the interactive SVG canvas by allowing to
compare a string to a specific value that is perceived as state ON:

Signed-off-by: Stefan Höhn <mail@stefanhoehn.com>
2024-12-28 11:52:04 +01:00
Florian Hotze bd9c6f0c36
Link add/edit: Fix profile selection (#2941)
Regression from #2690.

Reported here:

https://community.openhab.org/t/enocean-impossible-to-link-a-rockerswitch-channel-with-an-item-in-main-ui-there-is-no-profile-available-for-the-selected-item/160987

When creating a Thing channel link to an item, the profile selection are
disabled. This presents two problems:

- It made linking a trigger channel to an item not possible, because a
profile must be selected, but they're disabled.
- Linking a non-trigger channel to a new item is possible, but selecting
a profile is not possible at link creation. The user has to create the
link without a profile first, then go back to edit the link in order to
assign a profile.

When editing a channel link, profile selection was possible for
unsupported profiles, e.g. when editing a link between a Switch Item and
a Number channel, one could edit the link to use the default or follow
profiles.

---------

Signed-off-by: Florian Hotze <dev@florianhotze.com>
2024-12-24 09:46:23 +01:00
Florian Hotze 3861fa8f27
Things list: Do not listen to InboxUpdatedEvents (#2942)
Fixes #2395.
Supersedes #2918.

Those do not change the inbox count and hence can be ignored.

Signed-off-by: Florian Hotze <dev@florianhotze.com>
2024-12-22 17:39:12 +01:00
Mark Herwege 8d8e46ad5b
Import treeview items locally & Clean-up sitemap page components (#2915)
See https://github.com/openhab/openhab-webui/pull/2904#issuecomment-2537081847
and https://github.com/openhab/openhab-webui/pull/2904#issuecomment-2537277268

This moves the import from the treeview items for model and sitemap out
of app.js and removes the sitemap page elements as this was never used.

Signed-off-by: Mark Herwege <mark.herwege@telenet.be>
2024-12-22 17:20:58 +01:00
dependabot[bot] ba1c988ebf
Bump nanoid from 3.3.7 to 3.3.8 in /bundles/org.openhab.ui/web (#2922)
Bumps [nanoid](https://github.com/ai/nanoid) from 3.3.7 to 3.3.8.

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-22 17:12:17 +01:00
dependabot[bot] b3b32be705
Bump elliptic from 6.5.7 to 6.6.1 in /bundles/org.openhab.ui/web (#2887)
Bumps [elliptic](https://github.com/indutny/elliptic) from 6.5.7 to 6.6.1.

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-22 17:06:21 +01:00
jimtng 0071de993c
Fix enabled profiles in link editor appear disabled (#2938)
Reported on the community:
https://community.openhab.org/t/enocean-impossible-to-link-a-rockerswitch-channel-with-an-item-in-main-ui-there-is-no-profile-available-for-the-selected-item/160987/40

Signed-off-by: Jimmy Tanagra <jcode@tanagra.id.au>
2024-12-22 15:48:10 +01:00
Florian Hotze 0ead7b8100
Widget expressions: Fix screen object not properly initialized & updated (#2933)
Fixes #2929.

Signed-off-by: Florian Hotze <dev@florianhotze.com>
2024-12-22 01:48:33 +01:00
Florian Hotze 56e0ebe23e
`oh-clock-card`: Remove (broken) background property in favour of style config (#2932)
This avoids confusion because `background` is not working anymore.
Use `style: background: ` instead.

---------

Signed-off-by: Florian Hotze <dev@florianhotze.com>
2024-12-19 15:31:40 +01:00
Florian Hotze a907cc3319
`oh-card`: Fix action & tap-hold action not working (#2931)
Regression from #2781.

Signed-off-by: Florian Hotze <dev@florianhotze.com>
2024-12-19 15:09:07 +01:00
Florian Hotze 511b9493bb
Fix scripting add-on availability check for old JS Scripting MIME type (#2928)
Regression from #2743.

Signed-off-by: Florian Hotze <dev@florianhotze.com>
2024-12-17 16:14:23 +01:00
Holger Friedrich 97b37f6cc9
Fix problem matchers (#2926)
Regression, but introduced with #2925

Signed-off-by: Holger Friedrich <mail@holger-friedrich.de>
2024-12-16 08:39:11 +01:00
Holger Friedrich 9cafa80b60
Remove Java 17 build, switch to 21 (#2925)
Related to  openhab/openhab-core#4483

---------

Signed-off-by: Holger Friedrich <mail@holger-friedrich.de>
2024-12-15 23:21:28 +01:00
Florian Hotze 148248900d
CODEOWNERS: Add Blockly maintainers (#2923)
Add @stefan-hoehn as Blockly CODEOWNER so he is automatically requested
for review in his role as Blockly maintainer.

Signed-off-by: Florian Hotze <dev@florianhotze.com>
2024-12-15 20:39:41 +01:00
Holger Friedrich b54f9d2297
Prepare for OH 5.0.0 (#2924)
* Fix spotless after unleash

Depends on https://github.com/openhab/openhab-core/pull/4496

Signed-off-by: Holger Friedrich <mail@holger-friedrich.de>
2024-12-15 19:41:01 +01:00
openhab-bot f5a4bb3388 [unleash-maven-plugin] Preparation for next development cycle. 2024-12-15 17:12:57 +00:00
321 changed files with 4324 additions and 1946 deletions

View File

@ -18,12 +18,14 @@ jobs:
strategy:
fail-fast: false
matrix:
java: [ '17', '21', 'profile-j21' ]
java: [ '21' ]
maven: [ '3.9.9' ]
python: [ '3.12' ]
os: [ 'ubuntu-24.04' ]
name: Build (Java ${{ matrix.java }}, ${{ matrix.os }})
runs-on: ${{ matrix.os }}
# typical duration is ~5min, set a reasonable amount as limit (default is 6h)
timeout-minutes: 20
steps:
- name: Checkout
if: github.head_ref == ''
@ -47,20 +49,13 @@ jobs:
- name: Set up Java ${{ matrix.java }}
uses: actions/setup-java@v4
if: ${{ matrix.java == 'profile-j21' }}
with:
distribution: 'temurin'
java-version: ${{ 21 }}
- name: Set up Java ${{ matrix.java }}
uses: actions/setup-java@v4
if: ${{ matrix.java != 'profile-j21' }}
with:
distribution: 'temurin'
java-version: ${{ matrix.java }}
# pinning to SHA to mitigate possible supply chain attack
- name: Set up Maven ${{ matrix.maven }}
uses: stCarolas/setup-maven@v5
uses: stCarolas/setup-maven@d6af6abeda15e98926a57b5aa970a96bb37f97d1 # v5
with:
maven-version: ${{ matrix.maven }}
@ -71,24 +66,12 @@ jobs:
python-version: ${{ matrix.python }}
- name: Register Problem Matchers
if: ${{ matrix.java == '17' }}
if: ${{ matrix.java == '21' }}
id: problem_matchers
run: |
echo "::add-matcher::.github/openhab-compile-problems.json"
- name: Build
if: ${{ matrix.java == 'profile-j21' }}
id: build-j21
run: './.github/scripts/maven-build clean verify -B -T 1.5C -U -Pj21'
env:
MAVEN_OPTS: >-
-Xmx2g
-Dmaven.wagon.http.retryHandler.count=5
-Dmaven.wagon.httpconnectionManager.ttlSeconds=25
-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
- name: Build
if: ${{ matrix.java != 'profile-j21' }}
id: build
run: './.github/scripts/maven-build'
env:
@ -99,30 +82,35 @@ jobs:
-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
- name: Upload Build Log
if: ${{ always() && ((steps.build.outcome == 'success') || (steps.build.outcome == 'failure') || (steps.build-j21.outcome == 'success') || (steps.build-j21.outcome == 'failure')) }}
if: ${{ always() && ((steps.build.outcome == 'success') || (steps.build.outcome == 'failure')) }}
uses: actions/upload-artifact@v4
with:
name: build-log-java-${{ matrix.java }}-${{ matrix.os }}
path: build.log
- name: Upload SAT Summary Report
if: ${{ matrix.java == '17' && always() && ((steps.build.outcome == 'success') || (steps.build.outcome == 'failure') || (steps.build-j21.outcome == 'success') || (steps.build-j21.outcome == 'failure')) }}
if: ${{ always() && ((steps.build.outcome == 'success') || (steps.build.outcome == 'failure')) }}
uses: actions/upload-artifact@v4
with:
name: sat-summary-report
path: target/summary_report.html
- name: Report SAT Errors as Annotations
if: ${{ matrix.java == '17' && always() && ((steps.build.outcome == 'success') || (steps.build.outcome == 'failure')) }}
if: ${{ matrix.java == '21' && always() && ((steps.build.outcome == 'success') || (steps.build.outcome == 'failure')) }}
uses: ghys/checkstyle-github-action@main
with:
title: CheckStyle Violations
path: '**/checkstyle-result.xml'
mode: inline
# this will identify modifications to files under source control during the workflow run;
# untracked files will be included as well!
- name: Verify Changed Files
uses: tj-actions/verify-changed-files@v20
id: verify-changed-files
run: |
set -o pipefail
changed_files=$(echo -n "$(git diff --name-only HEAD && git ls-files --others --exclude-standard)"|tr '\n' ' ')
echo "changed_files=$changed_files" >> $GITHUB_OUTPUT
- name: Fail on Changed Files
if: steps.verify-changed-files.outputs.changed_files != ''

View File

@ -3,10 +3,14 @@ name: Main UI
on:
push:
branches: [ main ]
paths: bundles/org.openhab.ui/web/**
paths:
- .github/workflows/mainui.yml
- bundles/org.openhab.ui/web/**
pull_request:
branches: [ main ]
paths: bundles/org.openhab.ui/web/**
paths:
- .github/workflows/mainui.yml
- bundles/org.openhab.ui/web/**
workflow_dispatch:
defaults:
@ -20,11 +24,11 @@ jobs:
checks:
runs-on: ubuntu-latest
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
@ -33,7 +37,7 @@ jobs:
uses: actions/cache@v4
with:
path: node_modules # npm cache files are stored in `~/.npm` on Linux/macOS
key: ${{ runner.os }}-node_modules-${{ hashFiles('**/package-lock.json') }}
key: ${{ runner.os }}-node_modules-${{ hashFiles('**/package.json', '**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
${{ runner.os }}-build-
@ -52,11 +56,11 @@ jobs:
webpack-stats:
runs-on: ubuntu-latest
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
@ -65,7 +69,7 @@ jobs:
uses: actions/cache@v4
with:
path: node_modules # npm cache files are stored in `~/.npm` on Linux/macOS
key: ${{ runner.os }}-node_modules-${{ hashFiles('**/package-lock.json') }}
key: ${{ runner.os }}-node_modules-${{ hashFiles('**/package.json', '**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
${{ runner.os }}-build-
@ -78,13 +82,15 @@ jobs:
- name: Build and generate report
run: npm run webpack-analyzer-report-stats
- uses: actions/upload-artifact@v4
- name: Upload report artifact
uses: actions/upload-artifact@v4
with:
name: report
path: /home/runner/work/openhab-webui/openhab-webui/bundles/org.openhab.ui/web/report.html
# Upload bundle stats to use on relative-ci.yaml workflow
- name: Upload webpack stats artifact
uses: relative-ci/agent-upload-artifact-action@v2
# Upload bundle stats to use on relative-ci.yaml workflow,
# pinning to SHA to mitigate possible supply chain attack
- name: Upload webpack stats artifact to RelativeCI
uses: relative-ci/agent-upload-artifact-action@a2b5741b4f7e6a989c84ec1a3059696b23c152e5 # v2.0.0
with:
webpackStatsFile: ./bundles/org.openhab.ui/web/stats.json

View File

@ -10,8 +10,9 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
# pinning to SHA to mitigate possible supply chain attack
- name: Send bundle stats and build information to RelativeCI
uses: relative-ci/agent-action@v2.1.10
uses: relative-ci/agent-action@38328454d6a23942175eba485fca4fbb807b1f03 # v2.2.0
with:
key: ${{ secrets.RELATIVE_CI_KEY }}
token: ${{ secrets.GITHUB_TOKEN }}

View File

@ -11,3 +11,7 @@
/bundles/org.openhab.ui.cometvisu/ @peuter
/bundles/org.openhab.ui.habot/ @ghys
/bundles/org.openhab.ui.habpanel/ @ghys
# Blockly maintainers:
/bundles/org.openhab.ui/web/src/assets/definitions/blockly/ @stefan-hoehn @ghys @florian-h05
/bundles/org.openhab.ui/web/src/components/config/controls/blockly-editor.vue @stefan-hoehn @ghys @florian-h05

View File

@ -1,13 +1,13 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.openhab.ui.bom</groupId>
<artifactId>org.openhab.ui.reactor.bom</artifactId>
<version>4.3.0-SNAPSHOT</version>
<version>5.0.0-SNAPSHOT</version>
</parent>
<artifactId>org.openhab.ui.bom.openhab-ui</artifactId>

View File

@ -1,13 +1,13 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.openhab.ui</groupId>
<artifactId>org.openhab.ui.reactor</artifactId>
<version>4.3.0-SNAPSHOT</version>
<version>5.0.0-SNAPSHOT</version>
</parent>
<groupId>org.openhab.ui.bom</groupId>

View File

@ -1,13 +1,13 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.openhab.ui.bundles</groupId>
<artifactId>org.openhab.ui.reactor.bundles</artifactId>
<version>4.3.0-SNAPSHOT</version>
<version>5.0.0-SNAPSHOT</version>
</parent>
<artifactId>org.openhab.ui.basic</artifactId>

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
@ -303,6 +303,18 @@ public class PageRenderer extends AbstractWidgetRenderer {
localizeText("@text/ui.config.basic.adjustedColors.description"), "adjustedColors",
"openhab.ui.basic:adjustedColors", "enabled", "disabled", true, sb);
buttons = new StringBuilder();
buildButton(escapeHtml(localizeText("@text/ui.config.basic.buttonRadius.option.square")), "", buttons);
buildButton(escapeHtml(localizeText("@text/ui.config.basic.buttonRadius.option.rounded")), "rounded", buttons);
buildButton(escapeHtml(localizeText("@text/ui.config.basic.buttonRadius.option.fullyRounded")), "fully-rounded",
buttons);
sb.append(getSnippet("setting_buttons")
.replace("%label%", escapeHtml(localizeText("@text/ui.config.basic.buttonRadius.label")))
.replace("%description%", escapeHtml(localizeText("@text/ui.config.basic.buttonRadius.description")))
.replace("%key%", "openhab.ui.basic:buttonRadius").replace("%default%", "")
.replace("%buttons%", buttons.toString()));
buttons = new StringBuilder();
buildButton("1", "1", buttons);
buildButton("2", "", buttons);

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,10 @@
ui.config.basic.adjustedColors.label = Adjusted User Colors
ui.config.basic.adjustedColors.description = Automatically adjusts user-defined colors (label, value, icon) to the current theme for better contrast.
ui.config.basic.buttonRadius.label = Button Shape
ui.config.basic.buttonRadius.description = Sets the buttons corner radius.
ui.config.basic.buttonRadius.option.square = Square
ui.config.basic.buttonRadius.option.rounded = Rounded
ui.config.basic.buttonRadius.option.fullyRounded = Fully Rounded
ui.config.basic.biggerFontSize.label = Bigger Font Size
ui.config.basic.biggerFontSize.description = Displays texts in UI with a bigger font size than the default.
ui.config.basic.capitalizeValues.label = Capitalize Values

View File

@ -0,0 +1,69 @@
ui.config.basic.adjustedColors.label = Justerede brugerfarver
ui.config.basic.adjustedColors.description = Justerer automatisk brugerdefinerede farver (etiket, værdi, ikon) til det aktuelle tema for bedre kontrast.
ui.config.basic.biggerFontSize.label = Større skrifttype
ui.config.basic.biggerFontSize.description = Viser tekster i brugergrænsefladen med en større skrifttype end standarden.
ui.config.basic.capitalizeValues.label = Sæt værdierne med versaler
ui.config.basic.capitalizeValues.description = Viser alle widget-tilstande med store bogstaver.
ui.config.basic.chartDPI.label = Diagram DPI
ui.config.basic.chartDPI.description = Justerer størrelsen på indholdet (tekst, linje) i diagrammet.
ui.config.basic.chartDPI.option.96 = 96 DPI (standard)
ui.config.basic.chartDPI.option.120 = 120 DPI
ui.config.basic.chartDPI.option.144 = 144 DPI
ui.config.basic.chartDPI.option.168 = 168 DPI
ui.config.basic.chartDPI.option.192 = 192 DPI
ui.config.basic.chartDPI.option.240 = 240 DPI
ui.config.basic.chartSize.label = Diagramstørrelse
ui.config.basic.chartSize.description = Angiver størrelsen på diagrammet.
ui.config.basic.chartSize.option.default = Standard
ui.config.basic.chartSize.option.360x180 = 360 x 180 (telefon)
ui.config.basic.chartSize.option.480x240 = 480 x 240 (tablet)
ui.config.basic.chartSize.option.600x300 = 600 x 300 (tablet)
ui.config.basic.chartSize.option.720x360 = 720 x 360 (desktop)
ui.config.basic.chartSize.option.840x420 = 840 x 420 (desktop)
ui.config.basic.chartSize.option.960x480 = 960 x 480 (desktop)
ui.config.basic.condensedLayout.label = Kondenseret layout
ui.config.basic.condensedLayout.description = Når aktiveret, ændres layoutet, så flere widgets kan passe på skærmen.
ui.config.basic.defaultSitemap.label = Standard-sitemap
ui.config.basic.defaultSitemap.description = Det sitemap, der vises, hvis ingen parameter angives.
ui.config.basic.enableIconify.label = Aktivér Iconify-ikoner
ui.config.basic.enableIconify.description = Hvis aktiveret, vil brugergrænsefladen gengive ikoner fra Iconify direkte ved at hente dem fra internettet og cache dem i webbrowseren. Hvis deaktiveret, vil brugergrænsefladen ignorere Iconify-ikoner. Standardindstillingen er aktiveret.
ui.config.basic.enableIcons.label = Aktivér ikoner
ui.config.basic.enableIcons.description = Angiver, om brugergrænsefladen skal gengive ikoner for widgets eller ej.
ui.config.basic.inlineSvg.label = Indlejret SVG
ui.config.basic.inlineSvg.description = Hvis aktiveret, vil ethvert SVG-ikon leveret af openHAB-ikonserveren automatisk blive konverteret til en indlejret SVG på websiden. Dette muliggør kontrol af ikonets farve med sitemap-widget-egenskaben "iconcolor", hvis SVG-ikonet bruger "currentColor" som fyldfarve. Bemærk, at dette virker med brugerdefinerede SVG-ikoner, men ikke med alle de pakkede ikoner fra det klassiske ikonset, da de er defineret med en hardkodet farvepalet. Denne funktion er som standard deaktiveret på grund af den ekstra ikke-standardiserede behandling, der kræves, hvilket fører til en større side, og fordi det ikke er nødvendigt, hvis du kun bruger Material/framework7/Iconify-ikoner eller openHAB-ikoner fra det klassiske ikonsæt.
ui.config.basic.inlineSvg.option.true = Aktivér
ui.config.basic.inlineSvg.option.false = Deaktivér
ui.config.basic.nbColumnsDesktop.label = Kolonner (desktop)
ui.config.basic.nbColumnsDesktop.description = Angiver antallet af kolonner, der tages i betragtning, når gitteret fyldes for en stor skærmbredde (desktop).
ui.config.basic.nbColumnsTablet.label = Kolonner (tablet)
ui.config.basic.nbColumnsTablet.description = Angiver antallet af kolonner, der tages i betragtning, når gitteret fyldes for en mellem skærmbredde (tablet).
ui.config.basic.theme.label = Tema
ui.config.basic.theme.description = Definerer brugergrænsefladens tema.
ui.config.basic.theme.option.bright = Lys
ui.config.basic.theme.option.dark = Mørk
ui.config.basic.theme.option.auto = Auto
ui.config.basic.webAudio.label = Web-audio
ui.config.basic.webAudio.description = Afspiller lyd sendt til web audio-sinken.
# service
service.ui.basic.label = Basic UI
# messages
main.offline-msg = Offline\: venter på at forbindelsen bliver tilgængelig
main.long-polling-mode-msg = SSE-abonnement mislykkedes ({error})\: kører i fallback-tilstand
# sitemaps
sitemaps-list-empty.info = Det ser ud til, at du endnu ikke har defineret nogen sitemaps. For at oprette et, kan du tjekke dokumentationen for vejledning.
sitemaps-list.welcome = Velkommen\!
sitemaps-list.available-sitemaps = Tilgængelige sitemaps
# preferences
preferences.title = Indstillinger
# pop-up
popup.button.close = Luk

View File

@ -63,3 +63,7 @@ sitemaps-list.available-sitemaps = Sitemaps זמינים
# preferences
preferences.title = הגדרות
# pop-up
popup.button.close = סגור

View File

@ -0,0 +1,69 @@
ui.config.basic.adjustedColors.label = Cores ajustadas do utilizador
ui.config.basic.adjustedColors.description = Ajusta automaticamente as cores definidas pelo utilizador (etiqueta, valor, ícone) para o tema atual para um melhor contraste.
ui.config.basic.biggerFontSize.label = Tamanho de texto maior
ui.config.basic.biggerFontSize.description = Mostra o texto na interface com um tamanho de letra maior que o padrão.
ui.config.basic.capitalizeValues.label = Valores em maiúsculas
ui.config.basic.capitalizeValues.description = Mostra todos os estados dos widgets em maiúsculas.
ui.config.basic.chartDPI.label = DPI do gráfico
ui.config.basic.chartDPI.description = Ajusta o tamanho do conteúdo (texto, linha) do gráfico.
ui.config.basic.chartDPI.option.96 = 96 DPI (padrão)
ui.config.basic.chartDPI.option.120 = 120 DPI
ui.config.basic.chartDPI.option.144 = 144 DPI
ui.config.basic.chartDPI.option.168 = 168 DPI
ui.config.basic.chartDPI.option.192 = 192 DPI
ui.config.basic.chartDPI.option.240 = 240 DPI
ui.config.basic.chartSize.label = Tamanho do gráfico
ui.config.basic.chartSize.description = Define o tamanho do gráfico.
ui.config.basic.chartSize.option.default = Padrão
ui.config.basic.chartSize.option.360x180 = 360 x 180 (telemóvel)
ui.config.basic.chartSize.option.480x240 = 480 x 240 (tablet)
ui.config.basic.chartSize.option.600x300 = 600 x 300 (tablet)
ui.config.basic.chartSize.option.720x360 = 720 x 360 (computador)
ui.config.basic.chartSize.option.840x420 = 840 x 420 (computador)
ui.config.basic.chartSize.option.960x480 = 960 x 480 (computador)
ui.config.basic.condensedLayout.label = Disposição Condensada
ui.config.basic.condensedLayout.description = Quando ativado, altera a disposição para que mais widgets possam caber no ecrã.
ui.config.basic.defaultSitemap.label = Sitemap pré-definido
ui.config.basic.defaultSitemap.description = O Sitemap a mostrar caso nenhum parâmetro seja indicado.
ui.config.basic.enableIconify.label = Ativar Ícones Iconify
ui.config.basic.enableIconify.description = Se ativado, a interface de utilizador irá renderizar os ícones iconify diretamente transferindo-os da Internet e armazenando-os em cache no navegador WEB. Se desativado, a interface de utilizador irá ignorar os ícones do iconify. O pré-definido é ativado.
ui.config.basic.enableIcons.label = Ativar Ícones
ui.config.basic.enableIcons.description = Define se a interface de utilizador renderiza os ícones para os widgets ou não.
ui.config.basic.inlineSvg.label = SVG embutido
ui.config.basic.inlineSvg.description = Se ativado, qualquer ícone SVG fornecido pelo servidor de ícones do openHAB será automaticamente convertido para um SVG embebido na página Web, permitindo o ajuste da sua cor com a propriedade "iconcolor" no widget do Sitemap para o caso onde o ícone SVG define "currentColor" como a cor de preenchimento. De notar que também funcionará com ícones SVG personalizados mas não com todos os ícones do pacote de ícones clássicos pois estes são definidos com uma palete de cores fixa. Esta funcionalidade está desabilitada por defeito devido à necessidade de processamento adicional não-padrão que leva a um tamanho de página maior e porque é desnecessário se utilizar apenas ícones Material/framework7/iconify ou openHAB do conjunto clássico de ícones.
ui.config.basic.inlineSvg.option.true = Ativar
ui.config.basic.inlineSvg.option.false = Desativar
ui.config.basic.nbColumnsDesktop.label = Colunas (computador)
ui.config.basic.nbColumnsDesktop.description = Define o número de colunas a considerar ao preencher a grelha para uma grande largura de ecrã (computador).
ui.config.basic.nbColumnsTablet.label = Colunas (tablet)
ui.config.basic.nbColumnsTablet.description = Define o número de colunas a considerar ao preencher a grelha para um ecrã de largura de média (tablet).
ui.config.basic.theme.label = Tema
ui.config.basic.theme.description = Define o tema da Interface do Utilizador.
ui.config.basic.theme.option.bright = Brilhante
ui.config.basic.theme.option.dark = Escuro
ui.config.basic.theme.option.auto = Automático
ui.config.basic.webAudio.label = Áudio Web
ui.config.basic.webAudio.description = Reproduz o áudio enviado para o recetor áudio Web.
# service
service.ui.basic.label = UI Básico
# messages
main.offline-msg = Off-line\: a aguardar que a ligação fique disponível
main.long-polling-mode-msg = Subscrição SSE falhou ({error})\: executando em modo de recurso
# sitemaps
sitemaps-list-empty.info = Ainda não definiu nenhum site. Para Construir um, por favor verifique a documentação guia disponível.
sitemaps-list.welcome = Bem-vindo\!
sitemaps-list.available-sitemaps = Sitemaps disponíveis
# preferences
preferences.title = Preferências
# pop-up
popup.button.close = Fechar

View File

@ -289,6 +289,12 @@
padding-left: 4px;
padding-right: 4px;
}
html.ui-button-rounded & {
border-radius: 12px;
}
html.ui-button-fully-rounded & {
border-radius: 50px;
}
}
.mdl-button-text {
html.ui-bigger-font & {
@ -515,14 +521,14 @@
padding-bottom: 2px;
}
&__buttons-multiline {
margin: 6px 0;
gap: 4px;
html.ui-layout-condensed & {
margin: 0;
gap: 3px;
}
padding-top: 2px;
padding-bottom: 2px;
html.ui-layout-condensed & {
gap: 3px;
padding-top: 0;
padding-bottom: 0;
}
display: flex;
flex-wrap: wrap;
justify-content: end;

View File

@ -336,6 +336,15 @@
_t.root.documentElement.classList.add("ui-bigger-font");
}
}
if (param === null || param === "openhab.ui.basic:buttonRadius") {
_t.root.documentElement.classList.remove("ui-button-rounded");
_t.root.documentElement.classList.remove("ui-button-fully-rounded");
newValue = window.localStorage.getItem("openhab.ui.basic:buttonRadius");
if (newValue) {
_t.root.documentElement.classList.add("ui-button-" + newValue);
}
}
};
_t.updateControlLocalSetting = function(param) {

View File

@ -3146,6 +3146,15 @@
}
}
if (param === null || param === "openhab.ui.basic:buttonRadius") {
_t.root.documentElement.classList.remove("ui-button-rounded");
_t.root.documentElement.classList.remove("ui-button-fully-rounded");
newValue = window.localStorage.getItem("openhab.ui.basic:buttonRadius");
if (newValue) {
_t.root.documentElement.classList.add("ui-button-" + newValue);
}
}
if (param === null || param === "openhab.ui.basic:nbColumnsTablet") {
oldValue = _t.cellSizeTablet;
newValue = window.localStorage.getItem("openhab.ui.basic:nbColumnsTablet") === null ? 4

View File

@ -1,13 +1,13 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.openhab.ui.bundles</groupId>
<artifactId>org.openhab.ui.reactor.bundles</artifactId>
<version>4.3.0-SNAPSHOT</version>
<version>5.0.0-SNAPSHOT</version>
</parent>
<artifactId>org.openhab.ui.cometvisu</artifactId>
@ -82,7 +82,7 @@
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxb2-maven-plugin</artifactId>
<version>2.5.0</version>
<version>3.2.0</version>
<dependencies>
<dependency>
<groupId>org.jvnet.jaxb2_commons</groupId>
@ -123,7 +123,7 @@
<groupId>org.openapitools</groupId>
<artifactId>openapi-generator-maven-plugin</artifactId>
<!-- RELEASE_VERSION -->
<version>4.3.0</version>
<version>7.0.1</version>
<!-- /RELEASE_VERSION -->
<executions>
<execution>
@ -141,6 +141,7 @@
<modelPackage>org.openhab.ui.cometvisu.internal.backend.model.rest</modelPackage>
<generateAliasAsModel>true</generateAliasAsModel>
<generateSupportingFiles>false</generateSupportingFiles>
<openapiNormalizer>REF_AS_PARENT_IN_ALLOF=true</openapiNormalizer>
<configOptions>
<sourceFolder>src-gen</sourceFolder>
<interfaceOnly>true</interfaceOnly>

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -0,0 +1,10 @@
ui.config.cometvisu.autoDownload.label = Auto-hentning
ui.config.cometvisu.autoDownload.description = Hvis du aktiverer denne funktion, vil den aktuelle udgivelse af CometVisu-klient (GNU General Public License v3.0) automatisk blive hentet til din openHAB-server og udpakket i den mappe, du definerede i Filsystem-sti, hvis den ikke findes der.
ui.config.cometvisu.webAlias.label = Browser-sti
ui.config.cometvisu.webAlias.description = Den relative browser-sti, hvor du kan få adgang til klienten, fx http\://<openhab-server>\: 8080/<webAlias>/
ui.config.cometvisu.webFolder.label = Filsystem-sti
ui.config.cometvisu.webFolder.description = Definerer stien til CometVisu klientmappen.
# service
service.ui.cometvisu.label = CometVisu

View File

@ -0,0 +1,10 @@
ui.config.cometvisu.autoDownload.label = Transferência Automática
ui.config.cometvisu.autoDownload.description = Se ativar esta função, a versão atual do cliente CometVisu (GNU General Public License v3.0) será automaticamente descarregada para o seu servidor openHAB e extraído para o diretório definido no sistema de ficheiros, se ainda não tiver sido descarregado.
ui.config.cometvisu.webAlias.label = Caminho do navegador
ui.config.cometvisu.webAlias.description = O caminho relativo do navegador para aceder ao cliente ex\: http\://<openhab-server>\:8080/<webAlias>/
ui.config.cometvisu.webFolder.label = Diretório do sistema de ficheiros
ui.config.cometvisu.webFolder.description = Define o caminho para o diretório do cliente CometVisu.
# service
service.ui.cometvisu.label = CometVisu

View File

@ -477,7 +477,7 @@ components:
additionalProperties:
type: string
ReadResponse:
oneOf:
allOf:
- $ref: '#/components/schemas/DirContent'
DirContent:
type: array

View File

@ -1,11 +1,11 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.openhab.ui.bundles</groupId>
<artifactId>org.openhab.ui.reactor.bundles</artifactId>
<version>4.3.0-SNAPSHOT</version>
<version>5.0.0-SNAPSHOT</version>
</parent>
<artifactId>org.openhab.ui.habot</artifactId>
@ -14,8 +14,8 @@
<dependencies>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<version>1.69</version>
<artifactId>bcprov-jdk18on</artifactId>
<version>1.78.1</version>
</dependency>
<dependency>
<groupId>org.apache.opennlp</groupId>

View File

@ -8,7 +8,7 @@
<bundle>mvn:org.openhab.ui.bundles/org.openhab.ui.habot/${project.version}</bundle>
<bundle>mvn:org.openhab.core.bundles/org.openhab.core.semantics/${project.version}</bundle>
<bundle>mvn:org.openhab.core.bundles/org.openhab.core.io.rest/${project.version}</bundle>
<bundle dependency="true">mvn:org.bouncycastle/bcprov-jdk15on/1.69</bundle>
<bundle dependency="true">mvn:org.bouncycastle/bcprov-jdk18on/1.78.1</bundle>
<bundle dependency="true">mvn:org.apache.opennlp/opennlp-tools/1.9.3</bundle>
<bundle dependency="true">mvn:org.bitbucket.b_c/jose4j/0.7.9</bundle>
</feature>

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

View File

@ -1,5 +1,5 @@
/**
* Copyright (c) 2010-2024 Contributors to the openHAB project
/*
* Copyright (c) 2010-2025 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.

Some files were not shown because too many files have changed in this diff Show More