Standardize share toast notifications and fix PC scanning/editing

Share Toast Notifications:
- Unified toast style across all pages (purple gradient, top-right position)
- Updated displayapplication.asp, displaytopic.asp, displayudc.asp
- Updated printerlinksgenerator.asp (replaced alert with toast)
- Same text: "Link Copied!" / "This link will show the search term..."

PC Scanning/Editing Fixes:
- savedevicedirect.asp: Use machinetypeid=33 to detect PCs (not pctypeid)
- savedevicedirect.asp: Use new Dell TBD model (ID 110) for new PCs
- editpc.asp: Model dropdown includes current model even if vendor ispc=0
- editpc.asp: Fixed vendor query to use ispc=1 instead of ismachine=1

Database changes (manual):
- Set ispc=1 for Dell, Dell Inc., DellInc., HP vendors
- Created Dell TBD model (ID 110) as default PC model

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
cproudlock
2025-12-17 15:31:59 -05:00
parent a4096ace94
commit b858d069c5
6 changed files with 180 additions and 80 deletions

View File

@@ -24,9 +24,13 @@ Response.Write(" .link-input { width: 100%; padding: 5px; font-family: 'C
Response.Write(" .filter-box { background: white; padding: 15px; margin-bottom: 20px; border-radius: 5px; box-shadow: 0 2px 4px rgba(0,0,0,0.1); }")
Response.Write(" .filter-box input { padding: 8px; width: 300px; border: 1px solid #ddd; border-radius: 3px; }")
Response.Write(" .info-box { background: #fff3cd; border-left: 4px solid #ffc107; padding: 15px; margin-bottom: 20px; }")
Response.Write(" #shareToast { position: fixed; top: 80px; right: 20px; z-index: 9999; min-width: 300px; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; padding: 15px 20px; border-radius: 8px; box-shadow: 0 4px 20px rgba(0,0,0,0.3); display: none; }")
Response.Write(" @keyframes toastSlideIn { from { transform: translateX(100%); opacity: 0; } to { transform: translateX(0); opacity: 1; } }")
Response.Write(" @keyframes toastSlideOut { from { transform: translateX(0); opacity: 1; } to { transform: translateX(100%); opacity: 0; } }")
Response.Write(" </style>")
Response.Write("</head>")
Response.Write("<body>")
Response.Write(" <div id='shareToast'><div style='display: flex; align-items: center;'><span style='font-size: 24px; margin-right: 12px;'>&#10003;</span><div><strong style='display: block; margin-bottom: 5px;'>Link Copied!</strong><span style='font-size: 13px; opacity: 0.9;'>This link will show the search term and highlight the result</span></div></div></div>")
Response.Write(" <h1>Printer Installation Link Generator</h1>")
Response.Write(" <div class='info-box'>")
@@ -126,11 +130,24 @@ Response.Write(" </table>")
Response.Write(" <script>")
Response.Write(" function copyToClipboard(text) {")
Response.Write(" navigator.clipboard.writeText(text).then(function() {")
Response.Write(" alert('Copied to clipboard!');")
Response.Write(" }, function(err) {")
Response.Write(" console.error('Could not copy text: ', err);")
Response.Write(" });")
Response.Write(" var temp = document.createElement('textarea');")
Response.Write(" temp.value = text;")
Response.Write(" temp.style.position = 'fixed';")
Response.Write(" temp.style.left = '-9999px';")
Response.Write(" document.body.appendChild(temp);")
Response.Write(" temp.select();")
Response.Write(" document.execCommand('copy');")
Response.Write(" document.body.removeChild(temp);")
Response.Write(" showToast();")
Response.Write(" }")
Response.Write(" function showToast() {")
Response.Write(" var toast = document.getElementById('shareToast');")
Response.Write(" toast.style.display = 'block';")
Response.Write(" toast.style.animation = 'toastSlideIn 0.3s ease-out';")
Response.Write(" setTimeout(function() {")
Response.Write(" toast.style.animation = 'toastSlideOut 0.3s ease-out';")
Response.Write(" setTimeout(function() { toast.style.display = 'none'; }, 300);")
Response.Write(" }, 2500);")
Response.Write(" }")
Response.Write(" ")
Response.Write(" function filterTable() {")