Skip to content

Commit 05243cb

Browse files
author
aliasadidev
committed
feat: Enhance package management with new properties and URL handling
1 parent 26fef90 commit 05243cb

File tree

16 files changed

+496
-101
lines changed

16 files changed

+496
-101
lines changed

.vscode/tasks.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,18 @@
3232
"label": "tasks: watch-tests",
3333
"dependsOn": ["npm: watch", "npm: watch-tests"],
3434
"problemMatcher": []
35+
},
36+
{
37+
"label": "ng build front-end",
38+
"type": "shell",
39+
"command": "ng",
40+
"args": [
41+
"build"
42+
],
43+
"options": {
44+
"cwd": "${workspaceFolder}/front-end"
45+
},
46+
"problemMatcher": []
3547
}
3648
]
3749
}

front-end/src/app/components/install-package/install-package.component.html

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -153,20 +153,13 @@
153153
</div>
154154
<div
155155
class="d-flex flex-column d-flex"
156-
style="text-align: right">
156+
style="text-align: right;min-width: 100px;">
157157
<span style="white-space: pre" *ngIf="package.totalDownloads">
158158
Total Downloads: {{ package.totalDownloads | number: '0.' }}
159159
</span>
160160
<a
161161
class="packageUrl"
162-
[attr.href]="
163-
getPackageSourceWebUrl(
164-
this.originalPackageSources,
165-
+source.key,
166-
package.id,
167-
package.stableVersion ?? ''
168-
)
169-
"
162+
[attr.href]="package.packageWebUrl"
170163
target="_blank"
171164
>View In Web</a
172165
>

front-end/src/app/components/install-package/install-package.component.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ import { DropDownKeyValue } from 'src/app/models/drop-down-key-value';
99
import { CommandService } from 'src/app/services/command-service/command.service';
1010
import { AlertService } from 'src/app/services/alert-service/alert.service';
1111
import { PackageSource } from '../../../../../src/models/option.model';
12-
import { getPackageSourceWebUrl } from '../../shared/component-shared';
1312
import { findStableVersion } from '../../../../../src/services/version.service';
13+
import { getPackageSourceWebUrl } from 'src/app/shared/component-shared';
1414

1515
@Component({
1616
selector: 'app-install-package',
@@ -122,6 +122,12 @@ export class InstallPackageComponent implements AfterViewInit {
122122
this.packageSearchResultList[source.packageSourceId] = source;
123123
source.packages.forEach(p => {
124124
p.stableVersion = this.findPackageStableVersion(p.versions);
125+
p.packageWebUrl = getPackageSourceWebUrl(
126+
this.originalPackageSources.find(x => x.id == packageSourceId)!,
127+
p.id,
128+
p.stableVersion,
129+
[p.projectUrl]
130+
);
125131
});
126132
this.sourcesPages[source.packageSourceId] = pageNumber;
127133
this.cd.detectChanges();
@@ -214,6 +220,4 @@ export class InstallPackageComponent implements AfterViewInit {
214220
}
215221
return result;
216222
}
217-
218-
getPackageSourceWebUrl = getPackageSourceWebUrl;
219223
}

front-end/src/app/components/project-list/project-list.component.html

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -94,14 +94,7 @@
9494
<a
9595
class="packageUrl"
9696
*ngIf="package.sourceId"
97-
[attr.href]="
98-
getPackageSourceWebUrl(
99-
packageSources,
100-
package.sourceId,
101-
package.packageName,
102-
package.packageVersion
103-
)
104-
"
97+
[attr.href]="package.packageWebUrl"
10598
target="_blank"
10699
>{{ package.sourceName }}</a
107100
>

front-end/src/app/components/project-list/project-list.component.ts

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@ import { FilterSearchTypes } from 'src/app/models/filter-search-type';
33
import { AlertService } from 'src/app/services/alert-service/alert.service';
44
import { CommandService } from 'src/app/services/command-service/command.service';
55
import { LoadingScreenService } from 'src/app/services/loading-screen/loading-screen.service';
6-
import { getPackageSourceWebUrl } from 'src/app/shared/component-shared';
76
import { PackageSource } from '../../../../../src/models/option.model';
87
import {
98
PackageDetail,
109
Project,
1110
} from '../../../../../src/models/project.model';
11+
import { getPackageSourceWebUrl } from 'src/app/shared/component-shared';
1212

1313
@Component({
1414
selector: 'app-project-list',
@@ -55,7 +55,7 @@ export class ProjectListComponent implements AfterViewInit {
5555
getData() {
5656
this.loading.startLoading();
5757
this.commandSrv.getData().subscribe(res => {
58-
this.projects = res.result;
58+
this.setProjects(res.result);
5959
this.loading.stopLoading();
6060

6161
this.cd.detectChanges();
@@ -67,13 +67,27 @@ export class ProjectListComponent implements AfterViewInit {
6767

6868
this.loading.startLoading();
6969
this.commandSrv.reload(loadVersion).subscribe(res => {
70-
this.projects = res.result;
70+
this.setProjects(res.result);
7171

7272
this.loading.stopLoading();
7373
this.cd.detectChanges();
7474
});
7575
}
7676

77+
setProjects(projects: Project[]) {
78+
projects.forEach(res => {
79+
res.packages.forEach(pkg => {
80+
pkg.packageWebUrl = getPackageSourceWebUrl(
81+
this.packageSources.find(x => x.id == pkg.sourceId)!,
82+
pkg.packageName,
83+
pkg.packageVersion,
84+
[]
85+
);
86+
});
87+
});
88+
this.projects = projects;
89+
}
90+
7791
updateAllProjects() {
7892
this.loading.startLoading();
7993
if (this.versionIsLoad == false) {
@@ -141,7 +155,7 @@ export class ProjectListComponent implements AfterViewInit {
141155

142156
this.commandSrv
143157
.removePackage(projectId, packageName, selectedVersion)
144-
.subscribe(res => {
158+
.subscribe(() => {
145159
this.getData();
146160
});
147161
}
@@ -185,8 +199,4 @@ export class ProjectListComponent implements AfterViewInit {
185199
this.cd.detectChanges();
186200
}
187201
}
188-
189-
// ---------------- end search box ------------------------------
190-
191-
getPackageSourceWebUrl = getPackageSourceWebUrl;
192202
}
Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,16 @@
11
import { PackageSource } from '../../../../src/models/option.model';
22

33
export function getPackageSourceWebUrl(
4-
packageSources: PackageSource[],
5-
packageSourceId: number | null,
4+
packageSource: PackageSource,
65
packageName: string,
7-
version: string
6+
version: string,
7+
extraUrl: string[]
88
) {
9-
let src = packageSources.find(x => x.id == packageSourceId);
10-
if (!(src && src?.packageUrl)) {
11-
console.log(
12-
'packageUrl is empty!',
13-
packageSources,
14-
packageSourceId,
15-
packageName
16-
);
17-
return '#';
18-
} else
19-
return src?.packageUrl
9+
if (packageSource?.packageUrl) {
10+
return packageSource?.packageUrl
2011
.replace('{{packageName}}', packageName)
2112
.replace('{{version}}', version);
13+
} else {
14+
return extraUrl.find(x => x) ?? '#';
15+
}
2216
}

0 commit comments

Comments
 (0)