diff --git a/src/app/addon.component.html b/src/app/addon.component.html
index 70f82c6..346cb88 100644
--- a/src/app/addon.component.html
+++ b/src/app/addon.component.html
@@ -65,6 +65,48 @@
+
+
+
+
+
+
+
+
+
+
+
This URL is not accepted
+
+
+
+
+
+
+
+
+
+
+
+
+
+
This URL is not accepted
+
+
+
+
+
+
+
+
+
+
+
+
+
+
This URL is not accepted
+
+
+
diff --git a/src/app/addon.component.ts b/src/app/addon.component.ts
index 1b1c6f5..f5e2363 100644
--- a/src/app/addon.component.ts
+++ b/src/app/addon.component.ts
@@ -53,6 +53,9 @@ export class AddonComponent implements OnInit {
cptName: ['', Validators.required ],
cptSummary: ['', Validators.required ],
cptHomepage: ['', [ Validators.required, urlValidator() ] ],
+ cptBugtracker: ['', urlValidator()],
+ cptDonation: ['', urlValidator()],
+ cptCode: ['', urlValidator()],
cptDescription: ['', Validators.required ],
cptId: ['', [ Validators.required, Validators.minLength(4), componentIdValidator() ]],
extendsCptId: ['', [ Validators.required, Validators.minLength(4), componentIdValidator() ]],
@@ -95,6 +98,9 @@ export class AddonComponent implements OnInit {
get cptSummary() { return this.cptForm.get('cptSummary'); }
get cptHomepage() { return this.cptForm.get('cptHomepage'); }
+ get cptBugtracker() { return this.cptForm.get('cptBugtracker'); }
+ get cptDonation() { return this.cptForm.get('cptDonation'); }
+ get cptCode() { return this.cptForm.get('cptCode'); }
get cptDescription() { return this.cptForm.get('cptDescription'); }
@@ -145,6 +151,12 @@ export class AddonComponent implements OnInit {
return;
if (!this.validateField(this.cptHomepage, 'homepage'))
return;
+ if (!this.validateField(this.cptBugtracker, 'bugtracker', true))
+ return;
+ if (!this.validateField(this.cptDonation, 'donation', true))
+ return;
+ if (!this.validateField(this.cptCode, 'code', true))
+ return;
if (!this.validateField(this.cptDescription, 'long description'))
return;
if (!this.validateField(this.cptId, 'component ID'))
@@ -183,7 +195,10 @@ export class AddonComponent implements OnInit {
metadataLicense: this.metadataLicense.value,
projectLicense: pLicense,
description: this.cptDescription.value,
- homepage: this.cptHomepage.value
+ homepage: this.cptHomepage.value,
+ bugtracker: this.cptBugtracker.value,
+ donation: this.cptDonation.value,
+ code: this.cptCode.value,
};
this.dataGenerated = true;
diff --git a/src/app/consoleapp.component.html b/src/app/consoleapp.component.html
index c1604d3..46e0ae9 100644
--- a/src/app/consoleapp.component.html
+++ b/src/app/consoleapp.component.html
@@ -67,6 +67,48 @@
+
+
+
+
+
+
+
+
+
+
+
This URL is not accepted
+
+
+
+
+
+
+
+
+
+
+
+
+
+
This URL is not accepted
+
+
+
+
+
+
+
+
+
+
+
+
+
+
This URL is not accepted
+
+
+
diff --git a/src/app/consoleapp.component.ts b/src/app/consoleapp.component.ts
index e882e71..dc42668 100644
--- a/src/app/consoleapp.component.ts
+++ b/src/app/consoleapp.component.ts
@@ -68,6 +68,9 @@ export class ConsoleAppComponent implements OnInit {
appName: ['', Validators.required ],
appSummary: ['', Validators.required ],
appHomepage: ['', [ Validators.required, urlValidator() ] ],
+ cptBugtracker: ['', urlValidator()],
+ cptDonation: ['', urlValidator()],
+ cptCode: ['', urlValidator()],
appDescription: ['', Validators.required ],
cptId: ['', [ Validators.required, Validators.minLength(4), componentIdValidator() ]],
metadataLicense: ['', Validators.required ],
@@ -120,6 +123,9 @@ export class ConsoleAppComponent implements OnInit {
get appSummary() { return this.cptForm.get('appSummary'); }
get appHomepage() { return this.cptForm.get('appHomepage'); }
+ get cptBugtracker() { return this.cptForm.get('cptBugtracker'); }
+ get cptDonation() { return this.cptForm.get('cptDonation'); }
+ get cptCode() { return this.cptForm.get('cptCode'); }
get appDescription() { return this.cptForm.get('appDescription'); }
@@ -174,6 +180,12 @@ export class ConsoleAppComponent implements OnInit {
return;
if (!this.validateField(this.appHomepage, 'homepage'))
return;
+ if (!this.validateField(this.cptBugtracker, 'bugtracker', true))
+ return;
+ if (!this.validateField(this.cptDonation, 'donation', true))
+ return;
+ if (!this.validateField(this.cptCode, 'code', true))
+ return;
if (!this.validateField(this.appDescription, 'long description'))
return;
if (!this.validateField(this.cptId, 'component ID'))
@@ -217,7 +229,10 @@ export class ConsoleAppComponent implements OnInit {
metadataLicense: this.metadataLicense.value,
projectLicense: pLicense,
description: this.appDescription.value,
- homepage: this.appHomepage.value
+ homepage: this.appHomepage.value,
+ bugtracker: this.cptBugtracker.value,
+ donation: this.cptDonation.value,
+ code: this.cptCode.value,
};
this.dataGenerated = true;
diff --git a/src/app/guiapp.component.html b/src/app/guiapp.component.html
index 178ee76..7e0f93c 100644
--- a/src/app/guiapp.component.html
+++ b/src/app/guiapp.component.html
@@ -65,6 +65,48 @@
+
+
+
+
+
+
+
+
+
+
+
This URL is not accepted
+
+
+
+
+
+
+
+
+
+
+
+
+
+
This URL is not accepted
+
+
+
+
+
+
+
+
+
+
+
+
+
+
This URL is not accepted
+
+
+
diff --git a/src/app/guiapp.component.ts b/src/app/guiapp.component.ts
index 4e3cc11..cd57b17 100644
--- a/src/app/guiapp.component.ts
+++ b/src/app/guiapp.component.ts
@@ -78,6 +78,9 @@ export class GUIAppComponent implements OnInit {
appName: ['', Validators.required ],
appSummary: ['', Validators.required ],
appHomepage: ['', [ Validators.required, urlValidator() ] ],
+ cptBugtracker: ['', urlValidator()],
+ cptDonation: ['', urlValidator()],
+ cptCode: ['', urlValidator()],
appDescription: ['', Validators.required ],
cptId: ['', [ Validators.required, Validators.minLength(4), componentIdValidator() ]],
metadataLicense: ['', Validators.required ],
@@ -164,6 +167,10 @@ export class GUIAppComponent implements OnInit {
get appSummary() { return this.cptForm.get('appSummary'); }
get appHomepage() { return this.cptForm.get('appHomepage'); }
+ get cptBugtracker() { return this.cptForm.get('cptBugtracker'); }
+ get cptDonation() { return this.cptForm.get('cptDonation'); }
+ get cptCode() { return this.cptForm.get('cptCode'); }
+
get appDescription() { return this.cptForm.get('appDescription'); }
get cptId() { return this.cptForm.get('cptId'); }
@@ -234,6 +241,12 @@ export class GUIAppComponent implements OnInit {
return;
if (!this.validateField(this.appHomepage, 'homepage'))
return;
+ if (!this.validateField(this.cptBugtracker, 'bugtracker', true))
+ return;
+ if (!this.validateField(this.cptDonation, 'donation', true))
+ return;
+ if (!this.validateField(this.cptCode, 'code', true))
+ return;
if (!this.validateField(this.appDescription, 'long description'))
return;
if (!this.validateField(this.cptId, 'component ID'))
@@ -308,7 +321,10 @@ export class GUIAppComponent implements OnInit {
metadataLicense: this.metadataLicense.value,
projectLicense: pLicense,
description: this.appDescription.value,
- homepage: this.appHomepage.value
+ homepage: this.appHomepage.value,
+ bugtracker: this.cptBugtracker.value,
+ donation: this.cptDonation.value,
+ code: this.cptCode.value,
};
arrayAddIfNotEmpty(appInfo.scrImages, this.primaryScreenshot.value);
diff --git a/src/app/makemetainfo.ts b/src/app/makemetainfo.ts
index 1d8b568..4d3ce9f 100644
--- a/src/app/makemetainfo.ts
+++ b/src/app/makemetainfo.ts
@@ -26,6 +26,9 @@ export interface ASBasicInfo {
projectLicense: string;
description: string;
homepage: string;
+ bugtracker: string;
+ donation: string;
+ code: string;
[key: string]: unknown;
}
@@ -121,6 +124,14 @@ function createMetainfoPreamble(binfo: ASBasicInfo, relXMLData: ASRelationXMLDat
if (binfo.homepage)
miXml = miXml + '\n\n' + xmlEscape(binfo.homepage) + '';
+ if (binfo.bugtracker)
+ miXml = miXml + '\n\n' + xmlEscape(binfo.bugtracker) + '';
+
+ if (binfo.donation)
+ miXml = miXml + '\n\n' + xmlEscape(binfo.donation) + '';
+
+ if (binfo.code)
+ miXml = miXml + '\n\n' + xmlEscape(binfo.code) + '';
return miXml;
}
diff --git a/src/app/service.component.html b/src/app/service.component.html
index 8ec3a7f..bbca06d 100644
--- a/src/app/service.component.html
+++ b/src/app/service.component.html
@@ -66,6 +66,48 @@
+
+
+
+
+
+
+
+
+
+
+
This URL is not accepted
+
+
+
+
+
+
+
+
+
+
+
+
+
+
This URL is not accepted
+
+
+
+
+
+
+
+
+
+
+
+
+
+
This URL is not accepted
+
+
+
diff --git a/src/app/service.component.ts b/src/app/service.component.ts
index 0dcb374..1e989bd 100644
--- a/src/app/service.component.ts
+++ b/src/app/service.component.ts
@@ -69,6 +69,9 @@ export class ServiceComponent implements OnInit {
cptName: ['', Validators.required ],
cptSummary: ['', Validators.required ],
cptHomepage: ['', [ Validators.required, urlValidator() ] ],
+ cptBugtracker: ['', urlValidator()],
+ cptDonation: ['', urlValidator()],
+ cptCode: ['', urlValidator()],
cptDescription: ['', Validators.required ],
cptId: ['', [ Validators.required, Validators.minLength(4), componentIdValidator() ]],
metadataLicense: ['', Validators.required ],
@@ -121,6 +124,9 @@ export class ServiceComponent implements OnInit {
get cptSummary() { return this.cptForm.get('cptSummary'); }
get cptHomepage() { return this.cptForm.get('cptHomepage'); }
+ get cptBugtracker() { return this.cptForm.get('cptBugtracker'); }
+ get cptDonation() { return this.cptForm.get('cptDonation'); }
+ get cptCode() { return this.cptForm.get('cptCode'); }
get cptDescription() { return this.cptForm.get('cptDescription'); }
@@ -175,6 +181,12 @@ export class ServiceComponent implements OnInit {
return;
if (!this.validateField(this.cptHomepage, 'homepage'))
return;
+ if (!this.validateField(this.cptBugtracker, 'bugtracker', true))
+ return;
+ if (!this.validateField(this.cptDonation, 'donation', true))
+ return;
+ if (!this.validateField(this.cptCode, 'code', true))
+ return;
if (!this.validateField(this.cptDescription, 'long description'))
return;
if (!this.validateField(this.cptId, 'component ID'))
@@ -220,7 +232,10 @@ export class ServiceComponent implements OnInit {
metadataLicense: this.metadataLicense.value,
projectLicense: pLicense,
description: this.cptDescription.value,
- homepage: this.cptHomepage.value
+ homepage: this.cptHomepage.value,
+ bugtracker: this.cptBugtracker.value,
+ donation: this.cptDonation.value,
+ code: this.cptCode.value,
};
this.dataGenerated = true;