芝麻web文件管理V1.00
编辑当前文件:/home/freeclou/optimyar/wp-content/plugins/code-snippets/js/services/manage/activation.ts
import { __ } from '@wordpress/i18n' import { updateSnippet } from './requests' import type { Snippet } from '../../types/Snippet' /** * Update the snippet count of a specific view * @param element * @param increment */ const updateViewCount = (element: HTMLElement | null, increment: boolean) => { if (element?.textContent) { let count = parseInt(element.textContent.replace(/\((?
\d+)\)/, '$1'), 10) count += increment ? 1 : -1 element.textContent = `(${count})` } else { console.error('Could not update view count.', element) } } /** * Activate an inactive snippet, or deactivate an active snippet * @param link * @param event */ export const toggleSnippetActive = (link: HTMLAnchorElement, event: Event) => { const row = link.parentElement?.parentElement // Switch < cell < row if (!row) { console.error('Could not toggle snippet active status.', row) return } const match = /\b(?:in)?active-snippet\b/.exec(row.className) if (!match) { return } event.preventDefault() const activating = 'inactive-snippet' === match[0] const snippet: Partial
= { active: activating } updateSnippet('active', row, snippet, response => { const button: HTMLAnchorElement | null = row.querySelector('.snippet-activation-switch') if (response.success) { row.className = activating ? row.className.replace(/\binactive-snippet\b/, 'active-snippet') : row.className.replace(/\bactive-snippet\b/, 'inactive-snippet') const views = document.querySelector('.subsubsub') const activeCount = views?.querySelector
('.active .count') const inactiveCount = views?.querySelector
('.inactive .count') if (activeCount) { updateViewCount(activeCount, activating) } if (inactiveCount) { updateViewCount(inactiveCount, activating) } if (button) { button.title = activating ? __('Deactivate', 'code-snippets') : __('Activate', 'code-snippets') } } else { row.className += ' erroneous-snippet' if (button) { button.title = __('An error occurred when attempting to activate', 'code-snippets') } } }) } export const handleSnippetActivationSwitches = () => { for (const link of document.getElementsByClassName('snippet-activation-switch')) { link.addEventListener('click', event => toggleSnippetActive(
link, event)) } }