oxidized-web 0.17.0 → 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/.rubocop.yml +1 -1
- data/CHANGELOG.md +25 -1
- data/docs/development.md +31 -26
- 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 +9 -2
- data/oxidized-web.gemspec +12 -10
- data/package-lock.json +20 -20
- data/spec/web/node/show_spec.rb +89 -60
- data/spec/web/nodes_spec.rb +7 -0
- metadata +43 -41
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/.rubocop.yml
CHANGED
data/CHANGELOG.md
CHANGED
|
@@ -3,9 +3,32 @@
|
|
|
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)
|
|
6
21
|
|
|
7
|
-
## [0.17.0 – 2025-07-18]
|
|
8
22
|
|
|
23
|
+
## [0.17.1 – 2025-08-01]
|
|
24
|
+
### Changed
|
|
25
|
+
- Dependency on Oxidized 0.34.1 (@robertcheramy)
|
|
26
|
+
|
|
27
|
+
### Fixed
|
|
28
|
+
- Hide node vars works with Oxidized > 0.34.1 (@robertcheramy)
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
## [0.17.0 – 2025-07-18]
|
|
9
32
|
### Added
|
|
10
33
|
- Documentation of the configuration (@robertcheramy)
|
|
11
34
|
|
|
@@ -20,6 +43,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
|
20
43
|
- Hide node vars when listed in the configuration entry hide_node_vars. Fixes: #344 (@robertcheramy)
|
|
21
44
|
- /node/next/: Prefer JSON.parse over JSON.load (@robertcheramy)
|
|
22
45
|
|
|
46
|
+
|
|
23
47
|
## [0.16.0 - 2025-03-25]
|
|
24
48
|
This release introduces the possibility for an extended configuration of
|
|
25
49
|
oxidized-web in the oxidized configuration file. Oxidized versions after 0.32.2
|
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?
|
|
@@ -91,13 +91,16 @@ Oxidized-web versions are numbered like major.minor.patch
|
|
|
91
91
|
- minor is incremented when releasing new features.
|
|
92
92
|
- patch is incremented when releasing fixes only.
|
|
93
93
|
|
|
94
|
+
## Create a release branch
|
|
95
|
+
Name the release branch `release/0.xx.yy`
|
|
96
|
+
|
|
94
97
|
## Review changes
|
|
95
|
-
Run `git diff 0.xx.yy
|
|
98
|
+
Run `git diff 0.xx.yy` (where `0.xx.yy` is to be changed to the previous
|
|
96
99
|
release) and review all the changes that have been done. Have a specific look
|
|
97
100
|
at changes you don't understand.
|
|
98
101
|
|
|
99
102
|
It is nicer to read in a GUI, so you can use something like
|
|
100
|
-
`git difftool --tool=kdiff3 -d 0.xx.yy
|
|
103
|
+
`git difftool --tool=kdiff3 -d 0.xx.yy` to see it in kdiff3.
|
|
101
104
|
|
|
102
105
|
## Update the gem dependencies to the latest versions
|
|
103
106
|
```
|
|
@@ -108,7 +111,7 @@ bundle outaded
|
|
|
108
111
|
|
|
109
112
|
Test again after updating!
|
|
110
113
|
|
|
111
|
-
## Update the
|
|
114
|
+
## Update the web libraries to the latest versions
|
|
112
115
|
```
|
|
113
116
|
npm outdated
|
|
114
117
|
```
|
|
@@ -118,32 +121,32 @@ Test again after updating!
|
|
|
118
121
|
## Make sure the file permissions are correct
|
|
119
122
|
Run `bundle exec rake chmod`
|
|
120
123
|
|
|
121
|
-
## Create a release branch
|
|
122
|
-
Name the release branch `release/0.xx.yy`
|
|
123
|
-
|
|
124
|
-
Update CHANGELOG.md:
|
|
125
|
-
- review it
|
|
126
|
-
- add release notes
|
|
127
|
-
- set the new version (replace `[Unreleased]` with `[0.xx.yy – 202Y-MM-DD]`)
|
|
128
|
-
|
|
129
|
-
Change the version in `lib/oxidized/web/version.rb`
|
|
130
|
-
|
|
131
|
-
Upload the branch to github, make a Pull Request for it.
|
|
132
|
-
|
|
133
124
|
## Test!
|
|
134
125
|
Run `bundle exec rake` on the git repository to check the code against rubocop
|
|
135
126
|
and run the defined tests in `/spec`.
|
|
136
127
|
|
|
137
|
-
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`
|
|
138
129
|
|
|
139
130
|
When testing the web application, open the javascript console in the browser to
|
|
140
131
|
see any errors.
|
|
141
132
|
|
|
133
|
+
## Bump the version
|
|
134
|
+
Update CHANGELOG.md:
|
|
135
|
+
- review it.
|
|
136
|
+
- add release notes.
|
|
137
|
+
- look into the next Milestone and inform about important issues planned for
|
|
138
|
+
next release.
|
|
139
|
+
- set the new version (replace `[Unreleased]` with `[0.xx.yy – 202Y-MM-DD]`)
|
|
140
|
+
|
|
141
|
+
Change the version in `lib/oxidized/web/version.rb`
|
|
142
|
+
|
|
143
|
+
Upload the release branch to github, make a Pull Request for it.
|
|
144
|
+
|
|
142
145
|
## Release
|
|
143
146
|
1. Merge the Pull Request into master with the commit message
|
|
144
|
-
`chore(release): release version 0.
|
|
147
|
+
`chore(release): release version 0.xx.y`
|
|
145
148
|
2. `git pull` master
|
|
146
|
-
3. Tag the commit with `git tag -a 0.xx.yy -m "Release 0.xx.yy"`
|
|
149
|
+
3. Tag the commit with `git tag -a 0.xx.yy -m "Release 0.xx.yy"` or `rake tag`
|
|
147
150
|
4. Build the gem with ‘rake build’
|
|
148
151
|
5. Run `git diff` to check if there have been more changes (there shouldn't)
|
|
149
152
|
6. Install an test the gem locally
|
|
@@ -163,6 +166,8 @@ Make a release from the tag in github.
|
|
|
163
166
|
- List new contributors (generated automatically)
|
|
164
167
|
- Keep the Full Changelog (generated automatically)
|
|
165
168
|
|
|
169
|
+
Close the corresponding milestone in github.
|
|
170
|
+
|
|
166
171
|
## Release in rubygems
|
|
167
172
|
Push the gem with ‘rake push’
|
|
168
173
|
|
|
@@ -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);
|