hermes-web-cli/wwwroot/settings.js
yumoqing 3edfa140e9 Fix bricks framework API usage and file structure
- Move all JS files from wwwroot/scripts/ to wwwroot/ root directory to comply with ahserver requirements
- Fix component registration: use bricks.Factory.register() instead of bricks.register()
- Fix function registration: use bricks.RF.register() instead of bricks.registerFunction()
- Update UI files to use item_template_url with external templates for List components
- Add proper list item template files (session-list-item.ui, service-list-item.ui, model-list-item.ui)
- Ensure all custom components and functions use correct bricks framework API
2026-04-22 15:49:36 +08:00

121 lines
5.1 KiB
JavaScript

1|// Register functions for settings management
2|bricks.RF.register('save_general_settings', async function(params) {
3| try {
4| const formData = new FormData();
5| formData.append('default-model', params.default_model);
6| formData.append('session-timeout', params.session_timeout);
7| formData.append('auto-save', params.auto_save);
8|
9| const response = await fetch('/hermes-web-cli/settings/save/general/', {
10| method: 'POST',
11| body: formData
12| });
13| const result = await response.json();
14|
15| if (result.success) {
16| bricks.showMessage('General settings saved successfully', 'success');
17| } else {
18| bricks.showMessage(result.error || 'Failed to save settings', 'error');
19| }
20| } catch (error) {
21| bricks.showMessage('Network error: ' + error.message, 'error');
22| }
23|});
24|
25|bricks.RF.register('save_security_settings', async function(params) {
26| try {
27| const formData = new FormData();
28| formData.append('require-auth', params.require_auth);
29| formData.append('encrypt-storage', params.encrypt_storage);
30|
31| const response = await fetch('/hermes-web-cli/settings/save/security/', {
32| method: 'POST',
33| body: formData
34| });
35| const result = await response.json();
36|
37| if (result.success) {
38| bricks.showMessage('Security settings saved successfully', 'success');
39| } else {
40| bricks.showMessage(result.error || 'Failed to save settings', 'error');
41| }
42| } catch (error) {
43| bricks.showMessage('Network error: ' + error.message, 'error');
44| }
45|});
46|
47|bricks.RF.register('save_appearance_settings', async function(params) {
48| try {
49| const formData = new FormData();
50| formData.append('theme-select', params.theme);
51|
52| const response = await fetch('/hermes-web-cli/settings/save/appearance/', {
53| method: 'POST',
54| body: formData
55| });
56| const result = await response.json();
57|
58| if (result.success) {
59| bricks.showMessage('Appearance settings saved successfully', 'success');
60| // Apply theme change
61| document.body.className = params.theme;
62| } else {
63| bricks.showMessage(result.error || 'Failed to save settings', 'error');
64| }
65| } catch (error) {
66| bricks.showMessage('Network error: ' + error.message, 'error');
67| }
68|});
69|
70|// Register functions for models management
71|bricks.RF.register('add_model', async function(params) {
72| // Navigate to add model page
73| const mainContent = bricks.getWidget('app.main-content');
74| if (mainContent) {
75| mainContent.loadURL(bricks.entire_url('add_model.ui'));
76| }
77|});
78|
79|bricks.RF.register('update_model', async function(params) {
80| try {
81| const formData = new FormData();
82| formData.append('model_id', params.model_id);
83| formData.append('model_name', params.model_name);
84| formData.append('model_provider', params.model_provider);
85|
86| const response = await fetch('/hermes-web-cli/models/update/', {
87| method: 'POST',
88| body: formData
89| });
90| const result = await response.json();
91|
92| if (result.success) {
93| bricks.showMessage('Model updated successfully', 'success');
94| // Refresh the models list if needed
95| } else {
96| bricks.showMessage(result.error || 'Failed to update model', 'error');
97| }
98| } catch (error) {
99| bricks.showMessage('Network error: ' + error.message, 'error');
100| }
101|});
102|
103|bricks.RF.register('remove_model', async function(params) {
104| try {
105| const response = await fetch('/hermes-web-cli/models/remove/?id=' + params.model_id);
106| const result = await response.json();
107|
108| if (result.success) {
109| bricks.showMessage('Model removed successfully', 'success');
110| // Refresh the models list
111| const modelsList = bricks.getWidget('models-list');
112| if (modelsList) {
113| modelsList.reload();
114| }
115| } else {
116| bricks.showMessage(result.error || 'Failed to remove model', 'error');
117| }
118| } catch (error) {
119| bricks.showMessage('Network error: ' + error.message, 'error');
120| }
121|});