Commit Graph

456 Commits

Author SHA1 Message Date
Dominik Csapak c67b1fa72f syncjob: change worker type for sync jobs
'sync' is used for manually pulling a remote datastore
changing it for a scheduled sync to 'syncjob' so that we can
differentiate between both types of syncs

this also adds a seperate task description for it

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2020-05-29 11:28:04 +02:00
Dominik Csapak f5d00373f3 ui: add missing comment field to remote model
when using a diffstore, we have to add all used columns to the model,
else they will not refresh on a load

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2020-05-29 11:17:15 +02:00
Dietmar Maurer c6887a8a4d remote config gui: add comment field 2020-05-29 06:46:56 +02:00
Dietmar Maurer 947f45252d www/ServerStatus.js: use term "IO wait" for CPU iowait
Because we already use "IO delay" for the storage statistics.
2020-05-29 06:12:49 +02:00
Dietmar Maurer c94e1f655e rrd stats: improve io delay stats 2020-05-28 19:12:13 +02:00
Thomas Lamprecht 6161ac18a4 ui: remotes: fix remote remove buttons base url
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-05-28 17:29:54 +02:00
Dominik Csapak 6bba120d14 ui: fix RemoteEdit password change
we have to remove the password from the submitvalues if it did not
change

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2020-05-28 17:24:06 +02:00
Dietmar Maurer 91e5bb49f5 src/bin/proxmox-backup-proxy.rs: simplify code
and gather all stats for the root disk
2020-05-28 12:30:54 +02:00
Dietmar Maurer 4bf26be3bb www/DataStoreStatistic.js: add transfer rate 2020-05-28 10:20:29 +02:00
Thomas Lamprecht ed216fd773 ui: acl view: only update if component is activated
Avoid triggering non-required background updates during browsing a
datastores content or statistics panels. They're not expensive, but I
do not like such behavior at all (having traveled with trains and
spotty network to often)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-05-26 18:58:21 +02:00
Thomas Lamprecht 0f13623443 ui: tasks: add sync description+
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-05-26 18:36:58 +02:00
Thomas Lamprecht dbd959d43f ui: tasks: render reader with full info
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-05-26 18:36:58 +02:00
Thomas Lamprecht f68ae22cc0 ui: factor out render_datetime_utc
will be reused in the next patch

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-05-26 18:36:48 +02:00
Thomas Lamprecht 06c3dc8a8e ui: task: improve rendering of backup/prune worker entries
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-05-26 13:37:57 +02:00
Thomas Lamprecht 26956d73a2 ui: datastore prune: remove debug logging
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-05-26 12:50:06 +02:00
Thomas Lamprecht 3f98b34705 ui: rework datastore content panel controller
Mostly refactoring, but actually fixes an issue where one seldom run
into a undefined dereference due to the store onLoad callback getting
triggered after some of the componet was destroyed - on quick
switching through the datastores.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-05-26 12:46:48 +02:00
Dominik Csapak 12710fd3c3 ui: add missing monStoreErrors
to actually show api errors on the list call

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2020-05-26 12:38:57 +02:00
Dominik Csapak 9e2a4653b4 ui: add crud for remotes
listing/adding/editing/removing

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2020-05-26 12:38:39 +02:00
Dietmar Maurer 1a0d3d11d2 src/api2/admin/datastore.rs: add rrd api 2020-05-26 12:26:14 +02:00
Dominik Csapak bfa0146c00 ui: acls: include roleid into id and sort by it
this fixes missing acls on the gui

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2020-05-26 08:49:59 +02:00
Dietmar Maurer 880fa939d1 gui: move system stat RRDs to ServerStatus panel. 2020-05-26 07:33:00 +02:00
Thomas Lamprecht 8277f4ace5 ui: navigation: sort datastores entries
adding a new one after load will append it still at the end, though.
But datastores are not something which get frequently added after
initial setup, so don't care about that for now..

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-05-25 19:46:47 +02:00
Thomas Lamprecht 9b1aa424b9 ui: add some task log description mappings
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-05-25 19:06:52 +02:00
Thomas Lamprecht fef2b3e04c css: fix load mask background image path
We're not using the exact same paths as in PVE/PMG here.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-05-25 18:41:14 +02:00
Thomas Lamprecht 7cebe5a1f4 ui: system config: reorder big panel to bottom
Gives a better look and feel if the flex'd big panel is at the bottom

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-05-25 16:41:54 +02:00
Thomas Lamprecht dda246403c ui: index: load widget toolkit CSS
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-05-25 15:44:39 +02:00
Dietmar Maurer d8dc281992 www/DataStoreStatus.js: display loadavg stats 2020-05-25 11:54:15 +02:00
Dietmar Maurer 3e930f2bdc www/DataStoreStatus.js: display root disk stats 2020-05-25 11:34:24 +02:00
Dietmar Maurer c1b24fbf0b www/DataStoreStatus.js: display swap stats 2020-05-25 10:39:54 +02:00
Dietmar Maurer a608806f65 www/DataStoreStatus.js: display netin/netout 2020-05-24 19:02:35 +02:00
Dietmar Maurer a4a3f7ca5e rrd: pack multiple rrd values into th estat list 2020-05-23 14:03:44 +02:00
Dietmar Maurer ba1c249eec www/DataStoreStatus.js: add test for RRD api 2020-05-23 11:52:26 +02:00
Dominik Csapak 51c63475e1 ui: add '.' to path regex
since we use the path for datastore ids, which can contain a '.'

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2020-05-20 16:33:26 +02:00
Dominik Csapak c0ac207453 ui: add ACL panel to datastores
by introducing a datastorepanel (a TabPanel) which holds the content
and acl panel for now.

