Set api-url with connection-manager

e77f5a1c93bcbf93e06a20718fc032c529ee348a

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

1 files changed, +6 -1Ignore whitespace
public/scripts/extensions/connection-manager/index.js+6 -1
@@ -14,6 +14,7 @@ const DEFAULT_SETTINGS = {
1414const COMMON_COMMANDS = [
1515 'api',
1616 'preset',
17+ 'api-url',
1718 'model',
1819];
1920
@@ -32,6 +33,7 @@ const TC_COMMANDS = [
3233
3334const FANCY_NAMES = {
3435 'api': 'API',
36+ 'api-url': 'Server URL',
3537 'preset': 'Settings Preset',
3638 'model': 'Model',
3739 'proxy': 'Proxy Preset',
@@ -57,6 +59,8 @@ const FANCY_NAMES = {
5759 */
5860
5961const escapeArgument = (a) => a.replace(/"/g, '\\"').replace(/\|/g, '\\|');
62+const collapseSpaces = (s) => s.replace(/\s+/g, ' ').trim();
63+const makeUnique = (s, f, i) => { if (!f(s)) { return s; } else { while (f(`${s} (${i})`)) { i++; } return `${s} (${i})`; } };
6064
6165/**
6266 * Reads the connection profile from the commands.
@@ -107,7 +111,8 @@ async function createConnectionProfile() {
107111
108112 const profileForDisplay = makeFancyProfile(profile);
109113 const template = await renderExtensionTemplateAsync(MODULE_NAME, 'profile', { profile: profileForDisplay });
110- const suggestedName = `${profile.api} ${profile.model} - ${profile.preset}`;
114+ const checkName = (n) => extension_settings.connectionManager.profiles.some(p => p.name === n);
115+ const suggestedName = makeUnique(collapseSpaces(`${profile.api ?? ''} ${profile.model ?? ''} - ${profile.preset ?? ''}`), checkName, 1);
111116 const name = await callGenericPopup(template, POPUP_TYPE.INPUT, suggestedName, { rows: 2 });
112117
113118 if (!name) {