feat: add desktop icon and workspace links

This commit is contained in:
UGAIF
2026-06-17 16:28:37 +00:00
parent 5c8fd52e1b
commit 289615b3b2
7 changed files with 389 additions and 0 deletions
+13
View File
@@ -0,0 +1,13 @@
from frappe import _
def get_data():
return [
{
"module_name": "Device Manager",
"color": "teal",
"icon": "octicon octicon-shield-check",
"type": "module",
"label": _("Device Manager"),
}
]
@@ -0,0 +1,22 @@
{
"app": "device_manager",
"bg_color": "#BA0C2F",
"creation": "2026-06-17 00:00:00.000000",
"docstatus": 0,
"doctype": "Desktop Icon",
"hidden": 0,
"icon_type": "Link",
"idx": 0,
"label": "Device Manager",
"link_to": "Device Manager",
"link_type": "Workspace Sidebar",
"logo_url": "/assets/device_manager/images/icon.svg",
"modified": "2026-06-17 00:00:00.000000",
"modified_by": "Administrator",
"name": "Device Manager",
"owner": "Administrator",
"restrict_removal": 0,
"roles": [],
"sidebar": "Device Manager",
"standard": 1
}
@@ -0,0 +1 @@
@@ -0,0 +1,188 @@
{
"app": "device_manager",
"charts": [],
"content": "[{\"id\":\"dm_header_overview\",\"type\":\"header\",\"data\":{\"text\":\"<span class=\\\"h4\\\"><b>Device Manager</b></span>\",\"col\":12}},{\"id\":\"dm_card_lifecycle\",\"type\":\"card\",\"data\":{\"card_name\":\"Device Lifecycle\",\"col\":3}},{\"id\":\"dm_card_access\",\"type\":\"card\",\"data\":{\"card_name\":\"Access Control\",\"col\":3}},{\"id\":\"dm_card_radius\",\"type\":\"card\",\"data\":{\"card_name\":\"RADIUS Evidence\",\"col\":3}},{\"id\":\"dm_card_audit\",\"type\":\"card\",\"data\":{\"card_name\":\"Audit & Dataset Use\",\"col\":3}}]",
"creation": "2026-06-17 00:00:00.000000",
"custom_blocks": [],
"docstatus": 0,
"doctype": "Workspace",
"for_user": "",
"hide_custom": 0,
"icon": "shield-check",
"idx": 0,
"is_hidden": 0,
"label": "Device Manager",
"links": [
{
"hidden": 0,
"is_query_report": 0,
"label": "Device Lifecycle",
"link_count": 0,
"onboard": 0,
"type": "Card Break"
},
{
"dependencies": "",
"hidden": 0,
"is_query_report": 0,
"label": "DM Device",
"link_count": 0,
"link_to": "DM Device",
"link_type": "DocType",
"onboard": 1,
"type": "Link"
},
{
"dependencies": "",
"hidden": 0,
"is_query_report": 0,
"label": "DM Device Registration",
"link_count": 0,
"link_to": "DM Device Registration",
"link_type": "DocType",
"onboard": 1,
"type": "Link"
},
{
"hidden": 0,
"is_query_report": 0,
"label": "Access Control",
"link_count": 0,
"onboard": 0,
"type": "Card Break"
},
{
"dependencies": "",
"hidden": 0,
"is_query_report": 0,
"label": "DM Network Segment",
"link_count": 0,
"link_to": "DM Network Segment",
"link_type": "DocType",
"onboard": 1,
"type": "Link"
},
{
"dependencies": "",
"hidden": 0,
"is_query_report": 0,
"label": "DM Access Policy",
"link_count": 0,
"link_to": "DM Access Policy",
"link_type": "DocType",
"onboard": 1,
"type": "Link"
},
{
"hidden": 0,
"is_query_report": 0,
"label": "RADIUS Evidence",
"link_count": 0,
"onboard": 0,
"type": "Card Break"
},
{
"dependencies": "",
"hidden": 0,
"is_query_report": 0,
"label": "DM Radius Auth Event",
"link_count": 0,
"link_to": "DM Radius Auth Event",
"link_type": "DocType",
"onboard": 0,
"type": "Link"
},
{
"dependencies": "",
"hidden": 0,
"is_query_report": 0,
"label": "DM Access Decision",
"link_count": 0,
"link_to": "DM Access Decision",
"link_type": "DocType",
"onboard": 0,
"type": "Link"
},
{
"hidden": 0,
"is_query_report": 0,
"label": "Audit & Dataset Use",
"link_count": 0,
"onboard": 0,
"type": "Card Break"
},
{
"dependencies": "",
"hidden": 0,
"is_query_report": 0,
"label": "DM Dataset Authorization",
"link_count": 0,
"link_to": "DM Dataset Authorization",
"link_type": "DocType",
"onboard": 1,
"type": "Link"
},
{
"dependencies": "",
"hidden": 0,
"is_query_report": 0,
"label": "DM Device Audit Event",
"link_count": 0,
"link_to": "DM Device Audit Event",
"link_type": "DocType",
"onboard": 0,
"type": "Link"
}
],
"modified": "2026-06-17 00:00:00.000000",
"modified_by": "Administrator",
"module": "Device Manager",
"name": "Device Manager",
"number_cards": [],
"owner": "Administrator",
"parent_page": "",
"public": 1,
"quick_lists": [],
"restrict_to_domain": "",
"roles": [
{
"role": "System Manager"
}
],
"sequence_id": 1.0,
"shortcuts": [
{
"color": "Blue",
"format": "{} Devices",
"label": "DM Device",
"link_to": "DM Device",
"stats_filter": "{}",
"type": "DocType"
},
{
"color": "Orange",
"format": "{} Registrations",
"label": "DM Device Registration",
"link_to": "DM Device Registration",
"stats_filter": "{}",
"type": "DocType"
},
{
"color": "Green",
"format": "{} Policies",
"label": "DM Access Policy",
"link_to": "DM Access Policy",
"stats_filter": "{}",
"type": "DocType"
},
{
"color": "Purple",
"format": "{} Decisions",
"label": "DM Access Decision",
"link_to": "DM Access Decision",
"stats_filter": "{}",
"type": "DocType"
}
],
"title": "Device Manager"
}
+12
View File
@@ -0,0 +1,12 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 96" role="img" aria-label="Device Manager">
<rect width="96" height="96" rx="20" fill="#BA0C2F"/>
<path d="M48 14 76 25v20c0 18-11.5 30.5-28 37-16.5-6.5-28-19-28-37V25l28-11Z" fill="#FFFFFF"/>
<path d="M48 22 68 30v15c0 12.8-7.5 22.5-20 28-12.5-5.5-20-15.2-20-28V30l20-8Z" fill="#BA0C2F"/>
<path d="M48 27 63 33v11.5c0 9.3-5.4 16.8-15 21.5-9.6-4.7-15-12.2-15-21.5V33l15-6Z" fill="#BA0C2F"/>
<rect x="35" y="35" width="26" height="22" rx="4" fill="#FFFFFF"/>
<rect x="40" y="40" width="16" height="4" rx="2" fill="#BA0C2F"/>
<circle cx="41" cy="49" r="2.5" fill="#BA0C2F"/>
<circle cx="48" cy="49" r="2.5" fill="#BA0C2F"/>
<circle cx="55" cy="49" r="2.5" fill="#BA0C2F"/>
<path d="M42 62h12" stroke="#FFFFFF" stroke-width="4" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 823 B