to be able to handle this in the router, we have to change the logic
of how to select the datastore from using the subpath to putting it
into the path (and extracting it when necessary)

if we need this again (e.g. possibly for remotes), we can further
refactor this logic to be more generic

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2020-05-20 13:27:13 +02:00
Dietmar Maurer ee1458b61d fixup 2020-05-20 13:27:13 +02:00
Dominik Csapak 0542cfdf4f ui: add ACL panel to Configuration
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2020-05-20 13:23:00 +02:00
Dominik Csapak 2072aeaee6 ui: add UserSelector
this has to be different from pve for now, since the default of
'enabled' is reverted (pve: default disabled, pbs: default enabled)

if we decide to change this either here or in pve, we can refactor
it to the widget-toolkit

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2020-05-20 13:22:01 +02:00
Dominik Csapak 88acc86129 ui: add UserManagement panel
to add/edit users

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2020-05-19 09:34:41 +02:00
Dominik Csapak 1d8ef0dcf7 ui: use Logo/RealmComboBox from widget-toolkit
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2020-05-19 09:34:19 +02:00
Dietmar Maurer 7b22acd0c2 src/config/network.rs: make it compatible with pve
and depend on proxmox 0.1.26
2020-05-07 09:28:25 +02:00
Dietmar Maurer e325dbd4a3 www/Dashboard.js: fix status url 2020-04-30 12:58:41 +02:00
Dietmar Maurer ecb53af6d9 add ServerStatus.js GUI with Reboot and Shutdown buttons 2020-04-30 12:12:20 +02:00
Dietmar Maurer ebe556d0e7 www/DataStoreStatus.js: define Model for datastorte list
We want to use the admin/datastore api (instead of config/datastore),
to get the restricted list of datastores.
2020-04-30 06:50:45 +02:00
Dominik Csapak f9e3b1104e change index to templates using handlebars
using a handlebars instance in ApiConfig, to cache the templates
as long as possible, this is currently ok, as the index template
can only change when the whole package changes

