/** * Token Manager JavaScript * Handles token management functionality */ class TokenManager { constructor() { this.tokens = []; this.init(); } init() { this.loadTokens(); this.setupEventListeners(); this.setupTokenTypeHelp(); } setupEventListeners() { // Token form submission document.getElementById('token-form').addEventListener('submit', (e) => { e.preventDefault(); this.saveToken(); }); // Token validation document.getElementById('validate-token').addEventListener('click', () => { this.validateToken(); }); // Token type change document.getElementById('token-type').addEventListener('change', (e) => { this.updateTokenTypeHelp(e.target.value); }); // Task type change document.getElementById('task-type').addEventListener('change', (e) => { this.updateTaskHelp(e.target.value); }); // Get task token document.getElementById('get-task-token').addEventListener('click', () => { this.getTaskToken(); }); } setupTokenTypeHelp() { const tokenTypeHelp = { 'read': 'للتطوير والتعلم - قراءة فقط', 'write': 'لمشاركة النماذج - قراءة وكتابة', 'fine_grained': 'للمشاريع التجارية - أذونات مخصصة' }; this.tokenTypeHelp = tokenTypeHelp; this.updateTokenTypeHelp('read'); // Task type help const taskTypeHelp = { 'read': 'قراءة النماذج والبيانات العامة - يستخدم رمز القراءة', 'download': 'تحميل النماذج من Hugging Face - يستخدم رمز القراءة', 'medical': 'الوصول للبيانات الطبية الحساسة - يستخدم الرمز المخصص', 'private': 'الوصول للنماذج الخاصة والمحدودة - يستخدم الرمز المخصص', 'write': 'رفع النماذج الجديدة - يستخدم رمز الكتابة', 'upload': 'مشاركة المحتوى مع المجتمع - يستخدم رمز الكتابة', 'commercial': 'المشاريع التجارية والحساسة - يستخدم الرمز المخصص', 'enterprise': 'استخدام المؤسسات الكبيرة - يستخدم الرمز المخصص' }; this.taskTypeHelp = taskTypeHelp; this.updateTaskHelp('read'); } updateTokenTypeHelp(tokenType) { const helpElement = document.getElementById('token-type-help'); helpElement.textContent = this.tokenTypeHelp[tokenType] || ''; } updateTaskHelp(taskType) { const helpElement = document.getElementById('task-help'); helpElement.textContent = this.taskTypeHelp[taskType] || ''; } async getTaskToken() { const taskType = document.getElementById('task-type').value; const button = document.getElementById('get-task-token'); const resultDiv = document.getElementById('task-token-result'); const infoDiv = document.getElementById('selected-token-info'); // Show loading const originalText = button.innerHTML; button.innerHTML = 'جاري البحث...'; button.disabled = true; try { const response = await fetch(`/api/tokens/for-task/${taskType}`); const data = await response.json(); if (response.ok && data.token_info) { // Show token information infoDiv.innerHTML = `
أضف رمز Hugging Face الأول للبدء
${token.description}
` : ''} أُنشئ: ${this.formatDate(token.created_at)} ${token.last_used ? `| آخر استخدام: ${this.formatDate(token.last_used)}` : ''} | مرات الاستخدام: ${token.usage_count || 0}