]> git.proxmox.com Git - proxmox-widget-toolkit.git/log
proxmox-widget-toolkit.git
2 years agoutils: updateColumnWidth: allow overriding tresholdWidth and make that more general
Thomas Lamprecht [Mon, 5 Jul 2021 07:46:58 +0000 (09:46 +0200)]
utils: updateColumnWidth: allow overriding tresholdWidth and make that more general

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoutils: column width handler: drop duplicate
Thomas Lamprecht [Mon, 5 Jul 2021 07:34:32 +0000 (09:34 +0200)]
utils: column width handler: drop duplicate

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoinfo widget: early return from update if text & value stayed the same
Thomas Lamprecht [Sun, 4 Jul 2021 19:59:59 +0000 (21:59 +0200)]
info widget: early return from update if text & value stayed the same

No need then and if we'd call into update we'd still generate new
elements which is annoying for debugging and extra DOM work we can
avoid.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agomarkdown: extend blocked tags in sanitizer
Thomas Lamprecht [Sun, 4 Jul 2021 18:32:37 +0000 (20:32 +0200)]
markdown: extend blocked tags in sanitizer

not all of those are really problematic, but it's always easier to
start out stricter than required and see if any user even would use
those.

It seems that we should probably switch to a white-list approach...

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agomarkdown: make sanitizer more strict
Thomas Lamprecht [Sun, 4 Jul 2021 18:06:26 +0000 (20:06 +0200)]
markdown: make sanitizer more strict

The href, and in some browser also the src attrs on img, or a tags
can be made to execute JS rather easily, catch thoseand just remove
the attr if, after creating an URL object from it, it does not looks
like it's a http(s) request.

Further, filter out the style tag completely, as that can be misused
too, even if only to break cosmetics.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agomarkdown: encode bad nodes HTML instead of pruning it
Thomas Lamprecht [Sun, 4 Jul 2021 17:22:38 +0000 (19:22 +0200)]
markdown: encode bad nodes HTML instead of pruning it

As pruning means content an user wrote into the box, even if with
malicious intend, gets hidden and that can be quite confusing..

So rather get the outerHTML, transform it with ExtJS's htmlEncode and
set it again.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agonode: repos: handle that components can be undefined
Thomas Lamprecht [Sun, 4 Jul 2021 17:09:42 +0000 (19:09 +0200)]
node: repos: handle that components can be undefined

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agobump version to 3.2-2
Thomas Lamprecht [Sat, 3 Jul 2021 14:34:47 +0000 (16:34 +0200)]
bump version to 3.2-2

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agonode: repo: use more stati-schema like code style to configure store
Thomas Lamprecht [Sat, 3 Jul 2021 14:34:38 +0000 (16:34 +0200)]
node: repo: use more stati-schema like code style to configure store

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agonode: repo: use more stati-schema like code style to set grouping feature
Thomas Lamprecht [Sat, 3 Jul 2021 14:21:17 +0000 (16:21 +0200)]
node: repo: use more stati-schema like code style to set grouping feature

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agonode: repo: avoid using IDs on elements, as that breaks easily on clusters
Thomas Lamprecht [Sat, 3 Jul 2021 14:06:14 +0000 (16:06 +0200)]
node: repo: avoid using IDs on elements, as that breaks easily on clusters

Anything where more instances can exist, even if only for a very
short time, must NOT use `id` as that needs to be unique in all
current instances of components/elements of the whole gui.

Here it broke most of the gui when switching between node, as the new
nodes repo gui was instantiated before the old ones was completely
destroyed, so there where (at least) two elements with the same id ->
💥 boom.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agobump version to 3.2-1
Thomas Lamprecht [Fri, 2 Jul 2021 22:12:38 +0000 (00:12 +0200)]
bump version to 3.2-1

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agonode: repo: health: drop br line-breaks, replaced by flex display
Thomas Lamprecht [Fri, 2 Jul 2021 22:09:07 +0000 (00:09 +0200)]
node: repo: health: drop br line-breaks, replaced by flex display

