Commit Graph

1670 Commits

Author SHA1 Message Date
Dominik Csapak
4198e16fdd update gettexts to avoid duplicates in po file
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2017-01-11 10:57:55 +01:00
Dominik Csapak
93cdb62689 add type column to storage content view
and move the grouping feature in the class definition while changing
the text to a generic one

this allows us to group by all columns and still have meaningful
grouping headers

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2017-01-10 15:42:12 +01:00
Dominik Csapak
7c3a011345 remove unnecessary emptyText
we already set it statically

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2017-01-10 15:39:15 +01:00
Dominik Csapak
f3f73cde3b check general health for ceph monitors, not only time
we did not check the healthservices array for the monitor widget,
this patch does that, and takes the worst health state

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2017-01-10 13:03:04 +01:00
Dominik Csapak
bd8950b0ea fix #1247: disregard timecheck for one monitor
if we only have one monitor, set the timecheck to HEALTH_OK
(since we get none)

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2017-01-10 13:02:17 +01:00
Dominik Csapak
a49cdceebb fix jslint errors
since the value at the top is now directly a string,
we need the jslint confusion at the number and not for the
string at the bottom anymore

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2017-01-10 12:14:26 +01:00
Dominik Csapak
49e1990583 fix gettext strings
we expect a gettext on a single line and to not contain any
variable/logic, so we remove the long text from it altogether (since we
do not want to translate that at the moment), and we rearrange the code
so that gettext only contains strings

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2017-01-10 12:14:12 +01:00
Dominik Csapak
8f3600b629 disable submit button in migrate window when not valid
when the form is not valid (e.g. an offline or no host selected),
disable the submit button

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2017-01-10 08:21:30 +01:00
Dominik Csapak
eb882c6f04 show only relevant vms in bulk action window
this adds a default filter for bulk start and stop, so that only the
relevant vms are visible (stopped and started respectively)

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2017-01-10 08:18:35 +01:00
Dominik Csapak
3373911503 make filtered columns in grid more prominent
this makes the column header not only italic but also bold, so that one
can more easily see that the column is filtered

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2017-01-10 08:14:41 +01:00
Emmanuel Kasper
e83e60bfa1 Reload the grid list of backups after the backup task completion
This allows visual feedback for first time users doing a backup.
2017-01-05 16:17:32 +01:00
Dominik Csapak
6a4edbd195 change Start/Stop/Migrate all to Bulk actions
this uses the new vmselector and the new vmid filter in the backend
to allow starting/stopping/migrating selected vms instead of all

by default all vms are selected to have the same default behaviour

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2017-01-05 15:59:44 +01:00
Dominik Csapak
42aff48802 add vmselector form field
this is a form field which is a grid for selecting vms

if nodename is given, it will filter the vms only to the given node

you can filter the grid with the column header, and only the selected
and visible items are in the value of the field

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2017-01-05 15:58:41 +01:00
Dominik Csapak
6ae2ec8126 add BulkAction window class
this is mostly copied from MigrateAll.js, but a more generic way,
to allow startall and stopall to also use it

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2017-01-05 15:57:11 +01:00
Thomas Lamprecht
3e52f2ed01 ha: re-add node to service status
On the old HA status we saw where a service was located currently,
this information was lost when we merged the resource and the status
tab.
Add this information again.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2017-01-05 15:52:23 +01:00
Dominik Csapak
b625c828b7 remove not needed vnc code
since we access novnc always with the NoVncIndex.pm and never in extjs
itself, we can delete this code

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2017-01-04 10:50:38 +01:00
Emmanuel Kasper
6d1e586c3e Reload the Ceph OSDTree afer adding an OSD 2017-01-03 18:19:50 +01:00
Emmanuel Kasper
42edc4df77 Hide the Edit window when we start a background task
We closed the Edit window too early, so listeners set to
the 'close' event would reload the underlying grid before the action
successfully completed on the server side.
2017-01-03 18:19:25 +01:00
Fabian Grünbichler
4e31f56f0f fix #1230: add blocksize for ZFSPoolPlugin
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2017-01-03 12:56:33 +01:00
Dietmar Maurer
ff79a11669 Clone.js: add onlineHelp 2017-01-03 12:30:48 +01:00
Emmanuel Kasper
0a4651f09d HA: Add a warning/info message for HA setups < 3 votes fix: #1228 2017-01-03 11:10:06 +01:00
Emmanuel Kasper
8dfd00cd09 Fix a race conditon provoking the error no such file '/pve-storage-content'
(NB: the error was only displayed intermittently in the browser console)

