view release on metacpan or search on metacpan
lib/App/Netdisco/DB/Result/DevicePort.pm view on Meta::CPAN
sub neighbor {
my $row = shift;
return eval { $row->neighbor_alias->device || undef };
}
=head1 ADDITIONAL COLUMNS
=head2 native
An alias for the C<vlan> column, which stores the PVID (that is, the VLAN
ID assigned to untagged frames received on the port).
=cut
sub native { return (shift)->vlan }
=head2 error_disable_cause
Returns the textual reason given by the device if the port is in an error
state, or else `undef` if the port is not in an error state.
lib/App/Netdisco/DB/Result/DevicePort.pm view on Meta::CPAN
sub pae_authconfig_port_status { return (shift)->get_column('pae_authconfig_port_status') }
=head2 pae_authsess_mab
Returns the pae_authsess_mab of the port.
=cut
sub pae_authsess_mab { return (shift)->get_column('pae_authsess_mab') }
=head2 pae_last_eapol_frame_source
Returns the pae_last_eapol_frame_source of the port.
=cut
sub pae_last_eapol_frame_source { return (shift)->get_column('pae_last_eapol_frame_source') }
=head2 remote_dns
Returns a hostname resolved from C<remote_ip> column.
=cut
sub remote_dns { return (shift)->get_column('remote_dns') }
=head2 remote_inventory
lib/App/Netdisco/DB/Result/DevicePortProperties.pm view on Meta::CPAN
"pae_authconfig_state",
{ data_type => "text", is_nullable => 1 },
"pae_authconfig_port_control",
{ data_type => "text", is_nullable => 1 },
"pae_authconfig_port_status",
{ data_type => "text", is_nullable => 1 },
"pae_authsess_user",
{ data_type => "text", is_nullable => 1 },
"pae_authsess_mab",
{ data_type => "text", is_nullable => 1 },
"pae_last_eapol_frame_source",
{ data_type => "text", is_nullable => 1 },
"pae_is_authenticator",
{ data_type => "boolean", default_value => \"false", is_nullable => 1 },
"pae_is_supplicant",
{ data_type => "boolean", default_value => \"false", is_nullable => 1 },
);
__PACKAGE__->set_primary_key("port", "ip");
lib/App/Netdisco/DB/ResultSet/DevicePort.pm view on Meta::CPAN
properties.remote_is_discoverable
properties.remote_is_wap
properties.remote_is_phone
properties.remote_dns
properties.ifindex
properties.pae_authconfig_port_control
properties.pae_authconfig_state
properties.pae_authconfig_port_status
properties.pae_authsess_user
properties.pae_authsess_mab
properties.pae_last_eapol_frame_source
/],
'+as' => [qw/
error_disable_cause
remote_is_discoverable remote_is_wap remote_is_phone remote_dns
ifindex
pae_authconfig_port_control
pae_authconfig_state
pae_authconfig_port_status
pae_authsess_user
pae_authsess_mab
pae_last_eapol_frame_source
/],
join => 'properties',
});
}
=head2 with_remote_inventory
This is a modifier for any C<search()> which
will add the following additional synthesized columns to the result set:
lib/App/Netdisco/Util/Node.pm view on Meta::CPAN
=cut
sub check_mac {
my ($node, $device, $port_macs) = @_;
return 0 if !$node;
my $mac = NetAddr::MAC->new(mac => ($node || ''));
my $devip = ($device ? (ref $device ? $device->ip : $device) : '');
$port_macs ||= {};
# incomplete MAC addresses (BayRS frame relay DLCI, etc)
if (!defined $mac or $mac->errstr) {
debug sprintf ' [%s] check_mac - mac [%s] malformed - skipping',
$devip, $node;
return 0;
}
else {
# lower case, hex, colon delimited, 8-bit groups
$node = lc $mac->as_ieee;
}
lib/App/Netdisco/Util/PortAccessEntity.pm view on Meta::CPAN
}
# individual port properties
my $interfaces = $snmp->interfaces;
my $pae_authconfig_state = $snmp->pae_authconfig_state();
my $pae_authconfig_port_control = $snmp->dot1xAuthAuthControlledPortControl();
my $pae_authconfig_port_status = $snmp->pae_authconfig_port_status();
my $pae_authsess_user = $snmp->pae_authsess_user();
my $pae_authsess_mab = $snmp->pae_authsess_mab();
my $pae_capabilities = $snmp->pae_i_capabilities();
my $pae_last_eapol_frame_source = $snmp->pae_i_last_eapol_frame_source();
foreach my $ind (sort keys %$interfaces){
debug sprintf ' [%s] pae - attributes found for ifindex %s: %s %s %s %s %s %s %s',
$device->ip, $ind,
$pae_authconfig_state->{$ind} || 'no pae_authconfig_state',
$pae_authconfig_port_control->{$ind},
$pae_authconfig_port_status->{$ind},
$pae_authsess_user->{$ind},
$pae_authsess_mab->{$ind},
$pae_capabilities->{$ind},
$pae_last_eapol_frame_source->{$ind};
schema('netdisco')->resultset('DevicePortProperties')
->search({ 'me.ip' => $device->ip, 'me.port' => $interfaces->{$ind} })
->update({
pae_authconfig_state => $pae_authconfig_state->{$ind} ,
pae_authconfig_port_control => $pae_authconfig_port_control->{$ind} ,
pae_authconfig_port_status => $pae_authconfig_port_status->{$ind} ,
pae_authsess_user => $pae_authsess_user->{$ind} ,
pae_authsess_mab => $pae_authsess_mab->{$ind} ,
pae_is_authenticator => $pae_capabilities->{$ind} =~ m/dot1xPaePortAuthCapable/ ? "t" : "f",
pae_is_supplicant => $pae_capabilities->{$ind} =~ m/dot1xPaePortSuppCapable/ ? "t" : "f",
pae_last_eapol_frame_source => $pae_last_eapol_frame_source->{$ind} ,
});
}
return Status->info("Completed pae for $device");
}
1;
lib/App/Netdisco/Worker/Plugin/LoadMIBs.pm view on Meta::CPAN
ns_grp_type SNMP::Info::NortelStack::munge_ns_grp_type
ns_i_mac SNMP::Info::munge_mac
ns_store_type SNMP::Info::munge_e_type
ntwsApStatRadioServBssid SNMP::Info::munge_mac
ntwsApStatRadioStatusBaseMac SNMP::Info::munge_mac
nwss2300_apif_bssid SNMP::Info::munge_mac
nwss2300_apif_mac SNMP::Info::munge_mac
old_at_paddr SNMP::Info::munge_mac
p_duplex_admin SNMP::Info::munge_bits
pae_i_capabilities SNMP::Info::CiscoPortSecurity::munge_pae_capabilities
pae_i_last_eapol_frame_source SNMP::Info::munge_mac
peth_power_consumption SNMP::Info::Layer3::Huawei::munge_hw_peth_power
peth_power_watts SNMP::Info::Layer3::Huawei::munge_hw_peth_power
portCpbDuplex SNMP::Info::munge_bits
portLinkState SNMP::Info::Layer2::Nexans::munge_i_duplex
portSpeedDuplexSetup SNMP::Info::Layer2::Nexans::munge_i_duplex_admin
ps1_3v_alarm SNMP::Info::Layer3::Altiga::munge_alarm
ps1_5v_alarm SNMP::Info::Layer3::Altiga::munge_alarm
ps1_status_new SNMP::Info::Layer3::Extreme::munge_power_stat
ps1_status_old SNMP::Info::Layer3::Extreme::munge_true_ok
ps2_3v_alarm SNMP::Info::Layer3::Altiga::munge_alarm
share/config.yml view on Meta::CPAN
schema_name: 'netdisco'
session: 'cookie'
session_cookie_key: 'this_will_be_overridden_on_webapp_startup'
session_same_site: 'Lax'
template: 'netdisco_template_toolkit'
route_cache: true
appname: 'Netdisco'
behind_proxy: false
compress_responses: true
HTTP-Header-X-Frame-Options: 'DENY'
HTTP-Header-Content-Security-Policy: 'frame-ancestors none;'
share/public/css/bootstrap.min.css view on Meta::CPAN
@charset "UTF-8";/*!
* Bootstrap v5.3.8 (https://getbootstrap.com/)
* Copyright 2011-2025 The Bootstrap Authors
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/:root,[data-bs-theme=light]{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-black:#000;--bs-white:#fff...
/*# sourceMappingURL=bootstrap.min.css.map */
share/public/css/dataTables.bootstrap.css view on Meta::CPAN
:root{--dt-row-selected: 13, 110, 253;--dt-row-selected-text: 255, 255, 255;--dt-row-selected-link: 228, 228, 228;--dt-row-stripe: 0, 0, 0;--dt-row-hover: 0, 0, 0;--dt-column-ordering: 0, 0, 0;--dt-header-align-items: center;--dt-header-vertical-alig...
*
* ©2020 SpryMedia Ltd, all rights reserved.
* License: MIT datatables.net/license/mit
*/table.table.dataTable{clear:both;margin-bottom:0;max-width:none;border-spacing:0}table.table.dataTable.table-striped>tbody>tr:nth-of-type(2n+1)>*{box-shadow:none}table.table.dataTable>:not(caption)>*>*{background-color:var(--bs-table-bg)}table.tab...
share/public/css/font-awesome.min.css view on Meta::CPAN
/*!
* Font Awesome Free 7.3.1 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
* Copyright 2026 Fonticons, Inc.
*/
.fa,.fa-brands,.fa-classic,.fa-regular,.fa-solid,.fab,.far,.fas{--_fa-family:var(--fa-family,var(--fa-style-family,"Font Awesome 7 Free"));-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:var(--fa-display,inline-block);fon...
.fa-0{--fa:"\30 "}.fa-1{--fa:"\31 "}.fa-2{--fa:"\32 "}.fa-3{--fa:"\33 "}.fa-4{--fa:"\34 "}.fa-5{--fa:"\35 "}.fa-6{--fa:"\36 "}.fa-7{--fa:"\37 "}.fa-8{--fa:"\38 "}.fa-9{--fa:"\39 "}.fa-exclamation{--fa:"\!"}.fa-hashtag{--fa:"\#"}.fa-dollar,.fa-dollar-...
:host,:root{--fa-family-brands:"Font Awesome 7 Brands";--fa-font-brands:normal 400 1em/1 var(--fa-family-brands)}@font-face{font-family:"Font Awesome 7 Brands";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-brands-400.wof...
share/public/css/netdisco.css view on Meta::CPAN
--bs-btn-active-border-color: #cccccc;
--bs-btn-disabled-color: #333333;
--bs-btn-disabled-bg: #e6e6e6;
--bs-btn-disabled-border-color: #cccccc;
background-image: linear-gradient(to bottom, #ffffff, #e6e6e6);
border-bottom-color: #b3b3b3;
}
/* Hovering slid the ramp 15px up rather than repainting, uncovering the flat
fill below; without this each color's hover fill stays hidden under its ramp.
The 0.1s easing is not reproduced: restating transition to add a fourth
property would drop the three the framework carries. */
.btn:hover, .btn:focus {
background-position: 0 -15px;
}
/* Pressing a button dropped its ramp, drew the flat fill under it, and turned
the shadow round so the face looked pushed in. */
.btn:active, .btn.active {
background-image: none;
box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
}
.btn:disabled, .btn.disabled {
share/public/css/netdisco.css view on Meta::CPAN
}
/* The unlit half of a toggle. The old plugin marked it active and active buttons
drew pushed in; the new one marks it with nothing, so it reads as raised. Hung
on the plugin's own selector because the plugin zeroes this shadow at that
weight. */
.toggle > .toggle-group > .toggle-off {
--bs-btn-bg: #e6e6e6;
background-image: none;
box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
}
/* This file loads after the framework, so the rules above would otherwise
decide the small button metrics too, at equal specificity. State them instead
of letting them fall out. A small button's corner was 3px, which is the one
the 4px above is wrong for. */
.btn-sm {
--bs-btn-font-size: 11.049999999999999px;
--bs-btn-padding-y: 2px;
--bs-btn-padding-x: 10px;
--bs-btn-border-radius: 3px;
}
/* The five classes carrying a fill: white type, dark glyph shadow, a ramp, and a
border a tenth-opacity black on three sides and a quarter on the bottom. Each
fill is stated twice below, through --bs-btn-bg so the framework agrees, and as
an image, the only way to get the ramp back. background-image not the
shorthand, which would reset the color under it. The bottom edge is stated
alone, one --bs-btn-border-color being unable to say an edge differs. */
.btn-info, .btn-primary, .btn-danger, .btn-success, .btn-warning, .btn-dark {
--bs-btn-color: #ffffff;
--bs-btn-border-color: rgba(0, 0, 0, 0.1);
--bs-btn-hover-color: #ffffff;
--bs-btn-hover-border-color: rgba(0, 0, 0, 0.1);
--bs-btn-active-color: #ffffff;
--bs-btn-active-border-color: rgba(0, 0, 0, 0.1);
share/public/css/netdisco.css view on Meta::CPAN
}
.btn-success {
--bs-btn-bg: #5bb75b;
--bs-btn-hover-bg: #51a351;
--bs-btn-active-bg: #51a351;
--bs-btn-disabled-bg: #51a351;
background-image: linear-gradient(to bottom, #62c462, #51a351);
}
/* No page asks for the warning button and none did before, but the old
stylesheet declares it, so it is restored rather than left to draw a flat
framework yellow under black type the first time someone reaches for it. */
.btn-warning {
--bs-btn-bg: #faa732;
--bs-btn-hover-bg: #f89406;
--bs-btn-active-bg: #f89406;
--bs-btn-disabled-bg: #f89406;
background-image: linear-gradient(to bottom, #fbb450, #f89406);
}
.btn-dark {
--bs-btn-bg: #363636;
--bs-btn-hover-bg: #222222;
share/public/css/netdisco.css view on Meta::CPAN
--bs-warning-rgb: 248, 148, 6;
line-height: 14px;
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
}
.badge.text-bg-info, .badge.text-bg-warning {
color: #ffffff !important;
}
/* The old stylesheet had a second pill, cornered 3px and inset 4px rather than
9px. Two of these classes replaced it and nothing else, so each mapping is
exact, and the dark one also has to put back a fill three units lighter than
the framework's. */
.badge.text-bg-info, .badge.text-bg-dark {
--bs-badge-border-radius: 3px;
--bs-badge-padding-x: 4px;
}
.badge.text-bg-dark {
--bs-dark-rgb: 51, 51, 51;
}
/* The gray pill replaced one of each kind, so position tells them apart: the
external link badge is always inside a link that opens in a new window and is
the only badge that ever is. No harness route renders it, the feature drawing
share/public/css/netdisco.css view on Meta::CPAN
stated: setting the box alone leaves the footer rounding wider than the edge it
sits against. */
.modal {
--bs-modal-border-radius: 6px;
--bs-modal-inner-border-radius: 6px;
}
/* Every width here was measured against controls padded 4px 6px, add-ons 4px
5px, and the browser drawing a select's arrow inside the box. The replacement
pads .375rem .75rem and reserves 2.25rem for its own caret. The 4px inset is
fitted to the outcome, and the 20px is that inset plus the framework's 16px
caret artwork. */
.form-control, .form-select {
padding: 4px 6px;
}
/* Controls had their own text and border colors, #555555 and #cccccc. Neither
variable can carry the correction: --bs-body-color is set above for body text,
and --bs-border-color draws the sidebar box, tables and cards. Neither shift is
visible to the harness, which cannot see below 52 of 255. */
.form-control, .form-select {
color: #555555;
share/public/css/netdisco.css view on Meta::CPAN
wherever the padding is overridden, as .nd_port-partial-label overrides it.
Opting out of the universal box-sizing is what lets both follow. */
.input-group-text {
box-sizing: content-box;
height: 18px;
padding: 4px 5px;
line-height: 18px;
background-color: #eeeeee;
border-color: #cccccc;
}
/* The old framework floated a wrapped checkbox into the 20px gutter its label
reserves and set its 4px top margin, through the class that also drew its own
control, so removing that class took the placement too.
Scoped to a checkbox the label wraps: the netmap's toggles put the input beside
the label, and floating those into a gutter no label reserves pushes them out
of their rows. The inline variant is excluded for the same reason. */
label.form-check:not(.form-check-inline) > input[type="checkbox"] {
float: left;
margin: 4px 0 0 -20px;
}
share/public/css/netdisco.css view on Meta::CPAN
/* Links carried no underline until hovered. The replacement underlines every
link everywhere, which on a page whose tables are mostly links reads as a
different application. */
a {
text-decoration: none;
}
a:hover, a:focus {
text-decoration: underline;
}
/* Navigation is the exception to the rule above: the previous framework
suppressed the hover underline on the navbar, its menus and the tab strips and
filled their background instead. Both values are its own. The active tab is
excluded, keeping its own fill when hovered. */
.navbar-brand:hover, .navbar-brand:focus,
.nav-link:hover, .nav-link:focus,
.dropdown-item:hover, .dropdown-item:focus {
text-decoration: none;
}
.dropdown-item:hover, .dropdown-item:focus {
background-color: #0081c2;
share/public/css/netdisco.css view on Meta::CPAN
/* ajax results should fill all available */
.tab-content table {
width: 100%;
}
/* results table header should have a background, for floatThead.
The background-color below stopped being visible on its own: the replacement
paints every cell with var(--bs-table-bg) where the old stylesheet left cells
transparent and let the thead show through. Setting the variable is the
framework's own way in. */
div.content > div.tab-content table.nd_floatinghead thead {
--bs-table-bg: floralWhite;
background-color: floralWhite;
}
/* jquery ui autocomplete scrollable */
.ui-autocomplete {
max-height: 200px;
overflow-y: auto;
overflow-x: hidden;
share/public/css/netdisco.css view on Meta::CPAN
/* The menu marks its highlighted row ui-state-active where it used to use
ui-state-focus, and in this theme active is white, so the highlight vanished on
a white menu. These are the theme's own ui-state-focus values. */
.ui-menu .ui-menu-item-wrapper.ui-state-active {
border: 1px solid #999999;
background: #dadada url(smoothness/images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x;
color: #212121;
}
/* The two search boxes are the exception above: their old widget drew the picked
row in the old framework's blue, and that row is the one Enter takes. Scoped to
the marked menus, the theme's gray being right for the other fifteen. */
.ui-autocomplete.nd_search-suggestions .ui-menu-item-wrapper.ui-state-active {
border-color: #0077b3;
background-color: #0081c2;
background-image: linear-gradient(to bottom, #0088cc, #0077b3);
background-repeat: repeat-x;
color: #ffffff;
}
/* jstree scrollable */
share/public/css/netdisco.css view on Meta::CPAN
/* small type ran at 85% of its parent and now runs at 87.5%, which is half a
pixel on body text but 0.45px per character in the hero box's 18px setting,
accumulating to 17px across one sentence. */
small {
font-size: 85%;
}
/* Inline code was a boxed thing: crimson type at 11px, inset 2px and 4px, on an
off-white fill inside a pale border, never wrapping. The set is restated rather
than reached through a variable because the framework declares only
--bs-code-color. The family is deliberately not put back. */
code {
padding: 2px 4px;
font-size: 11px;
color: #d14;
white-space: nowrap;
background-color: #f7f7f9;
border: 1px solid #e1e1e8;
border-radius: 3px;
}
share/public/css/netdisco.css view on Meta::CPAN
the content box starts. */
.nd_netmap-sidebar .toggle > .toggle-group > .toggle-on.btn-sm {
margin-left: -4px;
padding-right: 20px;
}
.nd_netmap-sidebar .toggle > .toggle-group > .toggle-off.btn-sm {
padding-left: 20px;
}
/* A bordered table's frame: a 1px edge with its left side omitted, 4px corners,
and a separated model keeping frame and cell rules distinct, cells carrying a
left rule only. The replacement collapses the model, drops frame and corners
and rules both sides of every cell.
The color must be stated on the cells, which is why the separated model cannot
be turned on alone: collapsed, the rule between cells is drawn by the row;
separated, each cell draws its own, and the framework sets no color there, so
it falls back to currentColor and every vertical rule turns near-black. */
table.dataTable.table-bordered {
border: 1px solid #dddddd;
border-left: 0;
border-collapse: separate;
border-radius: 4px;
}
table.dataTable.table-bordered > :not(caption) > * > * {
border-right-width: 0;
border-color: var(--bs-table-border-color);
share/public/css/netdisco.css view on Meta::CPAN
}
/* labels in netmap sidebar (not in a collapser) */
.nd_sidebar-label {
margin-left: 7px;
}
/* Tooltip type was 11px and is 14px in the replacement, against an unchanged
200px max-width. The longer labels therefore wrap to two lines and a strip
beside a sidebar field becomes a slab over the content next to it. Both values
are the previous framework's own. */
.tooltip {
--bs-tooltip-font-size: 11px;
--bs-tooltip-padding-y: 8px;
--bs-tooltip-padding-x: 8px;
}
/* to allow display of tooltip on a disabled control
http://jsfiddle.net/cSSUA/209/ */
.tooltip-wrapper {
display: inline-block;
share/public/css/netdisco.css view on Meta::CPAN
margin-bottom: 0;
vertical-align: middle;
}
/* And the 5px the old base rule gave this label, the rest of the gap above the
table: it is a float, so its bottom margin extends the margin box the table
shifts past. */
div.dt-container div.dt-length label {
margin-bottom: 5px;
}
/* The pager drew 28px against the replacement's 36px, from larger padding, a
16px font and 2px of list margin. Set through the framework's pagination
variables so the component keeps deriving everything else.
The selector is long deliberately: this file is linked ahead of the
integration's stylesheet, so an equally specific rule loses the tie, and the
integration states its list margin three classes deep. */
div.dt-container div.nd_datatables-pager div.dt-paging ul.pagination {
--bs-pagination-padding-y: 4px;
--bs-pagination-padding-x: 12px;
--bs-pagination-font-size: 13px;
/* The cell for the page you are on was a pale gray block with gray type, quieter
than the numbers either side; the replacement paints it primary blue under
white type. Rest only: neither stylesheet gives this cell a hover response,
and the framework's active rule already outweighs its hover rule. */
--bs-pagination-active-color: #999999;
--bs-pagination-active-bg: #f5f5f5;
--bs-pagination-active-border-color: #dddddd;
/* And the spent cell, Previous on the first page: gray type alone, the cell left
transparent, where the replacement fills it too. Transparent rather than white
because that is what the old stylesheet declared; the two agree only while
what sits behind the pager is white. */
--bs-pagination-disabled-color: #999999;
--bs-pagination-disabled-bg: transparent;
--bs-pagination-disabled-border-color: #dddddd;
share/public/javascripts/jquery-latest.min.js view on Meta::CPAN
/*! jQuery v3.7.1 | (c) OpenJS Foundation and other contributors | jquery.org/license */
!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof windo...
share/public/javascripts/jquery-ui.min.js view on Meta::CPAN
/*! jQuery UI - v1.14.2 - 2026-01-28
* https://jqueryui.com
* Includes: widget.js, position.js, data.js, disable-selection.js, effect.js, effects/effect-blind.js, effects/effect-bounce.js, effects/effect-clip.js, effects/effect-drop.js, effects/effect-explode.js, effects/effect-fade.js, effects/effect-fold.js...
* Copyright OpenJS Foundation and other contributors; Licensed MIT */
!function(t){"use strict";"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)}(function(t){"use strict";t.ui=t.ui||{},t.ui.version="1.14.2";var e,i,s,n,o,a=0,r=Array.prototype.hasOwnProperty,l=Array.prototype.slice;h=t.cleanData,t.cl...
share/public/javascripts/jquery.floatThead.js view on Meta::CPAN
// The number of sizer columns might not match the header columns in your real table - I insert one sizer header cell per column. This means that if your table uses colspans or multiple header rows,
// this will not be reflected by sizer cells. This is why I am giving you the `columnIndex`.
return $headerCell.text();
},
floatTableClass: 'floatThead-table',
floatWrapperClass: 'floatThead-wrapper',
floatContainerClass: 'floatThead-container',
copyTableClass: true, //copy 'class' attribute from table into the floated table so that the styles match.
autoReflow: false, //(undocumented) - use MutationObserver api to reflow automatically when internal table DOM changes
debug: false, //print possible issues (that don't prevent script loading) to console, if console exists.
support: { //should we bind events that expect these frameworks to be present and/or check for them?
bootstrap: true,
datatables: true,
jqueryUI: true,
perfectScrollbar: true
},
floatContainerCss: {"overflow-x": "hidden"} // undocumented - css applied to the floatContainer
};
var util = (function underscoreShim(){
var that = {};
share/public/javascripts/netdisco.js view on Meta::CPAN
});
// activate tooltips and popovers, delegated from a container so that
// content injected later is covered without re-initialising. bootstrap
// stores one instance per element whatever the component, so the popover
// has to delegate from a different container than the tooltip.
new bootstrap.Tooltip(document.body, { selector: '[rel=tooltip]' });
new bootstrap.Popover(document.documentElement, { selector: '[rel=popover]' });
// Dismiss a tooltip when the pointer leaves, even if the element still holds
// focus. Both frameworks trigger on "hover focus", but the previous one hid
// unconditionally on leave while the replacement keeps the tip up until blur,
// stranding it over the content beside a sidebar field. Deliberately not
// solved by dropping "focus" from the trigger, which would also stop a tooltip
// appearing for someone tabbing through the form.
$(document.body).on('mouseleave', '[rel=tooltip]', function() {
var instance = bootstrap.Tooltip.getInstance(this);
if (instance) { instance.hide(); }
});
// bind submission to the navbar go icon
share/public/swagger-ui/swagger-ui-bundle.js view on Meta::CPAN
/*! For license information please see swagger-ui-bundle.js.LICENSE.txt */
!function webpackUniversalModuleDefinition(s,o){"object"==typeof exports&&"object"==typeof module?module.exports=o():"function"==typeof define&&define.amd?define([],o):"object"==typeof exports?exports.SwaggerUIBundle=o():s.SwaggerUIBundle=o()}(this,(...
share/public/swagger-ui/swagger-ui-bundle.js.map view on Meta::CPAN
{"version":3,"file":"swagger-ui-bundle.js","mappings":";CAAA,SAAUA,iCAAiCC,EAAMC,GAC1B,iBAAZC,SAA0C,iBAAXC,OACxCA,OAAOD,QAAUD,IACQ,mBAAXG,QAAyBA,OAAOC,IAC9CD,OAAO,GAAIH,GACe,iBAAZC,QACdA,QAAyB,gBAAID,IAE7BD,EAAsB,gBAAIC,GAC3B,CATD,CASGK,MAAM,cCRLC,EA...
share/public/swagger-ui/swagger-ui.css view on Meta::CPAN
.swagger-ui{color:#3b4151;container-name:swagger-ui;container-type:inline-size;/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */font-family:sans-serif}.swagger-ui html{line-height:1.15;-ms-text-size-adjust:100%;-webkit-text...
/*# sourceMappingURL=swagger-ui.css.map*/
share/public/swagger-ui/swagger-ui.css.map view on Meta::CPAN
{"version":3,"file":"swagger-ui.css","mappings":"AAAA,YCII,aCcU,CFfd,yBACE,2BACA,4EGEF,CFJE,sBEIF,CDWc,iCCCZ,0BACA,8BACA,kBAUF,QACE,iHAOF,aAME,gBAQF,aACE,eACA,4DAWF,aAGE,oBAOF,eACE,gBAQF,sBACE,SACA,iBACA,iBAQF,+BACE,cACA,eAWF,4BACE,qCACA,yBAQF,kBACE,...
share/schema_versions/App-Netdisco-DB-75-76-PostgreSQL.sql view on Meta::CPAN
BEGIN;
ALTER TABLE device ADD COLUMN "pae_is_enabled" boolean;
ALTER TABLE device_port_properties ADD COLUMN "pae_authconfig_state" text;
ALTER TABLE device_port_properties ADD COLUMN "pae_authconfig_port_control" text;
ALTER TABLE device_port_properties ADD COLUMN "pae_authconfig_port_status" text;
ALTER TABLE device_port_properties ADD COLUMN "pae_authsess_user" text;
ALTER TABLE device_port_properties ADD COLUMN "pae_authsess_mab" text;
ALTER TABLE device_port_properties ADD COLUMN "pae_last_eapol_frame_source" text;
ALTER TABLE device_port_properties ADD COLUMN "pae_is_authenticator" boolean;
ALTER TABLE device_port_properties ADD COLUMN "pae_is_supplicant" boolean;
COMMIT;
share/views/ajax/device/ports_csv.tt view on Meta::CPAN
[% myport.push('') %]
[% END %]
[% END %]
[% IF params.c_nac_summary %]
[% myport.push( row.pae_authconfig_port_control ) %]
[% myport.push( row.pae_authconfig_state ) %]
[% myport.push( row.pae_authconfig_port_status ) %]
[% myport.push( row.pae_authsess_user ) %]
[% myport.push( row.pae_authsess_mab ) %]
[% myport.push( row.pae_last_eapol_frame_source ) %]
[% END %]
[% FOREACH config IN settings._extra_device_port_cols %]
[% NEXT UNLESS config.position == 'mid' AND params.${config.name} %]
[% NEXT IF config.hidden %]
[% TRY %]
[% TRY %]
[% PROCESS "plugin/${config.name}/device_port_column_csv.tt" %]
[% CATCH %]
[% myport.push( row.get_column(config.field) ) %]
xt/33-vendored-manifest.t view on Meta::CPAN
# was verified by nothing while the CSS beside it was verified from the
# start, and a wrong version in it passed the suite.
package => 'bootstrap5-toggle',
file => [qw/javascripts bootstrap-toggle.min.js/],
banner => sub { qr/bootstrap5-toggle v\Q$_[0]\E\b/ },
},
{ package => 'datatables.net',
file => [qw/javascripts jquery.dataTables.min.js/],
banner => sub { qr/DataTables \Q$_[0]\E\b/ },
},
{ # The Bootstrap 5 integration layer states which framework it targets
# and never which version of itself, so there is nothing to read back.
package => 'datatables.net-bs5',
file => [qw/javascripts dataTables.bootstrap.js/],
sha256 => '5adfe8c7957aaec56ef0403aa9e1fcdf7165785f092c34bb55c9075ea660ddbc',
pinned_for => '2.3.8',
},
{ # Two reasons rather than one. The banner reads "@version: 3.1" where
# the manifest declares 3.1.0, so no exact read is possible, and the
# file is patched locally besides, which a version string cannot show.
package => 'daterangepicker',