oxidized-web 0.15.1 → 0.17.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/.gitignore +4 -0
- data/.rubocop.yml +22 -2
- data/CHANGELOG.md +30 -1
- data/README.md +13 -3
- data/Rakefile +9 -4
- data/docs/configuration.md +90 -0
- data/docs/development.md +42 -39
- data/lib/oxidized/web/public/scripts/oxidized.js +13 -13
- data/lib/oxidized/web/public/weblibs/bootstrap-icons.css +31 -3
- data/lib/oxidized/web/public/weblibs/bootstrap.bundle.js +20 -19
- data/lib/oxidized/web/public/weblibs/bootstrap.bundle.js.map +1 -1
- data/lib/oxidized/web/public/weblibs/bootstrap.css +110 -124
- data/lib/oxidized/web/public/weblibs/bootstrap.css.map +1 -1
- data/lib/oxidized/web/public/weblibs/bootstrap.js +20 -17
- data/lib/oxidized/web/public/weblibs/bootstrap.js.map +1 -1
- data/lib/oxidized/web/public/weblibs/buttons.bootstrap5.css +3 -3
- data/lib/oxidized/web/public/weblibs/buttons.colVis.js +14 -5
- data/lib/oxidized/web/public/weblibs/dataTables.bootstrap5.css +111 -17
- data/lib/oxidized/web/public/weblibs/dataTables.buttons.js +25 -7
- data/lib/oxidized/web/public/weblibs/dataTables.js +336 -106
- data/lib/oxidized/web/public/weblibs/dayjs-plugin-utc.min.js +1 -0
- data/lib/oxidized/web/public/weblibs/dayjs.min.js +1 -0
- data/lib/oxidized/web/public/weblibs/fonts/bootstrap-icons.woff +0 -0
- data/lib/oxidized/web/public/weblibs/fonts/bootstrap-icons.woff2 +0 -0
- data/lib/oxidized/web/version.rb +1 -1
- data/lib/oxidized/web/views/conf_search.haml +1 -1
- data/lib/oxidized/web/views/diffs.haml +6 -7
- data/lib/oxidized/web/views/head.haml +4 -0
- data/lib/oxidized/web/views/node.haml +3 -2
- data/lib/oxidized/web/views/nodes.haml +13 -5
- data/lib/oxidized/web/views/stats.haml +11 -3
- data/lib/oxidized/web/views/version.haml +1 -2
- data/lib/oxidized/web/views/versions.haml +11 -7
- data/lib/oxidized/web/webapp.rb +41 -29
- data/lib/oxidized/web.rb +72 -16
- data/oxidized-web.gemspec +22 -13
- data/package-lock.json +37 -25
- data/package.json +7 -5
- data/spec/spec_helper.rb +1 -0
- data/spec/web/node/show_spec.rb +100 -0
- data/spec/web/node/version_spec.rb +161 -0
- data/spec/{node_spec.rb → web/node_spec.rb} +1 -1
- data/spec/{nodes_spec.rb → web/nodes_spec.rb} +1 -1
- data/spec/{root_spec.rb → web/root_spec.rb} +1 -1
- data/spec/{webapp_spec.rb → web/webapp_spec.rb} +1 -1
- data/spec/web_spec.rb +98 -0
- metadata +69 -69
- data/.rubocop_todo.yml +0 -64
- data/spec/node_version_spec.rb +0 -102
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3a14e46c410d51b9da6a86d6d67fc35bdaed177adfbb006b1e2df4ec12c958bc
|
4
|
+
data.tar.gz: 7dc9144e706052817ca761a4e80151d40ee73fd7467c31894d2d5fa21c4767b0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c5b12efffe62f84156e27d30405a2934a9340373bd4b6b5ad9e3df41d65258bc9ab65221c5f153b813b41b17835a673b576c746da3f497332a870aaadec3a26e
|
7
|
+
data.tar.gz: 8fb63afdf4b7dc9dbca3e052b75efc2377506171764456353e1478be36ac82629be3f87445918a2471f13f143280b5cd021d8fa34b6ea834deccd74b95b891b5
|
data/.gitignore
CHANGED
data/.rubocop.yml
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
inherit_from: .rubocop_todo.yml
|
2
1
|
plugins:
|
3
2
|
- rubocop-rails
|
4
3
|
- rubocop-rake
|
@@ -14,12 +13,31 @@ AllCops:
|
|
14
13
|
Gemspec/DevelopmentDependencies:
|
15
14
|
EnforcedStyle: gemspec
|
16
15
|
|
16
|
+
Metrics/AbcSize:
|
17
|
+
Enabled: false
|
18
|
+
|
17
19
|
Metrics/ClassLength:
|
18
|
-
|
20
|
+
Enabled: false
|
21
|
+
|
22
|
+
Metrics/PerceivedComplexity:
|
23
|
+
Enabled: false
|
24
|
+
|
25
|
+
Metrics/CyclomaticComplexity:
|
26
|
+
Enabled: false
|
27
|
+
|
28
|
+
Metrics/MethodLength:
|
29
|
+
Enabled: false
|
19
30
|
|
20
31
|
Metrics/BlockLength:
|
21
32
|
Max: 150
|
22
33
|
|
34
|
+
# Not using Rails, so no timezones
|
35
|
+
Rails/TimeZone:
|
36
|
+
Enabled: false
|
37
|
+
|
38
|
+
Rails/RakeEnvironment:
|
39
|
+
Enabled: false
|
40
|
+
|
23
41
|
Style/Documentation:
|
24
42
|
Enabled: false
|
25
43
|
|
@@ -70,3 +88,5 @@ Style/HashSyntax:
|
|
70
88
|
Style/RescueModifier:
|
71
89
|
Enabled: false
|
72
90
|
|
91
|
+
Style/NumericLiterals:
|
92
|
+
Enabled: false
|
data/CHANGELOG.md
CHANGED
@@ -3,8 +3,37 @@
|
|
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
|
+
|
7
|
+
## [0.17.0 – 2025-07-18]
|
8
|
+
|
9
|
+
### Added
|
10
|
+
- Documentation of the configuration (@robertcheramy)
|
11
|
+
|
12
|
+
### Changed
|
13
|
+
- Update weblibs to the latest versions (@robertcheramy)
|
14
|
+
- Depend on oxidized 0.34.0 (configuration of oxidized web as an extension) (@robertcheramy)
|
15
|
+
- Use JSON to format the node metadata in /node/show (@robertcheramy)
|
16
|
+
|
17
|
+
### Fixed
|
18
|
+
- Run puma directly, so that it does not rename the oxidized process. Fixes: 349 (@robertcheramy)
|
19
|
+
- Display local time correctly and use epoch as timestamps in the URLs. Fixes: #258 and #356 (@robertcheramy)
|
20
|
+
- Hide node vars when listed in the configuration entry hide_node_vars. Fixes: #344 (@robertcheramy)
|
21
|
+
- /node/next/: Prefer JSON.parse over JSON.load (@robertcheramy)
|
22
|
+
|
23
|
+
## [0.16.0 - 2025-03-25]
|
24
|
+
This release introduces the possibility for an extended configuration of
|
25
|
+
oxidized-web in the oxidized configuration file. Oxidized versions after 0.32.2
|
26
|
+
will only work with oxidized-web version 0.16.0 or later.
|
27
|
+
|
28
|
+
### Changed
|
29
|
+
- Allow connection to any virtual hosts + prepare extended configuration to specify which vhosts to accept. Fixes #298 (@robertcheramy)
|
30
|
+
|
31
|
+
### Fixed
|
32
|
+
- the table preferences (pagelength, column visibility, search) are stored in the local browser cache. Fixes #315 #314 #265 #211 (@robertcheramy)
|
33
|
+
- Update "refresh" and "Update node list" to more meaningful texts (@robertcheramy)
|
34
|
+
|
6
35
|
## [0.15.1 – 2025-02-20]
|
7
|
-
This
|
36
|
+
This patch release fixes javascript errors.
|
8
37
|
|
9
38
|
### Fixed
|
10
39
|
- Fix javascript not working (@robertcheramy)
|
data/README.md
CHANGED
@@ -3,15 +3,25 @@
|
|
3
3
|
[](https://github.com/ytti/oxidized-web/actions/workflows/ruby.yml)
|
4
4
|
[](http://badge.fury.io/rb/oxidized-web)
|
5
5
|
|
6
|
-
Web
|
6
|
+
Web user interface and RESTful API for Oxidized.
|
7
7
|
|
8
|
-
|
8
|
+
## Installation
|
9
|
+
This is not useful independently, see https://github.com/ytti/oxidized for
|
10
|
+
install instructions.
|
9
11
|
|
12
|
+
Note: because of its dependencies, installing the `oxidized-web` gem will
|
13
|
+
install `oxidized` automatically.
|
14
|
+
|
15
|
+
## Configuration
|
16
|
+
`oxidized-web` is configured through the configuration of `oxidized`,
|
17
|
+
in the `extension` section. For details, see
|
18
|
+
[docs/configuration.md](docs/configuration.md).
|
19
|
+
|
20
|
+
## Development
|
10
21
|
If you wonder how to run oxidized-web from git for development, have a look at
|
11
22
|
[docs/development.md](docs/development.md).
|
12
23
|
|
13
24
|
## License and Copyright
|
14
|
-
|
15
25
|
Copyright 2013-2015 Saku Ytti <saku@ytti.fi>
|
16
26
|
2013-2015 Samer Abdel-Hafez <sam@arahant.net>
|
17
27
|
|
data/Rakefile
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'bundler/gem_tasks'
|
2
2
|
require 'rake/testtask'
|
3
3
|
|
4
|
-
gemspec =
|
4
|
+
gemspec = Gem::Specification.load(Dir['*.gemspec'].first)
|
5
5
|
gemfile = "#{[gemspec.name, gemspec.version].join('-')}.gem"
|
6
6
|
|
7
7
|
# Integrate Rubocop if available
|
@@ -9,7 +9,6 @@ begin
|
|
9
9
|
require 'rubocop/rake_task'
|
10
10
|
|
11
11
|
RuboCop::RakeTask.new
|
12
|
-
task(:default).prerequisites << task(:rubocop)
|
13
12
|
rescue LoadError
|
14
13
|
task :rubocop do
|
15
14
|
puts 'Install rubocop to run its rake tasks'
|
@@ -32,7 +31,9 @@ task :test do
|
|
32
31
|
end
|
33
32
|
end
|
34
33
|
|
34
|
+
desc 'build the gem'
|
35
35
|
task build: :chmod
|
36
|
+
|
36
37
|
## desc 'Install gem'
|
37
38
|
## task :install => :build do
|
38
39
|
## system "sudo -Es sh -c \'umask 022; gem install gems/#{file}\'"
|
@@ -53,7 +54,7 @@ task push: :tag do
|
|
53
54
|
system "gem push pkg/#{gemfile}"
|
54
55
|
end
|
55
56
|
|
56
|
-
desc '
|
57
|
+
desc 'Normalize file permissions'
|
57
58
|
task :chmod do
|
58
59
|
xbit = %w[]
|
59
60
|
dirs = []
|
@@ -99,6 +100,10 @@ task :weblibs do
|
|
99
100
|
weblibs << 'node_modules/datatables.net-buttons/js/dataTables.buttons.js'
|
100
101
|
weblibs << 'node_modules/datatables.net-buttons/js/buttons.colVis.js'
|
101
102
|
|
103
|
+
# dayjs
|
104
|
+
weblibs << 'node_modules/dayjs/dayjs.min.js'
|
105
|
+
weblibs << 'node_modules/dayjs-plugin-utc/dist/dayjs-plugin-utc.min.js'
|
106
|
+
|
102
107
|
weblibs.each do |w|
|
103
108
|
cp(w, 'lib/oxidized/web/public/weblibs')
|
104
109
|
end
|
@@ -108,4 +113,4 @@ task :weblibs do
|
|
108
113
|
end
|
109
114
|
end
|
110
115
|
|
111
|
-
task default:
|
116
|
+
task default: %i[rubocop test]
|
@@ -0,0 +1,90 @@
|
|
1
|
+
# Basic configuration
|
2
|
+
The RESTful API and web interface are enabled by installing the `oxidized-web`
|
3
|
+
gem and configuring the `extensions.oxidized-web:` section in the configuration
|
4
|
+
file:
|
5
|
+
```yaml
|
6
|
+
extensions:
|
7
|
+
oxidized-web:
|
8
|
+
load: true
|
9
|
+
# enter your configuration here
|
10
|
+
```
|
11
|
+
|
12
|
+
You can set the following parameter:
|
13
|
+
- `load`: `true`/`false`: Enables or disables the `oxidized-web` extension
|
14
|
+
(default: `false`)
|
15
|
+
- `listen`: Specifies the interface to bind to (default: `127.0.0.1`). Valid
|
16
|
+
options:
|
17
|
+
- `127.0.0.1`: Allows IPv4 connections from localhost only
|
18
|
+
- `'[::1]'`: Allows IPv6 connections from localhost only
|
19
|
+
- `<IPv4-Address>` or `'[<IPv6-Address>]'`: Binds to a specific interface
|
20
|
+
- `0.0.0.0`: Binds to any IPv4 interface
|
21
|
+
- `'[::]'`: Binds to any IPv4 and IPv6 interface
|
22
|
+
- `port`: Specifies the TCP port to listen to (default: `8888`)
|
23
|
+
- `url_prefix`: Defines a URL prefix (default: no prefix)
|
24
|
+
- `vhosts`: A list of virtual hosts to listen to. If not specified, it will
|
25
|
+
respond to any virtual host.
|
26
|
+
|
27
|
+
## Examples
|
28
|
+
|
29
|
+
```yaml
|
30
|
+
# Listen on http://[::1]:8888/
|
31
|
+
extensions:
|
32
|
+
oxidized-web:
|
33
|
+
load: true
|
34
|
+
listen: '[::1]'
|
35
|
+
port: 8888
|
36
|
+
```
|
37
|
+
|
38
|
+
```yaml
|
39
|
+
# Listen on http://127.0.0.1:8888/
|
40
|
+
extensions:
|
41
|
+
oxidized-web:
|
42
|
+
load: true
|
43
|
+
listen: 127.0.0.1
|
44
|
+
port: 8888
|
45
|
+
```
|
46
|
+
|
47
|
+
```yaml
|
48
|
+
# Listen on http://[2001:db8:0:face:b001:0:dead:beaf]:8888/oxidized/
|
49
|
+
extensions:
|
50
|
+
oxidized-web:
|
51
|
+
load: true
|
52
|
+
listen: '[2001:db8:0:face:b001:0:dead:beaf]'
|
53
|
+
port: 8888
|
54
|
+
url_prefix: oxidized
|
55
|
+
```
|
56
|
+
|
57
|
+
```yaml
|
58
|
+
# Listen on http://10.0.0.1:8000/oxidized/
|
59
|
+
extensions:
|
60
|
+
oxidized-web:
|
61
|
+
load: true
|
62
|
+
listen: 10.0.0.1
|
63
|
+
port: 8000
|
64
|
+
url_prefix: oxidized
|
65
|
+
```
|
66
|
+
|
67
|
+
```yaml
|
68
|
+
# Listen on any interface to http://oxidized.rocks:8888 and
|
69
|
+
# http://oxidized:8888
|
70
|
+
extensions:
|
71
|
+
oxidized-web:
|
72
|
+
load: true
|
73
|
+
listen: '[::]'
|
74
|
+
url_prefix: oxidized
|
75
|
+
vhosts:
|
76
|
+
- oxidized.rocks
|
77
|
+
- oxidized
|
78
|
+
```
|
79
|
+
|
80
|
+
# Hide node vars
|
81
|
+
Some node vars (enable, password) can contain sensible data. You can list the
|
82
|
+
vars to be hidden under `hide_node_vars`:
|
83
|
+
```yaml
|
84
|
+
extensions:
|
85
|
+
oxidized-web:
|
86
|
+
load: true
|
87
|
+
hide_node_vars:
|
88
|
+
- enable
|
89
|
+
- password
|
90
|
+
```
|
data/docs/development.md
CHANGED
@@ -21,7 +21,7 @@ bundle exec oxidized
|
|
21
21
|
Changes to haml templates are reloaded on the fly. For changes to the ruby
|
22
22
|
scripts, you have to stop an restart `bundle exec oxidized`.
|
23
23
|
|
24
|
-
##
|
24
|
+
## Parallel development between oxidized and oxidized-web
|
25
25
|
You may need to make some changes in oxidized **and** oxidized-web. For this,
|
26
26
|
git clone oxidized and oxidized-web in a common root directory.
|
27
27
|
|
@@ -39,12 +39,12 @@ bundle install
|
|
39
39
|
bundle exec bin/oxidized
|
40
40
|
```
|
41
41
|
|
42
|
-
Be careful when
|
42
|
+
Be careful when committing your work in oxidized *NOT* to include the changes to
|
43
43
|
Gemfile, as this is a local change for development. I (@robertcheramy) didn't
|
44
44
|
find a better way to do this, better ideas are welcome :-)
|
45
45
|
|
46
46
|
If your changes to oxidized **AND** oxidzed-web are dependent from another, make
|
47
|
-
sure you document this in the
|
47
|
+
sure you document this in the respective CHANGELOG.md, so that everyone is
|
48
48
|
informed at the next release.
|
49
49
|
|
50
50
|
Note: you can also add the dependency to oxidized in oxidized-web, in the same
|
@@ -85,6 +85,12 @@ forget to document your changes in CHANGELOG.md.
|
|
85
85
|
|
86
86
|
# How to release a new version of Oxidized-web?
|
87
87
|
|
88
|
+
## Version numbering
|
89
|
+
Oxidized-web versions are numbered like major.minor.patch
|
90
|
+
- currently, the major version is 0.
|
91
|
+
- minor is incremented when releasing new features.
|
92
|
+
- patch is incremented when releasing fixes only.
|
93
|
+
|
88
94
|
## Review changes
|
89
95
|
Run `git diff 0.xx.yy..master` (where `0.xx.yy` is to be changed to the last
|
90
96
|
release) and review all the changes that have been done. Have a specific look
|
@@ -100,72 +106,72 @@ bundle update
|
|
100
106
|
bundle outaded
|
101
107
|
```
|
102
108
|
|
103
|
-
|
109
|
+
Test again after updating!
|
104
110
|
|
105
111
|
## Update the weblibs to the latest versions
|
106
112
|
```
|
107
113
|
npm outdated
|
108
114
|
```
|
109
115
|
|
110
|
-
|
111
|
-
|
112
|
-
## Update rubocup .rubocop_todo.yml
|
113
|
-
Run `bundle exec rubocop --auto-gen-config`,
|
114
|
-
and make sure `bundle exec rake` passes after it.
|
115
|
-
|
116
|
-
If you change some code => Restart the release process at the beginning ;-)
|
116
|
+
Test again after updating!
|
117
117
|
|
118
118
|
## Make sure the file permissions are correct
|
119
119
|
Run `bundle exec rake chmod`
|
120
120
|
|
121
|
-
##
|
122
|
-
|
123
|
-
defined tests in `/spec`.
|
121
|
+
## Create a release branch
|
122
|
+
Name the release branch `release/0.xx.yy`
|
124
123
|
|
125
|
-
|
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`
|
126
130
|
|
127
|
-
|
131
|
+
Upload the branch to github, make a Pull Request for it.
|
128
132
|
|
129
|
-
|
133
|
+
## Test!
|
134
|
+
Run `bundle exec rake` on the git repository to check the code against rubocop
|
135
|
+
and run the defined tests in `/spec`.
|
136
|
+
|
137
|
+
Run Oxidized-web from git against the latest Oxidized version `bundle exec oxdized`
|
130
138
|
|
131
139
|
When testing the web application, open the javascript console in the browser to
|
132
140
|
see any errors.
|
133
141
|
|
134
|
-
## Version numbering
|
135
|
-
Oxidized-web versions are nummered like 0.major.minor
|
136
|
-
- major is incremented when releasing new features. minor is then set to 0
|
137
|
-
- minor is incremented when releasing fixes only, just after a major version.
|
138
|
-
|
139
142
|
## Release
|
140
|
-
1.
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
```
|
143
|
+
1. Merge the Pull Request into master with the commit message
|
144
|
+
`chore(release): release version 0.3x.y`
|
145
|
+
2. `git pull` master
|
146
|
+
3. Tag the commit with `git tag -a 0.xx.yy -m "Release 0.xx.yy"`
|
147
|
+
4. Build the gem with ‘rake build’
|
148
|
+
5. Run `git diff` to check if there have been more changes (there shouldn't)
|
149
|
+
6. Install an test the gem locally
|
150
|
+
```shell
|
149
151
|
gem install --user-install pkg/oxidized-web-0.xx.yy.gem
|
150
152
|
~/.local/share/gem/ruby/3.1.0/bin/oxidized
|
151
153
|
```
|
154
|
+
|
152
155
|
## Release in github
|
153
|
-
|
156
|
+
Push the tag to github:
|
154
157
|
```
|
155
|
-
git push
|
156
158
|
git push origin 0.xx.yy
|
157
159
|
```
|
158
160
|
|
159
|
-
|
160
|
-
-
|
161
|
-
- Only describe major changes, and refer to CHANGELOG.md
|
161
|
+
Make a release from the tag in github.
|
162
|
+
- Take the release notes frm CHANGELOG.md
|
162
163
|
- List new contributors (generated automatically)
|
164
|
+
- Keep the Full Changelog (generated automatically)
|
163
165
|
|
164
166
|
## Release in rubygems
|
165
167
|
Push the gem with ‘rake push’
|
166
168
|
|
167
169
|
You need an account at rubygems which is allowed to push oxidized
|
168
170
|
|
171
|
+
## Release in docker.io
|
172
|
+
In order to release in docker.io, oxidized be released to a new version,
|
173
|
+
as the container is build there.
|
174
|
+
|
169
175
|
## Update CHANGELOG.md for next release
|
170
176
|
Add
|
171
177
|
```
|
@@ -180,6 +186,3 @@ Add
|
|
180
186
|
```
|
181
187
|
And push to github
|
182
188
|
|
183
|
-
## Congratulate yourself
|
184
|
-
Great job! Treat yourself to your favorite drink, you deserve it!
|
185
|
-
|
@@ -2,22 +2,22 @@ var convertTime = function() {
|
|
2
2
|
/* Convert UTC times to local browser times
|
3
3
|
* Requires that the times on the server are UTC
|
4
4
|
* Requires a class name of `time` to be set on element desired to be changed
|
5
|
-
* Requires that element
|
6
|
-
*
|
5
|
+
* Requires that element has an attribute `epoch` containing the seconds since
|
6
|
+
* 1.1.1970 UTC.
|
7
7
|
*/
|
8
8
|
$('.time').each(function() {
|
9
9
|
var content = $(this).text();
|
10
|
-
if(content === 'never' || content === 'unknown' || content === '') {
|
11
|
-
|
12
|
-
|
13
|
-
var
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
var
|
18
|
-
var
|
19
|
-
|
20
|
-
$(this).text(
|
10
|
+
if(content === 'never' || content === 'unknown' || content === '') {
|
11
|
+
return;
|
12
|
+
}
|
13
|
+
var epoch = $(this).attr('epoch');
|
14
|
+
if(epoch === undefined) {
|
15
|
+
return;
|
16
|
+
}
|
17
|
+
var utcTime = Number(epoch);
|
18
|
+
var dj = dayjs.unix(utcTime).local();
|
19
|
+
|
20
|
+
$(this).text(dj.format('YYYY-MM-DD HH:mm:ss [(UTC]Z[)]'));
|
21
21
|
});
|
22
22
|
};
|
23
23
|
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/*!
|
2
|
-
* Bootstrap Icons v1.
|
2
|
+
* Bootstrap Icons v1.13.1 (https://icons.getbootstrap.com/)
|
3
3
|
* Copyright 2019-2024 The Bootstrap Authors
|
4
4
|
* Licensed under MIT (https://github.com/twbs/icons/blob/main/LICENSE)
|
5
5
|
*/
|
@@ -7,8 +7,8 @@
|
|
7
7
|
@font-face {
|
8
8
|
font-display: block;
|
9
9
|
font-family: "bootstrap-icons";
|
10
|
-
src: url("./fonts/bootstrap-icons.woff2?
|
11
|
-
url("./fonts/bootstrap-icons.woff?
|
10
|
+
src: url("./fonts/bootstrap-icons.woff2?e34853135f9e39acf64315236852cd5a") format("woff2"),
|
11
|
+
url("./fonts/bootstrap-icons.woff?e34853135f9e39acf64315236852cd5a") format("woff");
|
12
12
|
}
|
13
13
|
|
14
14
|
.bi::before,
|
@@ -2076,3 +2076,31 @@ url("./fonts/bootstrap-icons.woff?dd67030699838ea613ee6dbda90effa6") format("wof
|
|
2076
2076
|
.bi-suitcase2-fill::before { content: "\f901"; }
|
2077
2077
|
.bi-suitcase2::before { content: "\f902"; }
|
2078
2078
|
.bi-vignette::before { content: "\f903"; }
|
2079
|
+
.bi-bluesky::before { content: "\f7f9"; }
|
2080
|
+
.bi-tux::before { content: "\f904"; }
|
2081
|
+
.bi-beaker-fill::before { content: "\f905"; }
|
2082
|
+
.bi-beaker::before { content: "\f906"; }
|
2083
|
+
.bi-flask-fill::before { content: "\f907"; }
|
2084
|
+
.bi-flask-florence-fill::before { content: "\f908"; }
|
2085
|
+
.bi-flask-florence::before { content: "\f909"; }
|
2086
|
+
.bi-flask::before { content: "\f90a"; }
|
2087
|
+
.bi-leaf-fill::before { content: "\f90b"; }
|
2088
|
+
.bi-leaf::before { content: "\f90c"; }
|
2089
|
+
.bi-measuring-cup-fill::before { content: "\f90d"; }
|
2090
|
+
.bi-measuring-cup::before { content: "\f90e"; }
|
2091
|
+
.bi-unlock2-fill::before { content: "\f90f"; }
|
2092
|
+
.bi-unlock2::before { content: "\f910"; }
|
2093
|
+
.bi-battery-low::before { content: "\f911"; }
|
2094
|
+
.bi-anthropic::before { content: "\f912"; }
|
2095
|
+
.bi-apple-music::before { content: "\f913"; }
|
2096
|
+
.bi-claude::before { content: "\f914"; }
|
2097
|
+
.bi-openai::before { content: "\f915"; }
|
2098
|
+
.bi-perplexity::before { content: "\f916"; }
|
2099
|
+
.bi-css::before { content: "\f917"; }
|
2100
|
+
.bi-javascript::before { content: "\f918"; }
|
2101
|
+
.bi-typescript::before { content: "\f919"; }
|
2102
|
+
.bi-fork-knife::before { content: "\f91a"; }
|
2103
|
+
.bi-globe-americas-fill::before { content: "\f91b"; }
|
2104
|
+
.bi-globe-asia-australia-fill::before { content: "\f91c"; }
|
2105
|
+
.bi-globe-central-south-asia-fill::before { content: "\f91d"; }
|
2106
|
+
.bi-globe-europe-africa-fill::before { content: "\f91e"; }
|