App-Netdisco

 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',



( run in 4.691 seconds using v1.01-cache-2.11-cpan-2e0ccfb7a10 )