Firefox ignores them anyway but chrome adds them additionally, making
it look rather weird..

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoui: repo status: adapt some warning/error gettexts
Thomas Lamprecht [Fri, 2 Jul 2021 21:59:56 +0000 (23:59 +0200)]
ui: repo status: adapt some warning/error gettexts

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoui: repo status: do not duplicate warning to health icon
Thomas Lamprecht [Fri, 2 Jul 2021 21:58:24 +0000 (23:58 +0200)]
ui: repo status: do not duplicate warning to health icon

It feels quite weird to have the last warning text duplicated, the
left health icon should be a very concise summary only.

allow one to force it by setting important, but that's not yet used
anywhere.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agofixup! ui: repo status: code cleanup/refactoring
Thomas Lamprecht [Fri, 2 Jul 2021 21:58:02 +0000 (23:58 +0200)]
fixup! ui: repo status: code cleanup/refactoring

2 years agoui: repo status: adapt flex-ratio and center health vertically
Thomas Lamprecht [Fri, 2 Jul 2021 21:57:20 +0000 (23:57 +0200)]
ui: repo status: adapt flex-ratio and center health vertically

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agocss: add centered-flex-column class
Thomas Lamprecht [Fri, 2 Jul 2021 21:56:19 +0000 (23:56 +0200)]
css: add centered-flex-column class

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoui: repo status: code cleanup/refactoring
Thomas Lamprecht [Fri, 2 Jul 2021 21:12:53 +0000 (23:12 +0200)]
ui: repo status: code cleanup/refactoring

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoadd OpenID icon
Thomas Lamprecht [Fri, 2 Jul 2021 19:58:09 +0000 (21:58 +0200)]
add OpenID icon

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agonode/APTRepositories: improve error/warning display
Dominik Csapak [Fri, 2 Jul 2021 14:27:15 +0000 (16:27 +0200)]
node/APTRepositories: improve error/warning display

always show grid besides status, with the accumulated
stati/warnings/errors

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agonode/APTRepositories: rework top status and error grid
Dominik Csapak [Fri, 2 Jul 2021 10:48:59 +0000 (12:48 +0200)]
node/APTRepositories: rework top status and error grid

instead of having a title bar and a seperate error grid,
add an always visible panel that displays the status (ok, warning, errors)
which also contains the error grid (if necessary, ala ceph summary)

this makes the panel more consistent to use and it is immediatly
visible if something is wrong

this also adds a test for the 'test' repositories, as well as a test
for not correctly configured suites

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agoUtils: add get_health_icon from PVE
Dominik Csapak [Fri, 2 Jul 2021 10:48:58 +0000 (12:48 +0200)]
Utils: add get_health_icon from PVE

we'll need it here too

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agoutils: followup: fix base class
Thomas Lamprecht [Fri, 2 Jul 2021 13:17:47 +0000 (15:17 +0200)]
utils: followup: fix base class

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoui: Utils: refactor userid parsing to Utils
Thomas Lamprecht [Fri, 2 Jul 2021 13:06:25 +0000 (15:06 +0200)]
ui: Utils: refactor userid parsing to Utils

Originally-by: Dominik Csapak <d.csapak@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoutils: add getOpenIDRedirectionAuthorization: to avoid code-duplication
Thomas Lamprecht [Fri, 2 Jul 2021 11:53:11 +0000 (13:53 +0200)]
utils: add getOpenIDRedirectionAuthorization: to avoid code-duplication

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agocss: fix debian openlogo background-size for chrom* based browsers
Thomas Lamprecht [Fri, 2 Jul 2021 07:16:41 +0000 (09:16 +0200)]
css: fix debian openlogo background-size for chrom* based browsers

The debian one higher than wide and it seems, contrary to my belief,
the background-size is not taken for both, height and width if only
one param is set, but rather the second paramet height then defaults
to `auto` which Firefox and Chromium handle different in this case.

Set both to make this fixed.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agofixup comment
Thomas Lamprecht [Fri, 2 Jul 2021 06:09:37 +0000 (08:09 +0200)]
fixup comment