The reload call could try a store reload before the store has
a defined url.
The call here is useless since the initial display of
the storage selector compoment will call setStorage() to pass an url
to the store and load it.

Also remove the test on me.store.proxy.url since it was not working
(ExtJS autodefined an URL based on the model name)
2017-01-03 11:00:19 +01:00
Emmanuel Kasper
b0a94fee7a Replace nested ternary operators with if/else statements 2017-01-03 10:19:25 +01:00
Dietmar Maurer
9cf2e84b93 add unpriviledged flag to container restore window. 2016-12-27 10:19:57 +01:00
Dominik Csapak
d43f704212 do not hide ceph on dashboard if the api call fails
with this patch, we do not hide the ceph status anymore if the api call
fails (too slow, e.g.) as long as we showed it at least one time

also, we only stop the updates if we never successfully got the status

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2016-12-22 10:15:37 +01:00
Dominik Csapak
0d1c12678b add filter to dashboard storage graph
with this patch, the storage graph on the dashboard only counts the
storages which are selected in the settings window

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2016-12-22 10:11:41 +01:00
Dominik Csapak
2488c226f1 add a storage selection in the settings window
this will be used to filter the dashboard storage graph to the selected
storages, so that one can choose which storages are relevant

e.g. if you have one nfs server with multiple exports (on the same filesystem),
you only want to count it once

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2016-12-22 10:11:13 +01:00
Dominik Csapak
4501139482 load the diffstore on init
if the rstore in the diffstore is already loaded at the time of
the instantiation, load the data instantly

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2016-12-22 09:44:24 +01:00
Dominik Csapak
45998f0d69 add an alias to the diffstore
to use it declarative like this:

store : {
    type: 'diff'
}

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2016-12-22 09:43:16 +01:00
Dominik Csapak
7c4ef25f55 remove debug log statement
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2016-12-19 12:17:06 +01:00
Dominik Csapak
6783a3301c fix typo in ceph jewel iops parsing
this prevented the write iops performance charts to get any meaningful
data

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2016-12-19 12:08:28 +01:00
Dominik Csapak
b6262736d7 filter the local node in the migrateall window
we do this already for single vm migrations, also do it for migrate all

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2016-12-19 12:06:13 +01:00
Dominik Csapak
e4ad4e064a validate nodeselector after store is loaded
this shows the validation status immediatly if no node is selected (for
instance because no node is online or you have only one node and open
the migration window)

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2016-12-19 12:06:00 +01:00
Dominik Csapak
5f80c67ecc make date column resizable
this makes the date column in the snapshottree a little bit bigger and
resizable

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2016-12-19 12:04:53 +01:00
Dominik Csapak
e62526ea4c remove obsolete belongsTo
this was not needed

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2016-12-19 12:04:33 +01:00
Dominik Csapak
90ba9a4e02 snapshottree: remove sorter before saving the state
extjs saves the state including the sorter, but cannot serialize the
sorter function. when restoring the state, it is not a valid sorter,
so we delete it before saving

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2016-12-19 12:04:07 +01:00
Dominik Csapak
b35f19a3dc set fixed height on global search window
the buffered renderer does not work with auto height, and was disabled.
to enable it, we set a fixed height

