Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,12 @@ class CompactSettingsConfig extends mixins(MixinForm) {
return this.userStore.model;
}

get liveStatusLabel(): string {
return (this.isAppModeCosmetology)
? this.$t('compact.licenseRegistrationEnabledSubtextCosm')
: this.$t('compact.licenseRegistrationEnabledSubtext');
}

get submitLabel(): string {
return (this.isFormLoading) ? this.$t('common.loading') : this.$t('common.saveChanges');
}
Expand Down Expand Up @@ -189,7 +195,7 @@ class CompactSettingsConfig extends mixins(MixinForm) {
id: 'registration-enabled',
name: 'registration-enabled',
label: computed(() => this.$t('compact.licenseRegistrationEnabled')),
labelSubtext: computed(() => this.$t('compact.licenseRegistrationEnabledSubtext')),
labelSubtext: computed(() => this.liveStatusLabel),
validation: Joi.boolean().required().messages(this.joiMessages.boolean),
valueOptions: [
{ value: true, name: computed(() => this.$t('common.yes')) },
Expand Down
1 change: 1 addition & 0 deletions webroot/src/components/LicenseCard/LicenseCard.ts
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ class LicenseCard extends mixins(MixinForm) {
@Prop({ required: true }) licensee!: Licensee;
@Prop({ default: null }) homeState?: State | null;
@Prop({ default: false }) shouldIncludeLogo?: boolean;
@Prop({ default: false }) isPublicSearch!: boolean;

//
// Data
Expand Down
32 changes: 20 additions & 12 deletions webroot/src/components/LicenseCard/LicenseCard.vue
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,13 @@
</div>
<div class="license-heading-row">
<div class="license-type-abbrev">{{licenseTypeAbbrev}}</div>
<div class="license-status-description" ref="statusDescription">{{statusDescriptionDisplay}}</div>
<div
v-if="!isPublicSearch"
class="license-status-description"
ref="statusDescription"
>
{{statusDescriptionDisplay}}
</div>
</div>
<div class="license-info-grid">
<div class="info-item-container">
Expand All @@ -91,23 +97,25 @@
<div class="info-item-title">{{$t('licensing.licenseNumSymbol')}}</div>
<div class="info-item rr-block">{{licenseNumber}}</div>
</div>
<div class="info-item-container">
<div v-if="!isPublicSearch" class="info-item-container">
<div class="info-item-title">{{ $t('licensing.disciplineStatus') }}</div>
<div class="info-item">{{disciplineContent}}</div>
</div>
</div>
<div v-if="isCompactEligible" class="license-eligibility-container">
<div class="eligibility-icon-container eligible">
<CheckCircleIcon class="eligibility-icon" />
<template v-if="!isPublicSearch">
<div v-if="isCompactEligible" class="license-eligibility-container">
<div class="eligibility-icon-container eligible">
<CheckCircleIcon class="eligibility-icon" />
</div>
{{ $t('licensing.compactEligible') }}
</div>
{{ $t('licensing.compactEligible') }}
</div>
<div v-else class="license-eligibility-container" :class="{ 'inactive': !isActive }">
<div class="eligibility-icon-container not-eligible">
<CloseXIcon class="eligibility-icon" />
<div v-else class="license-eligibility-container" :class="{ 'inactive': !isActive }">
<div class="eligibility-icon-container not-eligible">
<CloseXIcon class="eligibility-icon" />
</div>
{{ $t('licensing.notCompactEligible') }}
</div>
{{ $t('licensing.notCompactEligible') }}
</div>
</template>
<TransitionGroup>
<Modal
v-if="isEncumberLicenseModalDisplayed"
Expand Down
6 changes: 6 additions & 0 deletions webroot/src/components/Licensee/LicenseeList/LicenseeList.ts
Original file line number Diff line number Diff line change
Expand Up @@ -235,6 +235,12 @@ class LicenseeList extends Vue {
return options;
}

get listDescriptionText(): string {
return (this.isAppModeCosmetology)
? this.$t('licensing.licensingListDescriptionCosm')
: this.$t('licensing.licensingListDescription');
}

get headerRecord() {
const record = {
firstName: this.$t('common.firstName'),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
</button>
</div>
</div>
<div class="list-description">{{ $t('licensing.licensingListDescription')}}</div>
<div class="list-description">{{ listDescriptionText }}</div>
<ListContainer
:listId="listId"
:listData="this.licenseStore.model"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -433,7 +433,6 @@ class LicenseeSearch extends mixins(MixinForm) {
this.formData.firstName.value = 'Test';
this.formData.lastName.value = 'User';
this.formData.homeState.value = 'co';
this.formData.investigationStatus.value = 'underInvestigation';
this.formData.encumberStartDate.value = moment().startOf('month').format('YYYY-MM-DD');
this.formData.encumberEndDate.value = moment().endOf('month').format('YYYY-MM-DD');

Expand All @@ -442,6 +441,7 @@ class LicenseeSearch extends mixins(MixinForm) {
this.formData.privilegePurchaseStartDate.value = moment().startOf('month').format('YYYY-MM-DD');
this.formData.privilegePurchaseEndDate.value = moment().endOf('month').format('YYYY-MM-DD');
this.formData.militaryStatus.value = 'approved';
this.formData.investigationStatus.value = 'underInvestigation';
this.formData.npi.value = 'ABC123';
} else if (this.isAppModeCosmetology) {
this.formData.licenseNumber.value = 'ABC123';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@
class="search-input military-status-select"
/>
</div>
<div class="search-form-row">
<div v-if="isAppModeJcc" class="search-form-row">
<InputSelect
:formInput="formData.investigationStatus"
class="search-input investigation-status-select"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,12 @@ class StateSettingsConfig extends mixins(MixinForm) {
return this.userStore?.model || null;
}

get liveStatusLabel(): string {
return (this.isAppModeCosmetology)
? this.$t('compact.privilegePurchaseEnabledSubtextCosm')
: this.$t('compact.privilegePurchaseEnabledSubtext');
}

get submitLabel(): string {
return (this.isFormLoading) ? this.$t('common.loading') : this.$t('common.saveChanges');
}
Expand Down Expand Up @@ -198,7 +204,7 @@ class StateSettingsConfig extends mixins(MixinForm) {
id: 'purchase-enabled',
name: 'purchase-enabled',
label: computed(() => this.$t('compact.privilegePurchaseEnabled')),
labelSubtext: computed(() => this.$t('compact.privilegePurchaseEnabledSubtext')),
labelSubtext: computed(() => this.liveStatusLabel),
validation: Joi.boolean().required().messages(this.joiMessages.boolean),
valueOptions: [
{ value: true, name: computed(() => this.$t('common.yes')) },
Expand Down
67 changes: 54 additions & 13 deletions webroot/src/components/Users/UserInvite/UserInvite.ts
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,14 @@ class UserInvite extends mixins(MixinForm) {
return this.$store.state.user;
}

get isAppModeJcc(): boolean {
return this.$store.getters.isAppModeJcc;
}

get isAppModeCosmetology(): boolean {
return this.$store.getters.isAppModeCosmetology;
}

get currentUser(): StaffUser {
return this.userStore.model;
}
Expand Down Expand Up @@ -127,12 +135,24 @@ class UserInvite extends mixins(MixinForm) {
}

get userPermissionOptionsCompact(): Array<PermissionOption> {
return [
{ value: Permission.NONE, name: this.$t('account.accessLevel.none') },
{ value: Permission.READ_PRIVATE, name: this.$t('account.accessLevel.readPrivate') },
{ value: Permission.READ_SSN, name: this.$t('account.accessLevel.readSsn') },
{ value: Permission.ADMIN, name: this.$t('account.accessLevel.admin') },
];
let permissionOptions: Array<PermissionOption> = [];

if (this.isAppModeCosmetology) {
permissionOptions = [
{ value: Permission.NONE, name: this.$t('account.accessLevel.none') },
{ value: Permission.READ_PRIVATE, name: this.$t('account.accessLevel.readPrivate') },
{ value: Permission.ADMIN, name: this.$t('account.accessLevel.admin') },
];
} else {
permissionOptions = [
{ value: Permission.NONE, name: this.$t('account.accessLevel.none') },
{ value: Permission.READ_PRIVATE, name: this.$t('account.accessLevel.readPrivate') },
{ value: Permission.READ_SSN, name: this.$t('account.accessLevel.readSsn') },
{ value: Permission.ADMIN, name: this.$t('account.accessLevel.admin') },
];
}

return permissionOptions;
}

get currentUserStatePermissions(): Array<StatePermission> {
Expand All @@ -142,13 +162,26 @@ class UserInvite extends mixins(MixinForm) {
}

get userPermissionOptionsState(): Array<PermissionOption> {
return [
{ value: Permission.NONE, name: this.$t('account.accessLevel.none') },
{ value: Permission.READ_PRIVATE, name: this.$t('account.accessLevel.readPrivate') },
{ value: Permission.READ_SSN, name: this.$t('account.accessLevel.readSsn') },
{ value: Permission.WRITE, name: this.$t('account.accessLevel.write') },
{ value: Permission.ADMIN, name: this.$t('account.accessLevel.admin') },
];
let permissionOptions: Array<PermissionOption> = [];

if (this.isAppModeCosmetology) {
permissionOptions = [
{ value: Permission.NONE, name: this.$t('account.accessLevel.none') },
{ value: Permission.READ_PRIVATE, name: this.$t('account.accessLevel.readPrivate') },
{ value: Permission.WRITE, name: this.$t('account.accessLevel.write') },
{ value: Permission.ADMIN, name: this.$t('account.accessLevel.admin') },
];
} else {
permissionOptions = [
{ value: Permission.NONE, name: this.$t('account.accessLevel.none') },
{ value: Permission.READ_PRIVATE, name: this.$t('account.accessLevel.readPrivate') },
{ value: Permission.READ_SSN, name: this.$t('account.accessLevel.readSsn') },
{ value: Permission.WRITE, name: this.$t('account.accessLevel.write') },
{ value: Permission.ADMIN, name: this.$t('account.accessLevel.admin') },
];
}

return permissionOptions;
}

get userOptionsState(): Array<PermissionOption> {
Expand Down Expand Up @@ -388,6 +421,10 @@ class UserInvite extends mixins(MixinForm) {
}
}

if (this.isAppModeCosmetology) {
delete response.isReadSsn;
}

return response;
}

Expand Down Expand Up @@ -447,6 +484,10 @@ class UserInvite extends mixins(MixinForm) {
break;
}

if (this.isAppModeCosmetology) {
delete response.isReadSsn;
}

return response;
}

Expand Down
67 changes: 54 additions & 13 deletions webroot/src/components/Users/UserRowEdit/UserRowEdit.ts
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,14 @@ class UserRowEdit extends mixins(MixinForm) {
return this.$store.state.user;
}

get isAppModeJcc(): boolean {
return this.$store.getters.isAppModeJcc;
}

get isAppModeCosmetology(): boolean {
return this.$store.getters.isAppModeCosmetology;
}

get currentUser(): StaffUser {
return this.userStore.model;
}
Expand Down Expand Up @@ -142,12 +150,24 @@ class UserRowEdit extends mixins(MixinForm) {
}

get userPermissionOptionsCompact(): Array<PermissionOption> {
return [
{ value: Permission.NONE, name: this.$t('account.accessLevel.none') },
{ value: Permission.READ_PRIVATE, name: this.$t('account.accessLevel.readPrivate') },
{ value: Permission.READ_SSN, name: this.$t('account.accessLevel.readSsn') },
{ value: Permission.ADMIN, name: this.$t('account.accessLevel.admin') },
];
let permissionOptions: Array<PermissionOption> = [];

if (this.isAppModeCosmetology) {
permissionOptions = [
{ value: Permission.NONE, name: this.$t('account.accessLevel.none') },
{ value: Permission.READ_PRIVATE, name: this.$t('account.accessLevel.readPrivate') },
{ value: Permission.ADMIN, name: this.$t('account.accessLevel.admin') },
];
} else {
permissionOptions = [
{ value: Permission.NONE, name: this.$t('account.accessLevel.none') },
{ value: Permission.READ_PRIVATE, name: this.$t('account.accessLevel.readPrivate') },
{ value: Permission.READ_SSN, name: this.$t('account.accessLevel.readSsn') },
{ value: Permission.ADMIN, name: this.$t('account.accessLevel.admin') },
];
}

return permissionOptions;
}

get currentUserStatePermissions(): Array<StatePermission> {
Expand All @@ -161,13 +181,26 @@ class UserRowEdit extends mixins(MixinForm) {
}

get userPermissionOptionsState(): Array<PermissionOption> {
return [
{ value: Permission.NONE, name: this.$t('account.accessLevel.none') },
{ value: Permission.READ_PRIVATE, name: this.$t('account.accessLevel.readPrivate') },
{ value: Permission.READ_SSN, name: this.$t('account.accessLevel.readSsn') },
{ value: Permission.WRITE, name: this.$t('account.accessLevel.write') },
{ value: Permission.ADMIN, name: this.$t('account.accessLevel.admin') },
];
let permissionOptions: Array<PermissionOption> = [];

if (this.isAppModeCosmetology) {
permissionOptions = [
{ value: Permission.NONE, name: this.$t('account.accessLevel.none') },
{ value: Permission.READ_PRIVATE, name: this.$t('account.accessLevel.readPrivate') },
{ value: Permission.WRITE, name: this.$t('account.accessLevel.write') },
{ value: Permission.ADMIN, name: this.$t('account.accessLevel.admin') },
];
} else {
permissionOptions = [
{ value: Permission.NONE, name: this.$t('account.accessLevel.none') },
{ value: Permission.READ_PRIVATE, name: this.$t('account.accessLevel.readPrivate') },
{ value: Permission.READ_SSN, name: this.$t('account.accessLevel.readSsn') },
{ value: Permission.WRITE, name: this.$t('account.accessLevel.write') },
{ value: Permission.ADMIN, name: this.$t('account.accessLevel.admin') },
];
}

return permissionOptions;
}

get userOptionsState(): Array<PermissionOption> {
Expand Down Expand Up @@ -389,6 +422,10 @@ class UserRowEdit extends mixins(MixinForm) {
}
}

if (this.isAppModeCosmetology) {
delete response.isReadSsn;
}

return response;
}

Expand Down Expand Up @@ -448,6 +485,10 @@ class UserRowEdit extends mixins(MixinForm) {
break;
}

if (this.isAppModeCosmetology) {
delete response.isReadSsn;
}

return response;
}

Expand Down
3 changes: 3 additions & 0 deletions webroot/src/locales/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -542,8 +542,10 @@
"licenseRegistrationTitle": "Live status",
"licenseRegistrationEnabled": "Is license registration enabled?",
"licenseRegistrationEnabledSubtext": "This enables live status for purchasing privileges, and <em>this action is irreversible.</em>",
"licenseRegistrationEnabledSubtextCosm": "This action grants all eligible licensees the ability to work in other compact states that are also live. <em>This action is irreversible.</em>",
"privilegePurchaseEnabled": "State is live for compact privilege purchase",
"privilegePurchaseEnabledSubtext": "This enables live status for purchasing privileges, and <em>this action is irreversible.</em>",
"privilegePurchaseEnabledSubtextCosm": "This action grants all eligible licensees in your state the ability to work in other compact states that are also live. Licensees from other live compact states will be automatically granted the ability to work in your state. <em>This action is irreversible.</em>",
"confirmSaveCompactTitle": "Are you sure you want to mark this state as live?",
"confirmSaveCompactYes": "Yes, mark as live",
"saveSuccessfulCompact": "Compact changes saved successfully",
Expand Down Expand Up @@ -586,6 +588,7 @@
"license": "License",
"licensingListTitle": "Licensing Data",
"licensingListDescription": "Click on a licensee to view the status of their privilege(s). The “Privileges” column includes both past and active privileges.",
"licensingListDescriptionCosm": "Click on a licensee to view details about where they can work under the Compact.",
"attestation": "Attestation",
"stateProvidedEmail": "State-provided email",
"stateEmail": "State email",
Expand Down
7 changes: 5 additions & 2 deletions webroot/src/locales/es.json
Original file line number Diff line number Diff line change
Expand Up @@ -525,9 +525,11 @@
"summaryReportEmailsSubtext": "Ingrese todos los destinatarios que recibirán informes resumidos periódicos.",
"licenseRegistrationTitle": "Estado en vivo",
"licenseRegistrationEnabled": "¿Está habilitado el registro de licencia?",
"licenseRegistrationEnabledSubtext": "Esto habilita el estado en vivo para los privilegios de compra, y <em>esta acción es irreversible.</em>",
"licenseRegistrationEnabledSubtext": "Esto habilita el estado en tiempo real para los privilegios de compra, y <em>esta acción es irreversible.</em>",
"licenseRegistrationEnabledSubtextCosm": "Esta medida otorga a todos los licenciatarios elegibles la capacidad de trabajar en otros estados miembros del pacto que también estén vigentes. <em>Esta medida es irreversible.</em>",
"privilegePurchaseEnabled": "El estado está en línea para la compra de privilegios compactos",
"privilegePurchaseEnabledSubtext": "Esto habilita el estado en vivo para los privilegios de compra, y <em>esta acción es irreversible.</em>",
"privilegePurchaseEnabledSubtext": "Esto habilita el estado en tiempo real para los privilegios de compra, y <em>esta acción es irreversible.</em>",
"privilegePurchaseEnabledSubtextCosm": "Esta acción otorga a todos los licenciatarios elegibles de su estado la capacidad de trabajar en otros estados miembros del acuerdo que también estén activos. Los licenciatarios de otros estados miembros del acuerdo que estén activos obtendrán automáticamente la capacidad de trabajar en su estado. <em>Esta acción es irreversible.</em>",
"confirmSaveCompactTitle": "¿Estás seguro de que deseas marcar este estado como activo?",
"confirmSaveCompactYes": "Sí, marcar como en vivo",
"saveSuccessfulCompact": "Los cambios compactos se guardaron correctamente",
Expand Down Expand Up @@ -569,6 +571,7 @@
"licensing": {
"licensingListTitle": "Datos de licencia",
"licensingListDescription": "Haga clic en un licenciatario para ver el estado de sus privilegios. La columna “Privilegios” incluye tanto los privilegios anteriores como los vigentes.",
"licensingListDescriptionCosm": "Haz clic en un licenciatario para ver detalles sobre dónde puede trabajar en virtud del Acuerdo.",
"searchTitle": "Iniciar una búsqueda",
"searchTitlePublic": "Verificar un privilegio compacto",
"attestation": "Atestación",
Expand Down
Loading
Loading