forgot to save in vim when editing the comment before committing..

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agonode: repo: highlight proxmox repos that are not producition-ready
Thomas Lamprecht [Thu, 1 Jul 2021 16:38:04 +0000 (18:38 +0200)]
node: repo: highlight proxmox repos that are not producition-ready

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agonode: repos: fix reversed validation on configured
Thomas Lamprecht [Thu, 1 Jul 2021 08:49:25 +0000 (10:49 +0200)]
node: repos: fix reversed validation on configured

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoapt repos: use correct URL
Fabian Ebner [Thu, 1 Jul 2021 07:53:59 +0000 (09:53 +0200)]
apt repos: use correct URL

so there is a 'result' property, which the window expects.

Suggested-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
2 years agonode: repos: fix add repo validator
Thomas Lamprecht [Thu, 1 Jul 2021 08:43:10 +0000 (10:43 +0200)]
node: repos: fix add repo validator

isValid is a boolean not a callback, so won't really work and just
set the state once.

Use the `validator` and first call into the parents helper, then do
our logic and return a string  with an explanation in the expected
invalid case.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agonode: repos: fallback to "Other" for unknown origin
Thomas Lamprecht [Wed, 30 Jun 2021 19:58:29 +0000 (21:58 +0200)]
node: repos: fallback to "Other" for unknown origin

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agonode: repos: use warning, not critical for suite-errors if disabled
Thomas Lamprecht [Wed, 30 Jun 2021 19:47:53 +0000 (21:47 +0200)]
node: repos: use warning, not critical for suite-errors if disabled

As in that case it's actually safe, so rather show as warning, albeit
even info/notice like would probably be enough, but still, it is not
a configuration that is wanted permanently.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agonode: repos: fade text of disabled rows
Thomas Lamprecht [Wed, 30 Jun 2021 19:47:20 +0000 (21:47 +0200)]
node: repos: fade text of disabled rows

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agonode: repos: increase width of add-repo window + style cleanup
Thomas Lamprecht [Wed, 30 Jun 2021 19:46:10 +0000 (21:46 +0200)]
node: repos: increase width of add-repo window + style cleanup

We have some longer descriptions so the default width looks crammed.

Also, avoid a intermediate variable which is only used once without
any change.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoAPTRepositories: remove unecessary selection model
Dominik Csapak [Wed, 30 Jun 2021 15:14:59 +0000 (17:14 +0200)]
APTRepositories: remove unecessary selection model

this is the default anyway, no reason to explicitely create it

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agoAPTRepositories: make the Suites warnings inline errors
Dominik Csapak [Wed, 30 Jun 2021 15:14:58 +0000 (17:14 +0200)]
APTRepositories: make the Suites warnings inline errors

by iterating only once over the info array and adding them directly
to the records this way we can avoid iterating over the records
again

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agoAPTRepositories: change updating button text/state to viewcontroller
Dominik Csapak [Wed, 30 Jun 2021 15:14:57 +0000 (17:14 +0200)]
APTRepositories: change updating button text/state to viewcontroller

we already have a viewmodel we can use, and so the handler does
not have to navigate the component tree up/down

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agoAPTRepositories: make panel scrollable
Dominik Csapak [Wed, 30 Jun 2021 15:14:56 +0000 (17:14 +0200)]
APTRepositories: make panel scrollable

so that it is still usable with many errors and/or repositories

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agoAPTRepositories: change separation style between panels
Dominik Csapak [Wed, 30 Jun 2021 15:14:55 +0000 (17:14 +0200)]
APTRepositories: change separation style between panels

having double borders does not look so nice, separate them with a bit
of padding

also change the warning panel to a simple header

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agonode: repos: render Origin logo for Debian & Proxmox
Thomas Lamprecht [Wed, 30 Jun 2021 19:26:18 +0000 (21:26 +0200)]
node: repos: render Origin logo for Debian & Proxmox

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agonode: apt: spawn a window for adding repository
Fabian Ebner [Wed, 30 Jun 2021 15:07:54 +0000 (17:07 +0200)]
node: apt: spawn a window for adding repository

Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
2 years agocss: increase padding for Debian and Proxmox symbol logos
Thomas Lamprecht [Wed, 30 Jun 2021 19:21:25 +0000 (21:21 +0200)]
css: increase padding for Debian and Proxmox symbol logos

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoimages: use svgcleaner to reduce logo SVG sizes
Thomas Lamprecht [Wed, 30 Jun 2021 18:30:31 +0000 (20:30 +0200)]
images: use svgcleaner to reduce logo SVG sizes

