Fix raw textgen preset import via master

74a8499e0e05a183c44faf8b2c60cba0b7ebeaae

Cohee <18619528+Cohee1207@users.noreply.github.com>

1 files changed, +15 -4Ignore whitespace
public/scripts/preset-manager.js+15 -4
@@ -148,7 +148,7 @@ class PresetManager {
148 isValid: (data) => PresetManager.isPossiblySystemPromptData(data),148 isValid: (data) => PresetManager.isPossiblySystemPromptData(data),
149 },149 },
150 'preset': {150 'preset': {
151 name: 'Text Completion Settings',151 name: 'Text Completion Preset',
152 getData: () => {152 getData: () => {
153 const manager = getPresetManager('textgenerationwebui');153 const manager = getPresetManager('textgenerationwebui');
154 const name = manager.getSelectedPresetName();154 const name = manager.getSelectedPresetName();
@@ -185,7 +185,13 @@ class PresetManager {
185 return data && textCompletionProps.every(prop => Object.keys(data).includes(prop));185 return data && textCompletionProps.every(prop => Object.keys(data).includes(prop));
186 }186 }
187187
188 static async performMasterImport(data) {188 /**
189 * Imports master settings from JSON data.
190 * @param {object} data Data to import
191 * @param {string} fileName File name
192 * @returns {Promise<void>}
193 */
194 static async performMasterImport(data, fileName) {
189 if (!data || typeof data !== 'object') {195 if (!data || typeof data !== 'object') {
190 toastr.error('Invalid data provided for master import');196 toastr.error('Invalid data provided for master import');
191 return;197 return;
@@ -213,7 +219,7 @@ class PresetManager {
213 // 4. Text Completion settings219 // 4. Text Completion settings
214 if (this.isPossiblyTextCompletionData(data)) {220 if (this.isPossiblyTextCompletionData(data)) {
215 toastr.info('Importing as settings preset...', 'Text Completion settings detected');221 toastr.info('Importing as settings preset...', 'Text Completion settings detected');
216 return await getPresetManager('textgenerationwebui').savePreset(data.name, data);222 return await getPresetManager('textgenerationwebui').savePreset(fileName, data);
217 }223 }
218224
219 const validSections = [];225 const validSections = [];
@@ -266,6 +272,10 @@ class PresetManager {
266 toastr.success(`Imported ${importedSections.length} settings: ${importedSections.join(', ')}`);272 toastr.success(`Imported ${importedSections.length} settings: ${importedSections.join(', ')}`);
267 }273 }
268274
275 /**
276 * Exports master settings to JSON data.
277 * @returns {Promise<string>} JSON data
278 */
269 static async performMasterExport() {279 static async performMasterExport() {
270 const sectionNames = Object.entries(this.masterSections).reduce((acc, [key, section]) => {280 const sectionNames = Object.entries(this.masterSections).reduce((acc, [key, section]) => {
271 acc[key] = section.name;281 acc[key] = section.name;
@@ -907,7 +917,8 @@ export async function initPresetManager() {
907 }917 }
908918
909 const data = await parseJsonFile(file);919 const data = await parseJsonFile(file);
910 await PresetManager.performMasterImport(data);920 const fileName = file.name.replace('.json', '');
921 await PresetManager.performMasterImport(data, fileName);
911 });922 });
912923
913 $('#af_master_export').on('click', async () => {924 $('#af_master_export').on('click', async () => {