-
Notifications
You must be signed in to change notification settings - Fork 8
/
interfaces.rb
85 lines (74 loc) · 2.53 KB
/
interfaces.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# ------------------------------------------------------------------------------
# Copyright (c) 2018 SUSE LLC
#
#
# This program is free software; you can redistribute it and/or modify it under
# the terms of version 2 of the GNU General Public License as published by the
# Free Software Foundation.
#
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along with
# this program; if not, contact SUSE.
#
# To contact SUSE about this file by physical or electronic mail, you may find
# current contact information at www.suse.com.
# ------------------------------------------------------------------------------
require "yast"
require "cwm/common_widgets"
require "cwm/page"
require "y2firewall/firewalld"
require "y2firewall/helpers/interfaces"
require "y2firewall/widgets/interfaces_table"
require "y2firewall/widgets/change_zone_button"
require "y2firewall/widgets/zone_interfaces_button"
module Y2Firewall
module Widgets
module Pages
# A page for network interfaces
class Interfaces < CWM::Page
include Y2Firewall::Helpers::Interfaces
# Constructor
#
# @param _pager [CWM::TreePager]
def initialize(_pager)
super()
textdomain "firewall"
end
# @macro seeAbstractWidget
def label
_("Interfaces")
end
# @macro seeCustomWidget
def contents
return @contents if @contents
@contents = VBox(
Left(Heading(_("Interfaces"))),
interfaces_table,
HBox(
interfaces.empty? ? Empty() : change_zone_button,
zone_interfaces_button
)
)
end
private
# @return [Y2Firewall::Widgets::InterfacesTable] Table containing all interfaces
def interfaces_table
@interfaces_table ||= InterfacesTable.new(interfaces, change_zone_button)
end
# @return [Y2Firewall::Widgets::ChangeZoneButton] Buttton to change the zone
def change_zone_button
@change_zone_button ||= ChangeZoneButton.new(interfaces.first)
end
def zone_interfaces_button
@zone_interfaces_button ||= ZoneInterfacesButton.new
end
def interfaces
known_interfaces + unknown_interfaces
end
end
end
end
end