|
3 | 3 | <script src="https://registry.npmmirror.com/vue/3.3.11/files/dist/vue.global.js"></script> |
4 | 4 | <script src="https://cdn.tailwindcss.com"></script> |
5 | 5 | <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css"></link> |
6 | | - <style> |
7 | | - body { |
8 | | - background-color: #0f172a; |
9 | | - color: #ffffff; |
10 | | - font-family: Arial, sans-serif; |
11 | | - } |
12 | | - .header { |
13 | | - display: flex; |
14 | | - justify-content: space-between; |
15 | | - align-items: center; |
16 | | - padding: 1rem; |
17 | | - background-color: #1e293b; |
18 | | - } |
19 | | - .header a { |
20 | | - color: #ffffff; |
21 | | - text-decoration: none; |
22 | | - font-size: 1.25rem; |
23 | | - } |
24 | | - .sidebar { |
25 | | - width: 200px; |
26 | | - background-color: #1e293b; |
27 | | - padding: 1rem; |
28 | | - position: fixed; |
29 | | - top: 0; |
30 | | - bottom: 0; |
31 | | - left: 0; |
32 | | - } |
33 | | - .sidebar a { |
34 | | - display: block; |
35 | | - color: #ffffff; |
36 | | - text-decoration: none; |
37 | | - margin-bottom: 1rem; |
38 | | - } |
39 | | - .content { |
40 | | - margin-left: 220px; |
41 | | - padding: 1rem; |
42 | | - } |
43 | | - </style> |
44 | 6 | </head> |
45 | | - <body> |
46 | | - <div class="header"> |
47 | | - <a href="index.html">Main Dashboard</a> |
| 7 | + <body class="bg-gray-900 text-white"> |
| 8 | + <div class="header flex justify-between items-center p-4 bg-gray-800"> |
| 9 | + <a href="index.html" class="text-xl">Main Dashboard</a> |
48 | 10 | <div> |
49 | 11 | <i class="fas fa-share-alt text-white"></i> |
50 | 12 | <i class="fas fa-ellipsis-v text-white"></i> |
51 | 13 | </div> |
52 | 14 | </div> |
53 | | - <div class="sidebar"> |
54 | | - <a href="admin_profile.html">Admin Profile</a> |
55 | | - <a href="ai_chatbox_settings.html">AI Chatbox Settings</a> |
56 | | - <a href="ai_code_review.html">AI Code Review</a> |
57 | | - <a href="c2_panel.html">C2 Panel</a> |
58 | | - <a href="chatbot_dashboard.html">Chatbot Dashboard</a> |
59 | | - <a href="feature_pages.html">Feature Pages</a> |
60 | | - <a href="settings.html">Settings</a> |
| 15 | + <div class="sidebar w-64 bg-gray-800 p-4 fixed top-0 bottom-0 left-0"> |
| 16 | + <a href="admin_profile.html" class="block mb-4">Admin Profile</a> |
| 17 | + <a href="ai_chatbox_settings.html" class="block mb-4">AI Chatbox Settings</a> |
| 18 | + <a href="ai_code_review.html" class="block mb-4">AI Code Review</a> |
| 19 | + <a href="c2_panel.html" class="block mb-4">C2 Panel</a> |
| 20 | + <a href="chatbot_dashboard.html" class="block mb-4">Chatbot Dashboard</a> |
| 21 | + <a href="feature_pages.html" class="block mb-4">Feature Pages</a> |
| 22 | + <a href="settings.html" class="block mb-4">Settings</a> |
61 | 23 | </div> |
62 | | - <div id="app" class="content"> |
63 | | - <div class="text-center text-white text-2xl mb-4">Settings</div> |
| 24 | + <div id="app" class="content ml-64 p-4"> |
| 25 | + <div class="text-center text-2xl mb-4">Settings</div> |
64 | 26 | <div class="flex justify-center space-x-4 mb-4"> |
65 | 27 | <div class="text-gray-400">Text</div> |
66 | 28 | <div class="text-gray-400">Image</div> |
|
69 | 31 | </div> |
70 | 32 | <div class="border-b border-gray-600 mb-4"></div> |
71 | 33 | <div class="mb-4"> |
72 | | - <div class="text-white text-lg mb-2">Model</div> |
| 34 | + <div class="text-lg mb-2">Model</div> |
73 | 35 | <div class="flex items-center justify-between bg-gray-800 p-2 rounded"> |
74 | 36 | <span class="text-gray-400">Selected Model</span> |
75 | 37 | <div class="flex items-center space-x-2"> |
76 | | - <span class="text-white">Llama 3.3 70B</span> |
77 | | - <i class="fas fa-chevron-down text-white"></i> |
| 38 | + <span>Llama 3.3 70B</span> |
| 39 | + <i class="fas fa-chevron-down"></i> |
78 | 40 | </div> |
79 | 41 | </div> |
80 | 42 | </div> |
81 | 43 | <div class="mb-4"> |
82 | | - <div class="text-white text-lg mb-2">System Prompt</div> |
| 44 | + <div class="text-lg mb-2">System Prompt</div> |
83 | 45 | <div class="flex items-center justify-between bg-gray-800 p-2 rounded"> |
84 | 46 | <span class="text-gray-400">Control the AI's reality. Create a System Prompt to command how the AI behaves.</span> |
85 | | - <button class="bg-blue-500 text-white px-2 py-1 rounded">+ Add</button> |
| 47 | + <button class="bg-blue-500 px-2 py-1 rounded">+ Add</button> |
86 | 48 | </div> |
87 | 49 | </div> |
88 | 50 | <div class="mb-4"> |
89 | | - <div class="text-white text-lg mb-2">Advanced Settings</div> |
| 51 | + <div class="text-lg mb-2">Advanced Settings</div> |
90 | 52 | <div class="flex items-center justify-between bg-gray-800 p-2 rounded"> |
91 | 53 | <span class="text-gray-400">Advanced Settings</span> |
92 | | - <i class="fas fa-chevron-down text-white"></i> |
| 54 | + <i class="fas fa-chevron-down"></i> |
93 | 55 | </div> |
94 | 56 | </div> |
95 | 57 | <div class="flex justify-center"> |
96 | | - <button class="bg-gray-700 text-white px-4 py-2 rounded">Reset to Default</button> |
| 58 | + <button class="bg-gray-700 px-4 py-2 rounded">Reset to Default</button> |
| 59 | + </div> |
| 60 | + <div class="mt-4"> |
| 61 | + <form @submit.prevent="saveSettings"> |
| 62 | + <div class="mb-4"> |
| 63 | + <label for="model" class="block text-lg mb-2">Model</label> |
| 64 | + <select id="model" v-model="settings.model" class="w-full p-2 bg-gray-800 rounded"> |
| 65 | + <option value="Llama 3.3 70B">Llama 3.3 70B</option> |
| 66 | + <option value="GPT-3">GPT-3</option> |
| 67 | + <option value="BERT">BERT</option> |
| 68 | + </select> |
| 69 | + </div> |
| 70 | + <div class="mb-4"> |
| 71 | + <label for="systemPrompt" class="block text-lg mb-2">System Prompt</label> |
| 72 | + <textarea id="systemPrompt" v-model="settings.systemPrompt" class="w-full p-2 bg-gray-800 rounded"></textarea> |
| 73 | + </div> |
| 74 | + <div class="mb-4"> |
| 75 | + <label for="advancedSettings" class="block text-lg mb-2">Advanced Settings</label> |
| 76 | + <textarea id="advancedSettings" v-model="settings.advancedSettings" class="w-full p-2 bg-gray-800 rounded"></textarea> |
| 77 | + </div> |
| 78 | + <div class="flex justify-center"> |
| 79 | + <button type="submit" class="bg-blue-500 px-4 py-2 rounded">Save Settings</button> |
| 80 | + </div> |
| 81 | + </form> |
97 | 82 | </div> |
98 | 83 | </div> |
99 | 84 | <script> |
100 | 85 | const { createApp, ref } = Vue; |
101 | 86 | createApp({ |
102 | 87 | setup() { |
103 | | - return {}; |
| 88 | + const settings = ref({ |
| 89 | + model: 'Llama 3.3 70B', |
| 90 | + systemPrompt: '', |
| 91 | + advancedSettings: '' |
| 92 | + }); |
| 93 | + |
| 94 | + const saveSettings = async () => { |
| 95 | + try { |
| 96 | + const response = await fetch('/api/save-settings', { |
| 97 | + method: 'POST', |
| 98 | + headers: { |
| 99 | + 'Content-Type': 'application/json' |
| 100 | + }, |
| 101 | + body: JSON.stringify(settings.value) |
| 102 | + }); |
| 103 | + if (!response.ok) { |
| 104 | + throw new Error('Failed to save settings'); |
| 105 | + } |
| 106 | + alert('Settings saved successfully'); |
| 107 | + } catch (error) { |
| 108 | + console.error(error); |
| 109 | + alert('Error saving settings'); |
| 110 | + } |
| 111 | + }; |
| 112 | + |
| 113 | + return { |
| 114 | + settings, |
| 115 | + saveSettings |
| 116 | + }; |
104 | 117 | } |
105 | 118 | }).mount('#app'); |
106 | 119 | </script> |
|
0 commit comments