when nothing is found, display 'none' to indicate nothing was found

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2016-12-19 12:03:40 +01:00
Dominik Csapak
94917cd1dc move chart series initialization into initComponent
with extjs 6.2 the charts are initialized differently, so that we can
not do this in the afterrender event, instead we do it in the
initComponent, after calling callParent

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2016-12-19 12:03:07 +01:00
Dominik Csapak
cc751ecd73 move hideHeaders into static configuration
in extjs 6.2, this property will not be set in ApplyIf, so we move it
into the static configuration, so that the headers will not be visible

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2016-12-19 12:02:53 +01:00
Emmanuel Kasper
2685b38224 Rename filterFn to vmtypeFilter
since we have now two filters defined it makes sense to use
a separate name here
2016-12-19 11:37:20 +01:00
Emmanuel Kasper
ce76a18ae0 Filter by default the displayed guest backups fix #1161
This add a default filter which is executed on store initial load,
so we display only the backups matching our ID.
2016-12-19 11:36:51 +01:00
Emmanuel Kasper
256a65a4bb reduce scope of jslint warnings to the problematic statement
also remove it from qemu/Clone.js since it validates OK
2016-12-19 07:31:51 +01:00
Emmanuel Kasper
ed416f2024 Convert the VMIDSelector to a generic GuestIDSelector
This allows to display a 'CT', a 'VM', or a 'CT/VM' label
to be displayed, depending on the context.

Currently when restoring a CT backup or creating a CT via the
wizard, we are asked to enter a  *VM* ID, which is confusing.
2016-12-19 07:31:27 +01:00
Dominik Csapak
c2dc78a4e7 make realmselector non-editable
since most people do not have many login realms to choose from, making
this search/editable makes no sense

but by making this non-editable, you can now click anywhere on the text
to open the options, instead of only the little arrow

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2016-12-09 10:20:19 +01:00
Dominik Csapak
3253e1189d fix #1176: sort user/group/realm selector
this adds a default sort for the user, group and realmselector
so that the entries are in a consistent order

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2016-12-09 10:20:07 +01:00
Emmanuel Kasper
734a91b9b9 fix jslint confusion warning
ExtJS components accept for the items property either a
single component or an array of components which generates
a jslint type confusion warning.
2016-12-06 06:54:09 +01:00
Emmanuel Kasper
6eb2141a78 Add online help for start/shutdown for containers 2016-12-06 06:53:59 +01:00
Emmanuel Kasper
a255dd7e8c Turn the qemu StartupEdit widget into a generic component
and use this component for Qemu.
2016-12-06 06:53:20 +01:00
Dominik Csapak
6b43f8f16d fix typo in vmtype check
by mistake we checked if me.vtype is 'qemu'
but the property is me.vmtype, so we would always show
restart mode

note that this error was purely cosmetic, behaviour was correct

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2016-12-05 12:26:53 +01:00
Dominik Csapak
209daf221e adds a help button to the migration window
for now we have to explicitely define the
    onlineHelp: 'blockid'
string, so that the parser picks it up

in the future we should refactor that window, so that we define the
blockid when declaring the component

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2016-12-02 16:35:09 +01:00
Dominik Csapak
18fdf0bcf6 change lxc migration option to restart mode
since online migration does work at the moment, and with ha we already
have the restart mode

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2016-12-02 16:33:52 +01:00
Emmanuel Kasper
a979c78da0 Remove last extra comma
also whitespace / indent cleanup
2016-12-02 11:26:48 +01:00
Emmanuel Kasper
ff05aec018 Add online help for startup/shutdown order and LXC general settings 2016-12-01 11:42:37 +01:00
Emmanuel Kasper
a97bc80075 Add the possibility to create an unprivileged container at creation time in the GUI.
The setting is afterwards displayed as a read only option in the option time
2016-11-30 17:29:05 +01:00
Dominik Csapak
3a84e2b425 show in/out/up/down icons in osd overview
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2016-11-30 17:12:24 +01:00
Dominik Csapak
c359b43706 make ceph status in cluster dashboard clickable
to get faster from the datacenter dashboard to the ceph dashboard

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2016-11-30 17:10:29 +01:00
Dominik Csapak
6f82e1b638 add noout button and reorder actions
this patch adds a set/unset noout button (for easy maintenance of your
ceph cluster) and reorders the buttons so that global actions (reload,
add osd, set noout) are left, and osd specific actions are on the right

