Skip to content

Commit 255a10a

Browse files
committed
Allow to create new project as part of selecting project to activate
This PR fixes #1937. Signed-off-by: Denis Golovin [email protected]
1 parent fd7c8a8 commit 255a10a

File tree

1 file changed

+17
-4
lines changed

1 file changed

+17
-4
lines changed

src/openshift/project.ts

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
* Licensed under the MIT License. See LICENSE file in the project root for license information.
44
*-----------------------------------------------------------------------------------------------*/
55

6-
import { window } from 'vscode';
6+
import { commands, QuickPickItem, window } from 'vscode';
77
import OpenShiftItem from './openshiftItem';
8-
import { OpenShiftObject, OpenShiftProject, getInstance } from '../odo';
8+
import { OpenShiftObject, OpenShiftProject, getInstance as getOdoInstance } from '../odo';
99
import { Progress } from '../util/progress';
1010
import { vsCommand, VsCommandError } from '../vscommand';
1111

@@ -14,8 +14,21 @@ export class Project extends OpenShiftItem {
1414
@vsCommand('openshift.project.set', true)
1515
static async set(): Promise<string | null> {
1616
let message = null;
17-
const project = await window.showQuickPick((await getInstance().getProjects()).filter((prj: OpenShiftProject) => !prj.active), {placeHolder: 'Select a Project to activate'});
18-
if (project) {
17+
const createNewProject = {
18+
label: 'Create new Project',
19+
description: 'Create new Project and make it active'
20+
};
21+
const projectsAndCommand = getOdoInstance().getProjects()
22+
.then((projects) =>projects.filter((prj: OpenShiftProject) => !prj.active))
23+
.then((projects: (QuickPickItem | OpenShiftObject)[]) => {
24+
return [createNewProject, ...projects];
25+
});
26+
const selectedItem = await window.showQuickPick(projectsAndCommand, {placeHolder: 'Select Project to activate or create new one'});
27+
if (!selectedItem) return null;
28+
if (selectedItem === createNewProject) {
29+
await commands.executeCommand('openshift.project.create');
30+
} else {
31+
const project = selectedItem as OpenShiftObject;
1932
await Project.odo.execute(`odo project set ${project.getName()}`);
2033
Project.explorer.refresh();
2134
message = `Project '${project.getName()}' set as active.`;

0 commit comments

Comments
 (0)