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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
* 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>
- 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>
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>
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>
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>
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>
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>
- 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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
- 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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
Prevents JavaDoc tooling issues because these tools check comments
starting with `/**`.
Depends on #2987
Signed-off-by: Wouter Born <github@maindrain.net>
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>
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>
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>
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>
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>
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>
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>
This avoids confusion because `background` is not working anymore.
Use `style: background: ` instead.
---------
Signed-off-by: Florian Hotze <dev@florianhotze.com>
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>
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.nbColumnsDesktop.description=Angiver antallet af kolonner, der tages i betragtning, når gitteret fyldes for en stor skærmbredde (desktop).
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.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.
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.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.nbColumnsDesktop.description=Define o número de colunas a considerar ao preencher a grelha para uma grande largura de ecrã (computador).
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.
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.