av-knowledge / index.html
awood2817's picture
Add 2 files
0e5676a verified
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>AV Solutions Knowledge Base</title>
<script src="https://cdn.tailwindcss.com"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<style>
.solution-card:hover {
transform: translateY(-5px);
box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1);
}
.sidebar {
transition: all 0.3s ease;
}
.sidebar.collapsed {
width: 70px;
}
.sidebar.collapsed .sidebar-text {
display: none;
}
.sidebar.collapsed .sidebar-icon {
margin-right: 0;
}
.sidebar-toggle {
transition: transform 0.3s ease;
}
.sidebar.collapsed .sidebar-toggle {
transform: rotate(180deg);
}
.fade-in {
animation: fadeIn 0.3s ease-in-out;
}
@keyframes fadeIn {
from { opacity: 0; }
to { opacity: 1; }
}
.markdown-content h2 {
font-size: 1.5rem;
font-weight: 600;
margin-top: 1.5rem;
margin-bottom: 1rem;
color: #1e40af;
}
.markdown-content h3 {
font-size: 1.25rem;
font-weight: 600;
margin-top: 1.25rem;
margin-bottom: 0.75rem;
color: #1e40af;
}
.markdown-content p {
margin-bottom: 1rem;
line-height: 1.6;
}
.markdown-content ul, .markdown-content ol {
margin-bottom: 1rem;
padding-left: 1.5rem;
}
.markdown-content ul {
list-style-type: disc;
}
.markdown-content ol {
list-style-type: decimal;
}
.markdown-content pre {
background-color: #f3f4f6;
padding: 1rem;
border-radius: 0.5rem;
overflow-x: auto;
margin-bottom: 1rem;
}
.markdown-content code {
background-color: #f3f4f6;
padding: 0.2rem 0.4rem;
border-radius: 0.25rem;
font-family: monospace;
}
.markdown-content blockquote {
border-left: 4px solid #3b82f6;
padding-left: 1rem;
margin-left: 0;
color: #4b5563;
font-style: italic;
}
.editor-toolbar {
display: flex;
flex-wrap: wrap;
gap: 0.5rem;
padding: 0.5rem;
background-color: #f3f4f6;
border-radius: 0.5rem 0.5rem 0 0;
border: 1px solid #e5e7eb;
border-bottom: none;
}
.editor-toolbar button {
background-color: white;
border: 1px solid #d1d5db;
border-radius: 0.25rem;
padding: 0.25rem 0.5rem;
cursor: pointer;
font-size: 0.875rem;
}
.editor-toolbar button:hover {
background-color: #f9fafb;
}
#solutionContent {
min-height: 300px;
border: 1px solid #e5e7eb;
border-radius: 0 0 0.5rem 0.5rem;
padding: 1rem;
background-color: white;
}
.tag-input {
display: flex;
flex-wrap: wrap;
gap: 0.5rem;
align-items: center;
padding: 0.5rem;
border: 1px solid #e5e7eb;
border-radius: 0.5rem;
min-height: 42px;
}
.tag {
background-color: #e0e7ff;
color: #1e40af;
padding: 0.25rem 0.5rem;
border-radius: 9999px;
font-size: 0.75rem;
display: flex;
align-items: center;
}
.tag-remove {
margin-left: 0.25rem;
cursor: pointer;
}
.equipment-item {
display: flex;
align-items: center;
padding: 0.5rem;
border-bottom: 1px solid #e5e7eb;
}
.equipment-item:last-child {
border-bottom: none;
}
.equipment-selector {
max-height: 300px;
overflow-y: auto;
}
.equipment-selector-item {
padding: 0.5rem;
cursor: pointer;
border-bottom: 1px solid #e5e7eb;
}
.equipment-selector-item:hover {
background-color: #f3f4f6;
}
.equipment-selector-item:last-child {
border-bottom: none;
}
.equipment-selector-item.selected {
background-color: #e0e7ff;
}
.markdown-preview {
border: 1px solid #e5e7eb;
border-radius: 0.5rem;
padding: 1rem;
background-color: white;
min-height: 300px;
}
</style>
</head>
<body class="bg-gray-50">
<div class="flex h-screen overflow-hidden">
<!-- Sidebar -->
<div class="sidebar bg-blue-900 text-white w-64 flex flex-col">
<div class="p-4 flex items-center justify-between border-b border-blue-800">
<div class="flex items-center">
<i class="fas fa-video sidebar-icon text-xl mr-3"></i>
<span class="sidebar-text font-bold text-xl">AV Solutions KB</span>
</div>
<button id="sidebarToggle" class="sidebar-toggle text-white focus:outline-none">
<i class="fas fa-chevron-left"></i>
</button>
</div>
<div class="p-4 border-b border-blue-800">
<div class="relative">
<input type="text" placeholder="Search solutions..." class="w-full bg-blue-800 text-white placeholder-blue-300 rounded py-2 px-4 pl-10 focus:outline-none focus:ring-2 focus:ring-blue-500">
<i class="fas fa-search absolute left-3 top-3 text-blue-300"></i>
</div>
</div>
<nav class="flex-1 overflow-y-auto">
<div class="p-2">
<div class="sidebar-item group">
<a href="#" class="flex items-center p-2 text-blue-100 hover:bg-blue-800 rounded transition" data-section="dashboard">
<i class="fas fa-tachometer-alt sidebar-icon mr-3"></i>
<span class="sidebar-text">Dashboard</span>
</a>
</div>
<div class="sidebar-item group">
<a href="#" class="flex items-center p-2 text-blue-100 hover:bg-blue-800 rounded transition" data-section="solutions">
<i class="fas fa-lightbulb sidebar-icon mr-3"></i>
<span class="sidebar-text">All Solutions</span>
</a>
</div>
<div class="sidebar-item group">
<a href="#" class="flex items-center p-2 text-blue-100 hover:bg-blue-800 rounded transition" data-section="categories">
<i class="fas fa-folder sidebar-icon mr-3"></i>
<span class="sidebar-text">Categories</span>
</a>
</div>
<div class="sidebar-item group">
<a href="#" class="flex items-center p-2 text-blue-100 hover:bg-blue-800 rounded transition" data-section="equipment">
<i class="fas fa-microchip sidebar-icon mr-3"></i>
<span class="sidebar-text">Equipment Database</span>
</a>
</div>
<div class="sidebar-item group">
<a href="#" class="flex items-center p-2 text-blue-100 hover:bg-blue-800 rounded transition" data-section="vendors">
<i class="fas fa-building sidebar-icon mr-3"></i>
<span class="sidebar-text">Vendors</span>
</a>
</div>
<div class="sidebar-item group">
<a href="#" class="flex items-center p-2 text-blue-100 hover:bg-blue-800 rounded transition" data-section="projects">
<i class="fas fa-project-diagram sidebar-icon mr-3"></i>
<span class="sidebar-text">Project References</span>
</a>
</div>
</div>
<div class="p-4 border-t border-blue-800">
<h3 class="sidebar-text text-xs uppercase text-blue-400 mb-2">Quick Filters</h3>
<div class="space-y-1">
<a href="#" class="flex items-center p-2 text-blue-100 hover:bg-blue-800 rounded transition" data-filter="recent">
<i class="fas fa-clock sidebar-icon mr-3"></i>
<span class="sidebar-text">Recently Added</span>
</a>
<a href="#" class="flex items-center p-2 text-blue-100 hover:bg-blue-800 rounded transition" data-filter="popular">
<i class="fas fa-fire sidebar-icon mr-3"></i>
<span class="sidebar-text">Most Viewed</span>
</a>
<a href="#" class="flex items-center p-2 text-blue-100 hover:bg-blue-800 rounded transition" data-filter="favorites">
<i class="fas fa-star sidebar-icon mr-3"></i>
<span class="sidebar-text">Favorites</span>
</a>
</div>
</div>
</nav>
<div class="p-4 border-t border-blue-800">
<div class="flex items-center">
<img src="https://ui-avatars.com/api/?name=AV+Tech&background=3b82f6&color=fff" alt="User" class="w-8 h-8 rounded-full">
<div class="ml-3 sidebar-text">
<div class="text-sm font-medium">AV Technician</div>
<div class="text-xs text-blue-300">Admin</div>
</div>
</div>
</div>
</div>
<!-- Main Content -->
<div class="flex-1 overflow-auto">
<!-- Header -->
<header class="bg-white shadow-sm">
<div class="px-6 py-4 flex justify-between items-center">
<h1 class="text-2xl font-semibold text-gray-800" id="pageTitle">Dashboard</h1>
<div class="flex items-center space-x-4">
<button id="newSolutionBtn" class="bg-blue-600 hover:bg-blue-700 text-white px-4 py-2 rounded-md flex items-center transition">
<i class="fas fa-plus mr-2"></i>
<span>New Solution</span>
</button>
<button class="text-gray-600 hover:text-gray-900">
<i class="fas fa-bell"></i>
</button>
<button class="text-gray-600 hover:text-gray-900">
<i class="fas fa-cog"></i>
</button>
</div>
</div>
</header>
<!-- Main Content Area -->
<main class="p-6">
<!-- Dashboard Section -->
<div id="dashboardSection" class="section-content fade-in">
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6 mb-6">
<div class="bg-white rounded-lg shadow p-6">
<div class="flex items-center">
<div class="p-3 rounded-full bg-blue-100 text-blue-600 mr-4">
<i class="fas fa-lightbulb text-xl"></i>
</div>
<div>
<p class="text-gray-500">Total Solutions</p>
<h3 class="text-2xl font-bold">248</h3>
</div>
</div>
</div>
<div class="bg-white rounded-lg shadow p-6">
<div class="flex items-center">
<div class="p-3 rounded-full bg-green-100 text-green-600 mr-4">
<i class="fas fa-check-circle text-xl"></i>
</div>
<div>
<p class="text-gray-500">Verified Solutions</p>
<h3 class="text-2xl font-bold">187</h3>
</div>
</div>
</div>
<div class="bg-white rounded-lg shadow p-6">
<div class="flex items-center">
<div class="p-3 rounded-full bg-yellow-100 text-yellow-600 mr-4">
<i class="fas fa-exclamation-triangle text-xl"></i>
</div>
<div>
<p class="text-gray-500">Needs Review</p>
<h3 class="text-2xl font-bold">12</h3>
</div>
</div>
</div>
<div class="bg-white rounded-lg shadow p-6">
<div class="flex items-center">
<div class="p-3 rounded-full bg-purple-100 text-purple-600 mr-4">
<i class="fas fa-users text-xl"></i>
</div>
<div>
<p class="text-gray-500">Active Users</p>
<h3 class="text-2xl font-bold">24</h3>
</div>
</div>
</div>
</div>
<div class="grid grid-cols-1 lg:grid-cols-3 gap-6 mb-6">
<div class="bg-white rounded-lg shadow p-6 lg:col-span-2">
<div class="flex justify-between items-center mb-4">
<h2 class="text-lg font-semibold">Recent Solutions</h2>
<a href="#" class="text-blue-600 hover:text-blue-800 text-sm">View All</a>
</div>
<div class="space-y-4">
<div class="border-b pb-4">
<div class="flex justify-between items-start">
<div>
<h3 class="font-medium">Conference Room DSP Configuration</h3>
<p class="text-sm text-gray-500">Added 2 days ago by John D.</p>
</div>
<span class="bg-green-100 text-green-800 text-xs px-2 py-1 rounded">Verified</span>
</div>
</div>
<div class="border-b pb-4">
<div class="flex justify-between items-start">
<div>
<h3 class="font-medium">Digital Signage Network Setup</h3>
<p class="text-sm text-gray-500">Added 4 days ago by Sarah M.</p>
</div>
<span class="bg-yellow-100 text-yellow-800 text-xs px-2 py-1 rounded">Needs Review</span>
</div>
</div>
<div class="border-b pb-4">
<div class="flex justify-between items-start">
<div>
<h3 class="font-medium">HDMI over IP for Large Venues</h3>
<p class="text-sm text-gray-500">Added 1 week ago by Mike T.</p>
</div>
<span class="bg-green-100 text-green-800 text-xs px-2 py-1 rounded">Verified</span>
</div>
</div>
</div>
</div>
<div class="bg-white rounded-lg shadow p-6">
<div class="flex justify-between items-center mb-4">
<h2 class="text-lg font-semibold">Top Categories</h2>
<a href="#" class="text-blue-600 hover:text-blue-800 text-sm">View All</a>
</div>
<div class="space-y-3">
<div>
<div class="flex justify-between text-sm mb-1">
<span>Conference Systems</span>
<span>42 solutions</span>
</div>
<div class="w-full bg-gray-200 rounded-full h-2">
<div class="bg-blue-600 h-2 rounded-full" style="width: 45%"></div>
</div>
</div>
<div>
<div class="flex justify-between text-sm mb-1">
<span>Digital Signage</span>
<span>38 solutions</span>
</div>
<div class="w-full bg-gray-200 rounded-full h-2">
<div class="bg-blue-600 h-2 rounded-full" style="width: 40%"></div>
</div>
</div>
<div>
<div class="flex justify-between text-sm mb-1">
<span>Control Systems</span>
<span>35 solutions</span>
</div>
<div class="w-full bg-gray-200 rounded-full h-2">
<div class="bg-blue-600 h-2 rounded-full" style="width: 38%"></div>
</div>
</div>
<div>
<div class="flex justify-between text-sm mb-1">
<span>Video Distribution</span>
<span>28 solutions</span>
</div>
<div class="w-full bg-gray-200 rounded-full h-2">
<div class="bg-blue-600 h-2 rounded-full" style="width: 30%"></div>
</div>
</div>
</div>
</div>
</div>
<div class="bg-white rounded-lg shadow p-6 mb-6">
<div class="flex justify-between items-center mb-4">
<h2 class="text-lg font-semibold">Activity Feed</h2>
<a href="#" class="text-blue-600 hover:text-blue-800 text-sm">View All</a>
</div>
<div class="space-y-4">
<div class="flex items-start">
<img src="https://ui-avatars.com/api/?name=John+Doe&background=3b82f6&color=fff" alt="User" class="w-10 h-10 rounded-full mr-3">
<div class="flex-1">
<div class="flex items-center">
<span class="font-medium">John Doe</span>
<span class="text-gray-500 text-sm ml-2">2 hours ago</span>
</div>
<p class="text-gray-700">Updated the <a href="#" class="text-blue-600">"Boardroom AV Control"</a> solution with new Crestron programming details</p>
</div>
</div>
<div class="flex items-start">
<img src="https://ui-avatars.com/api/?name=Sarah+M&background=3b82f6&color=fff" alt="User" class="w-10 h-10 rounded-full mr-3">
<div class="flex-1">
<div class="flex items-center">
<span class="font-medium">Sarah M.</span>
<span class="text-gray-500 text-sm ml-2">5 hours ago</span>
</div>
<p class="text-gray-700">Added a new solution: <a href="#" class="text-blue-600">"Digital Signage Network Setup for Retail"</a></p>
</div>
</div>
<div class="flex items-start">
<img src="https://ui-avatars.com/api/?name=Mike+T&background=3b82f6&color=fff" alt="User" class="w-10 h-10 rounded-full mr-3">
<div class="flex-1">
<div class="flex items-center">
<span class="font-medium">Mike T.</span>
<span class="text-gray-500 text-sm ml-2">1 day ago</span>
</div>
<p class="text-gray-700">Verified the <a href="#" class="text-blue-600">"HDMI over IP for Large Venues"</a> solution after successful deployment</p>
</div>
</div>
</div>
</div>
</div>
<!-- Solutions Section -->
<div id="solutionsSection" class="section-content hidden fade-in">
<div class="flex justify-between items-center mb-6">
<h2 class="text-2xl font-semibold">All Solutions</h2>
<div class="flex space-x-3">
<div class="relative">
<select class="appearance-none bg-white border border-gray-300 rounded-md py-2 pl-3 pr-8 text-sm focus:outline-none focus:ring-2 focus:ring-blue-500">
<option>Filter by Category</option>
<option>Conference Systems</option>
<option>Digital Signage</option>
<option>Control Systems</option>
<option>Video Distribution</option>
</select>
<div class="pointer-events-none absolute inset-y-0 right-0 flex items-center px-2 text-gray-700">
<i class="fas fa-chevron-down text-xs"></i>
</div>
</div>
<div class="relative">
<select class="appearance-none bg-white border border-gray-300 rounded-md py-2 pl-3 pr-8 text-sm focus:outline-none focus:ring-2 focus:ring-blue-500">
<option>Sort by</option>
<option>Recently Added</option>
<option>Most Viewed</option>
<option>Alphabetical</option>
</select>
<div class="pointer-events-none absolute inset-y-0 right-0 flex items-center px-2 text-gray-700">
<i class="fas fa-chevron-down text-xs"></i>
</div>
</div>
</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
<!-- Solution Card 1 -->
<div class="solution-card bg-white rounded-lg shadow overflow-hidden transition duration-300">
<div class="p-5">
<div class="flex justify-between items-start mb-3">
<span class="bg-blue-100 text-blue-800 text-xs px-2 py-1 rounded">Conference Systems</span>
<button class="text-gray-400 hover:text-yellow-500">
<i class="far fa-star"></i>
</button>
</div>
<h3 class="text-lg font-semibold mb-2">Boardroom AV Control</h3>
<p class="text-gray-600 text-sm mb-4">Complete control system configuration for executive boardrooms using Crestron and Biamp.</p>
<div class="flex items-center text-sm text-gray-500">
<i class="fas fa-user mr-1"></i>
<span class="mr-3">John D.</span>
<i class="fas fa-calendar-alt mr-1"></i>
<span>2 weeks ago</span>
</div>
</div>
<div class="bg-gray-50 px-5 py-3 flex justify-between items-center border-t">
<div class="flex space-x-2">
<span class="bg-green-100 text-green-800 text-xs px-2 py-1 rounded flex items-center">
<i class="fas fa-check-circle mr-1"></i>
Verified
</span>
<span class="bg-gray-100 text-gray-800 text-xs px-2 py-1 rounded flex items-center">
<i class="fas fa-eye mr-1"></i>
24
</span>
</div>
<a href="#" class="text-blue-600 hover:text-blue-800 text-sm font-medium">View Details</a>
</div>
</div>
<!-- Solution Card 2 -->
<div class="solution-card bg-white rounded-lg shadow overflow-hidden transition duration-300">
<div class="p-5">
<div class="flex justify-between items-start mb-3">
<span class="bg-purple-100 text-purple-800 text-xs px-2 py-1 rounded">Digital Signage</span>
<button class="text-yellow-400 hover:text-yellow-500">
<i class="fas fa-star"></i>
</button>
</div>
<h3 class="text-lg font-semibold mb-2">Retail Digital Signage Network</h3>
<p class="text-gray-600 text-sm mb-4">Scalable digital signage solution for retail environments using BrightSign players and cloud management.</p>
<div class="flex items-center text-sm text-gray-500">
<i class="fas fa-user mr-1"></i>
<span class="mr-3">Sarah M.</span>
<i class="fas fa-calendar-alt mr-1"></i>
<span>1 month ago</span>
</div>
</div>
<div class="bg-gray-50 px-5 py-3 flex justify-between items-center border-t">
<div class="flex space-x-2">
<span class="bg-green-100 text-green-800 text-xs px-2 py-1 rounded flex items-center">
<i class="fas fa-check-circle mr-1"></i>
Verified
</span>
<span class="bg-gray-100 text-gray-800 text-xs px-2 py-1 rounded flex items-center">
<i class="fas fa-eye mr-1"></i>
42
</span>
</div>
<a href="#" class="text-blue-600 hover:text-blue-800 text-sm font-medium">View Details</a>
</div>
</div>
<!-- Solution Card 3 -->
<div class="solution-card bg-white rounded-lg shadow overflow-hidden transition duration-300">
<div class="p-5">
<div class="flex justify-between items-start mb-3">
<span class="bg-yellow-100 text-yellow-800 text-xs px-2 py-1 rounded">Video Distribution</span>
<button class="text-gray-400 hover:text-yellow-500">
<i class="far fa-star"></i>
</button>
</div>
<h3 class="text-lg font-semibold mb-2">HDMI over IP for Large Venues</h3>
<p class="text-gray-600 text-sm mb-4">Reliable video distribution solution for stadiums and large venues using AV over IP technology.</p>
<div class="flex items-center text-sm text-gray-500">
<i class="fas fa-user mr-1"></i>
<span class="mr-3">Mike T.</span>
<i class="fas fa-calendar-alt mr-1"></i>
<span>3 weeks ago</span>
</div>
</div>
<div class="bg-gray-50 px-5 py-3 flex justify-between items-center border-t">
<div class="flex space-x-2">
<span class="bg-green-100 text-green-800 text-xs px-2 py-1 rounded flex items-center">
<i class="fas fa-check-circle mr-1"></i>
Verified
</span>
<span class="bg-gray-100 text-gray-800 text-xs px-2 py-1 rounded flex items-center">
<i class="fas fa-eye mr-1"></i>
18
</span>
</div>
<a href="#" class="text-blue-600 hover:text-blue-800 text-sm font-medium">View Details</a>
</div>
</div>
<!-- Solution Card 4 -->
<div class="solution-card bg-white rounded-lg shadow overflow-hidden transition duration-300">
<div class="p-5">
<div class="flex justify-between items-start mb-3">
<span class="bg-blue-100 text-blue-800 text-xs px-2 py-1 rounded">Conference Systems</span>
<button class="text-gray-400 hover:text-yellow-500">
<i class="far fa-star"></i>
</button>
</div>
<h3 class="text-lg font-semibold mb-2">Zoom Room Standard Configuration</h3>
<p class="text-gray-600 text-sm mb-4">Optimal setup for Zoom Rooms with Logitech Tap and DSP integration for medium-sized meeting rooms.</p>
<div class="flex items-center text-sm text-gray-500">
<i class="fas fa-user mr-1"></i>
<span class="mr-3">Alex K.</span>
<i class="fas fa-calendar-alt mr-1"></i>
<span>5 days ago</span>
</div>
</div>
<div class="bg-gray-50 px-5 py-3 flex justify-between items-center border-t">
<div class="flex space-x-2">
<span class="bg-yellow-100 text-yellow-800 text-xs px-2 py-1 rounded flex items-center">
<i class="fas fa-exclamation-circle mr-1"></i>
Needs Review
</span>
<span class="bg-gray-100 text-gray-800 text-xs px-2 py-1 rounded flex items-center">
<i class="fas fa-eye mr-1"></i>
8
</span>
</div>
<a href="#" class="text-blue-600 hover:text-blue-800 text-sm font-medium">View Details</a>
</div>
</div>
<!-- Solution Card 5 -->
<div class="solution-card bg-white rounded-lg shadow overflow-hidden transition duration-300">
<div class="p-5">
<div class="flex justify-between items-start mb-3">
<span class="bg-red-100 text-red-800 text-xs px-2 py-1 rounded">Control Systems</span>
<button class="text-yellow-400 hover:text-yellow-500">
<i class="fas fa-star"></i>
</button>
</div>
<h3 class="text-lg font-semibold mb-2">Crestron Home Automation</h3>
<p class="text-gray-600 text-sm mb-4">Residential automation solution integrating lighting, shades, AV and climate control with Crestron.</p>
<div class="flex items-center text-sm text-gray-500">
<i class="fas fa-user mr-1"></i>
<span class="mr-3">Lisa P.</span>
<i class="fas fa-calendar-alt mr-1"></i>
<span>2 months ago</span>
</div>
</div>
<div class="bg-gray-50 px-5 py-3 flex justify-between items-center border-t">
<div class="flex space-x-2">
<span class="bg-green-100 text-green-800 text-xs px-2 py-1 rounded flex items-center">
<i class="fas fa-check-circle mr-1"></i>
Verified
</span>
<span class="bg-gray-100 text-gray-800 text-xs px-2 py-1 rounded flex items-center">
<i class="fas fa-eye mr-1"></i>
36
</span>
</div>
<a href="#" class="text-blue-600 hover:text-blue-800 text-sm font-medium">View Details</a>
</div>
</div>
<!-- Solution Card 6 -->
<div class="solution-card bg-white rounded-lg shadow overflow-hidden transition duration-300">
<div class="p-5">
<div class="flex justify-between items-start mb-3">
<span class="bg-green-100 text-green-800 text-xs px-2 py-1 rounded">Audio Systems</span>
<button class="text-gray-400 hover:text-yellow-500">
<i class="far fa-star"></i>
</button>
</div>
<h3 class="text-lg font-semibold mb-2">Dante Audio Network Setup</h3>
<p class="text-gray-600 text-sm mb-4">Best practices for configuring Dante networks in corporate environments with Yamaha and Shure equipment.</p>
<div class="flex items-center text-sm text-gray-500">
<i class="fas fa-user mr-1"></i>
<span class="mr-3">Tom R.</span>
<i class="fas fa-calendar-alt mr-1"></i>
<span>3 months ago</span>
</div>
</div>
<div class="bg-gray-50 px-5 py-3 flex justify-between items-center border-t">
<div class="flex space-x-2">
<span class="bg-green-100 text-green-800 text-xs px-2 py-1 rounded flex items-center">
<i class="fas fa-check-circle mr-1"></i>
Verified
</span>
<span class="bg-gray-100 text-gray-800 text-xs px-2 py-1 rounded flex items-center">
<i class="fas fa-eye mr-1"></i>
29
</span>
</div>
<a href="#" class="text-blue-600 hover:text-blue-800 text-sm font-medium">View Details</a>
</div>
</div>
</div>
<div class="mt-6 flex justify-center">
<nav class="inline-flex rounded-md shadow">
<a href="#" class="px-3 py-2 rounded-l-md border border-gray-300 bg-white text-gray-500 hover:bg-gray-50">
<i class="fas fa-chevron-left"></i>
</a>
<a href="#" class="px-3 py-2 border-t border-b border-gray-300 bg-white text-blue-600 font-medium">1</a>
<a href="#" class="px-3 py-2 border-t border-b border-gray-300 bg-white text-gray-500 hover:bg-gray-50">2</a>
<a href="#" class="px-3 py-2 border-t border-b border-gray-300 bg-white text-gray-500 hover:bg-gray-50">3</a>
<a href="#" class="px-3 py-2 rounded-r-md border border-gray-300 bg-white text-gray-500 hover:bg-gray-50">
<i class="fas fa-chevron-right"></i>
</a>
</nav>
</div>
</div>
<!-- Solution Detail Section (Hidden by default) -->
<div id="solutionDetailSection" class="hidden">
<div class="bg-white rounded-lg shadow overflow-hidden">
<div class="p-6 border-b">
<div class="flex justify-between items-start">
<div>
<div class="flex items-center mb-2">
<span class="bg-blue-100 text-blue-800 text-xs px-2 py-1 rounded mr-2">Conference Systems</span>
<span class="bg-green-100 text-green-800 text-xs px-2 py-1 rounded flex items-center">
<i class="fas fa-check-circle mr-1"></i>
Verified
</span>
</div>
<h2 class="text-2xl font-bold mb-2">Boardroom AV Control</h2>
<p class="text-gray-600">Complete control system configuration for executive boardrooms using Crestron and Biamp.</p>
</div>
<div class="flex space-x-2">
<button class="p-2 text-gray-400 hover:text-yellow-500">
<i class="far fa-star text-xl"></i>
</button>
<button class="p-2 text-gray-400 hover:text-blue-600">
<i class="fas fa-share-alt text-xl"></i>
</button>
<button class="p-2 text-gray-400 hover:text-red-600">
<i class="fas fa-ellipsis-v text-xl"></i>
</button>
</div>
</div>
</div>
<div class="p-6">
<div class="flex mb-6">
<div class="w-1/4 pr-6">
<div class="sticky top-6">
<div class="mb-6">
<h3 class="text-sm font-semibold text-gray-500 uppercase mb-3">Details</h3>
<div class="space-y-3">
<div>
<p class="text-xs text-gray-500">Created by</p>
<div class="flex items-center mt-1">
<img src="https://ui-avatars.com/api/?name=John+Doe&background=3b82f6&color=fff" alt="User" class="w-6 h-6 rounded-full mr-2">
<span class="text-sm">John Doe</span>
</div>
</div>
<div>
<p class="text-xs text-gray-500">Created on</p>
<p class="text-sm">May 15, 2023</p>
</div>
<div>
<p class="text-xs text-gray-500">Last updated</p>
<p class="text-sm">June 2, 2023</p>
</div>
<div>
<p class="text-xs text-gray-500">Views</p>
<p class="text-sm">24</p>
</div>
</div>
</div>
<div class="mb-6">
<h3 class="text-sm font-semibold text-gray-500 uppercase mb-3">Equipment</h3>
<div class="space-y-2">
<div class="flex items-center">
<i class="fas fa-tv text-gray-400 mr-2"></i>
<span class="text-sm">Crestron TSW-760</span>
</div>
<div class="flex items-center">
<i class="fas fa-microchip text-gray-400 mr-2"></i>
<span class="text-sm">Biamp TesiraFORTE</span>
</div>
<div class="flex items-center">
<i class="fas fa-project-diagram text-gray-400 mr-2"></i>
<span class="text-sm">Crestron CP3</span>
</div>
<div class="flex items-center">
<i class="fas fa-video text-gray-400 mr-2"></i>
<span class="text-sm">Logitech Rally Plus</span>
</div>
</div>
</div>
<div>
<h3 class="text-sm font-semibold text-gray-500 uppercase mb-3">Tags</h3>
<div class="flex flex-wrap gap-2">
<span class="bg-gray-100 text-gray-800 text-xs px-2 py-1 rounded">crestron</span>
<span class="bg-gray-100 text-gray-800 text-xs px-2 py-1 rounded">biamp</span>
<span class="bg-gray-100 text-gray-800 text-xs px-2 py-1 rounded">control-system</span>
<span class="bg-gray-100 text-gray-800 text-xs px-2 py-1 rounded">boardroom</span>
</div>
</div>
</div>
</div>
<div class="w-3/4 pl-6 border-l">
<div class="markdown-content">
<h2>Overview</h2>
<p>This solution provides a comprehensive configuration for executive boardroom AV control systems using Crestron for control and Biamp for audio processing. It has been successfully deployed in 12 corporate environments with positive feedback.</p>
<h2>System Components</h2>
<ul>
<li>Crestron CP3 control processor</li>
<li>Biamp TesiraFORTE DAN VT audio processor</li>
<li>Crestron TSW-760 touch panel</li>
<li>Logitech Rally Plus video conferencing system</li>
<li>Shure MXA910 ceiling array microphone</li>
<li>Extron DTP HDMI 4K 330 transmitter/receiver</li>
</ul>
<h2>Configuration Details</h2>
<h3>Control System Programming</h3>
<p>The Crestron system is programmed with the following features:</p>
<pre><code>// Sample Crestron SIMPL+ code
DigitalJoin[1] = SystemPower;
DigitalJoin[2] = DisplayPower;
AnalogJoin[1] = VolumeLevel;
SerialJoin[1] = "Source Selection";</code></pre>
<h3>Audio Configuration</h3>
<p>The Biamp Tesira is configured with these settings:</p>
<blockquote>
Note: Always verify the Dante network settings before applying audio configurations. Use 48kHz sample rate for best compatibility.
</blockquote>
<p>Key audio processing blocks:</p>
<ol>
<li>Automatic microphone mixer</li>
<li>Feedback suppressor</li>
<li>AGC for consistent levels</li>
<li>Ducker for program audio</li>
</ol>
<h2>Deployment Notes</h2>
<p>This configuration typically requires:</p>
<ul>
<li>2 hours for rack installation</li>
<li>4 hours for control system programming</li>
<li>2 hours for audio tuning</li>
<li>1 hour for client training</li>
</ul>
<h2>Known Issues</h2>
<p>When using with Teams Rooms:</p>
<ul>
<li>Ensure USB audio device class is set to 2.0 in the Crestron program</li>
<li>Add 500ms delay after system power on before activating video sources</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- New Solution Section -->
<div id="newSolutionSection" class="hidden">
<div class="bg-white rounded-lg shadow overflow-hidden">
<div class="p-6 border-b">
<div class="flex justify-between items-center">
<h2 class="text-2xl font-bold">Create New Solution</h2>
<button id="cancelNewSolution" class="text-gray-500 hover:text-gray-700">
Cancel
</button>
</div>
</div>
<div class="p-6">
<form id="newSolutionForm">
<div class="mb-6">
<label for="solutionTitle" class="block text-sm font-medium text-gray-700 mb-1">Solution Title</label>
<input type="text" id="solutionTitle" class="w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-blue-500 focus:border-blue-500" placeholder="Enter a descriptive title for your solution" required>
</div>
<div class="mb-6">
<label for="solutionCategory" class="block text-sm font-medium text-gray-700 mb-1">Category</label>
<select id="solutionCategory" class="w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-blue-500 focus:border-blue-500" required>
<option value="">Select a category</option>
<option value="conference">Conference Systems</option>
<option value="signage">Digital Signage</option>
<option value="control">Control Systems</option>
<option value="video">Video Distribution</option>
<option value="audio">Audio Systems</option>
<option value="lighting">Lighting Control</option>
</select>
</div>
<div class="mb-6">
<label class="block text-sm font-medium text-gray-700 mb-1">Status</label>
<div class="flex space-x-4">
<label class="inline-flex items-center">
<input type="radio" name="solutionStatus" value="draft" class="h-4 w-4 text-blue-600 focus:ring-blue-500" checked>
<span class="ml-2 text-gray-700">Draft</span>
</label>
<label class="inline-flex items-center">
<input type="radio" name="solutionStatus" value="review" class="h-4 w-4 text-blue-600 focus:ring-blue-500">
<span class="ml-2 text-gray-700">Needs Review</span>
</label>
<label class="inline-flex items-center">
<input type="radio" name="solutionStatus" value="verified" class="h-4 w-4 text-blue-600 focus:ring-blue-500">
<span class="ml-2 text-gray-700">Verified</span>
</label>
</div>
</div>
<div class="mb-6">
<label class="block text-sm font-medium text-gray-700 mb-1">Content Editor</label>
<div class="editor-toolbar">
<button type="button" class="format-btn" data-format="h2"><i class="fas fa-heading"></i> H2</button>
<button type="button" class="format-btn" data-format="h3"><i class="fas fa-heading"></i> H3</button>
<button type="button" class="format-btn" data-format="bold"><i class="fas fa-bold"></i></button>
<button type="button" class="format-btn" data-format="italic"><i class="fas fa-italic"></i></button>
<button type="button" class="format-btn" data-format="ul"><i class="fas fa-list-ul"></i></button>
<button type="button" class="format-btn" data-format="ol"><i class="fas fa-list-ol"></i></button>
<button type="button" class="format-btn" data-format="code"><i class="fas fa-code"></i></button>
<button type="button" class="format-btn" data-format="quote"><i class="fas fa-quote-right"></i></button>
<button type="button" id="previewBtn" class="ml-auto"><i class="fas fa-eye"></i> Preview</button>
</div>
<div id="solutionContent" contenteditable="true" class="prose max-w-none"></div>
<div id="markdownPreview" class="markdown-preview hidden"></div>
</div>
<div class="mb-6">
<label class="block text-sm font-medium text-gray-700 mb-1">Equipment</label>
<div class="relative">
<input type="text" id="equipmentSearch" class="w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-blue-500 focus:border-blue-500" placeholder="Search equipment...">
<div id="equipmentSelector" class="equipment-selector hidden absolute z-10 w-full mt-1 bg-white border border-gray-300 rounded-md shadow-lg">
<!-- Equipment items will be populated here -->
</div>
</div>
<div id="selectedEquipment" class="mt-2 space-y-2">
<!-- Selected equipment will appear here -->
</div>
</div>
<div class="mb-6">
<label class="block text-sm font-medium text-gray-700 mb-1">Tags</label>
<div class="tag-input" id="tagContainer">
<input type="text" id="tagInput" class="flex-1 border-0 focus:ring-0 focus:outline-none" placeholder="Add tags...">
</div>
</div>
<div class="flex justify-end space-x-3">
<button type="button" id="saveDraftBtn" class="px-4 py-2 border border-gray-300 rounded-md shadow-sm text-sm font-medium text-gray-700 bg-white hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500">
Save Draft
</button>
<button type="submit" class="px-4 py-2 border border-transparent rounded-md shadow-sm text-sm font-medium text-white bg-blue-600 hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500">
Publish Solution
</button>
</div>
</form>
</div>
</div>
</div>
</main>
</div>
</div>
<script>
// Sidebar toggle functionality
document.getElementById('sidebarToggle').addEventListener('click', function() {
document.querySelector('.sidebar').classList.toggle('collapsed');
});
// Section navigation
document.querySelectorAll('[data-section]').forEach(link => {
link.addEventListener('click', function(e) {
e.preventDefault();
const sectionId = this.getAttribute('data-section') + 'Section';
document.querySelectorAll('.section-content').forEach(section => {
section.classList.add('hidden');
});
document.getElementById(sectionId).classList.remove('hidden');
document.getElementById('pageTitle').textContent = this.querySelector('.sidebar-text').textContent;
});
});
// New solution button
document.getElementById('newSolutionBtn').addEventListener('click', function() {
document.querySelectorAll('.section-content').forEach(section => {
section.classList.add('hidden');
});
document.getElementById('newSolutionSection').classList.remove('hidden');
document.getElementById('pageTitle').textContent = 'New Solution';
});
// Cancel new solution
document.getElementById('cancelNewSolution').addEventListener('click', function() {
document.getElementById('newSolutionSection').classList.add('hidden');
document.getElementById('dashboardSection').classList.remove('hidden');
document.getElementById('pageTitle').textContent = 'Dashboard';
});
// Equipment search functionality
const equipmentList = [
{ id: 1, name: 'Crestron TSW-760', type: 'Touch Panel' },
{ id: 2, name: 'Biamp TesiraFORTE', type: 'Audio Processor' },
{ id: 3, name: 'Crestron CP3', type: 'Control Processor' },
{ id: 4, name: 'Logitech Rally Plus', type: 'Video Conferencing' },
{ id: 5, name: 'Shure MXA910', type: 'Ceiling Microphone' },
{ id: 6, name: 'Extron DTP HDMI 4K 330', type: 'Video Transmitter' },
{ id: 7, name: 'QSC Core 110f', type: 'DSP Processor' },
{ id: 8, name: 'BrightSign XD1234', type: 'Digital Signage Player' },
{ id: 9, name: 'Cisco Webex Codec Pro', type: 'Video Conferencing' },
{ id: 10, name: 'AMX NX-2200', type: 'Controller' }
];
document.getElementById('equipmentSearch').addEventListener('input', function() {
const searchTerm = this.value.toLowerCase();
const equipmentSelector = document.getElementById('equipmentSelector');
if (searchTerm.length > 0) {
equipmentSelector.innerHTML = '';
const filteredEquipment = equipmentList.filter(item =>
item.name.toLowerCase().includes(searchTerm) ||
item.type.toLowerCase().includes(searchTerm)
);
if (filteredEquipment.length > 0) {
filteredEquipment.forEach(item => {
const div = document.createElement('div');
div.className = 'equipment-selector-item';
div.innerHTML = `
<div class="font-medium">${item.name}</div>
<div class="text-xs text-gray-500">${item.type}</div>
`;
div.addEventListener('click', function() {
addSelectedEquipment(item);
equipmentSelector.classList.add('hidden');
document.getElementById('equipmentSearch').value = '';
});
equipmentSelector.appendChild(div);
});
equipmentSelector.classList.remove('hidden');
} else {
const div = document.createElement('div');
div.className = 'equipment-selector-item';
div.textContent = 'No equipment found';
equipmentSelector.appendChild(div);
equipmentSelector.classList.remove('hidden');
}
} else {
equipmentSelector.classList.add('hidden');
}
});
function addSelectedEquipment(item) {
const selectedEquipment = document.getElementById('selectedEquipment');
const div = document.createElement('div');
div.className = 'equipment-item bg-gray-50 rounded p-3 flex justify-between items-center';
div.innerHTML = `
<div>
<div class="font-medium">${item.name}</div>
<div class="text-xs text-gray-500">${item.type}</div>
</div>
<button class="text-red-500 hover:text-red-700 remove-equipment" data-id="${item.id}">
<i class="fas fa-times"></i>
</button>
`;
selectedEquipment.appendChild(div);
// Add event listener to remove button
div.querySelector('.remove-equipment').addEventListener('click', function() {
div.remove();
});
}
// Tag input functionality
const tagInput = document.getElementById('tagInput');
const tagContainer = document.getElementById('tagContainer');
let tags = [];
tagInput.addEventListener('keydown', function(e) {
if (e.key === 'Enter' && this.value.trim() !== '') {
e.preventDefault();
const tagText = this.value.trim();
if (!tags.includes(tagText)) {
tags.push(tagText);
renderTags();
}
this.value = '';
}
});
function renderTags() {
const tagElements = tags.map(tag => `
<div class="tag">
${tag}
<span class="tag-remove" data-tag="${tag}">
<i class="fas fa-times"></i>
</span>
</div>
`).join('');
tagContainer.innerHTML = tagElements + '<input type="text" id="tagInput" class="flex-1 border-0 focus:ring-0 focus:outline-none" placeholder="Add tags...">';
// Re-attach event listeners to remove buttons
document.querySelectorAll('.tag-remove').forEach(btn => {
btn.addEventListener('click', function() {
const tagToRemove = this.getAttribute('data-tag');
tags = tags.filter(t => t !== tagToRemove);
renderTags();
});
});
// Focus the new input
document.getElementById('tagInput').focus();
}
// Editor formatting buttons
document.querySelectorAll('.format-btn').forEach(btn => {
btn.addEventListener('click', function() {
const format = this.getAttribute('data-format');
formatText(format);
});
});
function formatText(format) {
const selection = window.getSelection();
if (selection.rangeCount === 0) return;
const range = selection.getRangeAt(0);
const selectedText = range.toString();
if (!selectedText) return;
let formattedText = selectedText;
switch (format) {
case 'h2':
formattedText = `## ${selectedText}\n\n`;
break;
case 'h3':
formattedText = `### ${selectedText}\n\n`;
break;
case 'bold':
formattedText = `**${selectedText}**`;
break;
case 'italic':
formattedText = `*${selectedText}*`;
break;
case 'ul':
formattedText = `- ${selectedText}`;
break;
case 'ol':
formattedText = `1. ${selectedText}`;
break;
case 'code':
formattedText = `\`${selectedText}\``;
break;
case 'quote':
formattedText = `> ${selectedText}`;
break;
}
// Replace the selected text with formatted text
range.deleteContents();
range.insertNode(document.createTextNode(formattedText));
// Update the content editable div
document.getElementById('solutionContent').focus();
}
// Preview functionality
document.getElementById('previewBtn').addEventListener('click', function() {
const content = document.getElementById('solutionContent').textContent;
const preview = document.getElementById('markdownPreview');
// Simple markdown to HTML conversion (for demo purposes)
let html = content
.replace(/##\s(.+?)\n/g, '<h2>$1</h2>')
.replace(/###\s(.+?)\n/g, '<h3>$1</h3>')
.replace(/\*\*(.+?)\*\*/g, '<strong>$1</strong>')
.replace(/\*(.+?)\*/g, '<em>$1</em>')
.replace(/-\s(.+?)\n/g, '<li>$1</li>')
.replace(/1\.\s(.+?)\n/g, '<li>$1</li>')
.replace(/`(.+?)`/g, '<code>$1</code>')
.replace(/>\s(.+?)\n/g, '<blockquote>$1</blockquote>')
.replace(/\n/g, '<br>');
preview.innerHTML = html;
// Toggle between editor and preview
document.getElementById('solutionContent').classList.toggle('hidden');
preview.classList.toggle('hidden');
// Change button text
if (preview.classList.contains('hidden')) {
this.innerHTML = '<i class="fas fa-eye"></i> Preview';
} else {
this.innerHTML = '<i class="fas fa-edit"></i> Edit';
}
});
// Form submission
document.getElementById('newSolutionForm').addEventListener('submit', function(e) {
e.preventDefault();
// Get form values
const title = document.getElementById('solutionTitle').value;
const category = document.getElementById('solutionCategory').value;
const status = document.querySelector('input[name="solutionStatus"]:checked').value;
const content = document.getElementById('solutionContent').textContent;
// In a real app, you would send this data to a server
console.log('New solution submitted:', {
title,
category,
status,
content,
equipment: Array.from(document.querySelectorAll('.equipment-item')).map(item => ({
name: item.querySelector('.font-medium').textContent,
type: item.querySelector('.text-xs').textContent
})),
tags
});
// Show success message
alert('Solution created successfully!');
// Reset form
this.reset();
document.getElementById('solutionContent').textContent = '';
document.getElementById('selectedEquipment').innerHTML = '';
tags = [];
renderTags();
// Go back to dashboard
document.getElementById('newSolutionSection').classList.add('hidden');
document.getElementById('dashboardSection').classList.remove('hidden');
document.getElementById('pageTitle').textContent = 'Dashboard';
});
// Save draft functionality
document.getElementById('saveDraftBtn').addEventListener('click', function() {
// Get form values
const title = document.getElementById('solutionTitle').value;
const category = document.getElementById('solutionCategory').value;
const content = document.getElementById('solutionContent').textContent;
if (!title) {
alert('Please enter a title for your draft');
return;
}
// In a real app, you would save this to local storage or send to a server
console.log('Draft saved:', {
title,
category,
content,
equipment: Array.from(document.querySelectorAll('.equipment-item')).map(item => ({
name: item.querySelector('.font-medium').textContent,
type: item.querySelector('.text-xs').textContent
})),
tags
});
alert('Draft saved successfully!');
});
</script>
<p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=awood2817/av-knowledge" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
</html>