@@ -19,11 +19,21 @@
|
||||
<div class="table-actions">
|
||||
<mat-form-field class="table-search" appearance="outline">
|
||||
<i matPrefix class="fas fa-search"></i>
|
||||
<input matInput placeholder="{{ 'labels.inputs.Filter' | translate }}" (keyup)="applyFilter($event.target.value)" />
|
||||
<input
|
||||
matInput
|
||||
placeholder="{{ 'labels.inputs.Filter' | translate }}"
|
||||
(keyup)="applyFilter($event.target.value)"
|
||||
/>
|
||||
</mat-form-field>
|
||||
|
||||
<div class="table-buttons">
|
||||
<button mat-flat-button color="primary" [routerLink]="['create']" class="btn-create" *mifosxHasPermission="'CREATE_ADHOC'">
|
||||
<button
|
||||
mat-flat-button
|
||||
color="primary"
|
||||
[routerLink]="['create']"
|
||||
class="btn-create"
|
||||
*mifosxHasPermission="'CREATE_ADHOC'"
|
||||
>
|
||||
<fa-icon icon="plus"></fa-icon>
|
||||
{{ 'labels.buttons.Create AdHoc Query' | translate }}
|
||||
</button>
|
||||
|
||||
+36
-9
@@ -29,7 +29,10 @@
|
||||
<mat-label>{{ 'labels.inputs.name' | translate }}</mat-label>
|
||||
<input matInput required formControlName="name" />
|
||||
@if (adhocQueryForm.controls.name.hasError('required')) {
|
||||
<mat-error>{{ 'labels.inputs.name' | translate }} {{ 'labels.commons.is' | translate }} <strong>{{ 'labels.commons.required' | translate }}</strong></mat-error>
|
||||
<mat-error
|
||||
>{{ 'labels.inputs.name' | translate }} {{ 'labels.commons.is' | translate }}
|
||||
<strong>{{ 'labels.commons.required' | translate }}</strong></mat-error
|
||||
>
|
||||
}
|
||||
</mat-form-field>
|
||||
|
||||
@@ -37,7 +40,10 @@
|
||||
<mat-label>{{ 'labels.inputs.Insert into table' | translate }}</mat-label>
|
||||
<input matInput required formControlName="tableName" />
|
||||
@if (adhocQueryForm.controls.tableName.hasError('required')) {
|
||||
<mat-error>{{ 'labels.inputs.Insert into table' | translate }} {{ 'labels.commons.is' | translate }} <strong>{{ 'labels.commons.required' | translate }}</strong></mat-error>
|
||||
<mat-error
|
||||
>{{ 'labels.inputs.Insert into table' | translate }} {{ 'labels.commons.is' | translate }}
|
||||
<strong>{{ 'labels.commons.required' | translate }}</strong></mat-error
|
||||
>
|
||||
}
|
||||
</mat-form-field>
|
||||
|
||||
@@ -45,7 +51,10 @@
|
||||
<mat-label>{{ 'labels.inputs.SQL Query' | translate }}</mat-label>
|
||||
<textarea matInput required formControlName="query" rows="3"></textarea>
|
||||
@if (adhocQueryForm.controls.query.hasError('required')) {
|
||||
<mat-error>{{ 'labels.inputs.SQL Query' | translate }} {{ 'labels.commons.is' | translate }} <strong>{{ 'labels.commons.required' | translate }}</strong></mat-error>
|
||||
<mat-error
|
||||
>{{ 'labels.inputs.SQL Query' | translate }} {{ 'labels.commons.is' | translate }}
|
||||
<strong>{{ 'labels.commons.required' | translate }}</strong></mat-error
|
||||
>
|
||||
}
|
||||
</mat-form-field>
|
||||
|
||||
@@ -53,7 +62,10 @@
|
||||
<mat-label>{{ 'labels.inputs.Table Fields' | translate }}</mat-label>
|
||||
<textarea matInput required formControlName="tableFields" rows="2"></textarea>
|
||||
@if (adhocQueryForm.controls.tableFields.hasError('required')) {
|
||||
<mat-error>{{ 'labels.inputs.Table Fields' | translate }} {{ 'labels.commons.are' | translate }} <strong>{{ 'labels.commons.required' | translate }}</strong></mat-error>
|
||||
<mat-error
|
||||
>{{ 'labels.inputs.Table Fields' | translate }} {{ 'labels.commons.are' | translate }}
|
||||
<strong>{{ 'labels.commons.required' | translate }}</strong></mat-error
|
||||
>
|
||||
}
|
||||
</mat-form-field>
|
||||
</div>
|
||||
@@ -70,7 +82,10 @@
|
||||
<mat-label>{{ 'labels.inputs.Email' | translate }}</mat-label>
|
||||
<input matInput formControlName="email" />
|
||||
@if (adhocQueryForm.controls.email.hasError('email')) {
|
||||
<mat-error>{{ 'labels.inputs.Email' | translate }} {{ 'labels.commons.is' | translate }} <strong>{{ 'labels.commons.invalid' | translate }}</strong></mat-error>
|
||||
<mat-error
|
||||
>{{ 'labels.inputs.Email' | translate }} {{ 'labels.commons.is' | translate }}
|
||||
<strong>{{ 'labels.commons.invalid' | translate }}</strong></mat-error
|
||||
>
|
||||
}
|
||||
</mat-form-field>
|
||||
|
||||
@@ -88,10 +103,16 @@
|
||||
<mat-label>{{ 'labels.inputs.Custom Report Run Frequency (Days)' | translate }}</mat-label>
|
||||
<input type="number" matInput required formControlName="reportRunEvery" />
|
||||
@if (adhocQueryForm.controls.reportRunEvery.hasError('required')) {
|
||||
<mat-error>{{ 'labels.inputs.Custom Report Run Frequency' | translate }} {{ 'labels.commons.is' | translate }} <strong>{{ 'labels.commons.required' | translate }}</strong></mat-error>
|
||||
<mat-error
|
||||
>{{ 'labels.inputs.Custom Report Run Frequency' | translate }} {{ 'labels.commons.is' | translate }}
|
||||
<strong>{{ 'labels.commons.required' | translate }}</strong></mat-error
|
||||
>
|
||||
}
|
||||
@if (adhocQueryForm.controls.reportRunEvery.hasError('min')) {
|
||||
<mat-error>{{ 'labels.inputs.Custom Report Run Frequency' | translate }} <strong>{{ 'labels.commons.must be larger than 0' | translate }}</strong></mat-error>
|
||||
<mat-error
|
||||
>{{ 'labels.inputs.Custom Report Run Frequency' | translate }}
|
||||
<strong>{{ 'labels.commons.must be larger than 0' | translate }}</strong></mat-error
|
||||
>
|
||||
}
|
||||
</mat-form-field>
|
||||
}
|
||||
@@ -109,8 +130,14 @@
|
||||
<button type="button" mat-stroked-button [routerLink]="['../']" class="caq-actions__cancel">
|
||||
{{ 'labels.buttons.Cancel' | translate }}
|
||||
</button>
|
||||
<button type="submit" mat-flat-button color="primary" [disabled]="!adhocQueryForm.valid"
|
||||
*mifosxHasPermission="'CREATE_ADHOC'" class="caq-actions__submit">
|
||||
<button
|
||||
type="submit"
|
||||
mat-flat-button
|
||||
color="primary"
|
||||
[disabled]="!adhocQueryForm.valid"
|
||||
*mifosxHasPermission="'CREATE_ADHOC'"
|
||||
class="caq-actions__submit"
|
||||
>
|
||||
<i class="fas fa-check"></i> {{ 'labels.buttons.Submit' | translate }}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
+103
-21
@@ -15,47 +15,129 @@ $gray-500: #9aa0a6;
|
||||
$gray-700: #5f6368;
|
||||
$gray-900: #202124;
|
||||
|
||||
.caq-container { max-width: 800px; margin: 0 auto; padding: 20px 16px; }
|
||||
.caq-container {
|
||||
max-width: 800px;
|
||||
margin: 0 auto;
|
||||
padding: 20px 16px;
|
||||
}
|
||||
|
||||
.caq-header {
|
||||
display: flex; align-items: center; gap: 14px; margin-bottom: 20px;
|
||||
&__title { font-size: 18px; font-weight: 600; color: $gray-900; margin: 0; }
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 14px;
|
||||
margin-bottom: 20px;
|
||||
|
||||
&__title {
|
||||
font-size: 18px;
|
||||
font-weight: 600;
|
||||
color: $gray-900;
|
||||
margin: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.caq-back {
|
||||
border-radius: 8px !important; font-size: 12px !important; font-weight: 600 !important;
|
||||
height: 32px !important; border-color: $border !important; color: $gray-500 !important;
|
||||
i { margin-right: 6px; }
|
||||
&:hover { color: $primary !important; border-color: $primary !important; }
|
||||
border-radius: 8px !important;
|
||||
font-size: 12px !important;
|
||||
font-weight: 600 !important;
|
||||
height: 32px !important;
|
||||
border-color: $border !important;
|
||||
color: $gray-500 !important;
|
||||
|
||||
i {
|
||||
margin-right: 6px;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
color: $primary !important;
|
||||
border-color: $primary !important;
|
||||
}
|
||||
}
|
||||
|
||||
.caq-card { background: #fff; border: 1px solid $border; border-radius: 10px; overflow: hidden; }
|
||||
.caq-card {
|
||||
background: #fff;
|
||||
border: 1px solid $border;
|
||||
border-radius: 10px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.caq-section {
|
||||
&__header {
|
||||
display: flex; align-items: center; gap: 10px; padding: 12px 24px;
|
||||
background: $gray-50; border-bottom: 1px solid $gray-200;
|
||||
i { font-size: 14px; color: $accent; }
|
||||
h3 { margin: 0; font-size: 14px; font-weight: 600; color: $gray-900; }
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
padding: 12px 24px;
|
||||
background: $gray-50;
|
||||
border-bottom: 1px solid $gray-200;
|
||||
|
||||
i {
|
||||
font-size: 14px;
|
||||
color: $accent;
|
||||
}
|
||||
|
||||
h3 {
|
||||
margin: 0;
|
||||
font-size: 14px;
|
||||
font-weight: 600;
|
||||
color: $gray-900;
|
||||
}
|
||||
}
|
||||
|
||||
& + & {
|
||||
border-top: 1px solid $gray-200;
|
||||
}
|
||||
& + & { border-top: 1px solid $gray-200; }
|
||||
}
|
||||
|
||||
.caq-grid {
|
||||
display: grid; grid-template-columns: repeat(2, 1fr); gap: 4px 16px; padding: 16px 24px;
|
||||
@media (max-width: 600px) { grid-template-columns: 1fr; }
|
||||
display: grid;
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
gap: 4px 16px;
|
||||
padding: 16px 24px;
|
||||
|
||||
@media (width <= 600px) {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
}
|
||||
|
||||
.caq-field {
|
||||
width: 100%;
|
||||
&--full { grid-column: 1 / -1; }
|
||||
|
||||
&--full {
|
||||
grid-column: 1 / -1;
|
||||
}
|
||||
}
|
||||
|
||||
.caq-checkbox { grid-column: 1 / -1; padding: 8px 0; }
|
||||
.caq-checkbox {
|
||||
grid-column: 1 / -1;
|
||||
padding: 8px 0;
|
||||
}
|
||||
|
||||
.caq-actions {
|
||||
display: flex; justify-content: flex-end; gap: 10px; padding: 14px 24px;
|
||||
border-top: 1px solid $gray-200; background: $gray-50;
|
||||
&__cancel { border-radius: 8px !important; font-size: 13px !important; font-weight: 600 !important; height: 36px !important; border-color: $border !important; color: $gray-700 !important; }
|
||||
&__submit { border-radius: 8px !important; font-size: 13px !important; font-weight: 600 !important; height: 36px !important; box-shadow: 0 1px 3px rgba($primary, 0.3) !important; i { margin-right: 6px; font-size: 12px; } }
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
gap: 10px;
|
||||
padding: 14px 24px;
|
||||
border-top: 1px solid $gray-200;
|
||||
background: $gray-50;
|
||||
|
||||
&__cancel {
|
||||
border-radius: 8px !important;
|
||||
font-size: 13px !important;
|
||||
font-weight: 600 !important;
|
||||
height: 36px !important;
|
||||
border-color: $border !important;
|
||||
color: $gray-700 !important;
|
||||
}
|
||||
|
||||
&__submit {
|
||||
border-radius: 8px !important;
|
||||
font-size: 13px !important;
|
||||
font-weight: 600 !important;
|
||||
height: 36px !important;
|
||||
box-shadow: 0 1px 3px rgba($primary, 0.3) !important;
|
||||
|
||||
i {
|
||||
margin-right: 6px;
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
</div>
|
||||
|
||||
<div class="org-grid">
|
||||
|
||||
<!-- Offices -->
|
||||
<a class="org-card" [routerLink]="['Offices']" *mifosxHasPermission="'READ_OFFICE'">
|
||||
<div class="org-card__icon org-card__icon--blue"><i class="fas fa-building"></i></div>
|
||||
@@ -32,7 +31,9 @@
|
||||
<div class="org-card__icon org-card__icon--purple"><i class="fas fa-user"></i></div>
|
||||
<div class="org-card__body">
|
||||
<h3 class="org-card__title">{{ 'labels.heading.Users' | translate }}</h3>
|
||||
<p class="org-card__desc">{{ 'labels.text.Download offices template and Upload office excel files' | translate }}</p>
|
||||
<p class="org-card__desc">
|
||||
{{ 'labels.text.Download offices template and Upload office excel files' | translate }}
|
||||
</p>
|
||||
</div>
|
||||
<i class="fas fa-chevron-right org-card__arrow"></i>
|
||||
</a>
|
||||
@@ -42,7 +43,9 @@
|
||||
<div class="org-card__icon org-card__icon--green"><i class="fas fa-users"></i></div>
|
||||
<div class="org-card__body">
|
||||
<h3 class="org-card__title">{{ 'labels.heading.Groups' | translate }}</h3>
|
||||
<p class="org-card__desc">{{ 'labels.text.Download groups template and Upload group excel files' | translate }}</p>
|
||||
<p class="org-card__desc">
|
||||
{{ 'labels.text.Download groups template and Upload group excel files' | translate }}
|
||||
</p>
|
||||
</div>
|
||||
<i class="fas fa-chevron-right org-card__arrow"></i>
|
||||
</a>
|
||||
@@ -52,7 +55,9 @@
|
||||
<div class="org-card__icon org-card__icon--orange"><i class="fas fa-money-bill-alt"></i></div>
|
||||
<div class="org-card__body">
|
||||
<h3 class="org-card__title">{{ 'labels.heading.Loan Accounts' | translate }}</h3>
|
||||
<p class="org-card__desc">{{ 'labels.text.Download loan accounts template and upload loan account excel files' | translate }}</p>
|
||||
<p class="org-card__desc">
|
||||
{{ 'labels.text.Download loan accounts template and upload loan account excel files' | translate }}
|
||||
</p>
|
||||
</div>
|
||||
<i class="fas fa-chevron-right org-card__arrow"></i>
|
||||
</a>
|
||||
@@ -62,7 +67,9 @@
|
||||
<div class="org-card__icon org-card__icon--emerald"><i class="fas fa-briefcase"></i></div>
|
||||
<div class="org-card__body">
|
||||
<h3 class="org-card__title">{{ 'labels.heading.Savings Accounts' | translate }}</h3>
|
||||
<p class="org-card__desc">{{ 'labels.text.Download savings accounts template and upload savings account excel files' | translate }}</p>
|
||||
<p class="org-card__desc">
|
||||
{{ 'labels.text.Download savings accounts template and upload savings account excel files' | translate }}
|
||||
</p>
|
||||
</div>
|
||||
<i class="fas fa-chevron-right org-card__arrow"></i>
|
||||
</a>
|
||||
@@ -72,7 +79,12 @@
|
||||
<div class="org-card__icon org-card__icon--teal"><i class="fas fa-briefcase"></i></div>
|
||||
<div class="org-card__body">
|
||||
<h3 class="org-card__title">{{ 'labels.heading.Fixed Deposit Accounts' | translate }}</h3>
|
||||
<p class="org-card__desc">{{ 'labels.text.Download fixed deposit accounts template and upload fixed deposit account excel files' | translate }}</p>
|
||||
<p class="org-card__desc">
|
||||
{{
|
||||
'labels.text.Download fixed deposit accounts template and upload fixed deposit account excel files'
|
||||
| translate
|
||||
}}
|
||||
</p>
|
||||
</div>
|
||||
<i class="fas fa-chevron-right org-card__arrow"></i>
|
||||
</a>
|
||||
@@ -82,7 +94,9 @@
|
||||
<div class="org-card__icon org-card__icon--amber"><i class="fas fa-money-bill-alt"></i></div>
|
||||
<div class="org-card__body">
|
||||
<h3 class="org-card__title">{{ 'labels.heading.Chart of Accounts' | translate }}</h3>
|
||||
<p class="org-card__desc">{{ 'labels.text.Download chart of accounts template and upload chart of account excel files' | translate }}</p>
|
||||
<p class="org-card__desc">
|
||||
{{ 'labels.text.Download chart of accounts template and upload chart of account excel files' | translate }}
|
||||
</p>
|
||||
</div>
|
||||
<i class="fas fa-chevron-right org-card__arrow"></i>
|
||||
</a>
|
||||
@@ -92,7 +106,9 @@
|
||||
<div class="org-card__icon org-card__icon--indigo"><i class="fas fa-briefcase"></i></div>
|
||||
<div class="org-card__body">
|
||||
<h3 class="org-card__title">{{ 'labels.heading.Share Accounts' | translate }}</h3>
|
||||
<p class="org-card__desc">{{ 'labels.text.Download share accounts template and upload share account excel files' | translate }}</p>
|
||||
<p class="org-card__desc">
|
||||
{{ 'labels.text.Download share accounts template and upload share account excel files' | translate }}
|
||||
</p>
|
||||
</div>
|
||||
<i class="fas fa-chevron-right org-card__arrow"></i>
|
||||
</a>
|
||||
@@ -102,7 +118,9 @@
|
||||
<div class="org-card__icon org-card__icon--purple"><i class="fas fa-user"></i></div>
|
||||
<div class="org-card__body">
|
||||
<h3 class="org-card__title">{{ 'labels.heading.Employees' | translate }}</h3>
|
||||
<p class="org-card__desc">{{ 'labels.text.Download loan accounts template and upload loan account excel files' | translate }}</p>
|
||||
<p class="org-card__desc">
|
||||
{{ 'labels.text.Download loan accounts template and upload loan account excel files' | translate }}
|
||||
</p>
|
||||
</div>
|
||||
<i class="fas fa-chevron-right org-card__arrow"></i>
|
||||
</a>
|
||||
@@ -112,7 +130,9 @@
|
||||
<div class="org-card__icon org-card__icon--cyan"><i class="fas fa-user"></i></div>
|
||||
<div class="org-card__body">
|
||||
<h3 class="org-card__title">{{ 'labels.heading.Clients' | translate }}</h3>
|
||||
<p class="org-card__desc">{{ 'labels.text.Download clients template and upload clients excel files' | translate }}</p>
|
||||
<p class="org-card__desc">
|
||||
{{ 'labels.text.Download clients template and upload clients excel files' | translate }}
|
||||
</p>
|
||||
</div>
|
||||
<i class="fas fa-chevron-right org-card__arrow"></i>
|
||||
</a>
|
||||
@@ -122,7 +142,9 @@
|
||||
<div class="org-card__icon org-card__icon--green"><i class="fas fa-users"></i></div>
|
||||
<div class="org-card__body">
|
||||
<h3 class="org-card__title">{{ 'labels.heading.Centers' | translate }}</h3>
|
||||
<p class="org-card__desc">{{ 'labels.text.Download centers template and upload centers excel files' | translate }}</p>
|
||||
<p class="org-card__desc">
|
||||
{{ 'labels.text.Download centers template and upload centers excel files' | translate }}
|
||||
</p>
|
||||
</div>
|
||||
<i class="fas fa-chevron-right org-card__arrow"></i>
|
||||
</a>
|
||||
@@ -132,7 +154,9 @@
|
||||
<div class="org-card__icon org-card__icon--rose"><i class="fas fa-briefcase"></i></div>
|
||||
<div class="org-card__body">
|
||||
<h3 class="org-card__title">{{ 'labels.heading.Loan Repayments' | translate }}</h3>
|
||||
<p class="org-card__desc">{{ 'labels.text.Download loan repayments template and upload loan repayment excel files' | translate }}</p>
|
||||
<p class="org-card__desc">
|
||||
{{ 'labels.text.Download loan repayments template and upload loan repayment excel files' | translate }}
|
||||
</p>
|
||||
</div>
|
||||
<i class="fas fa-chevron-right org-card__arrow"></i>
|
||||
</a>
|
||||
@@ -142,7 +166,11 @@
|
||||
<div class="org-card__icon org-card__icon--emerald"><i class="fas fa-briefcase"></i></div>
|
||||
<div class="org-card__body">
|
||||
<h3 class="org-card__title">{{ 'labels.heading.Savings Transactions' | translate }}</h3>
|
||||
<p class="org-card__desc">{{ 'labels.text.Download savings transactions template and upload savings transaction excel files' | translate }}</p>
|
||||
<p class="org-card__desc">
|
||||
{{
|
||||
'labels.text.Download savings transactions template and upload savings transaction excel files' | translate
|
||||
}}
|
||||
</p>
|
||||
</div>
|
||||
<i class="fas fa-chevron-right org-card__arrow"></i>
|
||||
</a>
|
||||
@@ -152,7 +180,12 @@
|
||||
<div class="org-card__icon org-card__icon--teal"><i class="fas fa-briefcase"></i></div>
|
||||
<div class="org-card__body">
|
||||
<h3 class="org-card__title">{{ 'labels.heading.Fixed Deposit Transactions' | translate }}</h3>
|
||||
<p class="org-card__desc">{{ 'labels.text.Download fixed deposit transactions template and upload fixed deposit transaction excel files' | translate }}</p>
|
||||
<p class="org-card__desc">
|
||||
{{
|
||||
'labels.text.Download fixed deposit transactions template and upload fixed deposit transaction excel files'
|
||||
| translate
|
||||
}}
|
||||
</p>
|
||||
</div>
|
||||
<i class="fas fa-chevron-right org-card__arrow"></i>
|
||||
</a>
|
||||
@@ -162,7 +195,12 @@
|
||||
<div class="org-card__icon org-card__icon--amber"><i class="fas fa-briefcase"></i></div>
|
||||
<div class="org-card__body">
|
||||
<h3 class="org-card__title">{{ 'labels.heading.Recurring Deposit Transactions' | translate }}</h3>
|
||||
<p class="org-card__desc">{{ 'labels.text.Download recurring deposit transactions template and upload recurring deposit transaction excel files' | translate }}</p>
|
||||
<p class="org-card__desc">
|
||||
{{
|
||||
'labels.text.Download recurring deposit transactions template and upload recurring deposit transaction excel files'
|
||||
| translate
|
||||
}}
|
||||
</p>
|
||||
</div>
|
||||
<i class="fas fa-chevron-right org-card__arrow"></i>
|
||||
</a>
|
||||
@@ -172,7 +210,9 @@
|
||||
<div class="org-card__icon org-card__icon--slate"><i class="fas fa-chevron-right"></i></div>
|
||||
<div class="org-card__body">
|
||||
<h3 class="org-card__title">{{ 'labels.heading.Journal Entries' | translate }}</h3>
|
||||
<p class="org-card__desc">{{ 'labels.text.Download journal entries template and upload journal entries excel files' | translate }}</p>
|
||||
<p class="org-card__desc">
|
||||
{{ 'labels.text.Download journal entries template and upload journal entries excel files' | translate }}
|
||||
</p>
|
||||
</div>
|
||||
<i class="fas fa-chevron-right org-card__arrow"></i>
|
||||
</a>
|
||||
@@ -182,10 +222,11 @@
|
||||
<div class="org-card__icon org-card__icon--red"><i class="fas fa-chevron-right"></i></div>
|
||||
<div class="org-card__body">
|
||||
<h3 class="org-card__title">{{ 'labels.heading.Guarantors' | translate }}</h3>
|
||||
<p class="org-card__desc">{{ 'labels.text.Download guarantors template and upload guarantor excel files' | translate }}</p>
|
||||
<p class="org-card__desc">
|
||||
{{ 'labels.text.Download guarantors template and upload guarantor excel files' | translate }}
|
||||
</p>
|
||||
</div>
|
||||
<i class="fas fa-chevron-right org-card__arrow"></i>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -62,7 +62,7 @@ $gray-900: #0f172a;
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
gap: 12px;
|
||||
|
||||
@media (max-width: 768px) {
|
||||
@media (width <= 768px) {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
}
|
||||
@@ -83,7 +83,7 @@ $gray-900: #0f172a;
|
||||
&:hover {
|
||||
border-color: #cbd5e1;
|
||||
background: $gray-50;
|
||||
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
|
||||
box-shadow: 0 2px 8px rgb(0 0 0 / 4%);
|
||||
|
||||
.org-card__arrow {
|
||||
color: $gray-700;
|
||||
@@ -102,62 +102,62 @@ $gray-900: #0f172a;
|
||||
flex-shrink: 0;
|
||||
|
||||
&--blue {
|
||||
background: rgba(59, 130, 246, 0.1);
|
||||
background: rgb(59 130 246 / 10%);
|
||||
color: #2563eb;
|
||||
}
|
||||
|
||||
&--amber {
|
||||
background: rgba(245, 158, 11, 0.1);
|
||||
background: rgb(245 158 11 / 10%);
|
||||
color: #d97706;
|
||||
}
|
||||
|
||||
&--green {
|
||||
background: rgba(34, 197, 94, 0.1);
|
||||
background: rgb(34 197 94 / 10%);
|
||||
color: #16a34a;
|
||||
}
|
||||
|
||||
&--emerald {
|
||||
background: rgba(16, 185, 129, 0.1);
|
||||
background: rgb(16 185 129 / 10%);
|
||||
color: #059669;
|
||||
}
|
||||
|
||||
&--purple {
|
||||
background: rgba(139, 92, 246, 0.1);
|
||||
background: rgb(139 92 246 / 10%);
|
||||
color: #7c3aed;
|
||||
}
|
||||
|
||||
&--indigo {
|
||||
background: rgba(99, 102, 241, 0.1);
|
||||
background: rgb(99 102 241 / 10%);
|
||||
color: #4f46e5;
|
||||
}
|
||||
|
||||
&--slate {
|
||||
background: rgba(100, 116, 139, 0.1);
|
||||
background: rgb(100 116 139 / 10%);
|
||||
color: #475569;
|
||||
}
|
||||
|
||||
&--orange {
|
||||
background: rgba(249, 115, 22, 0.1);
|
||||
background: rgb(249 115 22 / 10%);
|
||||
color: #ea580c;
|
||||
}
|
||||
|
||||
&--teal {
|
||||
background: rgba(20, 184, 166, 0.1);
|
||||
background: rgb(20 184 166 / 10%);
|
||||
color: #0d9488;
|
||||
}
|
||||
|
||||
&--cyan {
|
||||
background: rgba(6, 182, 212, 0.1);
|
||||
background: rgb(6 182 212 / 10%);
|
||||
color: #0891b2;
|
||||
}
|
||||
|
||||
&--rose {
|
||||
background: rgba(244, 63, 94, 0.1);
|
||||
background: rgb(244 63 94 / 10%);
|
||||
color: #e11d48;
|
||||
}
|
||||
|
||||
&--red {
|
||||
background: rgba(239, 68, 68, 0.1);
|
||||
background: rgb(239 68 68 / 10%);
|
||||
color: #dc2626;
|
||||
}
|
||||
}
|
||||
@@ -196,8 +196,13 @@ $gray-900: #0f172a;
|
||||
// ── Dark mode ──
|
||||
:host-context(.dark-theme) {
|
||||
.org-header {
|
||||
&__title { color: #e2e8f0; }
|
||||
&__sub { color: #94a3b8; }
|
||||
&__title {
|
||||
color: #e2e8f0;
|
||||
}
|
||||
|
||||
&__sub {
|
||||
color: #94a3b8;
|
||||
}
|
||||
}
|
||||
|
||||
.org-card {
|
||||
@@ -209,8 +214,16 @@ $gray-900: #0f172a;
|
||||
border-color: #444;
|
||||
}
|
||||
|
||||
&__title { color: #e2e8f0; }
|
||||
&__desc { color: #64748b; }
|
||||
&__arrow { color: #444; }
|
||||
&__title {
|
||||
color: #e2e8f0;
|
||||
}
|
||||
|
||||
&__desc {
|
||||
color: #64748b;
|
||||
}
|
||||
|
||||
&__arrow {
|
||||
color: #444;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -57,7 +57,9 @@ $gray-900: #202124;
|
||||
border: 1px solid $border;
|
||||
border-radius: 12px;
|
||||
padding: 0;
|
||||
box-shadow: 0 1px 3px rgba(16, 24, 40, 0.06), 0 1px 2px rgba(16, 24, 40, 0.04);
|
||||
box-shadow:
|
||||
0 1px 3px rgb(16 24 40 / 6%),
|
||||
0 1px 2px rgb(16 24 40 / 4%);
|
||||
}
|
||||
|
||||
.bl-section {
|
||||
@@ -89,7 +91,7 @@ $gray-900: #202124;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
gap: 4px 20px;
|
||||
|
||||
@media (max-width: 600px) {
|
||||
@media (width <= 600px) {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
}
|
||||
@@ -104,7 +106,7 @@ $gray-900: #202124;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
gap: 20px;
|
||||
|
||||
@media (max-width: 600px) {
|
||||
@media (width <= 600px) {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
}
|
||||
@@ -184,7 +186,7 @@ $gray-900: #202124;
|
||||
font-weight: 500;
|
||||
font-size: 13px;
|
||||
padding: 4px 20px !important;
|
||||
box-shadow: 0 1px 2px rgba(19, 83, 160, 0.15);
|
||||
box-shadow: 0 1px 2px rgb(19 83 160 / 15%);
|
||||
transition: all 0.2s ease;
|
||||
|
||||
i {
|
||||
@@ -194,7 +196,7 @@ $gray-900: #202124;
|
||||
|
||||
&:hover {
|
||||
background: #0f4688 !important;
|
||||
box-shadow: 0 2px 6px rgba(19, 83, 160, 0.25);
|
||||
box-shadow: 0 2px 6px rgb(19 83 160 / 25%);
|
||||
}
|
||||
|
||||
&:disabled {
|
||||
|
||||
@@ -22,7 +22,13 @@
|
||||
</mat-form-field>
|
||||
<div class="table-buttons">
|
||||
<div #buttonAddEdit class="in-block">
|
||||
<button mat-flat-button color="primary" class="btn-create" [routerLink]="'manage'" *mifosxHasPermission="'UPDATE_CURRENCY'">
|
||||
<button
|
||||
mat-flat-button
|
||||
color="primary"
|
||||
class="btn-create"
|
||||
[routerLink]="'manage'"
|
||||
*mifosxHasPermission="'UPDATE_CURRENCY'"
|
||||
>
|
||||
<fa-icon icon="plus" class="m-r-10"></fa-icon>
|
||||
{{ 'labels.buttons.Add/Edit' | translate }}
|
||||
</button>
|
||||
|
||||
+90
-22
@@ -15,34 +15,82 @@ $gray-500: #9aa0a6;
|
||||
$gray-700: #5f6368;
|
||||
$gray-900: #202124;
|
||||
|
||||
.mc-container { max-width: 700px; margin: 0 auto; padding: 20px 16px; }
|
||||
.mc-container {
|
||||
max-width: 700px;
|
||||
margin: 0 auto;
|
||||
padding: 20px 16px;
|
||||
}
|
||||
|
||||
.mc-header {
|
||||
display: flex; align-items: center; gap: 14px; margin-bottom: 20px;
|
||||
&__title { font-size: 18px; font-weight: 600; color: $gray-900; margin: 0; }
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 14px;
|
||||
margin-bottom: 20px;
|
||||
|
||||
&__title {
|
||||
font-size: 18px;
|
||||
font-weight: 600;
|
||||
color: $gray-900;
|
||||
margin: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.mc-back {
|
||||
border-radius: 8px !important; font-size: 12px !important; font-weight: 600 !important;
|
||||
height: 32px !important; border-color: $border !important; color: $gray-500 !important;
|
||||
i { margin-right: 6px; }
|
||||
&:hover { color: $primary !important; border-color: $primary !important; }
|
||||
border-radius: 8px !important;
|
||||
font-size: 12px !important;
|
||||
font-weight: 600 !important;
|
||||
height: 32px !important;
|
||||
border-color: $border !important;
|
||||
color: $gray-500 !important;
|
||||
|
||||
i {
|
||||
margin-right: 6px;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
color: $primary !important;
|
||||
border-color: $primary !important;
|
||||
}
|
||||
}
|
||||
|
||||
.mc-card { background: #fff; border: 1px solid $border; border-radius: 10px; overflow: hidden; }
|
||||
.mc-card {
|
||||
background: #fff;
|
||||
border: 1px solid $border;
|
||||
border-radius: 10px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.mc-section {
|
||||
&__header {
|
||||
display: flex; align-items: center; gap: 10px; padding: 12px 24px;
|
||||
background: $gray-50; border-bottom: 1px solid $gray-200;
|
||||
i { font-size: 14px; color: $accent; }
|
||||
h3 { margin: 0; font-size: 14px; font-weight: 600; color: $gray-900; }
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
padding: 12px 24px;
|
||||
background: $gray-50;
|
||||
border-bottom: 1px solid $gray-200;
|
||||
|
||||
i {
|
||||
font-size: 14px;
|
||||
color: $accent;
|
||||
}
|
||||
|
||||
h3 {
|
||||
margin: 0;
|
||||
font-size: 14px;
|
||||
font-weight: 600;
|
||||
color: $gray-900;
|
||||
}
|
||||
}
|
||||
|
||||
& + & {
|
||||
border-top: 1px solid $gray-200;
|
||||
}
|
||||
& + & { border-top: 1px solid $gray-200; }
|
||||
}
|
||||
|
||||
// Add currency form
|
||||
.mc-add { padding: 16px 24px; }
|
||||
.mc-add {
|
||||
padding: 16px 24px;
|
||||
}
|
||||
|
||||
.mc-add__form {
|
||||
display: flex;
|
||||
@@ -50,7 +98,10 @@ $gray-900: #202124;
|
||||
gap: 12px;
|
||||
}
|
||||
|
||||
.mc-add__field { flex: 1; width: 100%; }
|
||||
.mc-add__field {
|
||||
flex: 1;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.mc-add__btn {
|
||||
flex-shrink: 0;
|
||||
@@ -61,11 +112,16 @@ $gray-900: #202124;
|
||||
margin-top: 4px;
|
||||
box-shadow: 0 1px 3px rgba($primary, 0.3) !important;
|
||||
|
||||
i { margin-right: 6px; font-size: 12px; }
|
||||
i {
|
||||
margin-right: 6px;
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
|
||||
// Currency list
|
||||
.mc-list { padding: 8px 24px 16px; }
|
||||
.mc-list {
|
||||
padding: 8px 24px 16px;
|
||||
}
|
||||
|
||||
.mc-currency {
|
||||
display: flex;
|
||||
@@ -73,12 +129,14 @@ $gray-900: #202124;
|
||||
justify-content: space-between;
|
||||
padding: 10px 14px;
|
||||
background: $gray-50;
|
||||
border: 1px solid rgba(0, 0, 0, 0.04);
|
||||
border: 1px solid rgb(0 0 0 / 4%);
|
||||
border-radius: 8px;
|
||||
margin-bottom: 6px;
|
||||
transition: background 0.12s;
|
||||
|
||||
&:hover { background: #f1f5f9; }
|
||||
&:hover {
|
||||
background: #f1f5f9;
|
||||
}
|
||||
|
||||
&__info {
|
||||
display: flex;
|
||||
@@ -110,7 +168,9 @@ $gray-900: #202124;
|
||||
line-height: 32px !important;
|
||||
font-size: 13px;
|
||||
|
||||
&:hover { background: rgba(239, 68, 68, 0.08) !important; }
|
||||
&:hover {
|
||||
background: rgb(239 68 68 / 8%) !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -121,6 +181,14 @@ $gray-900: #202124;
|
||||
padding: 32px 16px;
|
||||
color: #cbd5e1;
|
||||
|
||||
i { font-size: 28px; margin-bottom: 8px; }
|
||||
p { font-size: 13px; color: $gray-500; margin: 0; }
|
||||
i {
|
||||
font-size: 28px;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
p {
|
||||
font-size: 13px;
|
||||
color: $gray-500;
|
||||
margin: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,9 +44,14 @@ $gray-900: #202124;
|
||||
border-color: $border !important;
|
||||
color: $gray-500 !important;
|
||||
|
||||
i { margin-right: 6px; }
|
||||
i {
|
||||
margin-right: 6px;
|
||||
}
|
||||
|
||||
&:hover { color: $primary !important; border-color: $primary !important; }
|
||||
&:hover {
|
||||
color: $primary !important;
|
||||
border-color: $primary !important;
|
||||
}
|
||||
}
|
||||
|
||||
// Card
|
||||
@@ -92,7 +97,9 @@ $gray-900: #202124;
|
||||
gap: 4px 16px;
|
||||
padding: 16px 24px;
|
||||
|
||||
@media (max-width: 600px) { grid-template-columns: 1fr; }
|
||||
@media (width <= 600px) {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
}
|
||||
|
||||
.ce-field {
|
||||
@@ -140,6 +147,9 @@ $gray-900: #202124;
|
||||
height: 36px !important;
|
||||
box-shadow: 0 1px 3px rgba($primary, 0.3) !important;
|
||||
|
||||
i { margin-right: 6px; font-size: 12px; }
|
||||
i {
|
||||
margin-right: 6px;
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,9 +44,14 @@ $gray-900: #202124;
|
||||
border-color: $border !important;
|
||||
color: $gray-500 !important;
|
||||
|
||||
i { margin-right: 6px; }
|
||||
i {
|
||||
margin-right: 6px;
|
||||
}
|
||||
|
||||
&:hover { color: $primary !important; border-color: $primary !important; }
|
||||
&:hover {
|
||||
color: $primary !important;
|
||||
border-color: $primary !important;
|
||||
}
|
||||
}
|
||||
|
||||
// Card
|
||||
@@ -92,7 +97,9 @@ $gray-900: #202124;
|
||||
gap: 4px 16px;
|
||||
padding: 16px 24px;
|
||||
|
||||
@media (max-width: 600px) { grid-template-columns: 1fr; }
|
||||
@media (width <= 600px) {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
}
|
||||
|
||||
.ee-field {
|
||||
@@ -140,6 +147,9 @@ $gray-900: #202124;
|
||||
height: 36px !important;
|
||||
box-shadow: 0 1px 3px rgba($primary, 0.3) !important;
|
||||
|
||||
i { margin-right: 6px; font-size: 12px; }
|
||||
i {
|
||||
margin-right: 6px;
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,13 +24,24 @@
|
||||
</div>
|
||||
<div class="table-buttons">
|
||||
<div #buttonImportEmployees>
|
||||
<button mat-stroked-button class="btn-import" *mifosxHasPermission="'CREATE_STAFF'" [routerLink]="['/', 'organization', 'bulk-import', 'Employees']">
|
||||
<button
|
||||
mat-stroked-button
|
||||
class="btn-import"
|
||||
*mifosxHasPermission="'CREATE_STAFF'"
|
||||
[routerLink]="['/', 'organization', 'bulk-import', 'Employees']"
|
||||
>
|
||||
<fa-icon icon="upload" class="m-r-10"></fa-icon>
|
||||
{{ 'labels.buttons.Import Employees' | translate }}
|
||||
</button>
|
||||
</div>
|
||||
<div #buttonCreateEmployee>
|
||||
<button mat-flat-button color="primary" class="btn-create" [routerLink]="['create']" *mifosxHasPermission="'CREATE_STAFF'">
|
||||
<button
|
||||
mat-flat-button
|
||||
color="primary"
|
||||
class="btn-create"
|
||||
[routerLink]="['create']"
|
||||
*mifosxHasPermission="'CREATE_STAFF'"
|
||||
>
|
||||
<fa-icon icon="plus" class="m-r-10"></fa-icon>
|
||||
{{ 'labels.buttons.Create Employee' | translate }}
|
||||
</button>
|
||||
|
||||
@@ -15,7 +15,13 @@
|
||||
</button>
|
||||
<h2 class="ve-header__title">{{ employeeData.firstname }} {{ employeeData.lastname }}</h2>
|
||||
</div>
|
||||
<button mat-flat-button color="primary" [routerLink]="['edit']" *mifosxHasPermission="'UPDATE_STAFF'" class="ve-header__edit">
|
||||
<button
|
||||
mat-flat-button
|
||||
color="primary"
|
||||
[routerLink]="['edit']"
|
||||
*mifosxHasPermission="'UPDATE_STAFF'"
|
||||
class="ve-header__edit"
|
||||
>
|
||||
<fa-icon icon="edit" class="m-r-10"></fa-icon>
|
||||
{{ 'labels.buttons.Edit' | translate }}
|
||||
</button>
|
||||
@@ -43,13 +49,9 @@
|
||||
<div class="ve-cell__label">{{ 'labels.inputs.Is Loan Officer' | translate }}</div>
|
||||
<div class="ve-cell__value">
|
||||
@if (employeeData.isLoanOfficer) {
|
||||
<span class="ve-bool ve-bool--yes">
|
||||
<i class="fas fa-check"></i> Yes
|
||||
</span>
|
||||
<span class="ve-bool ve-bool--yes"> <i class="fas fa-check"></i> Yes </span>
|
||||
} @else {
|
||||
<span class="ve-bool ve-bool--no">
|
||||
<i class="fas fa-times"></i> No
|
||||
</span>
|
||||
<span class="ve-bool ve-bool--no"> <i class="fas fa-times"></i> No </span>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -60,9 +60,14 @@ $gray-900: #202124;
|
||||
border-color: $border !important;
|
||||
color: $gray-500 !important;
|
||||
|
||||
i { margin-right: 6px; }
|
||||
i {
|
||||
margin-right: 6px;
|
||||
}
|
||||
|
||||
&:hover { color: $primary !important; border-color: $primary !important; }
|
||||
&:hover {
|
||||
color: $primary !important;
|
||||
border-color: $primary !important;
|
||||
}
|
||||
}
|
||||
|
||||
// Card
|
||||
@@ -81,14 +86,16 @@ $gray-900: #202124;
|
||||
padding: 20px 28px 24px;
|
||||
background: #fff;
|
||||
|
||||
@media (max-width: 600px) { grid-template-columns: 1fr; }
|
||||
@media (width <= 600px) {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
}
|
||||
|
||||
.ve-cell {
|
||||
padding: 14px 16px;
|
||||
background: #f8fafc;
|
||||
border-radius: 8px;
|
||||
border: 1px solid rgba(0, 0, 0, 0.04);
|
||||
border: 1px solid rgb(0 0 0 / 4%);
|
||||
margin: 3px;
|
||||
transition: background 0.12s;
|
||||
|
||||
@@ -124,12 +131,12 @@ $gray-900: #202124;
|
||||
letter-spacing: 0.2px;
|
||||
|
||||
&--active {
|
||||
background: rgba(22, 163, 74, 0.1);
|
||||
background: rgb(22 163 74 / 10%);
|
||||
color: #16a34a;
|
||||
}
|
||||
|
||||
&--inactive {
|
||||
background: rgba(220, 38, 38, 0.1);
|
||||
background: rgb(220 38 38 / 10%);
|
||||
color: #dc2626;
|
||||
}
|
||||
}
|
||||
@@ -142,7 +149,9 @@ $gray-900: #202124;
|
||||
font-weight: 600;
|
||||
font-size: 13px;
|
||||
|
||||
i { font-size: 11px; }
|
||||
i {
|
||||
font-size: 11px;
|
||||
}
|
||||
|
||||
&--yes {
|
||||
color: #16a34a;
|
||||
|
||||
+7
-1
@@ -121,7 +121,13 @@
|
||||
<button type="button" mat-stroked-button [routerLink]="['../']" class="ce-actions__cancel">
|
||||
{{ 'labels.buttons.Cancel' | translate }}
|
||||
</button>
|
||||
<button type="submit" mat-flat-button color="primary" [disabled]="!createEntityForm.valid" class="ce-actions__submit">
|
||||
<button
|
||||
type="submit"
|
||||
mat-flat-button
|
||||
color="primary"
|
||||
[disabled]="!createEntityForm.valid"
|
||||
class="ce-actions__submit"
|
||||
>
|
||||
<i class="fas fa-check"></i> {{ 'labels.buttons.Submit' | translate }}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
+14
-4
@@ -44,9 +44,14 @@ $gray-900: #202124;
|
||||
border-color: $border !important;
|
||||
color: $gray-500 !important;
|
||||
|
||||
i { margin-right: 6px; }
|
||||
i {
|
||||
margin-right: 6px;
|
||||
}
|
||||
|
||||
&:hover { color: $primary !important; border-color: $primary !important; }
|
||||
&:hover {
|
||||
color: $primary !important;
|
||||
border-color: $primary !important;
|
||||
}
|
||||
}
|
||||
|
||||
// Card
|
||||
@@ -88,7 +93,9 @@ $gray-900: #202124;
|
||||
gap: 4px 16px;
|
||||
padding: 16px 24px;
|
||||
|
||||
@media (max-width: 600px) { grid-template-columns: 1fr; }
|
||||
@media (width <= 600px) {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
}
|
||||
|
||||
.ce-field {
|
||||
@@ -120,6 +127,9 @@ $gray-900: #202124;
|
||||
height: 36px !important;
|
||||
box-shadow: 0 1px 3px rgba($primary, 0.3) !important;
|
||||
|
||||
i { margin-right: 6px; font-size: 12px; }
|
||||
i {
|
||||
margin-right: 6px;
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+12
-2
@@ -19,11 +19,21 @@
|
||||
<div class="table-actions">
|
||||
<mat-form-field class="table-search" appearance="outline">
|
||||
<i matPrefix class="fas fa-search"></i>
|
||||
<input matInput placeholder="{{ 'labels.inputs.Filter' | translate }}" (keyup)="applyFilter($event.target.value)" />
|
||||
<input
|
||||
matInput
|
||||
placeholder="{{ 'labels.inputs.Filter' | translate }}"
|
||||
(keyup)="applyFilter($event.target.value)"
|
||||
/>
|
||||
</mat-form-field>
|
||||
|
||||
<div class="table-buttons">
|
||||
<button mat-flat-button color="primary" [routerLink]="['create']" class="btn-create" *mifosxHasPermission="'CREATE_ENTITY_DATATABLE_CHECK'">
|
||||
<button
|
||||
mat-flat-button
|
||||
color="primary"
|
||||
[routerLink]="['create']"
|
||||
class="btn-create"
|
||||
*mifosxHasPermission="'CREATE_ENTITY_DATATABLE_CHECK'"
|
||||
>
|
||||
<fa-icon icon="plus"></fa-icon>
|
||||
{{ 'labels.buttons.Create' | translate }}
|
||||
</button>
|
||||
|
||||
@@ -136,10 +136,7 @@
|
||||
<div class="fm-grid">
|
||||
<!-- Loan Outstanding Percentage -->
|
||||
<div class="fm-checkbox-row">
|
||||
<mat-checkbox
|
||||
labelPosition="before"
|
||||
formControlName="includeOutStandingAmountPercentage"
|
||||
>
|
||||
<mat-checkbox labelPosition="before" formControlName="includeOutStandingAmountPercentage">
|
||||
{{ 'labels.inputs.Loan Outstanding Percentage' | translate }}
|
||||
</mat-checkbox>
|
||||
</div>
|
||||
@@ -228,10 +225,7 @@
|
||||
|
||||
<!-- Loan Outstanding Amount -->
|
||||
<div class="fm-checkbox-row">
|
||||
<mat-checkbox
|
||||
labelPosition="before"
|
||||
formControlName="includeOutstandingAmount"
|
||||
>
|
||||
<mat-checkbox labelPosition="before" formControlName="includeOutstandingAmount">
|
||||
{{ 'labels.inputs.Loan Outstanding Amount' | translate }}
|
||||
</mat-checkbox>
|
||||
</div>
|
||||
@@ -325,7 +319,13 @@
|
||||
<button type="button" mat-stroked-button [routerLink]="['../']" class="fm-actions__cancel">
|
||||
{{ 'labels.buttons.Cancel' | translate }}
|
||||
</button>
|
||||
<button type="submit" mat-flat-button color="primary" [disabled]="!fundMappingForm.valid" class="fm-actions__submit">
|
||||
<button
|
||||
type="submit"
|
||||
mat-flat-button
|
||||
color="primary"
|
||||
[disabled]="!fundMappingForm.valid"
|
||||
class="fm-actions__submit"
|
||||
>
|
||||
<i class="fas fa-search"></i> {{ 'labels.buttons.Summary' | translate }}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
@@ -44,9 +44,14 @@ $gray-900: #202124;
|
||||
border-color: $border !important;
|
||||
color: $gray-500 !important;
|
||||
|
||||
i { margin-right: 6px; }
|
||||
i {
|
||||
margin-right: 6px;
|
||||
}
|
||||
|
||||
&:hover { color: $primary !important; border-color: $primary !important; }
|
||||
&:hover {
|
||||
color: $primary !important;
|
||||
border-color: $primary !important;
|
||||
}
|
||||
}
|
||||
|
||||
// Card
|
||||
@@ -96,10 +101,12 @@ $gray-900: #202124;
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
@media (width <= 768px) {
|
||||
grid-template-columns: 1fr;
|
||||
|
||||
&--3col { grid-template-columns: 1fr; }
|
||||
&--3col {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -127,7 +134,7 @@ $gray-900: #202124;
|
||||
padding: 0 0 8px;
|
||||
margin-top: -4px;
|
||||
|
||||
@media (max-width: 768px) {
|
||||
@media (width <= 768px) {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
}
|
||||
@@ -157,7 +164,10 @@ $gray-900: #202124;
|
||||
height: 36px !important;
|
||||
box-shadow: 0 1px 3px rgba($primary, 0.3) !important;
|
||||
|
||||
i { margin-right: 6px; font-size: 12px; }
|
||||
i {
|
||||
margin-right: 6px;
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -44,9 +44,14 @@ $gray-900: #202124;
|
||||
border-color: $border !important;
|
||||
color: $gray-500 !important;
|
||||
|
||||
i { margin-right: 6px; }
|
||||
i {
|
||||
margin-right: 6px;
|
||||
}
|
||||
|
||||
&:hover { color: $primary !important; border-color: $primary !important; }
|
||||
&:hover {
|
||||
color: $primary !important;
|
||||
border-color: $primary !important;
|
||||
}
|
||||
}
|
||||
|
||||
// Card
|
||||
@@ -92,7 +97,9 @@ $gray-900: #202124;
|
||||
gap: 4px 16px;
|
||||
padding: 16px 24px;
|
||||
|
||||
@media (max-width: 600px) { grid-template-columns: 1fr; }
|
||||
@media (width <= 600px) {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
}
|
||||
|
||||
.ch-field {
|
||||
@@ -143,6 +150,9 @@ $gray-900: #202124;
|
||||
height: 36px !important;
|
||||
box-shadow: 0 1px 3px rgba($primary, 0.3) !important;
|
||||
|
||||
i { margin-right: 6px; font-size: 12px; }
|
||||
i {
|
||||
margin-right: 6px;
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,9 +44,14 @@ $gray-900: #202124;
|
||||
border-color: $border !important;
|
||||
color: $gray-500 !important;
|
||||
|
||||
i { margin-right: 6px; }
|
||||
i {
|
||||
margin-right: 6px;
|
||||
}
|
||||
|
||||
&:hover { color: $primary !important; border-color: $primary !important; }
|
||||
&:hover {
|
||||
color: $primary !important;
|
||||
border-color: $primary !important;
|
||||
}
|
||||
}
|
||||
|
||||
// Card
|
||||
@@ -92,7 +97,9 @@ $gray-900: #202124;
|
||||
gap: 4px 16px;
|
||||
padding: 16px 24px;
|
||||
|
||||
@media (max-width: 600px) { grid-template-columns: 1fr; }
|
||||
@media (width <= 600px) {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
}
|
||||
|
||||
.eh-field {
|
||||
@@ -128,6 +135,9 @@ $gray-900: #202124;
|
||||
height: 36px !important;
|
||||
box-shadow: 0 1px 3px rgba($primary, 0.3) !important;
|
||||
|
||||
i { margin-right: 6px; font-size: 12px; }
|
||||
i {
|
||||
margin-right: 6px;
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
<input matInput (keyup)="applyFilter($event.target.value)" />
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<mat-form-field appearance="outline" style="min-width: 180px;">
|
||||
<mat-form-field appearance="outline" style="min-width: 180px">
|
||||
<mat-label>{{ 'labels.inputs.Select Office' | translate }}</mat-label>
|
||||
<mat-select [formControl]="officeSelector">
|
||||
@for (office of officeData; track office) {
|
||||
@@ -32,7 +32,13 @@
|
||||
</mat-form-field>
|
||||
<div class="table-buttons">
|
||||
<div #buttonCreateHoliday>
|
||||
<button mat-flat-button color="primary" class="btn-create" [routerLink]="['create']" *mifosxHasPermission="'CREATE_HOLIDAY'">
|
||||
<button
|
||||
mat-flat-button
|
||||
color="primary"
|
||||
class="btn-create"
|
||||
[routerLink]="['create']"
|
||||
*mifosxHasPermission="'CREATE_HOLIDAY'"
|
||||
>
|
||||
<fa-icon icon="plus" class="m-r-10"></fa-icon>
|
||||
{{ 'labels.buttons.Create Holiday' | translate }}
|
||||
</button>
|
||||
|
||||
@@ -52,9 +52,14 @@ $gray-900: #202124;
|
||||
border-color: $border !important;
|
||||
color: $gray-500 !important;
|
||||
|
||||
i { margin-right: 6px; }
|
||||
i {
|
||||
margin-right: 6px;
|
||||
}
|
||||
|
||||
&:hover { color: $primary !important; border-color: $primary !important; }
|
||||
&:hover {
|
||||
color: $primary !important;
|
||||
border-color: $primary !important;
|
||||
}
|
||||
}
|
||||
|
||||
.vh-menu-btn {
|
||||
@@ -85,14 +90,16 @@ $gray-900: #202124;
|
||||
gap: 10px;
|
||||
padding: 20px 24px;
|
||||
|
||||
@media (max-width: 600px) { grid-template-columns: 1fr; }
|
||||
@media (width <= 600px) {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
}
|
||||
|
||||
.vh-cell {
|
||||
padding: 14px 16px;
|
||||
background: $gray-50;
|
||||
border-radius: 8px;
|
||||
border: 1px solid rgba(0, 0, 0, 0.04);
|
||||
border: 1px solid rgb(0 0 0 / 4%);
|
||||
transition: background 0.12s;
|
||||
|
||||
&:hover {
|
||||
@@ -130,7 +137,7 @@ $gray-900: #202124;
|
||||
}
|
||||
|
||||
// Responsive
|
||||
@media (max-width: 600px) {
|
||||
@media (width <= 600px) {
|
||||
.vh-header {
|
||||
flex-direction: column;
|
||||
align-items: flex-start;
|
||||
|
||||
@@ -9,9 +9,7 @@
|
||||
<div class="inv-container">
|
||||
<!-- Header -->
|
||||
<div class="inv-header">
|
||||
<button mat-stroked-button [routerLink]="['../']" class="inv-back">
|
||||
<i class="fas fa-arrow-left"></i> Back
|
||||
</button>
|
||||
<button mat-stroked-button [routerLink]="['../']" class="inv-back"><i class="fas fa-arrow-left"></i> Back</button>
|
||||
<h2 class="inv-header__title">Investors</h2>
|
||||
</div>
|
||||
|
||||
@@ -165,24 +163,40 @@
|
||||
<h4 class="inv-financials__title">{{ 'labels.inputs.Details' | translate }}</h4>
|
||||
<div class="inv-financials__grid">
|
||||
<div class="inv-financials__row">
|
||||
<span class="inv-financials__label">{{ 'labels.inputs.Principal Outstanding' | translate }}</span>
|
||||
<span class="inv-financials__amount">{{ record.details.totalPrincipalOutstanding | formatNumber }}</span>
|
||||
<span class="inv-financials__label">{{
|
||||
'labels.inputs.Principal Outstanding' | translate
|
||||
}}</span>
|
||||
<span class="inv-financials__amount">{{
|
||||
record.details.totalPrincipalOutstanding | formatNumber
|
||||
}}</span>
|
||||
</div>
|
||||
<div class="inv-financials__row">
|
||||
<span class="inv-financials__label">{{ 'labels.inputs.Interest Outstanding' | translate }}</span>
|
||||
<span class="inv-financials__amount">{{ record.details.totalInterestOutstanding | formatNumber }}</span>
|
||||
<span class="inv-financials__label">{{
|
||||
'labels.inputs.Interest Outstanding' | translate
|
||||
}}</span>
|
||||
<span class="inv-financials__amount">{{
|
||||
record.details.totalInterestOutstanding | formatNumber
|
||||
}}</span>
|
||||
</div>
|
||||
<div class="inv-financials__row">
|
||||
<span class="inv-financials__label">{{ 'labels.inputs.Fees Outstanding' | translate }}</span>
|
||||
<span class="inv-financials__amount">{{ record.details.totalFeeChargesOutstanding | formatNumber }}</span>
|
||||
<span class="inv-financials__amount">{{
|
||||
record.details.totalFeeChargesOutstanding | formatNumber
|
||||
}}</span>
|
||||
</div>
|
||||
<div class="inv-financials__row">
|
||||
<span class="inv-financials__label">{{ 'labels.inputs.Penalties Outstanding' | translate }}</span>
|
||||
<span class="inv-financials__amount">{{ record.details.totalPenaltyChargesOutstanding | formatNumber }}</span>
|
||||
<span class="inv-financials__label">{{
|
||||
'labels.inputs.Penalties Outstanding' | translate
|
||||
}}</span>
|
||||
<span class="inv-financials__amount">{{
|
||||
record.details.totalPenaltyChargesOutstanding | formatNumber
|
||||
}}</span>
|
||||
</div>
|
||||
<div class="inv-financials__row inv-financials__row--total">
|
||||
<span class="inv-financials__label">{{ 'labels.inputs.Outstanding' | translate }}</span>
|
||||
<span class="inv-financials__amount">{{ record.details.totalOutstanding | formatNumber }}</span>
|
||||
<span class="inv-financials__amount">{{
|
||||
record.details.totalOutstanding | formatNumber
|
||||
}}</span>
|
||||
</div>
|
||||
<div class="inv-financials__row">
|
||||
<span class="inv-financials__label">{{ 'labels.inputs.Overpaid' | translate }}</span>
|
||||
|
||||
@@ -44,9 +44,14 @@ $gray-900: #202124;
|
||||
border-color: $border !important;
|
||||
color: $gray-500 !important;
|
||||
|
||||
i { margin-right: 6px; }
|
||||
i {
|
||||
margin-right: 6px;
|
||||
}
|
||||
|
||||
&:hover { color: $primary !important; border-color: $primary !important; }
|
||||
&:hover {
|
||||
color: $primary !important;
|
||||
border-color: $primary !important;
|
||||
}
|
||||
}
|
||||
|
||||
// Card
|
||||
@@ -92,8 +97,13 @@ $gray-900: #202124;
|
||||
gap: 4px 16px;
|
||||
padding: 16px 24px;
|
||||
|
||||
@media (max-width: 768px) { grid-template-columns: 1fr; }
|
||||
@media (max-width: 1024px) and (min-width: 769px) { grid-template-columns: repeat(2, 1fr); }
|
||||
@media (width <= 768px) {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
|
||||
@media (width <= 1024px) and (width >= 769px) {
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
}
|
||||
}
|
||||
|
||||
.inv-field {
|
||||
@@ -105,7 +115,9 @@ $gray-900: #202124;
|
||||
align-items: center;
|
||||
padding-top: 4px;
|
||||
|
||||
@media (max-width: 768px) { padding-top: 0; }
|
||||
@media (width <= 768px) {
|
||||
padding-top: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.inv-search-btn {
|
||||
@@ -116,7 +128,10 @@ $gray-900: #202124;
|
||||
width: 100%;
|
||||
box-shadow: 0 1px 3px rgba($primary, 0.3) !important;
|
||||
|
||||
i { margin-right: 6px; font-size: 12px; }
|
||||
i {
|
||||
margin-right: 6px;
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
|
||||
// Results area
|
||||
@@ -141,7 +156,9 @@ $gray-900: #202124;
|
||||
}
|
||||
|
||||
@keyframes inv-spin {
|
||||
to { transform: rotate(360deg); }
|
||||
to {
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
||||
// Accordion & Panels
|
||||
@@ -210,7 +227,9 @@ $gray-900: #202124;
|
||||
gap: 16px;
|
||||
margin-bottom: 16px;
|
||||
|
||||
@media (max-width: 600px) { grid-template-columns: 1fr; }
|
||||
@media (width <= 600px) {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
}
|
||||
|
||||
&__item {
|
||||
|
||||
+14
-4
@@ -43,9 +43,14 @@ $gray-900: #202124;
|
||||
border-color: $border !important;
|
||||
color: $gray-500 !important;
|
||||
|
||||
i { margin-right: 6px; }
|
||||
i {
|
||||
margin-right: 6px;
|
||||
}
|
||||
|
||||
&:hover { color: $primary !important; border-color: $primary !important; }
|
||||
&:hover {
|
||||
color: $primary !important;
|
||||
border-color: $primary !important;
|
||||
}
|
||||
}
|
||||
|
||||
.cl-card {
|
||||
@@ -84,7 +89,9 @@ $gray-900: #202124;
|
||||
gap: 4px 16px;
|
||||
padding: 16px 24px;
|
||||
|
||||
@media (max-width: 600px) { grid-template-columns: 1fr; }
|
||||
@media (width <= 600px) {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
}
|
||||
|
||||
.cl-field {
|
||||
@@ -115,6 +122,9 @@ $gray-900: #202124;
|
||||
height: 36px !important;
|
||||
box-shadow: 0 1px 3px rgba($primary, 0.3) !important;
|
||||
|
||||
i { margin-right: 6px; font-size: 12px; }
|
||||
i {
|
||||
margin-right: 6px;
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+14
-4
@@ -43,9 +43,14 @@ $gray-900: #202124;
|
||||
border-color: $border !important;
|
||||
color: $gray-500 !important;
|
||||
|
||||
i { margin-right: 6px; }
|
||||
i {
|
||||
margin-right: 6px;
|
||||
}
|
||||
|
||||
&:hover { color: $primary !important; border-color: $primary !important; }
|
||||
&:hover {
|
||||
color: $primary !important;
|
||||
border-color: $primary !important;
|
||||
}
|
||||
}
|
||||
|
||||
.el-card {
|
||||
@@ -84,7 +89,9 @@ $gray-900: #202124;
|
||||
gap: 4px 16px;
|
||||
padding: 16px 24px;
|
||||
|
||||
@media (max-width: 600px) { grid-template-columns: 1fr; }
|
||||
@media (width <= 600px) {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
}
|
||||
|
||||
.el-field {
|
||||
@@ -115,6 +122,9 @@ $gray-900: #202124;
|
||||
height: 36px !important;
|
||||
box-shadow: 0 1px 3px rgba($primary, 0.3) !important;
|
||||
|
||||
i { margin-right: 6px; font-size: 12px; }
|
||||
i {
|
||||
margin-right: 6px;
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,11 +19,23 @@
|
||||
<div class="table-actions">
|
||||
<mat-form-field class="table-search" appearance="outline">
|
||||
<i matPrefix class="fas fa-search"></i>
|
||||
<input matInput #filter placeholder="{{ 'labels.inputs.Filter' | translate }}" (keyup)="applyFilter($event.target.value)" />
|
||||
<input
|
||||
matInput
|
||||
#filter
|
||||
placeholder="{{ 'labels.inputs.Filter' | translate }}"
|
||||
(keyup)="applyFilter($event.target.value)"
|
||||
/>
|
||||
</mat-form-field>
|
||||
|
||||
<div class="table-buttons">
|
||||
<button mat-flat-button color="primary" [routerLink]="['create']" class="btn-create" *mifosxHasPermission="'CREATE_LOAN_ORIGINATOR'" #buttonCreateLoanOriginator>
|
||||
<button
|
||||
mat-flat-button
|
||||
color="primary"
|
||||
[routerLink]="['create']"
|
||||
class="btn-create"
|
||||
*mifosxHasPermission="'CREATE_LOAN_ORIGINATOR'"
|
||||
#buttonCreateLoanOriginator
|
||||
>
|
||||
<fa-icon icon="plus"></fa-icon>
|
||||
{{ 'labels.buttons.Create' | translate }} {{ 'labels.inputs.Loan Originator' | translate }}
|
||||
</button>
|
||||
|
||||
+7
-1
@@ -13,7 +13,13 @@
|
||||
</button>
|
||||
<h2 class="vl-header__title">{{ loanOriginatorData.name }}</h2>
|
||||
<div class="vl-header__spacer"></div>
|
||||
<button mat-flat-button color="primary" [routerLink]="['edit']" class="vl-header__edit" *mifosxHasPermission="'UPDATE_LOAN_ORIGINATOR'">
|
||||
<button
|
||||
mat-flat-button
|
||||
color="primary"
|
||||
[routerLink]="['edit']"
|
||||
class="vl-header__edit"
|
||||
*mifosxHasPermission="'UPDATE_LOAN_ORIGINATOR'"
|
||||
>
|
||||
<i class="fas fa-pen"></i> {{ 'labels.buttons.Edit' | translate }}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
+14
-4
@@ -45,7 +45,10 @@ $gray-900: #202124;
|
||||
height: 32px !important;
|
||||
box-shadow: 0 1px 3px rgba($primary, 0.3) !important;
|
||||
|
||||
i { margin-right: 6px; font-size: 12px; }
|
||||
i {
|
||||
margin-right: 6px;
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -57,9 +60,14 @@ $gray-900: #202124;
|
||||
border-color: $border !important;
|
||||
color: $gray-500 !important;
|
||||
|
||||
i { margin-right: 6px; }
|
||||
i {
|
||||
margin-right: 6px;
|
||||
}
|
||||
|
||||
&:hover { color: $primary !important; border-color: $primary !important; }
|
||||
&:hover {
|
||||
color: $primary !important;
|
||||
border-color: $primary !important;
|
||||
}
|
||||
}
|
||||
|
||||
.vl-card {
|
||||
@@ -98,7 +106,9 @@ $gray-900: #202124;
|
||||
gap: 16px;
|
||||
padding: 20px 24px;
|
||||
|
||||
@media (max-width: 600px) { grid-template-columns: 1fr; }
|
||||
@media (width <= 600px) {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
}
|
||||
|
||||
.vl-detail {
|
||||
|
||||
+6
-2
@@ -92,7 +92,8 @@
|
||||
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Liability Account' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let definition">
|
||||
{{
|
||||
(definition.liabilityAccount | find: loanProvisioningCriteriaTemplate.glAccounts : 'id' : 'name') || '-'
|
||||
(definition.liabilityAccount | find: loanProvisioningCriteriaTemplate.glAccounts : 'id' : 'name') ||
|
||||
'-'
|
||||
}}
|
||||
</td>
|
||||
</ng-container>
|
||||
@@ -100,7 +101,10 @@
|
||||
<ng-container matColumnDef="expenseAccount">
|
||||
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Expense Account' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let definition">
|
||||
{{ (definition.expenseAccount | find: loanProvisioningCriteriaTemplate.glAccounts : 'id' : 'name') || '-' }}
|
||||
{{
|
||||
(definition.expenseAccount | find: loanProvisioningCriteriaTemplate.glAccounts : 'id' : 'name') ||
|
||||
'-'
|
||||
}}
|
||||
</td>
|
||||
</ng-container>
|
||||
|
||||
|
||||
+14
-4
@@ -46,9 +46,14 @@ $gray-900: #202124;
|
||||
border-color: $border !important;
|
||||
color: $gray-500 !important;
|
||||
|
||||
i { margin-right: 6px; }
|
||||
i {
|
||||
margin-right: 6px;
|
||||
}
|
||||
|
||||
&:hover { color: $primary !important; border-color: $primary !important; }
|
||||
&:hover {
|
||||
color: $primary !important;
|
||||
border-color: $primary !important;
|
||||
}
|
||||
}
|
||||
|
||||
// Card
|
||||
@@ -94,7 +99,9 @@ $gray-900: #202124;
|
||||
gap: 4px 16px;
|
||||
padding: 16px 24px;
|
||||
|
||||
@media (max-width: 600px) { grid-template-columns: 1fr; }
|
||||
@media (width <= 600px) {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
}
|
||||
|
||||
.cp-field {
|
||||
@@ -138,6 +145,9 @@ $gray-900: #202124;
|
||||
height: 36px !important;
|
||||
box-shadow: 0 1px 3px rgba($primary, 0.3) !important;
|
||||
|
||||
i { margin-right: 6px; font-size: 12px; }
|
||||
i {
|
||||
margin-right: 6px;
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+4
-3
@@ -86,8 +86,8 @@
|
||||
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Liability Account' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let definition">
|
||||
{{
|
||||
(definition.liabilityAccount | find: loanProvisioningCriteriaAndTemplate.glAccounts : 'id' : 'name') ||
|
||||
'-'
|
||||
(definition.liabilityAccount
|
||||
| find: loanProvisioningCriteriaAndTemplate.glAccounts : 'id' : 'name') || '-'
|
||||
}}
|
||||
</td>
|
||||
</ng-container>
|
||||
@@ -96,7 +96,8 @@
|
||||
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Expense Account' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let definition">
|
||||
{{
|
||||
(definition.expenseAccount | find: loanProvisioningCriteriaAndTemplate.glAccounts : 'id' : 'name') || '-'
|
||||
(definition.expenseAccount
|
||||
| find: loanProvisioningCriteriaAndTemplate.glAccounts : 'id' : 'name') || '-'
|
||||
}}
|
||||
</td>
|
||||
</ng-container>
|
||||
|
||||
+14
-4
@@ -46,9 +46,14 @@ $gray-900: #202124;
|
||||
border-color: $border !important;
|
||||
color: $gray-500 !important;
|
||||
|
||||
i { margin-right: 6px; }
|
||||
i {
|
||||
margin-right: 6px;
|
||||
}
|
||||
|
||||
&:hover { color: $primary !important; border-color: $primary !important; }
|
||||
&:hover {
|
||||
color: $primary !important;
|
||||
border-color: $primary !important;
|
||||
}
|
||||
}
|
||||
|
||||
// Card
|
||||
@@ -94,7 +99,9 @@ $gray-900: #202124;
|
||||
gap: 4px 16px;
|
||||
padding: 16px 24px;
|
||||
|
||||
@media (max-width: 600px) { grid-template-columns: 1fr; }
|
||||
@media (width <= 600px) {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
}
|
||||
|
||||
.ep-field {
|
||||
@@ -138,6 +145,9 @@ $gray-900: #202124;
|
||||
height: 36px !important;
|
||||
box-shadow: 0 1px 3px rgba($primary, 0.3) !important;
|
||||
|
||||
i { margin-right: 6px; font-size: 12px; }
|
||||
i {
|
||||
margin-right: 6px;
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+18
-3
@@ -19,11 +19,21 @@
|
||||
<div class="table-actions">
|
||||
<mat-form-field class="table-search" appearance="outline">
|
||||
<i matPrefix class="fas fa-search"></i>
|
||||
<input matInput placeholder="{{ 'labels.inputs.Filter' | translate }}" (keyup)="applyFilter($event.target.value)" />
|
||||
<input
|
||||
matInput
|
||||
placeholder="{{ 'labels.inputs.Filter' | translate }}"
|
||||
(keyup)="applyFilter($event.target.value)"
|
||||
/>
|
||||
</mat-form-field>
|
||||
|
||||
<div class="table-buttons">
|
||||
<button mat-flat-button color="primary" [routerLink]="['create']" class="btn-create" *mifosxHasPermission="'CREATE_PROVISIONING_CRITERIA'">
|
||||
<button
|
||||
mat-flat-button
|
||||
color="primary"
|
||||
[routerLink]="['create']"
|
||||
class="btn-create"
|
||||
*mifosxHasPermission="'CREATE_PROVISIONING_CRITERIA'"
|
||||
>
|
||||
<fa-icon icon="plus"></fa-icon>
|
||||
{{ 'labels.buttons.Create Provisioning Criteria' | translate }}
|
||||
</button>
|
||||
@@ -45,7 +55,12 @@
|
||||
</ng-container>
|
||||
|
||||
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
|
||||
<tr mat-row *matRowDef="let row; columns: displayedColumns" [routerLink]="[row.criteriaId]" class="table-row"></tr>
|
||||
<tr
|
||||
mat-row
|
||||
*matRowDef="let row; columns: displayedColumns"
|
||||
[routerLink]="[row.criteriaId]"
|
||||
class="table-row"
|
||||
></tr>
|
||||
</table>
|
||||
|
||||
<mat-paginator [pageSizeOptions]="[10, 25, 50, 100]" showFirstLastButtons></mat-paginator>
|
||||
|
||||
@@ -44,7 +44,14 @@
|
||||
<button type="button" mat-stroked-button [routerLink]="['../']" class="cf-actions__cancel">
|
||||
{{ 'labels.buttons.Cancel' | translate }}
|
||||
</button>
|
||||
<button type="submit" mat-flat-button color="primary" [disabled]="!fundForm.valid" class="cf-actions__submit" *mifosxHasPermission="'CREATE_FUND'">
|
||||
<button
|
||||
type="submit"
|
||||
mat-flat-button
|
||||
color="primary"
|
||||
[disabled]="!fundForm.valid"
|
||||
class="cf-actions__submit"
|
||||
*mifosxHasPermission="'CREATE_FUND'"
|
||||
>
|
||||
<i class="fas fa-check"></i> {{ 'labels.buttons.Submit' | translate }}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
@@ -43,9 +43,14 @@ $gray-900: #202124;
|
||||
border-color: $border !important;
|
||||
color: $gray-500 !important;
|
||||
|
||||
i { margin-right: 6px; }
|
||||
i {
|
||||
margin-right: 6px;
|
||||
}
|
||||
|
||||
&:hover { color: $primary !important; border-color: $primary !important; }
|
||||
&:hover {
|
||||
color: $primary !important;
|
||||
border-color: $primary !important;
|
||||
}
|
||||
}
|
||||
|
||||
.cf-card {
|
||||
@@ -84,7 +89,9 @@ $gray-900: #202124;
|
||||
gap: 4px 16px;
|
||||
padding: 16px 24px;
|
||||
|
||||
@media (max-width: 600px) { grid-template-columns: 1fr; }
|
||||
@media (width <= 600px) {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
}
|
||||
|
||||
.cf-field {
|
||||
@@ -115,6 +122,9 @@ $gray-900: #202124;
|
||||
height: 36px !important;
|
||||
box-shadow: 0 1px 3px rgba($primary, 0.3) !important;
|
||||
|
||||
i { margin-right: 6px; font-size: 12px; }
|
||||
i {
|
||||
margin-right: 6px;
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,7 +44,14 @@
|
||||
<button type="button" mat-stroked-button [routerLink]="['../']" class="ef-actions__cancel">
|
||||
{{ 'labels.buttons.Cancel' | translate }}
|
||||
</button>
|
||||
<button type="submit" mat-flat-button color="primary" [disabled]="!fundForm.valid" class="ef-actions__submit" *mifosxHasPermission="'UPDATE_FUND'">
|
||||
<button
|
||||
type="submit"
|
||||
mat-flat-button
|
||||
color="primary"
|
||||
[disabled]="!fundForm.valid"
|
||||
class="ef-actions__submit"
|
||||
*mifosxHasPermission="'UPDATE_FUND'"
|
||||
>
|
||||
<i class="fas fa-check"></i> {{ 'labels.buttons.Submit' | translate }}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
@@ -43,9 +43,14 @@ $gray-900: #202124;
|
||||
border-color: $border !important;
|
||||
color: $gray-500 !important;
|
||||
|
||||
i { margin-right: 6px; }
|
||||
i {
|
||||
margin-right: 6px;
|
||||
}
|
||||
|
||||
&:hover { color: $primary !important; border-color: $primary !important; }
|
||||
&:hover {
|
||||
color: $primary !important;
|
||||
border-color: $primary !important;
|
||||
}
|
||||
}
|
||||
|
||||
.ef-card {
|
||||
@@ -84,7 +89,9 @@ $gray-900: #202124;
|
||||
gap: 4px 16px;
|
||||
padding: 16px 24px;
|
||||
|
||||
@media (max-width: 600px) { grid-template-columns: 1fr; }
|
||||
@media (width <= 600px) {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
}
|
||||
|
||||
.ef-field {
|
||||
@@ -115,6 +122,9 @@ $gray-900: #202124;
|
||||
height: 36px !important;
|
||||
box-shadow: 0 1px 3px rgba($primary, 0.3) !important;
|
||||
|
||||
i { margin-right: 6px; font-size: 12px; }
|
||||
i {
|
||||
margin-right: 6px;
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,7 +22,13 @@
|
||||
</mat-form-field>
|
||||
<div class="table-buttons">
|
||||
<div #fundFormRef class="in-block">
|
||||
<button mat-flat-button color="primary" class="btn-create" [routerLink]="['create']" *mifosxHasPermission="'CREATE_FUND'">
|
||||
<button
|
||||
mat-flat-button
|
||||
color="primary"
|
||||
class="btn-create"
|
||||
[routerLink]="['create']"
|
||||
*mifosxHasPermission="'CREATE_FUND'"
|
||||
>
|
||||
<fa-icon icon="plus" class="m-r-10"></fa-icon>
|
||||
{{ 'labels.buttons.Create Fund' | translate }}
|
||||
</button>
|
||||
|
||||
@@ -13,7 +13,13 @@
|
||||
</button>
|
||||
<h2 class="vf-header__title">{{ fundData.name }}</h2>
|
||||
<div class="vf-header__spacer"></div>
|
||||
<button mat-flat-button color="primary" [routerLink]="['edit']" class="vf-header__edit" *mifosxHasPermission="'UPDATE_FUND'">
|
||||
<button
|
||||
mat-flat-button
|
||||
color="primary"
|
||||
[routerLink]="['edit']"
|
||||
class="vf-header__edit"
|
||||
*mifosxHasPermission="'UPDATE_FUND'"
|
||||
>
|
||||
<i class="fas fa-pen"></i> {{ 'labels.buttons.Edit' | translate }}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
@@ -45,7 +45,10 @@ $gray-900: #202124;
|
||||
height: 32px !important;
|
||||
box-shadow: 0 1px 3px rgba($primary, 0.3) !important;
|
||||
|
||||
i { margin-right: 6px; font-size: 12px; }
|
||||
i {
|
||||
margin-right: 6px;
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -57,9 +60,14 @@ $gray-900: #202124;
|
||||
border-color: $border !important;
|
||||
color: $gray-500 !important;
|
||||
|
||||
i { margin-right: 6px; }
|
||||
i {
|
||||
margin-right: 6px;
|
||||
}
|
||||
|
||||
&:hover { color: $primary !important; border-color: $primary !important; }
|
||||
&:hover {
|
||||
color: $primary !important;
|
||||
border-color: $primary !important;
|
||||
}
|
||||
}
|
||||
|
||||
.vf-card {
|
||||
@@ -98,7 +106,9 @@ $gray-900: #202124;
|
||||
gap: 16px;
|
||||
padding: 20px 24px;
|
||||
|
||||
@media (max-width: 600px) { grid-template-columns: 1fr; }
|
||||
@media (width <= 600px) {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
}
|
||||
|
||||
.vf-detail {
|
||||
|
||||
@@ -85,7 +85,14 @@
|
||||
<button type="button" mat-stroked-button [routerLink]="['../']" class="co-actions__cancel">
|
||||
{{ 'labels.buttons.Cancel' | translate }}
|
||||
</button>
|
||||
<button type="submit" mat-flat-button color="primary" [disabled]="!officeForm.valid" class="co-actions__submit" *mifosxHasPermission="'CREATE_OFFICE'">
|
||||
<button
|
||||
type="submit"
|
||||
mat-flat-button
|
||||
color="primary"
|
||||
[disabled]="!officeForm.valid"
|
||||
class="co-actions__submit"
|
||||
*mifosxHasPermission="'CREATE_OFFICE'"
|
||||
>
|
||||
<i class="fas fa-check"></i> {{ 'labels.buttons.Submit' | translate }}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
@@ -44,9 +44,14 @@ $gray-900: #202124;
|
||||
border-color: $border !important;
|
||||
color: $gray-500 !important;
|
||||
|
||||
i { margin-right: 6px; }
|
||||
i {
|
||||
margin-right: 6px;
|
||||
}
|
||||
|
||||
&:hover { color: $primary !important; border-color: $primary !important; }
|
||||
&:hover {
|
||||
color: $primary !important;
|
||||
border-color: $primary !important;
|
||||
}
|
||||
}
|
||||
|
||||
// Card
|
||||
@@ -92,7 +97,9 @@ $gray-900: #202124;
|
||||
gap: 4px 16px;
|
||||
padding: 16px 24px;
|
||||
|
||||
@media (max-width: 600px) { grid-template-columns: 1fr; }
|
||||
@media (width <= 600px) {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
}
|
||||
|
||||
.co-field {
|
||||
@@ -128,6 +135,9 @@ $gray-900: #202124;
|
||||
height: 36px !important;
|
||||
box-shadow: 0 1px 3px rgba($primary, 0.3) !important;
|
||||
|
||||
i { margin-right: 6px; font-size: 12px; }
|
||||
i {
|
||||
margin-right: 6px;
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -87,7 +87,14 @@
|
||||
<button type="button" mat-stroked-button [routerLink]="['../general']" class="eo-actions__cancel">
|
||||
{{ 'labels.buttons.Cancel' | translate }}
|
||||
</button>
|
||||
<button type="submit" mat-flat-button color="primary" [disabled]="!officeForm.valid" class="eo-actions__submit" *mifosxHasPermission="'UPDATE_OFFICE'">
|
||||
<button
|
||||
type="submit"
|
||||
mat-flat-button
|
||||
color="primary"
|
||||
[disabled]="!officeForm.valid"
|
||||
class="eo-actions__submit"
|
||||
*mifosxHasPermission="'UPDATE_OFFICE'"
|
||||
>
|
||||
<i class="fas fa-check"></i> {{ 'labels.buttons.Submit' | translate }}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
@@ -44,9 +44,14 @@ $gray-900: #202124;
|
||||
border-color: $border !important;
|
||||
color: $gray-500 !important;
|
||||
|
||||
i { margin-right: 6px; }
|
||||
i {
|
||||
margin-right: 6px;
|
||||
}
|
||||
|
||||
&:hover { color: $primary !important; border-color: $primary !important; }
|
||||
&:hover {
|
||||
color: $primary !important;
|
||||
border-color: $primary !important;
|
||||
}
|
||||
}
|
||||
|
||||
// Card
|
||||
@@ -92,7 +97,9 @@ $gray-900: #202124;
|
||||
gap: 4px 16px;
|
||||
padding: 16px 24px;
|
||||
|
||||
@media (max-width: 600px) { grid-template-columns: 1fr; }
|
||||
@media (width <= 600px) {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
}
|
||||
|
||||
.eo-field {
|
||||
@@ -128,6 +135,9 @@ $gray-900: #202124;
|
||||
height: 36px !important;
|
||||
box-shadow: 0 1px 3px rgba($primary, 0.3) !important;
|
||||
|
||||
i { margin-right: 6px; font-size: 12px; }
|
||||
i {
|
||||
margin-right: 6px;
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,13 +32,24 @@
|
||||
</mat-button-toggle-group>
|
||||
<div class="table-buttons">
|
||||
<div #buttonImportOffices>
|
||||
<button mat-stroked-button class="btn-import" *mifosxHasPermission="'CREATE_OFFICE'" [routerLink]="['/organization', 'bulk-import', 'Offices']">
|
||||
<button
|
||||
mat-stroked-button
|
||||
class="btn-import"
|
||||
*mifosxHasPermission="'CREATE_OFFICE'"
|
||||
[routerLink]="['/organization', 'bulk-import', 'Offices']"
|
||||
>
|
||||
<fa-icon icon="upload" class="m-r-10"></fa-icon>
|
||||
{{ 'labels.buttons.Import Offices' | translate }}
|
||||
</button>
|
||||
</div>
|
||||
<div #buttonCreateOffice>
|
||||
<button mat-flat-button color="primary" class="btn-create" [routerLink]="['create']" *mifosxHasPermission="'CREATE_OFFICE'">
|
||||
<button
|
||||
mat-flat-button
|
||||
color="primary"
|
||||
class="btn-create"
|
||||
[routerLink]="['create']"
|
||||
*mifosxHasPermission="'CREATE_OFFICE'"
|
||||
>
|
||||
<fa-icon icon="plus" class="m-r-10"></fa-icon>
|
||||
{{ 'labels.buttons.Create Office' | translate }}
|
||||
</button>
|
||||
@@ -72,7 +83,12 @@
|
||||
</ng-container>
|
||||
|
||||
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
|
||||
<tr mat-row *matRowDef="let row; columns: displayedColumns" class="table-row" [routerLink]="[row.id, 'general']"></tr>
|
||||
<tr
|
||||
mat-row
|
||||
*matRowDef="let row; columns: displayedColumns"
|
||||
class="table-row"
|
||||
[routerLink]="[row.id, 'general']"
|
||||
></tr>
|
||||
</table>
|
||||
<mat-paginator [pageSizeOptions]="[10, 25, 50, 100]" showFirstLastButtons></mat-paginator>
|
||||
</div>
|
||||
|
||||
@@ -15,7 +15,9 @@
|
||||
|
||||
<div class="gt-cell">
|
||||
<div class="gt-cell__label">{{ 'labels.inputs.Opened On' | translate }}</div>
|
||||
<div class="gt-cell__value">{{ officeData.openingDate ? (officeData.openingDate | dateFormat) : 'Unassigned' }}</div>
|
||||
<div class="gt-cell__value">
|
||||
{{ officeData.openingDate ? (officeData.openingDate | dateFormat) : 'Unassigned' }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="gt-cell">
|
||||
|
||||
@@ -25,14 +25,16 @@ $gray-900: #202124;
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
gap: 10px;
|
||||
|
||||
@media (max-width: 600px) { grid-template-columns: 1fr; }
|
||||
@media (width <= 600px) {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
}
|
||||
|
||||
.gt-cell {
|
||||
padding: 14px 16px;
|
||||
background: $gray-50;
|
||||
border-radius: 8px;
|
||||
border: 1px solid rgba(0, 0, 0, 0.04);
|
||||
border: 1px solid rgb(0 0 0 / 4%);
|
||||
transition: background 0.12s;
|
||||
|
||||
&:hover {
|
||||
|
||||
@@ -15,7 +15,13 @@
|
||||
</button>
|
||||
<h2 class="vo-header__title">{{ 'labels.heading.Office Details' | translate }}</h2>
|
||||
</div>
|
||||
<button mat-flat-button color="primary" [routerLink]="['./edit']" class="vo-edit-btn" *mifosxHasPermission="'UPDATE_OFFICE'">
|
||||
<button
|
||||
mat-flat-button
|
||||
color="primary"
|
||||
[routerLink]="['./edit']"
|
||||
class="vo-edit-btn"
|
||||
*mifosxHasPermission="'UPDATE_OFFICE'"
|
||||
>
|
||||
<fa-icon icon="edit" class="m-r-10"></fa-icon>
|
||||
{{ 'labels.buttons.Edit' | translate }}
|
||||
</button>
|
||||
|
||||
@@ -52,9 +52,14 @@ $gray-900: #202124;
|
||||
border-color: $border !important;
|
||||
color: $gray-500 !important;
|
||||
|
||||
i { margin-right: 6px; }
|
||||
i {
|
||||
margin-right: 6px;
|
||||
}
|
||||
|
||||
&:hover { color: $primary !important; border-color: $primary !important; }
|
||||
&:hover {
|
||||
color: $primary !important;
|
||||
border-color: $primary !important;
|
||||
}
|
||||
}
|
||||
|
||||
.vo-edit-btn {
|
||||
@@ -92,7 +97,7 @@ $gray-900: #202124;
|
||||
}
|
||||
|
||||
// Responsive
|
||||
@media (max-width: 600px) {
|
||||
@media (width <= 600px) {
|
||||
.vo-header {
|
||||
flex-direction: column;
|
||||
align-items: flex-start;
|
||||
|
||||
@@ -98,7 +98,9 @@
|
||||
</div>
|
||||
<div class="org-card__body">
|
||||
<h3 class="org-card__title">{{ 'labels.heading.Manage Loan Originators' | translate }}</h3>
|
||||
<p class="org-card__desc">{{ 'labels.text.Loan Originators are associated with loan accounts' | translate }}</p>
|
||||
<p class="org-card__desc">
|
||||
{{ 'labels.text.Loan Originators are associated with loan accounts' | translate }}
|
||||
</p>
|
||||
</div>
|
||||
<i class="fas fa-chevron-right org-card__arrow"></i>
|
||||
</a>
|
||||
@@ -106,7 +108,11 @@
|
||||
|
||||
<!-- Standing Instructions History -->
|
||||
<div #standinginstructions>
|
||||
<a class="org-card" [routerLink]="['standing-instructions-history']" *mifosxHasPermission="'READ_STANDINGINSTRUCTION'">
|
||||
<a
|
||||
class="org-card"
|
||||
[routerLink]="['standing-instructions-history']"
|
||||
*mifosxHasPermission="'READ_STANDINGINSTRUCTION'"
|
||||
>
|
||||
<div class="org-card__icon org-card__icon--slate">
|
||||
<i class="fas fa-book"></i>
|
||||
</div>
|
||||
@@ -140,7 +146,9 @@
|
||||
</div>
|
||||
<div class="org-card__body">
|
||||
<h3 class="org-card__title">{{ 'labels.text.Investors' | translate }}</h3>
|
||||
<p class="org-card__desc">{{ 'labels.text.View the loan account details associated with the investors' | translate }}</p>
|
||||
<p class="org-card__desc">
|
||||
{{ 'labels.text.View the loan account details associated with the investors' | translate }}
|
||||
</p>
|
||||
</div>
|
||||
<i class="fas fa-chevron-right org-card__arrow"></i>
|
||||
</a>
|
||||
@@ -190,7 +198,11 @@
|
||||
|
||||
<!-- Password Preferences -->
|
||||
<div #passwordpreferences>
|
||||
<a class="org-card" [routerLink]="['password-preferences']" *mifosxHasPermission="'READ_PASSWORD_VALIDATION_POLICY'">
|
||||
<a
|
||||
class="org-card"
|
||||
[routerLink]="['password-preferences']"
|
||||
*mifosxHasPermission="'READ_PASSWORD_VALIDATION_POLICY'"
|
||||
>
|
||||
<div class="org-card__icon org-card__icon--red">
|
||||
<i class="fas fa-lock"></i>
|
||||
</div>
|
||||
@@ -246,7 +258,11 @@
|
||||
|
||||
<!-- Entity Data Table Checks -->
|
||||
<div #entitydatatable>
|
||||
<a class="org-card" [routerLink]="['entity-data-table-checks']" *mifosxHasPermission="'READ_ENTITY_DATATABLE_CHECK'">
|
||||
<a
|
||||
class="org-card"
|
||||
[routerLink]="['entity-data-table-checks']"
|
||||
*mifosxHasPermission="'READ_ENTITY_DATATABLE_CHECK'"
|
||||
>
|
||||
<div class="org-card__icon org-card__icon--slate">
|
||||
<i class="fas fa-check"></i>
|
||||
</div>
|
||||
@@ -280,7 +296,9 @@
|
||||
</div>
|
||||
<div class="org-card__body">
|
||||
<h3 class="org-card__title">{{ 'labels.heading.Bulk Import' | translate }}</h3>
|
||||
<p class="org-card__desc">{{ 'labels.text.Bulk data import using excel spreadsheet templates' | translate }}</p>
|
||||
<p class="org-card__desc">
|
||||
{{ 'labels.text.Bulk data import using excel spreadsheet templates' | translate }}
|
||||
</p>
|
||||
</div>
|
||||
<i class="fas fa-chevron-right org-card__arrow"></i>
|
||||
</a>
|
||||
|
||||
@@ -62,7 +62,7 @@ $gray-900: #0f172a;
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
gap: 12px;
|
||||
|
||||
@media (max-width: 768px) {
|
||||
@media (width <= 768px) {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
}
|
||||
@@ -83,7 +83,7 @@ $gray-900: #0f172a;
|
||||
&:hover {
|
||||
border-color: #cbd5e1;
|
||||
background: $gray-50;
|
||||
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
|
||||
box-shadow: 0 2px 8px rgb(0 0 0 / 4%);
|
||||
|
||||
.org-card__arrow {
|
||||
color: $gray-700;
|
||||
@@ -102,62 +102,62 @@ $gray-900: #0f172a;
|
||||
flex-shrink: 0;
|
||||
|
||||
&--blue {
|
||||
background: rgba(59, 130, 246, 0.1);
|
||||
background: rgb(59 130 246 / 10%);
|
||||
color: #2563eb;
|
||||
}
|
||||
|
||||
&--amber {
|
||||
background: rgba(245, 158, 11, 0.1);
|
||||
background: rgb(245 158 11 / 10%);
|
||||
color: #d97706;
|
||||
}
|
||||
|
||||
&--green {
|
||||
background: rgba(34, 197, 94, 0.1);
|
||||
background: rgb(34 197 94 / 10%);
|
||||
color: #16a34a;
|
||||
}
|
||||
|
||||
&--emerald {
|
||||
background: rgba(16, 185, 129, 0.1);
|
||||
background: rgb(16 185 129 / 10%);
|
||||
color: #059669;
|
||||
}
|
||||
|
||||
&--purple {
|
||||
background: rgba(139, 92, 246, 0.1);
|
||||
background: rgb(139 92 246 / 10%);
|
||||
color: #7c3aed;
|
||||
}
|
||||
|
||||
&--indigo {
|
||||
background: rgba(99, 102, 241, 0.1);
|
||||
background: rgb(99 102 241 / 10%);
|
||||
color: #4f46e5;
|
||||
}
|
||||
|
||||
&--slate {
|
||||
background: rgba(100, 116, 139, 0.1);
|
||||
background: rgb(100 116 139 / 10%);
|
||||
color: #475569;
|
||||
}
|
||||
|
||||
&--orange {
|
||||
background: rgba(249, 115, 22, 0.1);
|
||||
background: rgb(249 115 22 / 10%);
|
||||
color: #ea580c;
|
||||
}
|
||||
|
||||
&--teal {
|
||||
background: rgba(20, 184, 166, 0.1);
|
||||
background: rgb(20 184 166 / 10%);
|
||||
color: #0d9488;
|
||||
}
|
||||
|
||||
&--cyan {
|
||||
background: rgba(6, 182, 212, 0.1);
|
||||
background: rgb(6 182 212 / 10%);
|
||||
color: #0891b2;
|
||||
}
|
||||
|
||||
&--rose {
|
||||
background: rgba(244, 63, 94, 0.1);
|
||||
background: rgb(244 63 94 / 10%);
|
||||
color: #e11d48;
|
||||
}
|
||||
|
||||
&--red {
|
||||
background: rgba(239, 68, 68, 0.1);
|
||||
background: rgb(239 68 68 / 10%);
|
||||
color: #dc2626;
|
||||
}
|
||||
}
|
||||
@@ -196,8 +196,13 @@ $gray-900: #0f172a;
|
||||
// ── Dark mode ──
|
||||
:host-context(.dark-theme) {
|
||||
.org-header {
|
||||
&__title { color: #e2e8f0; }
|
||||
&__sub { color: #94a3b8; }
|
||||
&__title {
|
||||
color: #e2e8f0;
|
||||
}
|
||||
|
||||
&__sub {
|
||||
color: #94a3b8;
|
||||
}
|
||||
}
|
||||
|
||||
.org-card {
|
||||
@@ -209,8 +214,16 @@ $gray-900: #0f172a;
|
||||
border-color: #444;
|
||||
}
|
||||
|
||||
&__title { color: #e2e8f0; }
|
||||
&__desc { color: #64748b; }
|
||||
&__arrow { color: #444; }
|
||||
&__title {
|
||||
color: #e2e8f0;
|
||||
}
|
||||
|
||||
&__desc {
|
||||
color: #64748b;
|
||||
}
|
||||
|
||||
&__arrow {
|
||||
color: #444;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -214,5 +214,4 @@ export class OrganizationComponent implements AfterViewInit {
|
||||
this.configurationWizardService.showRecurringDepositProductsList = true;
|
||||
this.router.navigate(['/products/recurring-deposit-products']);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -22,14 +22,20 @@
|
||||
</div>
|
||||
<div class="pp-body">
|
||||
<mat-radio-group class="pp-options" formControlName="validationPolicyId">
|
||||
<div *ngFor="let passwordPreference of passwordPreferencesData; trackBy: trackByPasswordPreference"
|
||||
<div
|
||||
*ngFor="let passwordPreference of passwordPreferencesData; trackBy: trackByPasswordPreference"
|
||||
class="pp-option"
|
||||
[class.pp-option--selected]="passwordPreferencesForm.get('validationPolicyId')?.value === passwordPreference.id">
|
||||
[class.pp-option--selected]="
|
||||
passwordPreferencesForm.get('validationPolicyId')?.value === passwordPreference.id
|
||||
"
|
||||
>
|
||||
<div class="pp-option__header">
|
||||
<div class="pp-option__title">{{ getPasswordLabel(passwordPreference) | translate }}</div>
|
||||
<mat-radio-button [value]="passwordPreference.id"></mat-radio-button>
|
||||
</div>
|
||||
<div class="pp-option__desc">{{ passwordPreference.description | translateKey: 'passwordPreferences' }}</div>
|
||||
<div class="pp-option__desc">
|
||||
{{ passwordPreference.description | translateKey: 'passwordPreferences' }}
|
||||
</div>
|
||||
</div>
|
||||
</mat-radio-group>
|
||||
</div>
|
||||
@@ -39,8 +45,14 @@
|
||||
<button type="button" mat-stroked-button [routerLink]="['../']" class="pp-actions__cancel">
|
||||
{{ 'labels.buttons.Cancel' | translate }}
|
||||
</button>
|
||||
<button type="submit" mat-flat-button color="primary" [disabled]="passwordPreferencesForm.pristine"
|
||||
*mifosxHasPermission="'UPDATE_PASSWORD_VALIDATION_POLICY'" class="pp-actions__submit">
|
||||
<button
|
||||
type="submit"
|
||||
mat-flat-button
|
||||
color="primary"
|
||||
[disabled]="passwordPreferencesForm.pristine"
|
||||
*mifosxHasPermission="'UPDATE_PASSWORD_VALIDATION_POLICY'"
|
||||
class="pp-actions__submit"
|
||||
>
|
||||
<i class="fas fa-check"></i> {{ 'labels.buttons.Submit' | translate }}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
@@ -14,48 +14,148 @@ $gray-500: #9aa0a6;
|
||||
$gray-700: #5f6368;
|
||||
$gray-900: #202124;
|
||||
|
||||
.pp-container { max-width: 700px; margin: 0 auto; padding: 20px 16px; }
|
||||
.pp-container {
|
||||
max-width: 700px;
|
||||
margin: 0 auto;
|
||||
padding: 20px 16px;
|
||||
}
|
||||
|
||||
.pp-header {
|
||||
display: flex; align-items: center; gap: 14px; margin-bottom: 20px;
|
||||
&__title { font-size: 18px; font-weight: 600; color: $gray-900; margin: 0; }
|
||||
}
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 14px;
|
||||
margin-bottom: 20px;
|
||||
|
||||
.pp-back {
|
||||
border-radius: 8px !important; font-size: 12px !important; font-weight: 600 !important;
|
||||
height: 32px !important; border-color: $border !important; color: $gray-500 !important;
|
||||
i { margin-right: 6px; }
|
||||
&:hover { color: $primary !important; border-color: $primary !important; }
|
||||
}
|
||||
|
||||
.pp-card { background: #fff; border: 1px solid $border; border-radius: 10px; overflow: hidden; }
|
||||
|
||||
.pp-section {
|
||||
&__header {
|
||||
display: flex; align-items: center; gap: 10px; padding: 12px 24px;
|
||||
background: $gray-50; border-bottom: 1px solid $gray-200;
|
||||
i { font-size: 14px; color: $accent; }
|
||||
h3 { margin: 0; font-size: 14px; font-weight: 600; color: $gray-900; }
|
||||
&__title {
|
||||
font-size: 18px;
|
||||
font-weight: 600;
|
||||
color: $gray-900;
|
||||
margin: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.pp-body { padding: 20px 24px; }
|
||||
.pp-back {
|
||||
border-radius: 8px !important;
|
||||
font-size: 12px !important;
|
||||
font-weight: 600 !important;
|
||||
height: 32px !important;
|
||||
border-color: $border !important;
|
||||
color: $gray-500 !important;
|
||||
|
||||
.pp-options { display: flex; flex-direction: column; gap: 12px; }
|
||||
i {
|
||||
margin-right: 6px;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
color: $primary !important;
|
||||
border-color: $primary !important;
|
||||
}
|
||||
}
|
||||
|
||||
.pp-card {
|
||||
background: #fff;
|
||||
border: 1px solid $border;
|
||||
border-radius: 10px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.pp-section {
|
||||
&__header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
padding: 12px 24px;
|
||||
background: $gray-50;
|
||||
border-bottom: 1px solid $gray-200;
|
||||
|
||||
i {
|
||||
font-size: 14px;
|
||||
color: $accent;
|
||||
}
|
||||
|
||||
h3 {
|
||||
margin: 0;
|
||||
font-size: 14px;
|
||||
font-weight: 600;
|
||||
color: $gray-900;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.pp-body {
|
||||
padding: 20px 24px;
|
||||
}
|
||||
|
||||
.pp-options {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 12px;
|
||||
}
|
||||
|
||||
.pp-option {
|
||||
border: 1px solid $border; border-radius: 8px; padding: 16px 20px;
|
||||
border: 1px solid $border;
|
||||
border-radius: 8px;
|
||||
padding: 16px 20px;
|
||||
transition: all 0.15s;
|
||||
&:hover { border-color: #cbd5e1; background: $gray-50; }
|
||||
&--selected { border-color: $primary; border-width: 2px; background: rgba($primary, 0.02); }
|
||||
&__header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
|
||||
&__title { font-size: 14px; font-weight: 600; color: $gray-900; }
|
||||
&__desc { font-size: 13px; color: $gray-700; line-height: 1.5; }
|
||||
|
||||
&:hover {
|
||||
border-color: #cbd5e1;
|
||||
background: $gray-50;
|
||||
}
|
||||
|
||||
&--selected {
|
||||
border-color: $primary;
|
||||
border-width: 2px;
|
||||
background: rgba($primary, 0.02);
|
||||
}
|
||||
|
||||
&__header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
&__title {
|
||||
font-size: 14px;
|
||||
font-weight: 600;
|
||||
color: $gray-900;
|
||||
}
|
||||
|
||||
&__desc {
|
||||
font-size: 13px;
|
||||
color: $gray-700;
|
||||
line-height: 1.5;
|
||||
}
|
||||
}
|
||||
|
||||
.pp-actions {
|
||||
display: flex; justify-content: flex-end; gap: 10px; padding: 14px 24px;
|
||||
border-top: 1px solid $gray-200; background: $gray-50;
|
||||
&__cancel { border-radius: 8px !important; font-size: 13px !important; font-weight: 600 !important; height: 36px !important; border-color: $border !important; color: $gray-700 !important; }
|
||||
&__submit { border-radius: 8px !important; font-size: 13px !important; font-weight: 600 !important; height: 36px !important; box-shadow: 0 1px 3px rgba($primary, 0.3) !important; i { margin-right: 6px; font-size: 12px; } }
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
gap: 10px;
|
||||
padding: 14px 24px;
|
||||
border-top: 1px solid $gray-200;
|
||||
background: $gray-50;
|
||||
|
||||
&__cancel {
|
||||
border-radius: 8px !important;
|
||||
font-size: 13px !important;
|
||||
font-weight: 600 !important;
|
||||
height: 36px !important;
|
||||
border-color: $border !important;
|
||||
color: $gray-700 !important;
|
||||
}
|
||||
|
||||
&__submit {
|
||||
border-radius: 8px !important;
|
||||
font-size: 13px !important;
|
||||
font-weight: 600 !important;
|
||||
height: 36px !important;
|
||||
box-shadow: 0 1px 3px rgba($primary, 0.3) !important;
|
||||
|
||||
i {
|
||||
margin-right: 6px;
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+14
-4
@@ -46,9 +46,14 @@ $gray-900: #202124;
|
||||
border-color: $border !important;
|
||||
color: $gray-500 !important;
|
||||
|
||||
i { margin-right: 6px; }
|
||||
i {
|
||||
margin-right: 6px;
|
||||
}
|
||||
|
||||
&:hover { color: $primary !important; border-color: $primary !important; }
|
||||
&:hover {
|
||||
color: $primary !important;
|
||||
border-color: $primary !important;
|
||||
}
|
||||
}
|
||||
|
||||
.cp-card {
|
||||
@@ -88,7 +93,9 @@ $gray-900: #202124;
|
||||
gap: 4px 16px;
|
||||
padding: 16px 24px;
|
||||
|
||||
@media (max-width: 600px) { grid-template-columns: 1fr !important; }
|
||||
@media (width <= 600px) {
|
||||
grid-template-columns: 1fr !important;
|
||||
}
|
||||
}
|
||||
|
||||
.cp-field {
|
||||
@@ -132,7 +139,10 @@ $gray-900: #202124;
|
||||
height: 36px !important;
|
||||
box-shadow: 0 1px 3px rgba($primary, 0.3) !important;
|
||||
|
||||
i { margin-right: 6px; font-size: 12px; }
|
||||
i {
|
||||
margin-right: 6px;
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+14
-4
@@ -46,9 +46,14 @@ $gray-900: #202124;
|
||||
border-color: $border !important;
|
||||
color: $gray-500 !important;
|
||||
|
||||
i { margin-right: 6px; }
|
||||
i {
|
||||
margin-right: 6px;
|
||||
}
|
||||
|
||||
&:hover { color: $primary !important; border-color: $primary !important; }
|
||||
&:hover {
|
||||
color: $primary !important;
|
||||
border-color: $primary !important;
|
||||
}
|
||||
}
|
||||
|
||||
.ep-card {
|
||||
@@ -88,7 +93,9 @@ $gray-900: #202124;
|
||||
gap: 4px 16px;
|
||||
padding: 16px 24px;
|
||||
|
||||
@media (max-width: 600px) { grid-template-columns: 1fr !important; }
|
||||
@media (width <= 600px) {
|
||||
grid-template-columns: 1fr !important;
|
||||
}
|
||||
}
|
||||
|
||||
.ep-field {
|
||||
@@ -132,7 +139,10 @@ $gray-900: #202124;
|
||||
height: 36px !important;
|
||||
box-shadow: 0 1px 3px rgba($primary, 0.3) !important;
|
||||
|
||||
i { margin-right: 6px; font-size: 12px; }
|
||||
i {
|
||||
margin-right: 6px;
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,7 +21,13 @@
|
||||
<input matInput (keyup)="applyFilter($event.target.value)" />
|
||||
</mat-form-field>
|
||||
<div class="table-buttons">
|
||||
<button mat-flat-button color="primary" class="btn-create" [routerLink]="['create']" *mifosxHasPermission="'CREATE_PAYMENTTYPE'">
|
||||
<button
|
||||
mat-flat-button
|
||||
color="primary"
|
||||
class="btn-create"
|
||||
[routerLink]="['create']"
|
||||
*mifosxHasPermission="'CREATE_PAYMENTTYPE'"
|
||||
>
|
||||
<fa-icon icon="plus" class="m-r-10"></fa-icon>
|
||||
{{ 'labels.buttons.Create Payment Type' | translate }}
|
||||
</button>
|
||||
@@ -75,10 +81,12 @@
|
||||
@if (!paymentType.isSystemDefined) {
|
||||
<div class="action-links">
|
||||
<a class="cell-link" [routerLink]="[paymentType.id, 'edit']">
|
||||
<i class="fas fa-pen" style="margin-right: 4px; font-size: 11px;"></i>{{ 'labels.buttons.Edit' | translate }}
|
||||
<i class="fas fa-pen" style="margin-right: 4px; font-size: 11px"></i
|
||||
>{{ 'labels.buttons.Edit' | translate }}
|
||||
</a>
|
||||
<a class="cell-link cell-link--danger" (click)="deletePaymentType(paymentType.id)">
|
||||
<i class="fas fa-trash-alt" style="margin-right: 4px; font-size: 11px;"></i>{{ 'labels.buttons.Delete' | translate }}
|
||||
<i class="fas fa-trash-alt" style="margin-right: 4px; font-size: 11px"></i
|
||||
>{{ 'labels.buttons.Delete' | translate }}
|
||||
</a>
|
||||
</div>
|
||||
}
|
||||
|
||||
@@ -33,14 +33,18 @@ $primary: #1353a0;
|
||||
background: #ecfdf5;
|
||||
color: #059669;
|
||||
|
||||
&::before { background: #059669; }
|
||||
&::before {
|
||||
background: #059669;
|
||||
}
|
||||
}
|
||||
|
||||
&--no {
|
||||
background: #f1f5f9;
|
||||
color: #94a3b8;
|
||||
|
||||
&::before { background: #94a3b8; }
|
||||
&::before {
|
||||
background: #94a3b8;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -54,5 +58,7 @@ $primary: #1353a0;
|
||||
color: #dc2626 !important;
|
||||
cursor: pointer;
|
||||
|
||||
&:hover { text-decoration: underline; }
|
||||
&:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,11 +19,21 @@
|
||||
<div class="table-actions">
|
||||
<mat-form-field class="table-search" appearance="outline">
|
||||
<i matPrefix class="fas fa-search"></i>
|
||||
<input matInput placeholder="{{ 'labels.inputs.Filter' | translate }}" (keyup)="applyFilter($event.target.value)" />
|
||||
<input
|
||||
matInput
|
||||
placeholder="{{ 'labels.inputs.Filter' | translate }}"
|
||||
(keyup)="applyFilter($event.target.value)"
|
||||
/>
|
||||
</mat-form-field>
|
||||
|
||||
<div class="table-buttons">
|
||||
<button mat-flat-button color="primary" [routerLink]="['create']" class="btn-create" *mifosxHasPermission="'CREATE_SMSCAMPAIGN'">
|
||||
<button
|
||||
mat-flat-button
|
||||
color="primary"
|
||||
[routerLink]="['create']"
|
||||
class="btn-create"
|
||||
*mifosxHasPermission="'CREATE_SMSCAMPAIGN'"
|
||||
>
|
||||
<fa-icon icon="plus"></fa-icon>
|
||||
{{ 'labels.buttons.Create SMS Campaign' | translate }}
|
||||
</button>
|
||||
|
||||
+17
-3
@@ -55,7 +55,13 @@
|
||||
}
|
||||
<mat-form-field appearance="outline" class="si-field" (click)="fromDatePicker.open()">
|
||||
<mat-label>{{ 'labels.inputs.From Date' | translate }}</mat-label>
|
||||
<input matInput [min]="minDate" [max]="maxDate" formControlName="fromDate" [matDatepicker]="fromDatePicker" />
|
||||
<input
|
||||
matInput
|
||||
[min]="minDate"
|
||||
[max]="maxDate"
|
||||
formControlName="fromDate"
|
||||
[matDatepicker]="fromDatePicker"
|
||||
/>
|
||||
<mat-datepicker-toggle matSuffix [for]="fromDatePicker"></mat-datepicker-toggle>
|
||||
<mat-datepicker #fromDatePicker></mat-datepicker>
|
||||
</mat-form-field>
|
||||
@@ -69,8 +75,16 @@
|
||||
</div>
|
||||
|
||||
<div class="si-actions">
|
||||
<button type="button" mat-stroked-button [routerLink]="['../']" class="si-actions__cancel">{{ 'labels.buttons.Cancel' | translate }}</button>
|
||||
<button type="submit" mat-flat-button color="primary" class="si-actions__submit" *mifosxHasPermission="'READ_STANDINGINSTRUCTION'">
|
||||
<button type="button" mat-stroked-button [routerLink]="['../']" class="si-actions__cancel">
|
||||
{{ 'labels.buttons.Cancel' | translate }}
|
||||
</button>
|
||||
<button
|
||||
type="submit"
|
||||
mat-flat-button
|
||||
color="primary"
|
||||
class="si-actions__submit"
|
||||
*mifosxHasPermission="'READ_STANDINGINSTRUCTION'"
|
||||
>
|
||||
<i class="fas fa-search"></i> {{ 'labels.buttons.Search Instructions' | translate }}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
+9
-5
@@ -59,7 +59,9 @@ $gray-900: #202124;
|
||||
border: 1px solid $border;
|
||||
border-radius: 12px;
|
||||
padding: 0;
|
||||
box-shadow: 0 1px 3px rgba(16, 24, 40, 0.06), 0 1px 2px rgba(16, 24, 40, 0.04);
|
||||
box-shadow:
|
||||
0 1px 3px rgb(16 24 40 / 6%),
|
||||
0 1px 2px rgb(16 24 40 / 4%);
|
||||
}
|
||||
|
||||
.si-section {
|
||||
@@ -91,7 +93,7 @@ $gray-900: #202124;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
gap: 4px 20px;
|
||||
|
||||
@media (max-width: 600px) {
|
||||
@media (width <= 600px) {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
}
|
||||
@@ -129,7 +131,7 @@ $gray-900: #202124;
|
||||
font-weight: 500;
|
||||
font-size: 13px;
|
||||
padding: 4px 20px !important;
|
||||
box-shadow: 0 1px 2px rgba(19, 83, 160, 0.15);
|
||||
box-shadow: 0 1px 2px rgb(19 83 160 / 15%);
|
||||
transition: all 0.2s ease;
|
||||
|
||||
i {
|
||||
@@ -139,7 +141,7 @@ $gray-900: #202124;
|
||||
|
||||
&:hover {
|
||||
background: #0f4688 !important;
|
||||
box-shadow: 0 2px 6px rgba(19, 83, 160, 0.25);
|
||||
box-shadow: 0 2px 6px rgb(19 83 160 / 25%);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -150,7 +152,9 @@ $gray-900: #202124;
|
||||
border: 1px solid $border;
|
||||
border-radius: 12px;
|
||||
overflow: hidden;
|
||||
box-shadow: 0 1px 3px rgba(16, 24, 40, 0.06), 0 1px 2px rgba(16, 24, 40, 0.04);
|
||||
box-shadow:
|
||||
0 1px 3px rgb(16 24 40 / 6%),
|
||||
0 1px 2px rgb(16 24 40 / 4%);
|
||||
}
|
||||
|
||||
.modern-table {
|
||||
|
||||
@@ -46,9 +46,14 @@ $gray-900: #202124;
|
||||
border-color: $border !important;
|
||||
color: $gray-500 !important;
|
||||
|
||||
i { margin-right: 6px; }
|
||||
i {
|
||||
margin-right: 6px;
|
||||
}
|
||||
|
||||
&:hover { color: $primary !important; border-color: $primary !important; }
|
||||
&:hover {
|
||||
color: $primary !important;
|
||||
border-color: $primary !important;
|
||||
}
|
||||
}
|
||||
|
||||
.ac-card {
|
||||
@@ -92,7 +97,9 @@ $gray-900: #202124;
|
||||
gap: 4px 16px;
|
||||
padding: 16px 24px;
|
||||
|
||||
@media (max-width: 600px) { grid-template-columns: 1fr !important; }
|
||||
@media (width <= 600px) {
|
||||
grid-template-columns: 1fr !important;
|
||||
}
|
||||
}
|
||||
|
||||
.ac-field {
|
||||
@@ -123,7 +130,10 @@ $gray-900: #202124;
|
||||
height: 36px !important;
|
||||
box-shadow: 0 1px 3px rgba($primary, 0.3) !important;
|
||||
|
||||
i { margin-right: 6px; font-size: 12px; }
|
||||
i {
|
||||
margin-right: 6px;
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,7 +21,13 @@
|
||||
<input matInput (keyup)="applyFilter($event.target.value)" />
|
||||
</mat-form-field>
|
||||
<div class="table-buttons">
|
||||
<button mat-flat-button color="primary" class="btn-create" [routerLink]="['create']" *mifosxHasPermission="'CREATE_CASHIERS_FOR_TELLER'">
|
||||
<button
|
||||
mat-flat-button
|
||||
color="primary"
|
||||
class="btn-create"
|
||||
[routerLink]="['create']"
|
||||
*mifosxHasPermission="'CREATE_CASHIERS_FOR_TELLER'"
|
||||
>
|
||||
<fa-icon icon="plus" class="m-r-10"></fa-icon>
|
||||
{{ 'labels.buttons.New Cashier' | translate }}
|
||||
</button>
|
||||
|
||||
@@ -24,7 +24,9 @@ $primary: #1353a0;
|
||||
border-radius: 6px;
|
||||
font-size: 12px;
|
||||
cursor: pointer;
|
||||
transition: opacity 0.15s, transform 0.15s;
|
||||
transition:
|
||||
opacity 0.15s,
|
||||
transform 0.15s;
|
||||
text-decoration: none;
|
||||
|
||||
&:hover {
|
||||
|
||||
@@ -105,7 +105,9 @@
|
||||
@if (!createCashierForm.value.isFullDay) {
|
||||
<div class="cc-time-row">
|
||||
<mat-form-field appearance="outline" class="cc-time-field">
|
||||
<mat-label>{{ 'labels.inputs.Start Time' | translate }} ({{ 'labels.inputs.Hour' | translate }})</mat-label>
|
||||
<mat-label
|
||||
>{{ 'labels.inputs.Start Time' | translate }} ({{ 'labels.inputs.Hour' | translate }})</mat-label
|
||||
>
|
||||
<mat-select formControlName="hourStartTime">
|
||||
@for (hour of hours; track hour) {
|
||||
<mat-option [value]="hour">{{ hour }}</mat-option>
|
||||
@@ -113,7 +115,9 @@
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
<mat-form-field appearance="outline" class="cc-time-field">
|
||||
<mat-label>{{ 'labels.inputs.Start Time' | translate }} ({{ 'labels.inputs.Minute' | translate }})</mat-label>
|
||||
<mat-label
|
||||
>{{ 'labels.inputs.Start Time' | translate }} ({{ 'labels.inputs.Minute' | translate }})</mat-label
|
||||
>
|
||||
<mat-select formControlName="minStartTime">
|
||||
@for (minute of minutes; track minute) {
|
||||
<mat-option [value]="minute">{{ minute }}</mat-option>
|
||||
@@ -123,7 +127,9 @@
|
||||
</div>
|
||||
<div class="cc-time-row">
|
||||
<mat-form-field appearance="outline" class="cc-time-field">
|
||||
<mat-label>{{ 'labels.inputs.End Time' | translate }} ({{ 'labels.inputs.Hour' | translate }})</mat-label>
|
||||
<mat-label
|
||||
>{{ 'labels.inputs.End Time' | translate }} ({{ 'labels.inputs.Hour' | translate }})</mat-label
|
||||
>
|
||||
<mat-select formControlName="hourEndTime">
|
||||
@for (hour of hours; track hour) {
|
||||
<mat-option [value]="hour">{{ hour }}</mat-option>
|
||||
@@ -131,7 +137,9 @@
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
<mat-form-field appearance="outline" class="cc-time-field">
|
||||
<mat-label>{{ 'labels.inputs.End Time' | translate }} ({{ 'labels.inputs.Minute' | translate }})</mat-label>
|
||||
<mat-label
|
||||
>{{ 'labels.inputs.End Time' | translate }} ({{ 'labels.inputs.Minute' | translate }})</mat-label
|
||||
>
|
||||
<mat-select formControlName="minEndTime">
|
||||
@for (minute of minutes; track minute) {
|
||||
<mat-option [value]="minute">{{ minute }}</mat-option>
|
||||
|
||||
@@ -46,9 +46,14 @@ $gray-900: #202124;
|
||||
border-color: $border !important;
|
||||
color: $gray-500 !important;
|
||||
|
||||
i { margin-right: 6px; }
|
||||
i {
|
||||
margin-right: 6px;
|
||||
}
|
||||
|
||||
&:hover { color: $primary !important; border-color: $primary !important; }
|
||||
&:hover {
|
||||
color: $primary !important;
|
||||
border-color: $primary !important;
|
||||
}
|
||||
}
|
||||
|
||||
.cc-card {
|
||||
@@ -92,7 +97,9 @@ $gray-900: #202124;
|
||||
gap: 4px 16px;
|
||||
padding: 16px 24px;
|
||||
|
||||
@media (max-width: 600px) { grid-template-columns: 1fr !important; }
|
||||
@media (width <= 600px) {
|
||||
grid-template-columns: 1fr !important;
|
||||
}
|
||||
}
|
||||
|
||||
.cc-field {
|
||||
@@ -107,7 +114,10 @@ $gray-900: #202124;
|
||||
display: flex !important;
|
||||
gap: 12px;
|
||||
|
||||
@media (max-width: 600px) { flex-direction: column; gap: 4px; }
|
||||
@media (width <= 600px) {
|
||||
flex-direction: column;
|
||||
gap: 4px;
|
||||
}
|
||||
}
|
||||
|
||||
.cc-time-field {
|
||||
@@ -148,7 +158,10 @@ $gray-900: #202124;
|
||||
height: 36px !important;
|
||||
box-shadow: 0 1px 3px rgba($primary, 0.3) !important;
|
||||
|
||||
i { margin-right: 6px; font-size: 12px; }
|
||||
i {
|
||||
margin-right: 6px;
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -112,7 +112,9 @@
|
||||
@if (!editCashierForm.value.isFullDay) {
|
||||
<div class="ec-time-row">
|
||||
<mat-form-field appearance="outline" class="ec-time-field">
|
||||
<mat-label>{{ 'labels.inputs.Start Time' | translate }} ({{ 'labels.inputs.Hour' | translate }})</mat-label>
|
||||
<mat-label
|
||||
>{{ 'labels.inputs.Start Time' | translate }} ({{ 'labels.inputs.Hour' | translate }})</mat-label
|
||||
>
|
||||
<mat-select formControlName="hourStartTime">
|
||||
@for (hour of hours; track hour) {
|
||||
<mat-option [value]="hour">{{ hour }}</mat-option>
|
||||
@@ -120,7 +122,9 @@
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
<mat-form-field appearance="outline" class="ec-time-field">
|
||||
<mat-label>{{ 'labels.inputs.Start Time' | translate }} ({{ 'labels.inputs.Minute' | translate }})</mat-label>
|
||||
<mat-label
|
||||
>{{ 'labels.inputs.Start Time' | translate }} ({{ 'labels.inputs.Minute' | translate }})</mat-label
|
||||
>
|
||||
<mat-select formControlName="minStartTime">
|
||||
@for (minute of minutes; track minute) {
|
||||
<mat-option [value]="minute">{{ minute }}</mat-option>
|
||||
@@ -130,7 +134,9 @@
|
||||
</div>
|
||||
<div class="ec-time-row">
|
||||
<mat-form-field appearance="outline" class="ec-time-field">
|
||||
<mat-label>{{ 'labels.inputs.End Time' | translate }} ({{ 'labels.inputs.Hour' | translate }})</mat-label>
|
||||
<mat-label
|
||||
>{{ 'labels.inputs.End Time' | translate }} ({{ 'labels.inputs.Hour' | translate }})</mat-label
|
||||
>
|
||||
<mat-select formControlName="hourEndTime">
|
||||
@for (hour of hours; track hour) {
|
||||
<mat-option [value]="hour">{{ hour }}</mat-option>
|
||||
@@ -138,7 +144,9 @@
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
<mat-form-field appearance="outline" class="ec-time-field">
|
||||
<mat-label>{{ 'labels.inputs.End Time' | translate }} ({{ 'labels.inputs.Minute' | translate }})</mat-label>
|
||||
<mat-label
|
||||
>{{ 'labels.inputs.End Time' | translate }} ({{ 'labels.inputs.Minute' | translate }})</mat-label
|
||||
>
|
||||
<mat-select formControlName="minEndTime">
|
||||
@for (minute of minutes; track minute) {
|
||||
<mat-option [value]="minute">{{ minute }}</mat-option>
|
||||
|
||||
@@ -46,9 +46,14 @@ $gray-900: #202124;
|
||||
border-color: $border !important;
|
||||
color: $gray-500 !important;
|
||||
|
||||
i { margin-right: 6px; }
|
||||
i {
|
||||
margin-right: 6px;
|
||||
}
|
||||
|
||||
&:hover { color: $primary !important; border-color: $primary !important; }
|
||||
&:hover {
|
||||
color: $primary !important;
|
||||
border-color: $primary !important;
|
||||
}
|
||||
}
|
||||
|
||||
.ec-card {
|
||||
@@ -92,7 +97,9 @@ $gray-900: #202124;
|
||||
gap: 4px 16px;
|
||||
padding: 16px 24px;
|
||||
|
||||
@media (max-width: 600px) { grid-template-columns: 1fr !important; }
|
||||
@media (width <= 600px) {
|
||||
grid-template-columns: 1fr !important;
|
||||
}
|
||||
}
|
||||
|
||||
.ec-field {
|
||||
@@ -107,7 +114,10 @@ $gray-900: #202124;
|
||||
display: flex !important;
|
||||
gap: 12px;
|
||||
|
||||
@media (max-width: 600px) { flex-direction: column; gap: 4px; }
|
||||
@media (width <= 600px) {
|
||||
flex-direction: column;
|
||||
gap: 4px;
|
||||
}
|
||||
}
|
||||
|
||||
.ec-time-field {
|
||||
@@ -148,7 +158,10 @@ $gray-900: #202124;
|
||||
height: 36px !important;
|
||||
box-shadow: 0 1px 3px rgba($primary, 0.3) !important;
|
||||
|
||||
i { margin-right: 6px; font-size: 12px; }
|
||||
i {
|
||||
margin-right: 6px;
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,9 +46,14 @@ $gray-900: #202124;
|
||||
border-color: $border !important;
|
||||
color: $gray-500 !important;
|
||||
|
||||
i { margin-right: 6px; }
|
||||
i {
|
||||
margin-right: 6px;
|
||||
}
|
||||
|
||||
&:hover { color: $primary !important; border-color: $primary !important; }
|
||||
&:hover {
|
||||
color: $primary !important;
|
||||
border-color: $primary !important;
|
||||
}
|
||||
}
|
||||
|
||||
.sc-card {
|
||||
@@ -92,7 +97,9 @@ $gray-900: #202124;
|
||||
gap: 4px 16px;
|
||||
padding: 16px 24px;
|
||||
|
||||
@media (max-width: 600px) { grid-template-columns: 1fr !important; }
|
||||
@media (width <= 600px) {
|
||||
grid-template-columns: 1fr !important;
|
||||
}
|
||||
}
|
||||
|
||||
.sc-field {
|
||||
@@ -123,7 +130,10 @@ $gray-900: #202124;
|
||||
height: 36px !important;
|
||||
box-shadow: 0 1px 3px rgba($primary, 0.3) !important;
|
||||
|
||||
i { margin-right: 6px; font-size: 12px; }
|
||||
i {
|
||||
margin-right: 6px;
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,11 +16,22 @@
|
||||
</div>
|
||||
<div class="table-actions">
|
||||
<div class="table-buttons">
|
||||
<button mat-flat-button color="primary" class="btn-create" [routerLink]="['../allocate']" *mifosxHasPermission="'ALLOCATECASHIER_TELLER'">
|
||||
<button
|
||||
mat-flat-button
|
||||
color="primary"
|
||||
class="btn-create"
|
||||
[routerLink]="['../allocate']"
|
||||
*mifosxHasPermission="'ALLOCATECASHIER_TELLER'"
|
||||
>
|
||||
<fa-icon icon="arrow-up" class="m-r-10"></fa-icon>
|
||||
{{ 'labels.buttons.Allocate Cash' | translate }}
|
||||
</button>
|
||||
<button mat-stroked-button class="btn-import" [routerLink]="['../settle']" *mifosxHasPermission="'SETTLECASHFROMCASHIER_TELLER'">
|
||||
<button
|
||||
mat-stroked-button
|
||||
class="btn-import"
|
||||
[routerLink]="['../settle']"
|
||||
*mifosxHasPermission="'SETTLECASHFROMCASHIER_TELLER'"
|
||||
>
|
||||
<fa-icon icon="arrow-down" class="m-r-10"></fa-icon>
|
||||
{{ 'labels.buttons.Settle Cash' | translate }}
|
||||
</button>
|
||||
@@ -44,19 +55,21 @@
|
||||
</div>
|
||||
<div class="txn-summary__item">
|
||||
<span class="txn-summary__label">{{ 'labels.inputs.Net Cash' | translate }}</span>
|
||||
<span class="txn-summary__value txn-summary__value--highlight">{{ cashierData.netCash | formatNumber }} [{{ currencySelector.value }}]</span>
|
||||
<span class="txn-summary__value txn-summary__value--highlight"
|
||||
>{{ cashierData.netCash | formatNumber }} [{{ currencySelector.value }}]</span
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
|
||||
<div class="table-actions" style="margin-bottom: 12px;">
|
||||
<div class="table-actions" style="margin-bottom: 12px">
|
||||
<mat-form-field class="table-search" appearance="outline">
|
||||
<i matPrefix class="fas fa-search"></i>
|
||||
<mat-label>{{ 'labels.inputs.Filter' | translate }}</mat-label>
|
||||
<input matInput (keyup)="applyFilter($event.target.value)" />
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field appearance="outline" class="table-search" style="max-width: 220px;">
|
||||
<mat-form-field appearance="outline" class="table-search" style="max-width: 220px">
|
||||
<mat-label>{{ 'labels.inputs.Select Currency' | translate }}</mat-label>
|
||||
<mat-select [formControl]="currencySelector" required>
|
||||
@for (currency of currencyData; track currency) {
|
||||
|
||||
@@ -27,7 +27,7 @@ $gray-900: #202124;
|
||||
border-radius: 10px;
|
||||
margin-bottom: 16px;
|
||||
|
||||
@media (max-width: 768px) {
|
||||
@media (width <= 768px) {
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
}
|
||||
|
||||
|
||||
@@ -13,10 +13,22 @@
|
||||
</button>
|
||||
<h2 class="vc-header__title">{{ cashierData.staffName }}</h2>
|
||||
<div class="vc-header__spacer"></div>
|
||||
<button mat-flat-button color="primary" [routerLink]="['edit']" class="vc-header__action" *mifosxHasPermission="'UPDATE_CASHIER'">
|
||||
<button
|
||||
mat-flat-button
|
||||
color="primary"
|
||||
[routerLink]="['edit']"
|
||||
class="vc-header__action"
|
||||
*mifosxHasPermission="'UPDATE_CASHIER'"
|
||||
>
|
||||
<i class="fas fa-pen"></i> {{ 'labels.buttons.Edit' | translate }}
|
||||
</button>
|
||||
<button mat-stroked-button color="warn" (click)="deleteCashier()" class="vc-header__delete" *mifosxHasPermission="'DELETECASHIER_TELLER'">
|
||||
<button
|
||||
mat-stroked-button
|
||||
color="warn"
|
||||
(click)="deleteCashier()"
|
||||
class="vc-header__delete"
|
||||
*mifosxHasPermission="'DELETECASHIER_TELLER'"
|
||||
>
|
||||
<i class="fas fa-trash-alt"></i> {{ 'labels.buttons.Delete' | translate }}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
@@ -49,7 +49,10 @@ $gray-900: #202124;
|
||||
height: 32px !important;
|
||||
box-shadow: 0 1px 3px rgba($primary, 0.3) !important;
|
||||
|
||||
i { margin-right: 6px; font-size: 12px; }
|
||||
i {
|
||||
margin-right: 6px;
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
|
||||
&__delete {
|
||||
@@ -58,7 +61,10 @@ $gray-900: #202124;
|
||||
font-weight: 600 !important;
|
||||
height: 32px !important;
|
||||
|
||||
i { margin-right: 6px; font-size: 12px; }
|
||||
i {
|
||||
margin-right: 6px;
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -70,9 +76,14 @@ $gray-900: #202124;
|
||||
border-color: $border !important;
|
||||
color: $gray-500 !important;
|
||||
|
||||
i { margin-right: 6px; }
|
||||
i {
|
||||
margin-right: 6px;
|
||||
}
|
||||
|
||||
&:hover { color: $primary !important; border-color: $primary !important; }
|
||||
&:hover {
|
||||
color: $primary !important;
|
||||
border-color: $primary !important;
|
||||
}
|
||||
}
|
||||
|
||||
.vc-card {
|
||||
@@ -112,7 +123,9 @@ $gray-900: #202124;
|
||||
gap: 16px;
|
||||
padding: 20px 24px;
|
||||
|
||||
@media (max-width: 600px) { grid-template-columns: 1fr !important; }
|
||||
@media (width <= 600px) {
|
||||
grid-template-columns: 1fr !important;
|
||||
}
|
||||
}
|
||||
|
||||
.vc-detail {
|
||||
|
||||
@@ -117,7 +117,14 @@
|
||||
<button type="button" mat-stroked-button [routerLink]="['../']" class="ct-actions__cancel">
|
||||
{{ 'labels.buttons.Cancel' | translate }}
|
||||
</button>
|
||||
<button type="submit" mat-flat-button color="primary" [disabled]="!tellerForm.valid" class="ct-actions__submit" *mifosxHasPermission="'CREATE_TELLER'">
|
||||
<button
|
||||
type="submit"
|
||||
mat-flat-button
|
||||
color="primary"
|
||||
[disabled]="!tellerForm.valid"
|
||||
class="ct-actions__submit"
|
||||
*mifosxHasPermission="'CREATE_TELLER'"
|
||||
>
|
||||
<i class="fas fa-check"></i> {{ 'labels.buttons.Submit' | translate }}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
@@ -43,9 +43,14 @@ $gray-900: #202124;
|
||||
border-color: $border !important;
|
||||
color: $gray-500 !important;
|
||||
|
||||
i { margin-right: 6px; }
|
||||
i {
|
||||
margin-right: 6px;
|
||||
}
|
||||
|
||||
&:hover { color: $primary !important; border-color: $primary !important; }
|
||||
&:hover {
|
||||
color: $primary !important;
|
||||
border-color: $primary !important;
|
||||
}
|
||||
}
|
||||
|
||||
.ct-card {
|
||||
@@ -84,7 +89,9 @@ $gray-900: #202124;
|
||||
gap: 4px 16px;
|
||||
padding: 16px 24px;
|
||||
|
||||
@media (max-width: 600px) { grid-template-columns: 1fr; }
|
||||
@media (width <= 600px) {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
}
|
||||
|
||||
.ct-field {
|
||||
@@ -119,6 +126,9 @@ $gray-900: #202124;
|
||||
height: 36px !important;
|
||||
box-shadow: 0 1px 3px rgba($primary, 0.3) !important;
|
||||
|
||||
i { margin-right: 6px; font-size: 12px; }
|
||||
i {
|
||||
margin-right: 6px;
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -111,7 +111,14 @@
|
||||
<button type="button" mat-stroked-button [routerLink]="['../']" class="et-actions__cancel">
|
||||
{{ 'labels.buttons.Cancel' | translate }}
|
||||
</button>
|
||||
<button type="submit" mat-flat-button color="primary" [disabled]="!tellerForm.valid" class="et-actions__submit" *mifosxHasPermission="'UPDATE_TELLER'">
|
||||
<button
|
||||
type="submit"
|
||||
mat-flat-button
|
||||
color="primary"
|
||||
[disabled]="!tellerForm.valid"
|
||||
class="et-actions__submit"
|
||||
*mifosxHasPermission="'UPDATE_TELLER'"
|
||||
>
|
||||
<i class="fas fa-check"></i> {{ 'labels.buttons.Submit' | translate }}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
@@ -43,9 +43,14 @@ $gray-900: #202124;
|
||||
border-color: $border !important;
|
||||
color: $gray-500 !important;
|
||||
|
||||
i { margin-right: 6px; }
|
||||
i {
|
||||
margin-right: 6px;
|
||||
}
|
||||
|
||||
&:hover { color: $primary !important; border-color: $primary !important; }
|
||||
&:hover {
|
||||
color: $primary !important;
|
||||
border-color: $primary !important;
|
||||
}
|
||||
}
|
||||
|
||||
.et-card {
|
||||
@@ -84,7 +89,9 @@ $gray-900: #202124;
|
||||
gap: 4px 16px;
|
||||
padding: 16px 24px;
|
||||
|
||||
@media (max-width: 600px) { grid-template-columns: 1fr; }
|
||||
@media (width <= 600px) {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
}
|
||||
|
||||
.et-field {
|
||||
@@ -119,6 +126,9 @@ $gray-900: #202124;
|
||||
height: 36px !important;
|
||||
box-shadow: 0 1px 3px rgba($primary, 0.3) !important;
|
||||
|
||||
i { margin-right: 6px; font-size: 12px; }
|
||||
i {
|
||||
margin-right: 6px;
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,7 +21,13 @@
|
||||
<input matInput (keyup)="applyFilter($event.target.value)" />
|
||||
</mat-form-field>
|
||||
<div class="table-buttons">
|
||||
<button mat-flat-button color="primary" class="btn-create" [routerLink]="['create']" *mifosxHasPermission="'CREATE_TELLER'">
|
||||
<button
|
||||
mat-flat-button
|
||||
color="primary"
|
||||
class="btn-create"
|
||||
[routerLink]="['create']"
|
||||
*mifosxHasPermission="'CREATE_TELLER'"
|
||||
>
|
||||
<fa-icon icon="plus" class="m-r-10"></fa-icon>
|
||||
{{ 'labels.buttons.Create Teller' | translate }}
|
||||
</button>
|
||||
@@ -45,7 +51,11 @@
|
||||
<th mat-header-cell *matHeaderCellDef mat-sort-header>{{ 'labels.inputs.Status' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let teller">
|
||||
<span [class]="teller.status === 'ACTIVE' ? 'status-badge status-active' : 'status-badge status-closed'">
|
||||
{{ teller.status === 'ACTIVE' ? ('labels.inputs.Active' | translate) : ('labels.catalogs.Inactive' | translate) }}
|
||||
{{
|
||||
teller.status === 'ACTIVE'
|
||||
? ('labels.inputs.Active' | translate)
|
||||
: ('labels.catalogs.Inactive' | translate)
|
||||
}}
|
||||
</span>
|
||||
</td>
|
||||
</ng-container>
|
||||
@@ -59,7 +69,8 @@
|
||||
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Actions' | translate }}</th>
|
||||
<td mat-cell *matCellDef="let teller" (click)="$event.stopPropagation()">
|
||||
<a class="cell-link" [routerLink]="[teller.id, 'cashiers']">
|
||||
<i class="fas fa-eye" style="margin-right: 6px; font-size: 11px;"></i>{{ 'labels.buttons.View Cashiers' | translate }}
|
||||
<i class="fas fa-eye" style="margin-right: 6px; font-size: 11px"></i
|
||||
>{{ 'labels.buttons.View Cashiers' | translate }}
|
||||
</a>
|
||||
</td>
|
||||
</ng-container>
|
||||
|
||||
@@ -13,10 +13,22 @@
|
||||
</button>
|
||||
<h2 class="vt-header__title">{{ tellerData.name }}</h2>
|
||||
<div class="vt-header__spacer"></div>
|
||||
<button mat-flat-button color="primary" [routerLink]="['edit']" class="vt-header__action" *mifosxHasPermission="'UPDATE_TELLER'">
|
||||
<button
|
||||
mat-flat-button
|
||||
color="primary"
|
||||
[routerLink]="['edit']"
|
||||
class="vt-header__action"
|
||||
*mifosxHasPermission="'UPDATE_TELLER'"
|
||||
>
|
||||
<i class="fas fa-pen"></i> {{ 'labels.buttons.Edit' | translate }}
|
||||
</button>
|
||||
<button mat-stroked-button color="warn" (click)="deleteTeller()" class="vt-header__delete" *mifosxHasPermission="'DELETE_TELLER'">
|
||||
<button
|
||||
mat-stroked-button
|
||||
color="warn"
|
||||
(click)="deleteTeller()"
|
||||
class="vt-header__delete"
|
||||
*mifosxHasPermission="'DELETE_TELLER'"
|
||||
>
|
||||
<i class="fas fa-trash-alt"></i> {{ 'labels.buttons.Delete' | translate }}
|
||||
</button>
|
||||
</div>
|
||||
@@ -55,7 +67,9 @@
|
||||
<div class="vt-detail">
|
||||
<span class="vt-detail__label">{{ 'labels.inputs.Status' | translate }}</span>
|
||||
<span class="vt-detail__value">
|
||||
<span [class]="tellerData.status === 'ACTIVE' ? 'status-badge status-active' : 'status-badge status-closed'">
|
||||
<span
|
||||
[class]="tellerData.status === 'ACTIVE' ? 'status-badge status-active' : 'status-badge status-closed'"
|
||||
>
|
||||
{{ tellerData.status | titlecase }}
|
||||
</span>
|
||||
</span>
|
||||
|
||||
@@ -46,7 +46,10 @@ $gray-900: #202124;
|
||||
height: 32px !important;
|
||||
box-shadow: 0 1px 3px rgba($primary, 0.3) !important;
|
||||
|
||||
i { margin-right: 6px; font-size: 12px; }
|
||||
i {
|
||||
margin-right: 6px;
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
|
||||
&__delete {
|
||||
@@ -55,7 +58,10 @@ $gray-900: #202124;
|
||||
font-weight: 600 !important;
|
||||
height: 32px !important;
|
||||
|
||||
i { margin-right: 6px; font-size: 12px; }
|
||||
i {
|
||||
margin-right: 6px;
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -67,9 +73,14 @@ $gray-900: #202124;
|
||||
border-color: $border !important;
|
||||
color: $gray-500 !important;
|
||||
|
||||
i { margin-right: 6px; }
|
||||
i {
|
||||
margin-right: 6px;
|
||||
}
|
||||
|
||||
&:hover { color: $primary !important; border-color: $primary !important; }
|
||||
&:hover {
|
||||
color: $primary !important;
|
||||
border-color: $primary !important;
|
||||
}
|
||||
}
|
||||
|
||||
.vt-card {
|
||||
@@ -108,7 +119,9 @@ $gray-900: #202124;
|
||||
gap: 16px;
|
||||
padding: 20px 24px;
|
||||
|
||||
@media (max-width: 600px) { grid-template-columns: 1fr; }
|
||||
@media (width <= 600px) {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
}
|
||||
|
||||
.vt-detail {
|
||||
@@ -159,12 +172,16 @@ $gray-900: #202124;
|
||||
background: #ecfdf5;
|
||||
color: #059669;
|
||||
|
||||
&::before { background: #059669; }
|
||||
&::before {
|
||||
background: #059669;
|
||||
}
|
||||
}
|
||||
|
||||
.status-closed {
|
||||
background: #fef2f2;
|
||||
color: #dc2626;
|
||||
|
||||
&::before { background: #dc2626; }
|
||||
&::before {
|
||||
background: #dc2626;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,11 @@
|
||||
<!--
|
||||
Copyright since 2025 Mifos Initiative
|
||||
|
||||
This Source Code Form is subject to the terms of the Mozilla Public
|
||||
License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
-->
|
||||
|
||||
<div class="wd-container">
|
||||
<div class="wd-header">
|
||||
<button mat-stroked-button [routerLink]="['../']" class="wd-back">
|
||||
@@ -55,8 +63,14 @@
|
||||
<button type="button" mat-stroked-button [routerLink]="['../']" class="wd-actions__cancel">
|
||||
{{ 'labels.buttons.Cancel' | translate }}
|
||||
</button>
|
||||
<button type="submit" mat-flat-button color="primary" [disabled]="workingDaysForm.pristine"
|
||||
*mifosxHasPermission="'UPDATE_WORKINGDAYS'" class="wd-actions__submit">
|
||||
<button
|
||||
type="submit"
|
||||
mat-flat-button
|
||||
color="primary"
|
||||
[disabled]="workingDaysForm.pristine"
|
||||
*mifosxHasPermission="'UPDATE_WORKINGDAYS'"
|
||||
class="wd-actions__submit"
|
||||
>
|
||||
<i class="fas fa-check"></i> {{ 'labels.buttons.Submit' | translate }}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
@@ -14,46 +14,123 @@ $gray-500: #9aa0a6;
|
||||
$gray-700: #5f6368;
|
||||
$gray-900: #202124;
|
||||
|
||||
.wd-container { max-width: 700px; margin: 0 auto; padding: 20px 16px; }
|
||||
.wd-container {
|
||||
max-width: 700px;
|
||||
margin: 0 auto;
|
||||
padding: 20px 16px;
|
||||
}
|
||||
|
||||
.wd-header {
|
||||
display: flex; align-items: center; gap: 14px; margin-bottom: 20px;
|
||||
&__title { font-size: 18px; font-weight: 600; color: $gray-900; margin: 0; }
|
||||
}
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 14px;
|
||||
margin-bottom: 20px;
|
||||
|
||||
.wd-back {
|
||||
border-radius: 8px !important; font-size: 12px !important; font-weight: 600 !important;
|
||||
height: 32px !important; border-color: $border !important; color: $gray-500 !important;
|
||||
i { margin-right: 6px; }
|
||||
&:hover { color: $primary !important; border-color: $primary !important; }
|
||||
}
|
||||
|
||||
.wd-card { background: #fff; border: 1px solid $border; border-radius: 10px; overflow: hidden; }
|
||||
|
||||
.wd-section {
|
||||
&__header {
|
||||
display: flex; align-items: center; gap: 10px; padding: 12px 24px;
|
||||
background: $gray-50; border-bottom: 1px solid $gray-200;
|
||||
i { font-size: 14px; color: $accent; }
|
||||
h3 { margin: 0; font-size: 14px; font-weight: 600; color: $gray-900; }
|
||||
&__title {
|
||||
font-size: 18px;
|
||||
font-weight: 600;
|
||||
color: $gray-900;
|
||||
margin: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.wd-body { padding: 20px 24px; }
|
||||
.wd-back {
|
||||
border-radius: 8px !important;
|
||||
font-size: 12px !important;
|
||||
font-weight: 600 !important;
|
||||
height: 32px !important;
|
||||
border-color: $border !important;
|
||||
color: $gray-500 !important;
|
||||
|
||||
i {
|
||||
margin-right: 6px;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
color: $primary !important;
|
||||
border-color: $primary !important;
|
||||
}
|
||||
}
|
||||
|
||||
.wd-card {
|
||||
background: #fff;
|
||||
border: 1px solid $border;
|
||||
border-radius: 10px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.wd-section {
|
||||
&__header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
padding: 12px 24px;
|
||||
background: $gray-50;
|
||||
border-bottom: 1px solid $gray-200;
|
||||
|
||||
i {
|
||||
font-size: 14px;
|
||||
color: $accent;
|
||||
}
|
||||
|
||||
h3 {
|
||||
margin: 0;
|
||||
font-size: 14px;
|
||||
font-weight: 600;
|
||||
color: $gray-900;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.wd-body {
|
||||
padding: 20px 24px;
|
||||
}
|
||||
|
||||
.wd-days {
|
||||
display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 8px;
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
|
||||
gap: 8px;
|
||||
}
|
||||
|
||||
.wd-day { padding: 8px 0; }
|
||||
.wd-day {
|
||||
padding: 8px 0;
|
||||
}
|
||||
|
||||
.wd-field { width: 100%; }
|
||||
.wd-field {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.wd-checkbox { padding: 12px 0 4px; }
|
||||
.wd-checkbox {
|
||||
padding: 12px 0 4px;
|
||||
}
|
||||
|
||||
.wd-actions {
|
||||
display: flex; justify-content: flex-end; gap: 10px; padding: 14px 24px;
|
||||
border-top: 1px solid $gray-200; background: $gray-50;
|
||||
&__cancel { border-radius: 8px !important; font-size: 13px !important; font-weight: 600 !important; height: 36px !important; border-color: $border !important; color: $gray-700 !important; }
|
||||
&__submit { border-radius: 8px !important; font-size: 13px !important; font-weight: 600 !important; height: 36px !important; box-shadow: 0 1px 3px rgba($primary, 0.3) !important; i { margin-right: 6px; font-size: 12px; } }
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
gap: 10px;
|
||||
padding: 14px 24px;
|
||||
border-top: 1px solid $gray-200;
|
||||
background: $gray-50;
|
||||
|
||||
&__cancel {
|
||||
border-radius: 8px !important;
|
||||
font-size: 13px !important;
|
||||
font-weight: 600 !important;
|
||||
height: 36px !important;
|
||||
border-color: $border !important;
|
||||
color: $gray-700 !important;
|
||||
}
|
||||
|
||||
&__submit {
|
||||
border-radius: 8px !important;
|
||||
font-size: 13px !important;
|
||||
font-weight: 600 !important;
|
||||
height: 36px !important;
|
||||
box-shadow: 0 1px 3px rgba($primary, 0.3) !important;
|
||||
|
||||
i {
|
||||
margin-right: 6px;
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user