if we split this in the future, we have to trigger a reload of
the daemon on gui package upgrade (so that the template gets reloaded)

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2020-04-29 17:05:53 +02:00
Dietmar Maurer acb428cdec add DataStoreStatus.js dummy 2020-04-29 11:22:05 +02:00
Dietmar Maurer de1f8f1d36 Revert "gui: display DataStoreConfig above DataStoreContent"
This reverts commit 555dfe7b8e.
2020-04-29 11:09:35 +02:00
Dietmar Maurer 9abcae1b0e gui: improve login view (use realms) 2020-04-09 13:37:14 +02:00
Dietmar Maurer d16122cd87 gui: preview prune selection 2020-04-01 14:14:44 +02:00
Dominik Csapak 5b5ca60a07 fix 'keep-monthly' field name
else the backend complains about a non-existant parameter

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2020-03-31 08:46:52 +02:00
Dietmar Maurer aeee4329b0 gui - DataStoreContent: avoid useless icons, display file path 2020-03-26 18:01:04 +01:00
Dietmar Maurer 5f44899207 gui - DataStoreContent: move control code into controller (cleanup) 2020-03-26 17:23:51 +01:00
Dietmar Maurer b1127fd0d0 gui: add prune dialog 2020-03-26 13:23:28 +01:00
Dietmar Maurer 3383973532 gui: cleanup DataStoreContent.js 2020-03-26 11:17:15 +01:00
Dietmar Maurer 555dfe7b8e gui: display DataStoreConfig above DataStoreContent 2020-03-26 08:38:35 +01:00
Dietmar Maurer e8f0ad19af gui: use a tree panel for DataStoreContent 2020-03-25 15:17:28 +01:00
Dominik Csapak 66b4593b04 fix typo
s/Nuber/Number/
s/backups/Backups/

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2020-03-17 16:13:54 +01:00
Dietmar Maurer 58e1051bc9 DataStoreContent.js - render_backup_type: use better default 2019-12-22 11:09:30 +01:00
Dietmar Maurer 0771c57b87 DataStoreContent.js: use rowexpander plugin to display files 2019-12-22 11:06:03 +01:00
Dietmar Maurer 507c39c595 DataStoreContent.js: show backup groups (instead of snapshots). 2019-12-22 10:43:57 +01:00
Dietmar Maurer bc9c306c13 NavigationTree.js: use other iconCls for datastores 2019-12-22 09:56:21 +01:00
Thomas Lamprecht f1baa7f4fc ui: ds content: add reload button, use view controller
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-12-20 17:17:44 +01:00
Thomas Lamprecht d9c38ddc1b ui: datastore content: add size column
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-12-20 17:04:45 +01:00
Thomas Lamprecht 9d4ebe3dfe ui: datastore content: refactor to more schematic definition
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-12-20 17:03:28 +01:00
Thomas Lamprecht ed61472b36 ui: datastore content: render timestamp
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-12-20 15:59:14 +01:00
Dietmar Maurer ca23a97f0e add datastore content panel 2019-12-20 12:47:04 +01:00
Thomas Lamprecht bca9093520 api/ui: datastore: allow to set simple comment
for now forbid all control characters[0] in the comment value, the
section config writer cannot cope with newlines in the value, it
writes them out literally, allowing "injection" or breaking the whole
config.

In the webinterface use also a textfield, not a textarea.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-12-19 17:58:01 +01:00
Thomas Lamprecht e88e3c3a35 ui: datastore: minor UX improvements and whitepsace cleanup
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-12-19 17:44:20 +01:00
Thomas Lamprecht e9af5b4a29 ui: do *not* close panel when triggering datastore GC
this broke the view, let the panel disappear until one switched to
another and back again, let's just no close main-view panels :)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-12-19 17:42:33 +01:00
Thomas Lamprecht d649e17eb7 ui: use fa-archive symbol for datastore navigation tree entry
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-12-19 16:49:40 +01:00
Thomas Lamprecht 4897426cea ui: allow to create datastore
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-12-18 21:32:00 +01:00
Thomas Lamprecht 2e75b6d8bf ui: trailing whitespace cleanup
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-12-18 19:21:59 +01:00
Thomas Lamprecht 9710e5d00e ui: select tree item from history url on initial load
or fallback to dashboard

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-12-18 19:19:37 +01:00
Thomas Lamprecht 84b9eced26 ui: add simple dashboard
just a starting point, code ported initially over from PMG, some
minor things are handled differently though, we have not multiple
nodes (for now) so it's very 'localhost' centric.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-12-18 17:29:07 +01:00
Thomas Lamprecht 864d17c4e2 ui/css: adapt look-and-feel to PMG one
mainly the navigation tree

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-12-18 12:17:25 +01:00
Thomas Lamprecht c99af07876 ui: do not log ticket into console
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-12-17 15:44:34 +01:00
Thomas Lamprecht 323515c24c ui: fixup renewing ticket success calback
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-12-17 15:42:59 +01:00
Thomas Lamprecht 8af272fd14 ui: show login window if we get a 401 auth exception
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-12-17 14:45:13 +01:00
Thomas Lamprecht a602faeb98 ui: re-new ticket every 15 minutes
Like we do it in PVE/PMG

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-12-17 14:44:28 +01:00
Dietmar Maurer 81cc71c0d7 use proxmox-mini-journalreader to display syslog 2019-12-17 14:06:48 +01:00
Thomas Lamprecht 87b4d953bf ui: main init: set username info
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-12-17 13:00:17 +01:00
Thomas Lamprecht 3a84100428 ui login: default to root@pam user and focus password field
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-12-17 11:35:39 +01:00
Thomas Lamprecht 9c01e73c2f ui: add "Documentation" button to main view
Similar to PVE and PMG, for quick access when one has the basic
webinterface open anyway. Should move to the "proxmoxHelpButton" once
we have an onlineHelp mapping to the docs.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-12-17 11:22:34 +01:00
Thomas Lamprecht 2d694f8f1f add CSS file for PBS ExtJS6 basic ui
some fitting rules copied over from PVE's ext6-pve.css file.
simply place it in the css subfolder where the proxmox-backup-gui.js
file is hosted and add a "css/" alias for that directory, the
formatter gets use the right content type with that.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-12-17 11:20:32 +01:00
Thomas Lamprecht b5907d8ad8 ui: services-administration: s/pmg/proxmox-backup/
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-12-16 16:48:50 +01:00
Dietmar Maurer 63bd6a9f5a GUI: fix borders 2019-04-11 12:18:04 +02:00
Dietmar Maurer 8d76e8b773 www/DataStoreConfig.js: popup task viewer when starting GC 2019-04-11 11:16:30 +02:00
Dietmar Maurer ad281d1bd9 www/DataStoreConfig.js: add button to start GC 2019-04-01 08:08:34 +02:00
Dietmar Maurer c8fd2dd2b8 www/DataStoreConfig.js - add title 2019-02-16 13:46:20 +01:00
Wolfgang Bumiller 6285b251e7 don't hardcode /usr/share paths
Add a defines.mk file defining the standard default layout
for installation (PREFIX, DATAROOTDIR, LIBDIR etc.).