to reduce confusion, there is now a label left of the osd actions which
displays the selected osd

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2016-11-30 17:10:13 +01:00
Emmanuel Kasper
2b9e88286e Add Windows 2016 as available ostype to select 2016-11-29 09:11:28 +01:00
Dominik Csapak
83576841ae change ssh-public-keys check in wizard
we changed the ssh public key field to a pvetextfield, which return not
an empty string but null, so the .length check failed with an exception

we do not need to delete the field because it does not exists, when
no key is given

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2016-11-25 15:23:02 +01:00
Dominik Csapak
8ebc1f3cc6 fix kvcombobox validator
since we often use the kvcombobox not statically but load its store at
runtime, we need to check the store and not the comboItems

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2016-11-23 12:09:37 +01:00
Dietmar Maurer
95cf02104d ha/ResourceEdit.js: fix online help ref 2016-11-23 11:39:58 +01:00
Dominik Csapak
5c38487d83 fix missing mons array in ceph status output
on setups with 1 monitor, timechecks has no monitor array

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2016-11-23 11:39:58 +01:00
Dominik Csapak
9a60a19b4a fix #1208: add ballooning checkbox to memory edit
when using fixed memory size, we implicitly deleted shares and
ballon, which removed a (manually) set balloon: 0,

to be able to set this via the gui, we add a checkbox to the fixed
memory edit (using variable memory always needs ballooning)

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2016-11-22 16:39:12 +01:00
Dominik Csapak
ce57c4a612 check for array in disallowednodes filter
extjs throws an error if disallowednodes is not an array,
so we need to check this

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2016-11-22 16:38:29 +01:00
Dominik Csapak
946730cdc6 add new ceph dashboard
this patch changes the ceph dashboard

now we show the information in a more graphical way, namely:

the overall status is displayed by a big icon (+health)
the warnings/errors are in a list (with severity)

we show more detailed information about monitors, osds, and pgs

we show the usage of the cluster as a gauge graph, and
the reads, writes and iops as running charts (the last 5 minutes)

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2016-11-22 16:38:11 +01:00
Dominik Csapak
195c7c8cbe add ceph statudetail panel
this adds a the component ceph statusdetail,
it displays the monitors (+status)
the osd as a table (in/out,up/down)
and the pg states as a list (+number)

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2016-11-22 16:37:44 +01:00
Dominik Csapak
4226b8fba3 add runningchart widget
this adds a new component 'runningchart', which is a simple linegraph

you define a timeFrame (default 5*60 seconds), and you regularly add
datapoints to it, and the graph shows the last timeFrame seconds of it

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2016-11-22 16:37:24 +01:00
Dominik Csapak
046e640c54 refactor health status widget and ceph status data
this adds a new component health widget, used for cluster and ceph
status

also refactor ceph error levels and ceph status data into PVE.Utils

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2016-11-22 16:37:09 +01:00
Dominik Csapak
428bc4a224 refactor health icons
instead of setting them manually every time, factor them out in a
get_health_icon function

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2016-11-22 16:36:46 +01:00
Dominik Csapak
6d453a84fb improve green and red colors
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2016-11-22 16:36:16 +01:00
Dominik Csapak
9cd3300098 change the ha resources columns
rename Request State to State, and add the request_state and crm_state
as hidden columns (so that the user can display them if they want)

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2016-11-22 12:30:36 +01:00
Dominik Csapak
8a58f55446 merge ha resources into the ha status panel
this changes the ha status view and ha resources view, so that they take
an rstore and use that instead of a new one

we do this, so that we can display the status and the resources grid
with one api call

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2016-11-22 12:30:05 +01:00
Dominik Csapak
c06fc22640 add the haStatus panel
for the new status

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2016-11-22 12:29:09 +01:00
Dominik Csapak
e61cbac50b add new fields to ha models
to be prepared for the new ha status

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2016-11-22 12:28:28 +01:00
Dietmar Maurer
63b6b7ce74 ConfigPanel: automatically expand node in selectById()
This is only used for automated tests.
2016-11-21 13:02:01 +01:00
Dietmar Maurer
30c93f904f Resources.js: s/enabled/started/ 2016-11-19 10:38:04 +01:00
Thomas Lamprecht
ecd45352ab ha resource edit: adapt to new service state
Add the new stopped state to the ResourceEdit panel.
Rename enabled state to started as done in ha-manager.

