- 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
121 lines
5.1 KiB
JavaScript
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|}); |