Add a $(JSDIR) variable and use env!("JSDIR") in place of
the hardcoded /usr/share/javascript/proxmox-backup path.

Have defines.mk include an *optional* local.mak to override
JSDIR to www/ during local development.

Add `make install` targets and remove debian/install.

Note that service files are now in $libdir/proxmox-backup/
as there's usually no point in starting them from the
command line, so /usr/sbin makes no sense.

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2019-02-01 10:41:54 +01:00
Wolfgang Bumiller 9fa03fa2d3 www: build proxmox-backup-gui.js into the js/ subdir
The server expects an images/ subdir and a js/ subdir, so we
should also compile our files using the same structure.

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2019-02-01 10:41:54 +01:00
Dietmar Maurer f484eed3c2 Utils.js: fix cookie handling
Use unsecure cookie foör testing.
2019-01-31 10:08:08 +01:00
Dietmar Maurer 34f956bc25 api2/access.rs: add ticket api 2019-01-30 15:16:10 +01:00
Dietmar Maurer 68cacc0066 ServerAdministration.js: use localhost inside api path 2019-01-25 13:14:43 +01:00
Dietmar Maurer d1a35593cb ServerAdministration.js: new widget 2019-01-25 13:10:55 +01:00
Dietmar Maurer d85facd1d2 DataStoreConfig.js: new widget 2019-01-25 13:04:10 +01:00
Dietmar Maurer 864e85f4ff www/OnlineHelpInfo.js: add dummy to avoid warnings 2019-01-25 12:37:01 +01:00
Dietmar Maurer b2b3485d5f src/api2/node: start node configuration api 2019-01-23 13:09:17 +01:00
Dietmar Maurer 576e3bf252 rename api3 back to api2
There is no real need to change the path, so using api2 we can reuse
all helpers (like tools from proxmox widget toolkit).
2019-01-22 12:10:38 +01:00
Dietmar Maurer b0ee976fbf gui: add navigation tree 2019-01-22 11:48:00 +01:00
Dietmar Maurer 4b26195c6a extract version from environment 2018-12-05 14:40:45 +01:00
Dietmar Maurer 03862a2eeb Utils.js: add code to make api3 request 2018-12-05 12:42:18 +01:00
Dietmar Maurer e4dc0a14ac add VersionInfo.js 2018-12-04 17:58:40 +01:00
Dietmar Maurer 5c7a1b15c8 start the GUI 2018-12-04 17:53:10 +01:00
Dietmar Maurer 8adbdb0a54 fix file download, listen to 0.0.0.0 2018-12-01 15:21:25 +01:00
Dietmar Maurer f4c514c13d remove www/pbs-index.html.tt, hardcode into rust for now 2018-12-01 13:37:49 +01:00
Dietmar Maurer ebc9a69215 install GUI index file 2018-12-01 11:19:46 +01:00