Used svgcleaner[0] with the following safe[1] command:

```
svgcleaner INPUT.svg OUTPUT.svg --indent 1 --resolve-use no \
 --convert-shapes no --group-by-style no --join-arcto-flags no \
 --join-style-attributes no --remove-comments no --remove-declarations no \
 --remove-invisible-elements no --remove-metadata no \
 --remove-nonsvg-attributes no --remove-nonsvg-elements no \
 --remove-text-attributes no --remove-title no \
 --remove-unreferenced-ids no --trim-ids no --ungroup-groups no \
 --list-separator comma
```

Resulting size reductions:

Debian   22.51% smaller
Proxmox  51.00% smaller

Note that the Debian one had a small issue with a unused variable set
which I reported[2] and cleaned up manually for now.

[0]: https://github.com/RazrFalcon/svgcleaner
[1]: https://commons.wikimedia.org/wiki/User:JoKalliauer/Optimization#svgcleaner
[2]: https://github.com/RazrFalcon/svgcleaner/issues/240

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoadd Debian and Proxmox symbol logos and css
Thomas Lamprecht [Wed, 30 Jun 2021 16:24:45 +0000 (18:24 +0200)]
add Debian and Proxmox symbol logos and css

also add a new 'pmx-itype-icon' helper class for the classic bg
repeat/position option to allow more easier reuse

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agonode: services: fix logic for displaying unit state
Thomas Lamprecht [Wed, 30 Jun 2021 19:21:55 +0000 (21:21 +0200)]
node: services: fix logic for displaying unit state

still hacky but at least works now ;-)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agobuildsys: do not install css or images with executable flag
Thomas Lamprecht [Wed, 30 Jun 2021 13:20:20 +0000 (15:20 +0200)]
buildsys: do not install css or images with executable flag

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agocss: some markdown heading and paragraph font-size & padding tuning
Thomas Lamprecht [Wed, 30 Jun 2021 12:21:50 +0000 (14:21 +0200)]
css: some markdown heading and paragraph font-size & padding tuning

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoapt repositories: replace OfficialHost with Origin
Fabian Ebner [Wed, 30 Jun 2021 10:20:19 +0000 (12:20 +0200)]
apt repositories: replace OfficialHost with Origin

to adapt to the new backend behavior.

Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
2 years agoadd basic .gitignore
Thomas Lamprecht [Tue, 29 Jun 2021 10:21:06 +0000 (12:21 +0200)]
add basic .gitignore

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agobump version to 3.1-4
Thomas Lamprecht [Mon, 28 Jun 2021 17:14:50 +0000 (19:14 +0200)]
bump version to 3.1-4

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agonode tasks: fixup overly-short comment lengths
Thomas Lamprecht [Mon, 28 Jun 2021 14:19:38 +0000 (16:19 +0200)]
node tasks: fixup overly-short comment lengths

The minimum "max length" should be 80cc, and 100cc is also fine.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agonode/Tasks: merge improvements from PBS and make it more generic
Dominik Csapak [Thu, 24 Jun 2021 07:16:16 +0000 (09:16 +0200)]
node/Tasks: merge improvements from PBS and make it more generic

this copies most of the task grid from pbs, but adds handling so that
users can add aribtrary filter fields

the filter fields always present are:
* since
* until
* task type
* task status

other filters fields can be added by giving an 'extraFilter' array
which must contain widget definitions that emit a 'change' event.
this is then used to update the filters for the api call

also you can add a 'preFilter' object, that sets the filter parameter
only once at the beginning

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agocbind mixin: also descend in elements with an cbind property
Thomas Lamprecht [Fri, 25 Jun 2021 06:42:39 +0000 (08:42 +0200)]
cbind mixin: also descend in elements with an cbind property

