Squish the last bugs

15bc0e4dba7ffd8ad250061b765424e838bf3099

Wolfsblvt <wolfsblvt@gmail.com>

1 files changed, +21 -3Showing whitespace changes
public/scripts/extensions-slashcommands.js+21 -3
@@ -20,7 +20,7 @@ function getExtensionActionCallback(action) {
20 return '';20 return '';
21 }21 }
2222
23 const reload = isTrueBoolean(args?.reload);23 const reload = !isFalseBoolean(args?.reload);
24 const internalExtensionName = findExtension(extensionName);24 const internalExtensionName = findExtension(extensionName);
25 if (!internalExtensionName) {25 if (!internalExtensionName) {
26 toastr.warning(`Extension ${extensionName} does not exist.`);26 toastr.warning(`Extension ${extensionName} does not exist.`);
@@ -43,7 +43,14 @@ function getExtensionActionCallback(action) {
43 action = isEnabled ? 'disable' : 'enable';43 action = isEnabled ? 'disable' : 'enable';
44 }44 }
4545
46 reload && toastr.info(`${action.charAt(0).toUpperCase() + action.slice(1)}ing extension ${extensionName} and reloading...`);46 if (reload) {
47 toastr.info(`${action.charAt(0).toUpperCase() + action.slice(1)}ing extension ${extensionName} and reloading...`);
48
49 // Clear input, so it doesn't stay because the command didn't "finish",
50 // and wait for a bit to both show the toast and let the clear bubble through.
51 $('#send_textarea').val('')[0].dispatchEvent(new Event('input', { bubbles: true }));
52 await new Promise(resolve => setTimeout(resolve, 100));
53 }
4754
48 if (action === 'enable') {55 if (action === 'enable') {
49 await enableExtension(internalExtensionName, reload);56 await enableExtension(internalExtensionName, reload);
@@ -53,6 +60,12 @@ function getExtensionActionCallback(action) {
5360
54 toastr.success(`Extension ${extensionName} ${action}d.`);61 toastr.success(`Extension ${extensionName} ${action}d.`);
5562
63
64 console.info(`Extension ${action}ed: ${extensionName}`);
65 if (!reload) {
66 console.info('Reload not requested, so page needs to be reloaded manually for changes to take effect.');
67 }
68
56 return internalExtensionName;69 return internalExtensionName;
57 };70 };
58}71}
@@ -88,6 +101,7 @@ export function registerExtensionSlashCommands() {
88 SlashCommandParser.addCommandObject(SlashCommand.fromProps({101 SlashCommandParser.addCommandObject(SlashCommand.fromProps({
89 name: 'extension-enable',102 name: 'extension-enable',
90 callback: getExtensionActionCallback('enable'),103 callback: getExtensionActionCallback('enable'),
104 returns: 'The internal extension name',
91 namedArgumentList: [105 namedArgumentList: [
92 SlashCommandNamedArgument.fromProps({106 SlashCommandNamedArgument.fromProps({
93 name: 'reload',107 name: 'reload',
@@ -127,7 +141,8 @@ export function registerExtensionSlashCommands() {
127 }));141 }));
128 SlashCommandParser.addCommandObject(SlashCommand.fromProps({142 SlashCommandParser.addCommandObject(SlashCommand.fromProps({
129 name: 'extension-disable',143 name: 'extension-disable',
130 callback: getExtensionActionCallback('enable'),144 callback: getExtensionActionCallback('disable'),
145 returns: 'The internal extension name',
131 namedArgumentList: [146 namedArgumentList: [
132 SlashCommandNamedArgument.fromProps({147 SlashCommandNamedArgument.fromProps({
133 name: 'reload',148 name: 'reload',
@@ -177,6 +192,7 @@ export function registerExtensionSlashCommands() {
177192
178 return await getExtensionActionCallback(action)(args, extensionName);193 return await getExtensionActionCallback(action)(args, extensionName);
179 },194 },
195 returns: 'The internal extension name',
180 namedArgumentList: [196 namedArgumentList: [
181 SlashCommandNamedArgument.fromProps({197 SlashCommandNamedArgument.fromProps({
182 name: 'reload',198 name: 'reload',
@@ -236,6 +252,7 @@ export function registerExtensionSlashCommands() {
236 const isEnabled = !extension_settings.disabledExtensions.includes(internalExtensionName);252 const isEnabled = !extension_settings.disabledExtensions.includes(internalExtensionName);
237 return String(isEnabled);253 return String(isEnabled);
238 },254 },
255 returns: '<code>true</code>/<code>false</code> - The state of the extension, whether it is enabled.',
239 unnamedArgumentList: [256 unnamedArgumentList: [
240 SlashCommandArgument.fromProps({257 SlashCommandArgument.fromProps({
241 description: 'Extension name',258 description: 'Extension name',
@@ -267,6 +284,7 @@ export function registerExtensionSlashCommands() {
267 const exists = findExtension(extensionName) !== undefined;284 const exists = findExtension(extensionName) !== undefined;
268 return exists ? 'true' : 'false';285 return exists ? 'true' : 'false';
269 },286 },
287 returns: '<code>true</code>/<code>false</code> - Whether the extension exists and is installed.',
270 unnamedArgumentList: [288 unnamedArgumentList: [
271 SlashCommandArgument.fromProps({289 SlashCommandArgument.fromProps({
272 description: 'Extension name',290 description: 'Extension name',