Skip to content

Commit 3cec049

Browse files
add subscription component for marketplace
1 parent af46d61 commit 3cec049

13 files changed

+889
-2
lines changed

package-lock.json

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import {
2+
AnyObject,
3+
ApiService,
4+
IAdapter,
5+
PostAPICommand,
6+
} from '@project-lib/core/api';
7+
import {Subscriber} from '../../shared/models';
8+
9+
import {IAnyObject} from '@project-lib/core/i-any-object';
10+
11+
export class AddSubscriberCommand<T> extends PostAPICommand<Subscriber> {
12+
constructor(
13+
apiService: ApiService,
14+
adapter: IAdapter<Subscriber>,
15+
appConfig: IAnyObject,
16+
) {
17+
super(apiService, adapter, `${appConfig.subscribePath}`);
18+
}
19+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import {
2+
IApiService,
3+
IAdapter,
4+
PostAPICommand,
5+
GetAPICommand,
6+
} from '@project-lib/core/api';
7+
import {IAnyObject} from '@project-lib/core/i-any-object';
8+
9+
export class GetAllTenantKeysCommand<T> extends GetAPICommand<T> {
10+
constructor(
11+
apiService: IApiService,
12+
adapter: IAdapter<T>,
13+
appConfig: IAnyObject,
14+
) {
15+
super(
16+
apiService,
17+
adapter,
18+
`${appConfig.baseApiUrl}${appConfig.tenantmgmtServiceUrl}/tenant-keys`,
19+
);
20+
}
21+
}

projects/saas-ui/src/app/on-boarding/commands/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,5 @@ export * from './get-lead-by-id.command';
44
export * from './get-plan.command';
55
export * from './add-lead-command';
66
export * from './get-lead-command';
7+
export * from './add-subscriber-command';
8+
export * from './get-all-tenant-command';
Lines changed: 271 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,271 @@
1+
<nb-card class="h-100 card-row">
2+
<nb-card-body class="m-0">
3+
<div class="main-wrapper add-lead-wrapper">
4+
<div>
5+
<div class="sign-in-title">
6+
<h2 class="title">Tenant Registration</h2>
7+
<form [formGroup]="marketSubsForm" (ngSubmit)="onSubmit()">
8+
<!-- input fields -->
9+
<div class="input-wrapper">
10+
<div class="input-box">
11+
<div class="input-title">
12+
<span>First Name <span class="required">*</span></span>
13+
</div>
14+
<div class="input">
15+
<div class="input-container">
16+
<input
17+
type="text"
18+
placeholder="Enter First Name"
19+
status="info"
20+
formControlName="firstName"
21+
nbInput
22+
/>
23+
<nb-icon
24+
icon="info-outline"
25+
class="info-icon"
26+
nbTooltip="Please enter your first name. This field is required."
27+
></nb-icon>
28+
</div>
29+
</div>
30+
</div>
31+
32+
<div class="input-box">
33+
<div class="input-title">
34+
<span>Last Name <span class="required">*</span></span>
35+
</div>
36+
<div class="input">
37+
<div class="input-container">
38+
<input
39+
type="text"
40+
placeholder="Enter Last Name"
41+
status="info"
42+
formControlName="lastName"
43+
nbInput
44+
/>
45+
<nb-icon
46+
icon="info-outline"
47+
class="info-icon"
48+
nbTooltip="Please enter your Last name. This field is required."
49+
></nb-icon>
50+
</div>
51+
</div>
52+
</div>
53+
54+
<div class="input-box">
55+
<div class="input-title">
56+
<span>Company Name <span class="required">*</span></span>
57+
</div>
58+
<div class="input">
59+
<div class="input-container">
60+
<input
61+
type="text"
62+
placeholder="Company Name"
63+
status="info"
64+
formControlName="companyName"
65+
nbInput
66+
/>
67+
<nb-icon
68+
icon="info-outline"
69+
class="info-icon"
70+
nbTooltip="Please enter your Company name. This field is required."
71+
></nb-icon>
72+
</div>
73+
</div>
74+
</div>
75+
76+
<!-- email -->
77+
<div class="input-box">
78+
<div class="input-title">
79+
<span>Email <span class="required">*</span></span>
80+
</div>
81+
<div class="input">
82+
<div class="input-container">
83+
<input
84+
type="Email"
85+
placeholder="Email"
86+
status="info"
87+
fieldSize="medium"
88+
formControlName="email"
89+
nbInput
90+
/>
91+
<nb-icon
92+
icon="info-outline"
93+
class="info-icon"
94+
nbTooltip="Please enter your Mail id. This field is required."
95+
></nb-icon>
96+
</div>
97+
</div>
98+
99+
<div
100+
class="error-msg"
101+
*ngIf="
102+
marketSubsForm.get('email').hasError('email') &&
103+
marketSubsForm.get('email').touched
104+
"
105+
>
106+
Invalid email format.
107+
</div>
108+
</div>
109+
110+
<!-- address-->
111+
<div class="input-box address-input-box">
112+
<div class="input-title">
113+
<span>Address</span>
114+
</div>
115+
<div class="input address-input">
116+
<div class="input-container">
117+
<input
118+
type="text"
119+
placeholder="Enter Your Address"
120+
status="info"
121+
formControlName="address"
122+
nbInput
123+
/>
124+
</div>
125+
</div>
126+
</div>
127+
128+
<div class="input-box">
129+
<div class="input-title">
130+
<span>Contact<span class="required">*</span></span>
131+
</div>
132+
<div class="input">
133+
<div class="input-container">
134+
<input
135+
type="text"
136+
placeholder="Enter your contact"
137+
status="info"
138+
formControlName="contact"
139+
nbInput
140+
/>
141+
<nb-icon
142+
icon="phone-outline"
143+
class="info-icon"
144+
nbTooltip="Please enter your Contact Number."
145+
></nb-icon>
146+
</div>
147+
<div
148+
class="error-msg"
149+
*ngIf="
150+
marketSubsForm.get('contact').invalid &&
151+
marketSubsForm.get('contact').touched
152+
"
153+
>
154+
<div
155+
class="error-msg"
156+
*ngIf="marketSubsForm.get('contact').hasError('pattern')"
157+
>
158+
Contact must be numeric only.
159+
</div>
160+
</div>
161+
</div>
162+
</div>
163+
164+
<div class="input-box">
165+
<div class="input-title">
166+
<span>Zip Code<span class="required">*</span></span>
167+
</div>
168+
<div class="input">
169+
<div class="input-container">
170+
<input
171+
type="text"
172+
placeholder="Enter your Zip Code"
173+
status="info"
174+
formControlName="zip"
175+
nbInput
176+
/>
177+
<nb-icon
178+
icon="info-outline"
179+
class="info-icon"
180+
nbTooltip="Please enter zip code."
181+
></nb-icon>
182+
</div>
183+
<div
184+
class="error-msg"
185+
*ngIf="
186+
marketSubsForm.get('zip').invalid &&
187+
marketSubsForm.get('zip').touched
188+
"
189+
>
190+
<div
191+
class="error-msg"
192+
*ngIf="marketSubsForm.get('zip').hasError('pattern')"
193+
>
194+
Zip Code must be numeric only.
195+
</div>
196+
</div>
197+
</div>
198+
</div>
199+
200+
<div class="input-box">
201+
<div class="input-title">
202+
<span>Country <span class="required">*</span></span>
203+
</div>
204+
<div class="input">
205+
<div class="input-container">
206+
<input
207+
type="text"
208+
placeholder="Enter your Country"
209+
status="info"
210+
formControlName="country"
211+
nbInput
212+
/>
213+
<nb-icon
214+
icon="globe-outline"
215+
class="info-icon"
216+
nbTooltip="Please enter your country."
217+
></nb-icon>
218+
</div>
219+
</div>
220+
</div>
221+
222+
<div class="input-box">
223+
<div class="input-title">
224+
<span>
225+
Application Sub-Domain <span class="required">*</span>
226+
</span>
227+
</div>
228+
<div class="input">
229+
<div class="input-container">
230+
<input
231+
placeholder="Enter the subdomain of your application"
232+
fieldSize="medium"
233+
status="info"
234+
formControlName="subdomain"
235+
nbInput
236+
/>
237+
<nb-icon
238+
icon="info-outline"
239+
class="info-icon"
240+
nbTooltip="Enter a unique key starting with an alphabet. This field is required and has a maximum length of 20 characters. Special characters are not allowed."
241+
></nb-icon>
242+
</div>
243+
<div>
244+
<div *ngIf="keyVerificationMessage" class="message">
245+
{{ keyVerificationMessage }}
246+
</div>
247+
</div>
248+
</div>
249+
</div>
250+
251+
<!-- signup button -->
252+
<div class="btn-wrapper">
253+
<div class="btn regbtn">
254+
<button
255+
nbButton
256+
size="medium"
257+
status="danger"
258+
[disabled]="!marketSubsForm.valid"
259+
type="submit"
260+
>
261+
Submit
262+
</button>
263+
</div>
264+
</div>
265+
</div>
266+
</form>
267+
</div>
268+
</div>
269+
</div>
270+
</nb-card-body>
271+
</nb-card>

0 commit comments

Comments
 (0)