Not only into those with an xtype one, as we can either have a
implicit default xtype (e.g., in tbars for buttons, or set explicitly
via the `defaults` mechanism) or want to apply cbinds to stores or
other objects.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agobump version to 3.1-3
Thomas Lamprecht [Wed, 23 Jun 2021 21:11:46 +0000 (23:11 +0200)]
bump version to 3.1-3

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoapt repos: move Official to the right & use checkbox to render enabled
Thomas Lamprecht [Wed, 23 Jun 2021 17:57:30 +0000 (19:57 +0200)]
apt repos: move Official to the right & use checkbox to render enabled

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoapt repos: add product config-option and rework warning renderer
Thomas Lamprecht [Wed, 23 Jun 2021 17:42:08 +0000 (19:42 +0200)]
apt repos: add product config-option and rework warning renderer

product defaults to PVE. It is added in the warnings and should be
set by any instance correctly.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoapt repos: make add-repo a checked command
Thomas Lamprecht [Wed, 23 Jun 2021 17:40:54 +0000 (19:40 +0200)]
apt repos: make add-repo a checked command

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoapt repos: style grouping headers a bit different
Thomas Lamprecht [Wed, 23 Jun 2021 17:39:46 +0000 (19:39 +0200)]
apt repos: style grouping headers a bit different

else the repo/header difference is not that big, and it gets a bit
hard to read as it feels a bit monotonic

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoapt repos: make enable/disable text selection dependent
Thomas Lamprecht [Wed, 23 Jun 2021 17:38:29 +0000 (19:38 +0200)]
apt repos: make enable/disable text selection dependent

the size hack is copied over from pve-manager's qemu/HardwareView

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoapt repos: code/format cleanups
Thomas Lamprecht [Wed, 23 Jun 2021 17:00:57 +0000 (19:00 +0200)]
apt repos: code/format cleanups

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoadd buttons for add/enable/disable
Fabian Ebner [Wed, 23 Jun 2021 13:39:00 +0000 (15:39 +0200)]
add buttons for add/enable/disable

Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
2 years agoadd UI for APT repositories
Fabian Ebner [Wed, 23 Jun 2021 13:38:59 +0000 (15:38 +0200)]
add UI for APT repositories

Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
2 years agonode/services: show masked and some unknown units as disabled (greyed out)
Thomas Lamprecht [Wed, 23 Jun 2021 13:55:00 +0000 (15:55 +0200)]
node/services: show masked and some unknown units as disabled (greyed out)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agonode/services: disable start/stop for masked and unknown units-states
Thomas Lamprecht [Wed, 23 Jun 2021 13:54:17 +0000 (15:54 +0200)]
node/services: disable start/stop for masked and unknown units-states

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agonode/services: optionally show unit/active states
Thomas Lamprecht [Wed, 23 Jun 2021 13:53:29 +0000 (15:53 +0200)]
node/services: optionally show unit/active states

show unit state by default for PVE, with a bit of an hack

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agonode/service view: code cleanups
Thomas Lamprecht [Tue, 22 Jun 2021 12:39:29 +0000 (14:39 +0200)]
node/service view: code cleanups

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agopanel/JournalView: fix flickering in journal livemode
Dominik Csapak [Tue, 22 Jun 2021 09:57:25 +0000 (11:57 +0200)]
panel/JournalView: fix flickering in journal livemode

it seems that something changed in extjs 7 which does not quite
restore the correct scroll position when the identical content is set
on a component. this means that sometimes, we update the text
with the identical one, but the scroll position is now off, only
to scroll back to the bottom

this causes a flickering everytime we do the api call.

instead, only update the component when the content really changed.

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agocss: markdown: add some nicer blockquote styling
Thomas Lamprecht [Mon, 21 Jun 2021 16:08:06 +0000 (18:08 +0200)]
css: markdown: add some nicer blockquote styling

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoparser: sanitize HTML: allow 'disabled', 'start', 'type' and 'checked' attributes
Thomas Lamprecht [Mon, 21 Jun 2021 15:37:27 +0000 (17:37 +0200)]
parser: sanitize HTML: allow 'disabled', 'start', 'type' and 'checked' attributes

This makes check box lists like the following snipped work:

- [X] Done
- [ ] not done

