Make the model picker popup dialog routable (i.e. responds to
browser-native navigation).
Add an icon to item picker to open the model picker instead
of the standard smart select flat list.
Add a new item field & block to Blockly to easily pick an item
from the model with the dialog. Add "shadow" blocks to openHAB
blocks (can be replaced by the user).
Signed-off-by: Yannick Schaus <github@schaus.net>
Related to #394.
Add vue-i18n.
The localized messages are in `@/assets/i18n/{domain}/{locale}.json`,
and are localized by component.
They should be compatible with Crowdin.
They are also referenced in single-file components with this trick:
```
import { loadLocaleMessages } from '@/js/i18n'
export default {
...
i18n: {
messages: loadLocaleMessages(require.context('@/assets/i18n/{domain}'))
}
```
That way they should be code splitted away from the entry point bundle
when their related component is, and they are scoped to that component.
The `common` domain with a few common and home page related messages
are loaded on initialization.
English and French messages are provided, as well as German (to be
proofed!) for the `common` domain.
A footer message is added to the settings & developer tools menu if
the locale has common messages to inform the user that these parts are
not translated yet.
Signed-off-by: Yannick Schaus <github@schaus.net>
This adds a new "expert mode" to the
"Create Equipment from Thing"/"Add Equipment to Model"/
"Create Points from Thing"/"Add Points to Model"
Instead of clicking through the channels and
filling out items, a textual definition will be
generated and put it the "Add Items from
Textual Definition" page. That way, the expert
user can add their items by editing text with the
well-known syntax.
Signed-off-by: Yannick Schaus <github@schaus.net>
* use plain text type as the content is already serialized, also cleanup
the 404 page to avoid querying the rest api without being authorized
closes#509
Signed-off-by: Tobias Bräutigam <tbraeutigam@gmail.com>
* fix tile and remove wrong path from 404 page
Signed-off-by: Tobias Bräutigam <tbraeutigam@gmail.com>
This adds a new oh-repeater to the system library, allowing
to iterate over arbitrary arrays, ranges, or items in a certain
group or having certain tags, with support for filtering and
mapping. The children components in the default slot will be
repeated for each iteration and the current element, along with
the index and source array, will be provided as variables to the
descendants.
Add dayjs to the expression context for powerful date manipulation
and formatting. The default locale will be dynamically loaded
from the current openHAB locale.
The following Day.js plugins are loaded:
- relativeTime
- calendar
- localizedFormat
- isoWeek
- isToday
- isYesterday
- isTomorrow
Other can be added on demand.
Try to find a f7-component relative to the oh-component and merge
their parameters during hinting.
Signed-off-by: Yannick Schaus <github@schaus.net>
Fix#563 - wrong expression completion objects + improve item name completion
Fix#559 - bug with model display when items don't have any metadata (non-semantic)
Fix#553 - delete parameters when unset in config sheet unless in special circumstances
Fix#549 - detect identical channel/channel type labels and adjust item name suggestions accordingly
Fix#543 - proritize channel description to channel type description in channel list
Fix#524 - add Call item type
Fix#490 - Add anyFormat=true to fetch icons - should fix#490Fix#438 - Rename remaining instances of "equipments" in code
Fix problem with cell "on" parameter - reported in: https://community.openhab.org/t/wiki-building-pages-in-the-oh3-ui-documentation-draft-2-3/104392/92
Signed-off-by: Yannick Schaus <github@schaus.net>
This introduces a few functions allowing apps embedding the web UI
in a WebView to interact with them and adjust part of its rendering.
More precisely, the UI will look for an `OHApp` object
(defined in `window`, for instance with `addJavascriptInterface`
for Android apps):
https://developer.android.com/guide/webapps/webview#BindingJavaScript
The `OHApp` object can define the following functions:
- `string preferTheme()`: if present, will be called during the
initialization of the app, will force the theme - unless the user
has made a choice on the About page. These values are allowed:
`auto`, `ios`, `md` (Material Design/Android), `aurora` (desktop);
- `string preferDarkMode()`: if present, will be called during the
initialization of the app, will force the color scheme - unless the
user has made a choice on the About page. These values are
allowed: `auto`, `light`, `dark`;
- `void pinToHome()`: if present, this will show an icon on the home
page which will call this function when tapped;
- `void exitToApp()`: if present, this will show an icon on the home
page which will call this function when tapped. It **replaces** the
"Other Apps" icon showing the right-side panel.
Signed-off-by: Yannick Schaus <github@schaus.net>
Refactored the experimental-grade code with some mixins,
better separated code.
Implements #555:
Allow the home page cards to be customized - reordered, grouped,
and edited, with config & slots and a dedicated editor.
Implements #556:
Add glance badges to the location cards (other types tbd.)
See #556 for the specifications on how to organize your model
to get the badges.
Styling fixes and cleanups.
Signed-off-by: Yannick Schaus <github@schaus.net>
Add a new widgetOrder metadata namespace editor to configure a
*default* index-based widget order. (The cards on the home page
will also feature another, more visual way to influence the order
when they'll be rewritten.)
Expose visible/visibleTo on default widget metadata configuration
pages.
Known bug: counters on home page cards are not accurate when some
items are hidden with visible/visibleTo.
Add a mixin to sort items; use it on cards, model treeview, group
popup, add from model in layout pages.
Close#489.
Fix#533 - wrong call to render properties in location cards.
Fix#498 - make cards routable (has glitches).
(but will be superseded with the cards rewrite).
Fix#542 - allow to unset the options set by the default widget
routines. Fix action name ("analyze" -> "analyzer").
Signed-off-by: Yannick Schaus <github@schaus.net>
Disallow standalone widgets to be selected for list items (close#536).
Allow slight alterations to the default widgets suggested by the system
without reconfiguring it completely: if the metadata value is blank,
assume the default system-suggested widget is to be used and merge the
config found in the metadata.
Closes#534 (since now only the iconUseState option has to be set to
enable dynamic icons for Number items and similar).
Change the metadata namespace selection menu to only display the metadata
which is set in the metadata menu, and use an action sheet to add more.
This also paves the way for user-defined namespaces.
Move the metadata order out of the item edition card in the Model page,
into its own section.
Add metadata editor for the expire namespace
(https://github.com/openhab/openhab-core/issues/1620).
Reorder the sections of the item details page in a more logical manner
(semantic classification below the tags that define it).
Signed-off-by: Yannick Schaus <github@schaus.net>
- Add bulk operations to the things list, allowing to remove,
disable or enable things
- Add bulk operations to the rules/scripts lists, ability to disable
or enable rules & scripts
- Add ability to delete a rule, script or item from its details
page
- Add ability to start checking objects for a bulk operation
("select mode") with Ctrl+click on desktops. Ctrl+click exits the
select mode automatically when the last checked object is deselected.
Closes#512.
Closes#506.
Signed-off-by: Yannick Schaus <github@schaus.net>
Fix#520 - don't evaluate null values, move labels to computed properties
Fix#515 - don't overwrite labels, icons in default representations if set in config
Fix#514 - don't inherit layout page no-gap to rows/cols
Fix#513 - fix icon properties in oh-link, oh-button
Close#508 - display error if incorrect format for rules/scripts UIDs (no hard check)
Fix#505 - incorrect bottom margin in layout editor on Firefox
Close#500 - display current value in oh-slider-item
Close#488 - default to analyze action for dimensionless Number items in some circumstances
Fix#487 - dynamic icons for default list items (only certain item types)
Allow oh-button & oh-link contents to be customized w/ default slot
Allow oh-icon to receive dynamic updates
Fix wrong API Explorer icon in sidebar
Signed-off-by: Yannick Schaus <github@schaus.net>
Allow administrators to open a sidebar with productivity tools that doesn't
get away when navigating around.
The developer sidebar is available from the developer tools menu
or anywhere with the Shift+Alt+D keyboard shortcut, if these two
conditions are met:
1. the user has an administrator role;
2. the width of the screen is >= 1280px.
Fix list index not updating correctly in rules/scripts lists
Fix links sometimes not appearing in item details
Signed-off-by: Yannick Schaus <github@schaus.net>
Fixes#486.
Blockly: add oh_log block, change oh_sendcommand
to oh_event and allow to post updates.
Read-only script editor with lock icon & tooltip
if the script not editable (text-provisioned or Blockly).
Signed-off-by: Yannick Schaus <github@schaus.net>