Skip to content

Commit 79cb627

Browse files
authored
impl: support for creating workspaces (#111)
This commit adds a context menu action was added that redirects users to the web dashboard. - resolves #47
1 parent d5b1c3b commit 79cb627

File tree

3 files changed

+18
-0
lines changed

3 files changed

+18
-0
lines changed

CHANGELOG.md

+1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
### Added
66

77
- render network status in the Settings tab, under `Additional environment information` section.
8+
- quick action for creating new workspaces from the web dashboard.
89

910
## 0.2.1 - 2025-05-05
1011

src/main/kotlin/com/coder/toolbox/CoderRemoteProvider.kt

+14
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
package com.coder.toolbox
22

3+
import com.coder.toolbox.browser.BrowserUtil
34
import com.coder.toolbox.cli.CoderCLIManager
45
import com.coder.toolbox.sdk.CoderRestClient
56
import com.coder.toolbox.sdk.v2.models.WorkspaceStatus
67
import com.coder.toolbox.util.CoderProtocolHandler
78
import com.coder.toolbox.util.DialogUi
9+
import com.coder.toolbox.util.withPath
810
import com.coder.toolbox.views.Action
911
import com.coder.toolbox.views.AuthWizardPage
1012
import com.coder.toolbox.views.CoderSettingsPage
@@ -14,9 +16,11 @@ import com.coder.toolbox.views.state.WizardStep
1416
import com.jetbrains.toolbox.api.core.ui.icons.SvgIcon
1517
import com.jetbrains.toolbox.api.core.ui.icons.SvgIcon.IconType
1618
import com.jetbrains.toolbox.api.core.util.LoadableState
19+
import com.jetbrains.toolbox.api.localization.LocalizableString
1720
import com.jetbrains.toolbox.api.remoteDev.ProviderVisibilityState
1821
import com.jetbrains.toolbox.api.remoteDev.RemoteProvider
1922
import com.jetbrains.toolbox.api.remoteDev.RemoteProviderEnvironment
23+
import com.jetbrains.toolbox.api.ui.actions.ActionDelimiter
2024
import com.jetbrains.toolbox.api.ui.actions.ActionDescription
2125
import com.jetbrains.toolbox.api.ui.components.UiPage
2226
import kotlinx.coroutines.ExperimentalCoroutinesApi
@@ -184,6 +188,14 @@ class CoderRemoteProvider(
184188

185189
override val additionalPluginActions: StateFlow<List<ActionDescription>> = MutableStateFlow(
186190
listOf(
191+
Action(context.i18n.ptrl("Create workspace")) {
192+
context.cs.launch {
193+
BrowserUtil.browse(client?.url?.withPath("/templates").toString()) {
194+
context.ui.showErrorInfoPopup(it)
195+
}
196+
}
197+
},
198+
CoderDelimiter(context.i18n.pnotr("")),
187199
Action(context.i18n.ptrl("Settings")) {
188200
context.ui.showUiPage(settingsPage)
189201
},
@@ -338,3 +350,5 @@ class CoderRemoteProvider(
338350
}
339351
}
340352
}
353+
354+
private class CoderDelimiter(override val label: LocalizableString) : ActionDelimiter

src/main/resources/localization/defaultMessages.po

+3
Original file line numberDiff line numberDiff line change
@@ -134,4 +134,7 @@ msgid "SSH network metrics directory"
134134
msgstr ""
135135

136136
msgid "Network Status"
137+
msgstr ""
138+
139+
msgid "Create workspace"
137140
msgstr ""

0 commit comments

Comments
 (0)