oxidized-web 0.17.1 → 0.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of oxidized-web might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/.github/workflows/codeql.yml +4 -4
- data/.github/workflows/ruby.yml +1 -1
- data/.github/workflows/stale.yml +1 -1
- data/CHANGELOG.md +17 -0
- data/docs/development.md +14 -12
- data/lib/oxidized/web/public/css/oxidized.css +22 -11
- data/lib/oxidized/web/public/scripts/theme-toggle.js +55 -0
- data/lib/oxidized/web/public/weblibs/bootstrap.bundle.js +2 -5
- data/lib/oxidized/web/public/weblibs/bootstrap.bundle.js.map +1 -1
- data/lib/oxidized/web/public/weblibs/bootstrap.css +6 -1
- data/lib/oxidized/web/public/weblibs/bootstrap.css.map +1 -1
- data/lib/oxidized/web/public/weblibs/bootstrap.js +2 -5
- data/lib/oxidized/web/public/weblibs/bootstrap.js.map +1 -1
- data/lib/oxidized/web/public/weblibs/buttons.bootstrap5.css +56 -39
- data/lib/oxidized/web/public/weblibs/buttons.bootstrap5.js +14 -6
- data/lib/oxidized/web/public/weblibs/dataTables.bootstrap5.css +7 -8
- data/lib/oxidized/web/public/weblibs/dataTables.buttons.js +15 -8
- data/lib/oxidized/web/public/weblibs/dataTables.js +331 -277
- data/lib/oxidized/web/version.rb +1 -1
- data/lib/oxidized/web/views/head.haml +2 -0
- data/lib/oxidized/web/views/layout.haml +2 -0
- data/lib/oxidized/web/views/node.haml +3 -3
- data/lib/oxidized/web/views/nodes.haml +3 -3
- data/lib/oxidized/web/views/versions.haml +2 -2
- data/lib/oxidized/web/webapp.rb +6 -1
- data/oxidized-web.gemspec +12 -10
- data/package-lock.json +20 -20
- data/spec/web/nodes_spec.rb +7 -0
- metadata +41 -39
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 65d2167a7730774cc00bd44654db8a47406c705d792e2f4de65a29139e472a2e
|
|
4
|
+
data.tar.gz: 54ad4889bfad1df807091fe256ccb05f01adad35c3a3570bd0b11a7376cb4028
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a69af301e9965a59c8dbae6ba4c935b4c7e77f645fb0f040d208f922deb65d18218bb4773a9a13b28d9c521eaa34ff53666064196f34a3edc810b32581405e79
|
|
7
|
+
data.tar.gz: f08cc40327630149b8c08b7a9a32a6b13b166e35fa5c55b7d4c7ef3c765dd1d805b7f98eb1503fe4ce6f57d0509b493748f8827dd26a47d1b00644c17d8a0830
|
|
@@ -40,11 +40,11 @@ jobs:
|
|
|
40
40
|
|
|
41
41
|
steps:
|
|
42
42
|
- name: Checkout repository
|
|
43
|
-
uses: actions/checkout@
|
|
43
|
+
uses: actions/checkout@v6
|
|
44
44
|
|
|
45
45
|
# Initializes the CodeQL tools for scanning.
|
|
46
46
|
- name: Initialize CodeQL
|
|
47
|
-
uses: github/codeql-action/init@
|
|
47
|
+
uses: github/codeql-action/init@v4
|
|
48
48
|
with:
|
|
49
49
|
languages: ${{ matrix.language }}
|
|
50
50
|
# If you wish to specify custom queries, you can do so here or in a config file.
|
|
@@ -58,7 +58,7 @@ jobs:
|
|
|
58
58
|
# Autobuild attempts to build any compiled languages (C/C++, C#, Go, or Java).
|
|
59
59
|
# If this step fails, then you should remove it and run the build manually (see below)
|
|
60
60
|
- name: Autobuild
|
|
61
|
-
uses: github/codeql-action/autobuild@
|
|
61
|
+
uses: github/codeql-action/autobuild@v4
|
|
62
62
|
|
|
63
63
|
# ℹ️ Command-line programs to run using the OS shell.
|
|
64
64
|
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
|
|
@@ -71,6 +71,6 @@ jobs:
|
|
|
71
71
|
# ./location_of_script_within_repo/buildscript.sh
|
|
72
72
|
|
|
73
73
|
- name: Perform CodeQL Analysis
|
|
74
|
-
uses: github/codeql-action/analyze@
|
|
74
|
+
uses: github/codeql-action/analyze@v4
|
|
75
75
|
with:
|
|
76
76
|
category: "/language:${{matrix.language}}"
|
data/.github/workflows/ruby.yml
CHANGED
|
@@ -23,7 +23,7 @@ jobs:
|
|
|
23
23
|
continue-on-error: ${{ matrix.ruby-version == 'ruby-head' }}
|
|
24
24
|
|
|
25
25
|
steps:
|
|
26
|
-
- uses: actions/checkout@
|
|
26
|
+
- uses: actions/checkout@v6
|
|
27
27
|
- name: Set up Ruby
|
|
28
28
|
# To automatically get bug fixes and new Ruby versions for ruby/setup-ruby,
|
|
29
29
|
# change this to (see https://github.com/ruby/setup-ruby#versioning):
|
data/.github/workflows/stale.yml
CHANGED
|
@@ -11,7 +11,7 @@ jobs:
|
|
|
11
11
|
stale:
|
|
12
12
|
runs-on: ubuntu-latest
|
|
13
13
|
steps:
|
|
14
|
-
- uses: actions/stale@
|
|
14
|
+
- uses: actions/stale@v10
|
|
15
15
|
with:
|
|
16
16
|
stale-issue-message: 'This issue is stale because it has been open 90 days with no activity.'
|
|
17
17
|
stale-pr-message: 'This PR is stale because it has been open 90 days with no activity.'
|
data/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,23 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
6
|
+
## [0.18.0 – 2025-12-03]
|
|
7
|
+
It's finally here - dark mode. Enjoy!
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
- Support for dark mode (@robertcheramy)
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
- Dependency on Oxidized => 0.34.1 to support future Oxidized releases (@robertcheramy)
|
|
14
|
+
- Update web libraries to the latest versions (@robertcheramy)
|
|
15
|
+
- Allow latest gems versions (@robertcheramy)
|
|
16
|
+
- Limit Haml gem to < 7.0.0, as it doesn't support Ruby 3.1 (@robertcheramy)
|
|
17
|
+
- Allow enumeration of nodes contained in the `default` group (@oogali)
|
|
18
|
+
|
|
19
|
+
### Fixed
|
|
20
|
+
- Remove redundant dependency on bundler producing a CI failure on ruby-head (@robertcheramy)
|
|
21
|
+
|
|
22
|
+
|
|
6
23
|
## [0.17.1 – 2025-08-01]
|
|
7
24
|
### Changed
|
|
8
25
|
- Dependency on Oxidized 0.34.1 (@robertcheramy)
|
data/docs/development.md
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
# How to run / develop oxidized-web from git
|
|
7
7
|
## Using the latest oxidized package
|
|
8
|
-
When you develop oxidized-web, it is
|
|
8
|
+
When you develop oxidized-web, it is simple to run it from git. As it depends on oxidized,
|
|
9
9
|
oxidized will be included in `bundle install`, and you just have to run `bundle exec oxidized`.
|
|
10
10
|
You need bundler, if not installed yet. On debian-based systems, you can run `sudo apt install ruby-bundler` to install it.
|
|
11
11
|
|
|
@@ -60,12 +60,12 @@ bundle exec oxidized
|
|
|
60
60
|
```
|
|
61
61
|
|
|
62
62
|
|
|
63
|
-
# Update the
|
|
64
|
-
The
|
|
63
|
+
# Update the Web Libraries
|
|
64
|
+
The web libraries are downloaded and managed with `npm`.
|
|
65
65
|
|
|
66
|
-
Run `npm install` to download the
|
|
67
|
-
|
|
68
|
-
The file `package-lock.json` (
|
|
66
|
+
Run `npm install` to download the web libraries. They will be stored under
|
|
67
|
+
`/node_modules`.
|
|
68
|
+
The file `package-lock.json` (which is tracked in git) ensures that every
|
|
69
69
|
developer gets the same versions.
|
|
70
70
|
|
|
71
71
|
Run `npm outdated` to get a list of new releases:
|
|
@@ -76,11 +76,11 @@ Package Current Wanted Latest Location De
|
|
|
76
76
|
datatables.net-bs5 2.0.7 2.0.8 2.0.8 node_modules/datatables.net-bs5 oxidized-web
|
|
77
77
|
```
|
|
78
78
|
|
|
79
|
-
Run `npm update` to get the latest releases. They still are not used
|
|
79
|
+
Run `npm update` to get the latest releases. They still are not used by
|
|
80
80
|
oxidzed-web. Run `rake weblibs` to sync `node_modules` with
|
|
81
81
|
`lib/oxidized/web/public/weblibs`.
|
|
82
82
|
|
|
83
|
-
Test, and commit the changes to the
|
|
83
|
+
Test, and commit the changes to the web libraries **and** package-lock.json. Don't
|
|
84
84
|
forget to document your changes in CHANGELOG.md.
|
|
85
85
|
|
|
86
86
|
# How to release a new version of Oxidized-web?
|
|
@@ -111,7 +111,7 @@ bundle outaded
|
|
|
111
111
|
|
|
112
112
|
Test again after updating!
|
|
113
113
|
|
|
114
|
-
## Update the
|
|
114
|
+
## Update the web libraries to the latest versions
|
|
115
115
|
```
|
|
116
116
|
npm outdated
|
|
117
117
|
```
|
|
@@ -125,15 +125,17 @@ Run `bundle exec rake chmod`
|
|
|
125
125
|
Run `bundle exec rake` on the git repository to check the code against rubocop
|
|
126
126
|
and run the defined tests in `/spec`.
|
|
127
127
|
|
|
128
|
-
Run Oxidized-web from git against the latest Oxidized version `bundle exec
|
|
128
|
+
Run Oxidized-web from git against the latest Oxidized version `bundle exec oxidized`
|
|
129
129
|
|
|
130
130
|
When testing the web application, open the javascript console in the browser to
|
|
131
131
|
see any errors.
|
|
132
132
|
|
|
133
133
|
## Bump the version
|
|
134
134
|
Update CHANGELOG.md:
|
|
135
|
-
- review it
|
|
136
|
-
- add release notes
|
|
135
|
+
- review it.
|
|
136
|
+
- add release notes.
|
|
137
|
+
- look into the next Milestone and inform about important issues planned for
|
|
138
|
+
next release.
|
|
137
139
|
- set the new version (replace `[Unreleased]` with `[0.xx.yy – 202Y-MM-DD]`)
|
|
138
140
|
|
|
139
141
|
Change the version in `lib/oxidized/web/version.rb`
|
|
@@ -9,31 +9,41 @@
|
|
|
9
9
|
border-radius: 2px; }
|
|
10
10
|
|
|
11
11
|
.success {
|
|
12
|
-
background-color:
|
|
12
|
+
background-color: var(--bs-success);
|
|
13
|
+
}
|
|
13
14
|
|
|
14
15
|
.no_connection {
|
|
15
|
-
background-color:
|
|
16
|
+
background-color: var(--bs-danger);
|
|
17
|
+
}
|
|
16
18
|
|
|
17
19
|
.never {
|
|
18
|
-
background-color:
|
|
20
|
+
background-color: var(--bs-info);
|
|
21
|
+
}
|
|
19
22
|
|
|
20
23
|
/* node/version/diffs */
|
|
21
24
|
.added {
|
|
22
|
-
background-color:
|
|
25
|
+
background-color: var(--bs-success-bg-subtle);
|
|
26
|
+
color: var(--bs-success-text-emphasis);
|
|
27
|
+
}
|
|
23
28
|
|
|
24
29
|
.deleted {
|
|
25
|
-
background-color:
|
|
26
|
-
|
|
30
|
+
background-color: var(--bs-danger-bg-subtle);
|
|
31
|
+
color: var(--bs-danger-text-emphasis);
|
|
32
|
+
}
|
|
27
33
|
|
|
28
34
|
.diff-index {
|
|
29
|
-
background-color:
|
|
35
|
+
background-color: var(--bs-warning-bg-subtle);
|
|
36
|
+
color: var(--bs-warning-text-emphasis);
|
|
37
|
+
}
|
|
30
38
|
|
|
31
39
|
.diff-empty {
|
|
32
|
-
background-color:
|
|
40
|
+
background-color: var(--bs-secondary-bg);
|
|
41
|
+
color: var(--bs-secondary-color);
|
|
42
|
+
}
|
|
33
43
|
|
|
34
44
|
.diffs, .diffs_old, .diffs_new {
|
|
35
|
-
background-color:
|
|
36
|
-
border: 2px solid
|
|
45
|
+
background-color: var(--bs-body-bg);
|
|
46
|
+
border: 2px solid var(--bs-border-color);
|
|
37
47
|
border-radius: 5px;
|
|
38
48
|
padding: 3px;
|
|
39
49
|
font-family: Consolas, "Lucida Console", monospace;
|
|
@@ -56,4 +66,5 @@
|
|
|
56
66
|
|
|
57
67
|
.new_version_title {
|
|
58
68
|
margin-left: 51%;
|
|
59
|
-
font-weight: bold;
|
|
69
|
+
font-weight: bold;
|
|
70
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
// Theme Toggle Functionality
|
|
2
|
+
(function() {
|
|
3
|
+
'use strict';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Initialize theme on page load
|
|
7
|
+
* Retrieves saved theme from localStorage or defaults to 'light'
|
|
8
|
+
*/
|
|
9
|
+
function initTheme() {
|
|
10
|
+
const savedTheme = localStorage.getItem('theme') || 'light';
|
|
11
|
+
document.documentElement.setAttribute('data-bs-theme', savedTheme);
|
|
12
|
+
updateToggleButton(savedTheme);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Toggle between light and dark theme
|
|
17
|
+
* Saves the new theme preference to localStorage
|
|
18
|
+
*/
|
|
19
|
+
function toggleTheme() {
|
|
20
|
+
const html = document.documentElement;
|
|
21
|
+
const currentTheme = html.getAttribute('data-bs-theme') || 'light';
|
|
22
|
+
const newTheme = currentTheme === 'dark' ? 'light' : 'dark';
|
|
23
|
+
|
|
24
|
+
html.setAttribute('data-bs-theme', newTheme);
|
|
25
|
+
localStorage.setItem('theme', newTheme);
|
|
26
|
+
updateToggleButton(newTheme);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Update the toggle button icon based on current theme
|
|
31
|
+
* @param {string} theme - Current theme ('light' or 'dark')
|
|
32
|
+
*/
|
|
33
|
+
function updateToggleButton(theme) {
|
|
34
|
+
const button = document.getElementById('theme-toggle');
|
|
35
|
+
if (button) {
|
|
36
|
+
const icon = button.querySelector('i');
|
|
37
|
+
if (icon) {
|
|
38
|
+
icon.className = theme === 'dark' ? 'bi bi-sun-fill' : 'bi bi-moon-fill';
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Add event listener when DOM is fully loaded
|
|
45
|
+
*/
|
|
46
|
+
document.addEventListener('DOMContentLoaded', function() {
|
|
47
|
+
const toggleButton = document.getElementById('theme-toggle');
|
|
48
|
+
if (toggleButton) {
|
|
49
|
+
toggleButton.addEventListener('click', toggleTheme);
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
// Initialize theme immediately to prevent flash of wrong theme
|
|
54
|
+
initTheme();
|
|
55
|
+
})();
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Bootstrap v5.3.
|
|
2
|
+
* Bootstrap v5.3.8 (https://getbootstrap.com/)
|
|
3
3
|
* Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
|
|
4
4
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
|
5
5
|
*/
|
|
@@ -647,7 +647,7 @@
|
|
|
647
647
|
* Constants
|
|
648
648
|
*/
|
|
649
649
|
|
|
650
|
-
const VERSION = '5.3.
|
|
650
|
+
const VERSION = '5.3.8';
|
|
651
651
|
|
|
652
652
|
/**
|
|
653
653
|
* Class definition
|
|
@@ -3690,9 +3690,6 @@
|
|
|
3690
3690
|
this._element.setAttribute('aria-expanded', 'false');
|
|
3691
3691
|
Manipulator.removeDataAttribute(this._menu, 'popper');
|
|
3692
3692
|
EventHandler.trigger(this._element, EVENT_HIDDEN$5, relatedTarget);
|
|
3693
|
-
|
|
3694
|
-
// Explicitly return focus to the trigger element
|
|
3695
|
-
this._element.focus();
|
|
3696
3693
|
}
|
|
3697
3694
|
_getConfig(config) {
|
|
3698
3695
|
config = super._getConfig(config);
|