As 'enabled' is now the wrong label use the more correct label
'Request state', for both the resource edit window and the grid
column.

Do this by replacing the checkbox with a KVCombogrid.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2016-11-19 10:20:04 +01:00
Thomas Lamprecht
766998b1ae do not show current node in migration window
As we cannot migrate to the source node do not show it in the
migration window's node selector.

Fixes #1049 partly

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2016-11-19 09:51:48 +01:00
Thomas Lamprecht
97ec0d0716 NodeSelector: add disallowedNodes configuration property
This can be used to mask out some nodes from the node selector.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2016-11-19 09:51:14 +01:00
Dominik Csapak
538ebe4a84 add kvcombobox validator
this enables validation of all kvcomboboxes, including
multiselect

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2016-11-18 10:30:08 +01:00
Dominik Csapak
07a3397f4e make pool members grid stateful
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2016-11-18 10:21:37 +01:00
Dominik Csapak
c817f7da98 check for lxc instead of openvz in the backup window
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2016-11-17 15:49:21 +01:00
Dominik Csapak
9a8119659f move onlineHelp from FirewallAliasEdit to FirewallAliases
since the first is a window, not the grid

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2016-11-17 09:17:38 +01:00
Dominik Csapak
56ef9f774a remove border from ceph crushmap/config panel
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2016-11-17 09:17:31 +01:00
Dominik Csapak
1b14c8750d make storage/template grid stateful
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2016-11-17 09:17:10 +01:00
Dominik Csapak
af603c1570 make lxc/qemu snapshot/network grids stateful
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2016-11-17 09:17:02 +01:00
Dominik Csapak
a61607a85a make backupview stateful
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2016-11-17 09:16:52 +01:00
Dominik Csapak
361aafd0e1 make ceph panels/grids stateful
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2016-11-17 09:16:44 +01:00
Dominik Csapak
e19b93ec5f make update/disk/network and task grid stateful
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2016-11-17 09:16:38 +01:00
Dominik Csapak
3ac2a96467 make user/acl/auth grids stateful
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2016-11-17 09:16:30 +01:00
Dominik Csapak
123e1c808e make firewall panels/grids stateful
to save the columns/layouts in the browsers local storage

also change width to string (or else jslint complains)

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2016-11-17 09:16:23 +01:00
Dominik Csapak
c4bb940580 make backup/storage/ha resources/ha groups grid stateful
so that the column changes are saved in the browsers local storage

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2016-11-17 09:16:15 +01:00
Dominik Csapak
ac419eb9a2 remove reset columns button from resource grid
since we now have the client settings, we do not need this anymore

also rename the stateid to 'grid-resource'
(we want to establish a convention to differentiate between saved local
storage items)

the whole saveCurrentState logic was not really necessary, so we can drop this too

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2016-11-17 09:16:07 +01:00
Dietmar Maurer
fbd60cfd4c new helper call_menu_handler 2016-11-12 12:45:21 +01:00
Dietmar Maurer
86ca27943d ConfigPanel: added helper selectById()
for test automation
2016-11-11 17:11:19 +01:00
Dietmar Maurer
cfffc2719c ResourceTree.js: return value in selectById
So that automation tools can see success.
2016-11-11 15:52:52 +01:00
Dietmar Maurer
63bb6c31c0 lxc: don't show an empty ssh-public-key field in summary 2016-11-10 16:15:32 +01:00
Dietmar Maurer
f677074b47 add activeTitle helper 2016-11-10 11:33:53 +01:00
Dominik Csapak
3a4752e8bb fix #1196: make restriced/nofailback boolean in gui
since we get the string "0" from the backend if the line is in the
groups.cfg, we have to set the field to type boolean, or the string will
always be interpreted as true

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2016-11-10 10:02:11 +01:00
Dominik Csapak
03375edf97 disable rules copy button if not 'in' or 'out' rule
else you could always click the button, but
nothing would happen

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2016-11-10 10:01:57 +01:00