Further allow the start attr, sometimes generated for ordered lists.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agocss: markdown: add some nicer table styling
Thomas Lamprecht [Mon, 21 Jun 2021 14:24:27 +0000 (16:24 +0200)]
css: markdown: add some nicer table styling

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agobump version to 3.1-2
Thomas Lamprecht [Fri, 18 Jun 2021 13:32:31 +0000 (15:32 +0200)]
bump version to 3.1-2

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agointegrate marked as markdown parser
Thomas Lamprecht [Fri, 18 Jun 2021 12:57:20 +0000 (14:57 +0200)]
integrate marked as markdown parser

Define our own, rather minimal interface so that we change the parser
under the hood if ever needed, I already did so once during
evaluating this, as first I checked out Snarkdown[0], which is really
nice for the few lines of code it needs, but is a bit to limited for
the use case.

Currently marked[1] is used, provided by the libjs-marked Debian
package.

For now statically link the marked parser in on built time to avoid
the need to add new directories to serve in our pve/pmg/pbs proxies.
This is a bit ugly but can be cleaned up afterwards transparently
too.

We sanitize the produced HTML ourselves (most MD JS parser/renderer
don't do that) by creating a real, but not active, DOM tree and
recursively prune bad nodes/attrs from it and let it spit out HTML
again at the end. While a tad inefficient it really won't matter for
our use case, as the notes/comments we render are only a few KiB of
text and it's done on the client side anyway.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agod/copyright: mark license explicitly and indent like machine readable format
Thomas Lamprecht [Fri, 18 Jun 2021 13:18:11 +0000 (15:18 +0200)]
d/copyright: mark license explicitly and indent like machine readable format

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoui: network: add columns for vlan-id and vlan-raw-device
Aaron Lauterer [Mon, 12 Apr 2021 13:14:37 +0000 (15:14 +0200)]
ui: network: add columns for vlan-id and vlan-raw-device

Signed-off-by: Aaron Lauterer <a.lauterer@proxmox.com>
2 years agobuildsys: change upload dist to bullseye
Thomas Lamprecht [Tue, 8 Jun 2021 07:46:54 +0000 (09:46 +0200)]
buildsys: change upload dist to bullseye

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agocombo grid: load: rework auto-selection and validity logic
Thomas Lamprecht [Mon, 7 Jun 2021 16:03:25 +0000 (18:03 +0200)]
combo grid: load: rework auto-selection and validity logic

We do not want to trigger an autoSelect if there's a value set, even
if it isn't found in the store, as that hides the fact that an (now)
invalid valid is configured from the user, which can be confusing if
something is not working, as when editing an object it seems like a
valid value is selected.

Further, if a value is set we mark the field as invalid from the
start, at least if it's neither disabled nor allowed to have a
value which is does not exists in the backing store.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agocombo grid: reformat/place comment
Thomas Lamprecht [Mon, 7 Jun 2021 16:02:08 +0000 (18:02 +0200)]
combo grid: reformat/place comment

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agobump version to 3.1-1
Thomas Lamprecht [Wed, 2 Jun 2021 14:18:37 +0000 (16:18 +0200)]
bump version to 3.1-1

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agopanel: disks: more static task window creation
Thomas Lamprecht [Wed, 2 Jun 2021 14:26:43 +0000 (16:26 +0200)]
panel: disks: more static task window creation

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agobuildsys: cleanup variable names/grouping
Thomas Lamprecht [Wed, 2 Jun 2021 14:10:58 +0000 (16:10 +0200)]
buildsys: cleanup variable names/grouping

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agobuildsys: enforce eslint for api-viewer
Thomas Lamprecht [Wed, 2 Jun 2021 14:10:31 +0000 (16:10 +0200)]
buildsys: enforce eslint for api-viewer

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoapi-viewer: eslint fixes, code cleanups
Thomas Lamprecht [Wed, 2 Jun 2021 14:08:32 +0000 (16:08 +0200)]
api-viewer: eslint fixes, code cleanups

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoapi-viewer: drop unused clicmdhash
Thomas Lamprecht [Wed, 2 Jun 2021 14:08:06 +0000 (16:08 +0200)]
api-viewer: drop unused clicmdhash

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoapi viewer: rename gloabl schema variable and tell eslint about it
Thomas Lamprecht [Wed, 2 Jun 2021 12:46:32 +0000 (14:46 +0200)]
api viewer: rename gloabl schema variable and tell eslint about it

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoapi viewer: eslint (auto) fixes + slight cleanup
Thomas Lamprecht [Wed, 2 Jun 2021 12:43:51 +0000 (14:43 +0200)]
api viewer: eslint (auto) fixes + slight cleanup

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agodon't shout: s/APIVIEWER/APIViewer/
Thomas Lamprecht [Wed, 2 Jun 2021 12:43:13 +0000 (14:43 +0200)]
don't shout: s/APIVIEWER/APIViewer/

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agoadd proxmox-widget-toolkit-dev package
Dominik Csapak [Fri, 28 May 2021 12:13:41 +0000 (14:13 +0200)]
add proxmox-widget-toolkit-dev package

used for various other packages to dev-depend on (e.g. pve-docs)
which only contains the Toolkit.js for now

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agoadd api-viewer source
Dominik Csapak [Fri, 28 May 2021 12:13:40 +0000 (14:13 +0200)]
add api-viewer source

so that we can reuse it across products
source was 'pbs' since that had the most features (http upgrade check)

a few changes to combine pve/pbs/pmg:
* use an optional 'cliusage' function it it exists to determine CLI usage
* check allowtoken for undefined to see if it is allowed or not
* use 'pmxapi' instead of pbs/pmg/pveapi
* rename all occurrences of 'pve' to 'pmx'

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agoToolkit: move defaultDownloadServerUrl override to panel/RRDChart
Dominik Csapak [Fri, 28 May 2021 12:13:39 +0000 (14:13 +0200)]
Toolkit: move defaultDownloadServerUrl override to panel/RRDChart

not all users of Toolkit.js have the charts lib loaded, which means
the class does not exist then.

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agodisk list: add wipe disk button
Fabian Ebner [Fri, 23 Apr 2021 10:14:59 +0000 (12:14 +0200)]
disk list: add wipe disk button

which shows a confirm dialog with the most relevant information before actually
issuing the API call.

Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
2 years agodisk list: move title bar initialization to initComponent
Fabian Ebner [Fri, 23 Apr 2021 10:14:58 +0000 (12:14 +0200)]
disk list: move title bar initialization to initComponent

to conditionally add more buttons later on.

Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
2 years agobuildsys: touch incremental-lint in check target to avoid triggering twice
Thomas Lamprecht [Fri, 28 May 2021 08:40:19 +0000 (10:40 +0200)]
buildsys: touch incremental-lint in check target to avoid triggering twice

Without this the check and the, through the 'install' target
triggered, incremental lint target triggered a full eslint run.

Makes it similar to what PBS did from the beginning of eslint
inclusion..

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 years agopanel/RRDChart: fix animation settings for highlight/marker
Dominik Csapak [Thu, 27 May 2021 13:15:58 +0000 (15:15 +0200)]
panel/RRDChart: fix animation settings for highlight/marker

in extjs 7.0, the marker does not have the 'fx' property anymore,
but the now documented 'animation' property does not work as it seems.

instead set the animation settings directly on the chart. The only
downside is that this is now for *all* animations, not only the
fade in of the highlight. (the default duration is 500ms)

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agoToolkit: remove Datepicker fix
Dominik Csapak [Wed, 26 May 2021 08:58:39 +0000 (10:58 +0200)]
Toolkit: remove Datepicker fix

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agoToolkit: remove textarea fix
Dominik Csapak [Wed, 26 May 2021 08:58:38 +0000 (10:58 +0200)]
Toolkit: remove textarea fix

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agoToolkit: remove pie chart fix
Dominik Csapak [Wed, 26 May 2021 08:58:37 +0000 (10:58 +0200)]
Toolkit: remove pie chart fix

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agoToolkit: remove firefox touchscreen override
Dominik Csapak [Wed, 26 May 2021 08:58:36 +0000 (10:58 +0200)]
Toolkit: remove firefox touchscreen override

seems to be fixed, at least i could not reproduce here.
If users report this again, we can still revert it if necessary.

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 years agoToolkit: update focusJump override
Dominik Csapak [Wed, 26 May 2021 08:58:35 +0000 (10:58 +0200)]
Toolkit: update focusJump override

upstream code changed a bit, update to current version

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>