diff --git a/README.md b/README.md index ac67f8d7..f591fedb 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,6 @@ View Video: https://youtu.be/AWAlOQeNpgU?t=48 - PR #687: Support for nested stacks directory (by: https://github.com/mkoo21) - PR #700: Add Resource Usage Stats (by https://github.com/justwiebe) - PR #714: Conditional stack files deletion (by: https://github.com/husa) -- PR #687: Support for nested stacks directory (by: https://github.com/mkoo21) ## 🔧 How to Install diff --git a/backend/agent-socket-handlers/docker-socket-handler.ts b/backend/agent-socket-handlers/docker-socket-handler.ts index 5e405a47..12a6c64e 100644 --- a/backend/agent-socket-handlers/docker-socket-handler.ts +++ b/backend/agent-socket-handlers/docker-socket-handler.ts @@ -317,7 +317,7 @@ export class DockerSocketHandler extends AgentSocketHandler { stack.joinCombinedTerminal(socket); // Ensure the combined terminal is joined callbackResult({ ok: true, - msg: "Service" + serviceName + " started" + msg: "Service " + serviceName + " started" }, callback); server.sendStackList(); } catch (e) { @@ -338,7 +338,7 @@ export class DockerSocketHandler extends AgentSocketHandler { await stack.stopService(socket, serviceName); callbackResult({ ok: true, - msg: "Service" + serviceName + " stopped" + msg: "Service " + serviceName + " stopped" }, callback); server.sendStackList(); } catch (e) { @@ -358,7 +358,7 @@ export class DockerSocketHandler extends AgentSocketHandler { await stack.restartService(socket, serviceName); callbackResult({ ok: true, - msg: "Service" + serviceName + " restarted" + msg: "Service " + serviceName + " restarted" }, callback); } catch (e) { callbackError(e, callback); diff --git a/backend/stack.ts b/backend/stack.ts index 7f09ec48..ae9a269a 100644 --- a/backend/stack.ts +++ b/backend/stack.ts @@ -248,6 +248,12 @@ export class Stack { throw new ValidationError("Stack name already exists"); } + // If this is a new stack that has no compose file yet, use the stack name as directory + if (dir === "") { + this._configFilePath = path.join(this.server.stacksDir, this.name); + dir = this.path; + } + // Create the stack folder await fsAsync.mkdir(dir); } else { diff --git a/frontend/src/components/Container.vue b/frontend/src/components/Container.vue index 221d7c99..22274324 100644 --- a/frontend/src/components/Container.vue +++ b/frontend/src/components/Container.vue @@ -9,7 +9,7 @@
@@ -213,12 +213,15 @@ export default defineComponent({ type: Object, default: null, }, - ports: { - type: Array, - default: null + processing: { + type: Boolean, + default: false, } }, emits: [ + "start-service", + "stop-service", + "restart-service" ], data() { return { diff --git a/frontend/src/pages/Compose.vue b/frontend/src/pages/Compose.vue index 6bee483b..72db31e7 100644 --- a/frontend/src/pages/Compose.vue +++ b/frontend/src/pages/Compose.vue @@ -201,9 +201,12 @@ :name="name" :is-edit-mode="isEditMode" :first="name === Object.keys(jsonConfig.services)[0]" - :serviceStatus="serviceStatusList[name]?.state" - :ports="serviceStatusList[name]?.ports" - :dockerStats="dockerStats" + :serviceStatus="serviceStatusList[name]" + :dockerStats="dockerStats" + :processing="processing" + @start-service="startService" + @stop-service="stopService" + @restart-service="restartService" /> @@ -951,6 +954,7 @@ export default { } }); }, + async copyWebhookToClipboard() { try { await navigator.clipboard.writeText(this.stack.webhook); @@ -963,7 +967,6 @@ export default { selectText(event) { event.target.select(); }, - } };