@@ -0,0 +1,152 @@
{
"app": "device_manager",
"docstatus": 0,
"doctype": "Workspace Sidebar",
"header_icon": "shield-check",
"items": [
{
"child": 0,
"collapsible": 1,
"icon": "layout-dashboard",
"indent": 0,
"keep_closed": 0,
"label": "Home",
"link_to": "Device Manager",
"link_type": "Workspace",
"show_arrow": 0,
"type": "Link"
},
{
"collapsible": 1,
"icon": "monitor",
"indent": 0,
"keep_closed": 0,
"label": "Device Lifecycle",
"type": "Section Break"
},
{
"child": 1,
"collapsible": 1,
"icon": "monitor",
"indent": 0,
"keep_closed": 0,
"label": "Devices",
"link_to": "DM Device",
"link_type": "DocType",
"show_arrow": 0,
"type": "Link"
},
{
"child": 1,
"collapsible": 1,
"icon": "clipboard-list",
"indent": 0,
"keep_closed": 0,
"label": "Registrations",
"link_to": "DM Device Registration",
"link_type": "DocType",
"show_arrow": 0,
"type": "Link"
},
{
"collapsible": 1,
"icon": "network",
"indent": 0,
"keep_closed": 0,
"label": "Access Control",
"type": "Section Break"
},
{
"child": 1,
"collapsible": 1,
"icon": "route",
"indent": 0,
"keep_closed": 0,
"label": "Network Segments",
"link_to": "DM Network Segment",
"link_type": "DocType",
"show_arrow": 0,
"type": "Link"
},
{
"child": 1,
"collapsible": 1,
"icon": "shield-check",
"indent": 0,
"keep_closed": 0,
"label": "Access Policies",
"link_to": "DM Access Policy",
"link_type": "DocType",
"show_arrow": 0,
"type": "Link"
},
{
"collapsible": 1,
"icon": "radio-tower",
"indent": 0,
"keep_closed": 0,
"label": "RADIUS Evidence",
"type": "Section Break"
},
{
"child": 1,
"collapsible": 1,
"icon": "radio-tower",
"indent": 0,
"keep_closed": 0,
"label": "Auth Events",
"link_to": "DM Radius Auth Event",
"link_type": "DocType",
"show_arrow": 0,
"type": "Link"
},
{
"child": 1,
"collapsible": 1,
"icon": "list-checks",
"indent": 0,
"keep_closed": 0,
"label": "Access Decisions",
"link_to": "DM Access Decision",
"link_type": "DocType",
"show_arrow": 0,
"type": "Link"
},
{
"collapsible": 1,
"icon": "database",
"indent": 0,
"keep_closed": 0,
"label": "Audit & Dataset Use",
"type": "Section Break"
},
{
"child": 1,
"collapsible": 1,
"icon": "database",
"indent": 0,
"keep_closed": 0,
"label": "Dataset Authorizations",
"link_to": "DM Dataset Authorization",
"link_type": "DocType",
"show_arrow": 0,
"type": "Link"
},
{
"child": 1,
"collapsible": 1,
"icon": "history",
"indent": 0,
"keep_closed": 0,
"label": "Audit Events",
"link_to": "DM Device Audit Event",
"link_type": "DocType",
"show_arrow": 0,
"type": "Link"
}
],
"module": "Device Manager",
"name": "Device Manager",
"standard": 1,
"title": "Device Manager"
}