librenms/mkdocs.yml
eskyuu 30953c386f
Add functionality for custom maps (weathermaps) (#15633)
* Initial commit with editor.

* Added custom map models and database migrations.
Modified the controller and view to support saving the custom map settings to the database

* Added menu items and sorted out access permissions for maps and nodes

* Cleaned up some of the conditions in the javascript section of the blade

* Started work on the map data save

* Save of map nodes and edges is complete

* Got the map to load data on page load and added the delete functionality

* Fixed a typo and made link colour black if intertface is down

* Various usability fix-ups

* Show the save button on node and edge delete

* Fixed up access for users without global read

* Increase typeahead search size and standardised the way modals are triggered.

* Update data fetch to copy values into array so I can add more fields

* Convert blank array check to use count()

* Formatting changes

* More formatting fixes

* Formatting again

* DB schema update

* Revert previous commit

* Pass device id to pages

* Remove bad characters from javascript

* Re-add the - character in search results

* Update to avoid background colour being set to the current colour for offline devices

* Fixed a bug in speed detection when no suffix is given

* Fixed up the speed colour calculation and added comments

* Update default edge font size to 12

* Reduce arrow size

* Formatting fix

* Update the custom map controller to handle null interface speeds

* Alter JSON columns to be longtext instead

* Only refresh map data on successful save

* Update labels on default settings to make it clear that they are not saved

* Added timestamps to all custom map tables
Use HasFactory instead of static definitions for custom map tables
convert JSON DB fields to longtext and updated PHP to do the appropriate JSON decoding as a result

* Added missing vis.js images for the editor

* Split the custom map blade into different pages

* formatting fixes

* Initial commit with editor.

* Added custom map models and database migrations.
Modified the controller and view to support saving the custom map settings to the database

* Added menu items and sorted out access permissions for maps and nodes

* Cleaned up some of the conditions in the javascript section of the blade

* Started work on the map data save

* Save of map nodes and edges is complete

* Got the map to load data on page load and added the delete functionality

* Various usability fix-ups

* Show the save button on node and edge delete

* Fixed up access for users without global read

* Increase typeahead search size and standardised the way modals are triggered.

* Convert blank array check to use count()

* Formatting changes

* More formatting fixes

* Formatting again

* DB schema update

* Revert previous commit

* Pass device id to pages

* Remove bad characters from javascript

* Re-add the - character in search results

* Update to avoid background colour being set to the current colour for offline devices

* Reduce arrow size

* Only refresh map data on successful save

* Update labels on default settings to make it clear that they are not saved

* Added timestamps to all custom map tables
Use HasFactory instead of static definitions for custom map tables
convert JSON DB fields to longtext and updated PHP to do the appropriate JSON decoding as a result

* Added missing vis.js images for the editor

* Split the custom map blade into different pages

* Updated the custom maps to use the select2 searches for ports and devices

* Fix port search clearing with select2

* Update DB schema to add timestamps

* Add the ability to set a node alignment value where nodes will align to a grid

* Add a checkbox to re-center edge lines

* Schema update for node alignment

* Removed unused route

* Fixups after rebase

* Remove DevicePortSearchController

* Rebase fixups

* Remove unneeded controller

* Formatting fixes

* Update all network map documentation

* Fixed typo in doc

* Change background imgae database migration

* Update migration for custom map background to fix schema error

* Place a try/catch around the BLOB->MEDIUMBLOB migration

* Formatting fix

* Moved custom map background image location and added some SVG images to test as image options

* Updated the editor to use a static set of device images

* Update the image logic in the editor and added to the viewer

* DB Schema update

* Formatting

* remove svg height/width attributes

* Added some more icon options for arrows

* Added database migration to allow nodes to link to another custom map
Fixed an error in the image migration

* Added the ability to link a node to another custom map

* Formatting fixes

* DB Schema update

* Remove images-custom directory

* Explicitly cast map ID to int

* Made the image selection list dynamic based on the contents of the custom map icons directory

* Formatting fix

* Double-clicking on a link will take you to the link

* Remove whitespace

* Add translations
fix an xss and hopefully not add any new ones
refactor node image to use translations with fallback

* split modals out into separate files
return width/height to avoid js scope issues

* Formatting fixes

* refactor edit select page into a "manage" page
Still left:
validation/custom request
Controller refactor
ui tweaks

* MapSettingsRequest

* Refactor more routes, policy, controller
I think this is the last refactor. Everything is now organized in a standard way.
Missing a method to check if a user has access to a map

* Fix booleans and style

* Add versioning to the background image to prevent browser caching

* Fixed the background image update by splitting it into a separate modal
Changed the delete button on the map editor screen to return to the map list

* Formatting fix

* Added double-click actions in editor to edit nodes and edges

---------

Co-authored-by: Tony Murray <murraytony@gmail.com>
2024-01-31 08:56:59 -06:00

297 lines
11 KiB
YAML

site_name: LibreNMS Docs
docs_dir: doc
theme:
name: material
logo: img/librenms.svg
language: en
font:
text: 'Roboto'
code: 'Roboto Mono'
palette:
- media: "(prefers-color-scheme: light)"
scheme: default
primary: black
accent: indigo
toggle:
icon: material/lightbulb-outline
name: Switch to dark mode
- media: "(prefers-color-scheme: dark)"
scheme: slate
primary: black
accent: indigo
toggle:
icon: material/lightbulb
name: Switch to light mode
features:
- navigation.footer
- navigation.instant
- navigation.sections
- navigation.tracking
- navigation.top
- content.tabs.link
site_dir: out
site_url: https://docs.librenms.org
markdown_extensions:
- tables
- admonition
- pymdownx.tasklist
- pymdownx.tilde
- pymdownx.superfences
- pymdownx.tabbed:
alternate_style: true
- pymdownx.details
- pymdownx.highlight:
extend_pygments_lang:
- name: php
lang: php
options:
startinline: true
plugins:
- macros:
j2_variable_start_string: '@='
j2_variable_end_string: '=@'
- search
- exclude:
glob:
- "General/Changelogs/*"
- "Dockerfile"
- redirects:
redirect_maps:
'Alerting/Introduction.md': 'Alerting/index.md'
'API/API-Docs.md': 'API/index.md'
'Extensions/Alerting.md': 'Alerting/index.md'
'Extensions/Email-Alerting.md': 'Alerting/Transports.md'
'Extensions/Graphite.md': 'Extensions/metrics/Graphite.md'
'Extensions/InfluxDB.md': 'Extensions/metrics/InfluxDB.md'
'Extensions/OpenTSDB.md': 'Extensions/metrics/OpenTSDB.md'
'Extensions/Poller-Service.md': 'Extensions/Dispatcher-Service.md'
'Extensions/Port-Description-Parser.md': 'Extensions/Interface-Description-Parsing.md'
'Extensions/Prometheus.md': 'Extensions/metrics/Prometheus.md'
'General/Contributing.md': 'Developing/Getting-Started.md'
'Installation/CentOS-image.md': 'Installation/Install-LibreNMS.md'
'Installation/index.md': 'Installation/Install-LibreNMS.md'
'Installation/Installation-CentOS-6-Apache-Nginx.md': 'Installation/Install-LibreNMS.md'
'Installation/Installation-CentOS-7-Apache.md': 'Installation/Install-LibreNMS.md'
'Installation/Installation-CentOS-7-Nginx.md': 'Installation/Install-LibreNMS.md'
'Installation/Installation-Debian-11-Nginx.md': 'Installation/Install-LibreNMS.md'
'Installation/Installation-Ubuntu-1604-Apache.md': 'Installation/Install-LibreNMS.md'
'Installation/Installation-Ubuntu-1604-Nginx.md': 'Installation/Install-LibreNMS.md'
'Installation/Installation-Ubuntu-1804-Apache.md': 'Installation/Install-LibreNMS.md'
'Installation/Installation-Ubuntu-1804-Nginx.md': 'Installation/Install-LibreNMS.md'
'Installation/Installing-LibreNMS.md': 'Installation/Install-LibreNMS.md'
'Installation/Ubuntu-image.md': 'Installation/Images.md'
'Support/Support-New-OS.md': 'Developing/Support-New-OS.md'
- minify:
minify_html: true
minify_js: true
minify_css: true
htmlmin_opts:
remove_comments: true
js_files:
- js/docs-settings-links.js
css_files:
- librenms.css
extra_css:
- https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/fontawesome.min.css
- https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/solid.min.css
- https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/brands.min.css
- librenms.css
extra_javascript:
- js/docs-settings-links.js
extra:
analytics:
provider: google
property: UA-79149977-2
article_nav_top: false
article_nav_bottom: true
php:
version_min: 8.1
social:
- icon: fontawesome/brands/github
link: https://github.com/librenms/
name: GitHub
- icon: fontawesome/brands/docker
link: https://hub.docker.com/r/librenms/librenms
name: Docker
- icon: fontawesome/brands/discord
link: https://discord.com/invite/librenms
name: Discord
- icon: fontawesome/brands/reddit
link: https://www.reddit.com/r/LibreNMS/
name: Reddit
- icon: fontawesome/brands/twitter
link: https://twitter.com/librenms
name: Twitter
- icon: fontawesome/brands/facebook
link: https://www.facebook.com/LibreNMS
name: Facebook
- icon: fontawesome/brands/linkedin
link: https://www.linkedin.com/company/librenms/
name: LinkedIn
site_author: LibreNMS
site_description: LibreNMS user and developer documentation
repo_url: https://github.com/librenms/librenms/
edit_uri: edit/master/doc
repo_name: GitHub
nav:
- General:
- Home: index.md
- Features: Support/Features.md
- Changelog: General/Changelog.md
- Welcome to Observium users: General/Welcome-to-Observium-users.md
- 3rd Party Libraries: General/Acknowledgement.md
- Installing:
- Installing LibreNMS: Installation/Install-LibreNMS.md
- Other Methods:
- Docker: Installation/Docker.md
- Virtual machines: Installation/Images.md
- Choosing a release: General/Releases.md
- Updating: General/Updating.md
- Getting started:
- Adding a device: Support/Adding-a-Device.md
- Grouping Devices: Extensions/Device-Groups.md
- Submitting stats: General/Callback-Stats-and-Privacy.md
- Migrating from Observium: Installation/Migrating-from-Observium.md
- Setup:
- Applications: Extensions/Applications.md
- Billing Module: Extensions/Billing-Module.md
- Check_MK Setup: Extensions/Agent-Setup.md
- Dashboards: Extensions/Dashboards.md
- Interface Description Parsing: Extensions/Interface-Description-Parsing.md
- Network Maps:
- Availability Map: Extensions/Availability-Map.md
- Dependency Map: Extensions/Dependency-Map.md
- Network Map: Extensions/Network-Map.md
- Custom Map: Extensions/Custom-Map.md
- World Map: Extensions/World-Map.md
- VisJS Config: Extensions/VisJS-Config.md
- Syslog: Extensions/Syslog.md
- Advanced Setup:
- 1 Minute Polling: Support/1-Minute-Polling.md
- Authentication Options: Extensions/Authentication.md
- Auto-discovery Setup: Extensions/Auto-Discovery.md
- Bare Dashboard: Support/Bare-Dashboard.md
- Cleanup Options: Support/Cleanup-options.md
- Configuration Docs: Support/Configuration.md
- Customizing the Web UI: Extensions/Customizing-the-Web-UI.md
- Dispatcher Service (RC): Extensions/Dispatcher-Service.md
- Environment Variables: Support/Environment-Variables.md
- Fast Ping Checking: Extensions/Fast-Ping-Check.md
- Galera Database Cluster: Extensions/Galera-Cluster.md
- IRC Bot Extensions: Extensions/IRC-Bot-Extensions.md
- IRC Bot: Extensions/IRC-Bot.md
- Oauth/SAML support: Extensions/OAuth-SAML.md
- RRDCached: Extensions/RRDCached.md
- RRDTune: Extensions/RRDTune.md
- Scaling LibreNMS: Extensions/Distributed-Poller.md
- SNMP Proxy: Extensions/SNMP-Proxy.md
- SNMP Trap Handler: Extensions/SNMP-Trap-Handler.md
- Sub-directory Support: Extensions/Sub-Directory.md
- Two-Factor Auth: Extensions/Two-Factor-Auth.md
- Varnish: Extensions/Varnish.md
- Alerting:
- Introduction: Alerting/index.md
- Setup:
- Rules: Alerting/Rules.md
- Templates: Alerting/Templates.md
- Transports: Alerting/Transports.md
- Creating Transports: Alerting/Creating-Transport.md
- Entities: Alerting/Entities.md
- Macros: Alerting/Macros.md
- Testing: Alerting/Testing.md
- Device Dependencies: Alerting/Device-Dependencies.md
- 3rd Party Integration:
- Integrations:
- Gateone: Extensions/Gateone.md
- Graylog: Extensions/Graylog.md
- Nagios Plugins: Extensions/Services.md
- NFSen: Extensions/NFSen.md
- Oxidized: Extensions/Oxidized.md
- PeeringDB: Extensions/PeeringDB.md
- Proxmox: Extensions/Proxmox.md
- Rancid: Extensions/Rancid.md
- Smokeping: Extensions/Smokeping.md
- Weathermap: Extensions/Weathermap.md
- Storing Metrics:
- Intro: Extensions/Metric-Storage.md
- Graphite: Extensions/metrics/Graphite.md
- InfluxDB: Extensions/metrics/InfluxDB.md
- OpenTSDB: Extensions/metrics/OpenTSDB.md
- Prometheus: Extensions/metrics/Prometheus.md
- API:
- Using the API: API/index.md
- Endpoints:
- Alerts: API/Alerts.md
- ARP: API/ARP.md
- Bills: API/Bills.md
- DeviceGroups: API/DeviceGroups.md
- Devices: API/Devices.md
- Inventory: API/Inventory.md
- Locations: API/Locations.md
- Logs: API/Logs.md
- PollerGroups: API/PollerGroups.md
- Port_Groups: API/Port_Groups.md
- PortGroups: API/PortGroups.md
- Ports: API/Ports.md
- Routing: API/Routing.md
- Services: API/Services.md
- Switching: API/Switching.md
- System: API/System.md
- Getting help:
- How to get help: Support/index.md
- FAQ: Support/FAQ.md
- Install Validation: Support/Install Validation.md
- Performance: Support/Performance.md
- Discovery Support: Support/Discovery Support.md
- Poller Support: Support/Poller Support.md
- Example Hardware Setups: Support/Example-Hardware-Setup.md
- Remote Monitoring VPN: Support/Remote-Monitoring-VPN.md
- SNMP Configuration Examples: Support/SNMP-Configuration-Examples.md
- Device Troubleshooting: Support/Device-Troubleshooting.md
- Device Sensors: Support/Device-Sensors.md
- Contributing + Developing:
- Contributing:
- Getting Started: Developing/Getting-Started.md
- Using Git: Developing/Using-Git.md
- Validating Code: Developing/Validating-Code.md
- Code Structure: Developing/Code-Structure.md
- Creating Documentation: Developing/Creating-Documentation.md
- Component: Extensions/Component.md
- Support for a new OS:
- Intro: Developing/Support-New-OS.md
- Initial Detection: Developing/os/Initial-Detection.md
- Mem/CPU Information: Developing/os/Mem-CPU-Information.md
- Test Units: Developing/os/Test-Units.md
- Health Information: Developing/os/Health-Information.md
- Wireless Sensors: Developing/os/Wireless-Sensors.md
- Custom Graphs: Developing/os/Custom-Graphs.md
- Settings: Developing/os/Settings.md
- Sensor State Support: Developing/Sensor-State-Support.md
- SNMP Traps: Developing/SNMP-Traps.md
- Dynamic Config: Developing/Dynamic-Config.md
- Plugin System: Extensions/Plugin-System.md
- Developer notes:
- Merging Pull Requests: Developing/Merging-Pull-Requests.md
- Creating Release: Developing/Creating-Release.md
- Applications: Developing/Application-Notes.md
- Miscellaneous:
- Security information: General/Security.md
- CLI Scripts: Support/CLI-Tools.md
- Device Notes:
- Asuswrt-Merlin: Support/Device-Notes/AsuswrtMerlin.md
- Carel pCOweb: Support/Device-Notes/Carel-pCOweb-Devices.md
- Dell OpenManage: Extensions/Dell-OpenManage.md
- OpenWRT: Support/Device-Notes/Openwrt.md
- RouterOS: Support/Device-Notes/Routeros.md
- Supermicro: Extensions/Supermicro.md