|
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