Skip to content

Commit fb39c10

Browse files
committed
Rebuild projects from contextmenu right click
1 parent f20835f commit fb39c10

File tree

2 files changed

+62
-12
lines changed

2 files changed

+62
-12
lines changed

lib/js/interface/left.js

Lines changed: 60 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,42 @@ angular.module(moduleName, [])
1515
this.editorFilePath = data.dirName;
1616
});
1717
})
18-
, unregisterLeftBarSelectedProjectNpmInstall = $rootScope.$on('left-bar:selected-project-npm-install', (eventInformation, data) => {
18+
, unregisterLeftBarSelectedProjectNpmReinstall = $rootScope.$on('left-bar:selected-project-npm-reinstall', (eventInformation, data) => {
19+
let folder = data.path.path
20+
, projectName = data.path.dirName
21+
, deleteProjectName = item => {
22+
23+
$scope.$apply(() => {
24+
delete this.npmReinstallingProjects[item];
25+
});
26+
};
27+
28+
$scope.$apply(() => {
29+
this.npmReinstallingProjects[projectName] = true;
30+
});
31+
//delete old node_modules
32+
rmRf(`${folder}/node_modules`, errRm => {
33+
if (errRm) {
34+
errorsService.showErrorBox('Warning', `Error deleting node_modules/ in folder ${folder} for clean installation: \n${errRm}`);
35+
}
36+
npm.npmInFolder(folder).catch(error => {
37+
deleteProjectName(projectName);
38+
$log.error(`Configuring npm for clean $ npm install, in ${folder}...`, error);
39+
errorsService.handleError('Error', `Error configuring npm for clean installation in folder ${folder}: ${error}`);
40+
}).then(npmInFolder => {
41+
npmInFolder.launchInstall().then(() => {
42+
$log.info(`Finished npm reinstall in project ${folder}`);
43+
notificationFactory.notify(`Finished $ npm install in project ${projectName}`);
44+
deleteProjectName(projectName);
45+
}).catch(err => {
46+
deleteProjectName(projectName);
47+
$log.error(err);
48+
errorsService.showErrorBox('Error', `Error running $ npm install for clean installation in folder ${folder}: ${err}`);
49+
});
50+
});
51+
});
52+
})
53+
, unregisterLeftBarSelectedProjectNpmInstall = $rootScope.$on('left-bar:selected-project-npm-install', (eventInformation, data) => {
1954
let folder = data.path.path
2055
, projectName = data.path.dirName
2156
, deleteProjectName = item => {
@@ -38,13 +73,13 @@ angular.module(moduleName, [])
3873
$log.info(`Finished npm install in project ${folder}`);
3974
notificationFactory.notify(`Finished $ npm install in project ${projectName}`);
4075
deleteProjectName(projectName);
41-
}).catch(err => {
42-
deleteProjectName(projectName);
43-
$log.error(err);
44-
errorsService.showErrorBox('Error', `Error running $ npm install in folder ${folder}: ${err}`);
76+
}).catch(err => {
77+
deleteProjectName(projectName);
78+
$log.error(err);
79+
errorsService.showErrorBox('Error', `Error running $ npm install in folder ${folder}: ${err}`);
80+
});
4581
});
46-
});
47-
})
82+
})
4883
, unregisterLeftBarSelectedProjectNpmPrune = $rootScope.$on('left-bar:selected-project-npm-prune', (eventInformation, data) => {
4984
let folder = data.path.path
5085
, projectName = data.path.dirName
@@ -215,8 +250,7 @@ angular.module(moduleName, [])
215250
this.restoreSnapshot = () => {
216251

217252
let projectKey = this.turnPathToKey(this.rightClickedProject.path)
218-
, selectedSnapshot = this.selectedSnapshot
219-
, toRestoreSnapshot;
253+
, selectedSnapshot = this.selectedSnapshot;
220254

221255
this.restoredSnapshot = false;
222256
this.restoringSnapshot = true;
@@ -238,7 +272,7 @@ angular.module(moduleName, [])
238272
fs.writeFileSync(`${selectedSnapshot.path}/package.json`, data[projectKey][indexItem].status, {'flag': 'w'}, 'utf8');
239273
//delete old node_modules
240274
rmRf(`${selectedSnapshot.path}/node_modules`, errRm => {
241-
if (err) {
275+
if (errRm) {
242276
errorsService.showErrorBox('Warning', `Error deleting node_modules/ in folder ${selectedSnapshot.path} : \n${errRm}`);
243277
}
244278
npm.npmInFolder(selectedSnapshot.path).catch(error => {
@@ -343,6 +377,17 @@ angular.module(moduleName, [])
343377
}
344378
}));
345379

380+
projectsContextMenu.append(new MenuItem({
381+
'label': 'Reinstall',
382+
click() {
383+
$rootScope.$emit('left-bar:selected-project-npm-reinstall', {
384+
'path': item
385+
});
386+
}
387+
}));
388+
projectsContextMenu.append(new MenuItem({
389+
'type': 'separator'
390+
}));
346391
projectsContextMenu.append(new MenuItem({
347392
'label': 'Build',
348393
click() {
@@ -360,7 +405,9 @@ angular.module(moduleName, [])
360405
});
361406
}
362407
}));
363-
408+
projectsContextMenu.append(new MenuItem({
409+
'type': 'separator'
410+
}));
364411
projectsContextMenu.append(new MenuItem({
365412
'label': 'Prune',
366413
click() {
@@ -369,7 +416,6 @@ angular.module(moduleName, [])
369416
});
370417
}
371418
}));
372-
373419
projectsContextMenu.append(new MenuItem({
374420
'label': 'Dedupe',
375421
click() {
@@ -458,6 +504,7 @@ angular.module(moduleName, [])
458504
};
459505

460506
this.npmInstallingProjects = [];
507+
this.npmReinstallingProjects = [];
461508
this.npmBuildingProjects = [];
462509
this.npmRebuildingProjects = [];
463510
this.npmPruningProjects = [];
@@ -466,6 +513,7 @@ angular.module(moduleName, [])
466513
$scope.$on('$destroy', () => {
467514

468515
unregisterLeftBarSelectedProjectNpmInstall();
516+
unregisterLeftBarSelectedProjectNpmReinstall();
469517
unregisterLeftBarSelectedProjectNpmPrune();
470518
unregisterLeftBarSelectedProjectNpmDedupe();
471519
unregisterLeftBarSelectedProjectNpmBuild();

lib/left.pug

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ div(ng-controller='LeftBarController as leftBar')
2020
div
2121
.left-progress.color-white(ng-show="leftBar.npmInstallingProjects[item.dirName]")
2222
| Installing ...
23+
.left-progress.color-white(ng-show="leftBar.npmReinstallingProjects[item.dirName]")
24+
| Reinstalling ...
2325
.left-progress.color-white(ng-show="leftBar.npmBuildingProjects[item.dirName]")
2426
| Building ...
2527
.left-progress.color-white(ng-show="leftBar.npmRebuildingProjects[item.dirName]")

0 commit comments

Comments
 (0)