Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
72 commits
Select commit Hold shift + click to select a range
5a0e78c
Fix did page bug
varsha766 May 20, 2026
e1bf1e2
Merge branch 'master' into develop
varsha766 May 20, 2026
7f011ca
Fix UI bug (#175)
varsha766 May 20, 2026
95a3701
fixed error
varsha766 May 25, 2026
8a32884
updated package.json
varsha766 May 25, 2026
7e92154
Sync develop
varsha766 May 29, 2026
5b21994
Merge branch 'master' into develop
varsha766 May 29, 2026
3f00c5f
fixed typo bug
varsha766 May 29, 2026
2a7ba86
updated version
varsha766 May 29, 2026
80679fd
sync with develop
varsha766 May 29, 2026
b9b28db
fixed a bug
varsha766 May 29, 2026
88ede64
Added option to configure role for dashboard (#184)
varsha766 Jun 2, 2026
a001b65
Revert dashboard access (#186)
varsha766 Jun 3, 2026
eb4dc59
Bug/fix (#187)
varsha766 Jun 8, 2026
2cedf51
updated version
varsha766 Jun 2, 2026
86bcbb6
updated chnage log and package
varsha766 Jun 8, 2026
d95742f
fixed chnage.md
varsha766 Jun 8, 2026
d4e75ed
Merge branch 'master' into develop
Pratap2018 Jun 9, 2026
7cd3897
feat: UBO kyc sparation (#189)
Pratap2018 Jun 10, 2026
6e06d61
Minor UI changes (#192)
Vishwas1 Jun 11, 2026
b18d41e
UI/improvement (#193)
varsha766 Jun 18, 2026
0aacf75
Updated id widget (#194)
varsha766 Jun 29, 2026
05e80d4
Merge branch 'master' into develop
varsha766 Jun 29, 2026
2d00ec2
Zkp/widget config (#195)
Pratap2018 Jul 2, 2026
4800b3d
Zkp/widget config (#200)
varsha766 Jul 3, 2026
3cb1d28
Merge branch 'master' into develop
varsha766 Jul 3, 2026
153c734
update selective disclosure (#198)
Pratap2018 Jul 6, 2026
32e1108
Merge branch 'master' into develop
varsha766 Jul 6, 2026
7ce1133
keeping name and surname as default in sd
varsha766 Jul 6, 2026
fd9e1c9
Rearranged the stepper for kyc service
varsha766 Jul 6, 2026
b3f80ad
fixed bug
varsha766 Jul 6, 2026
d5a5b74
Merge branch 'master' into develop
varsha766 Jul 6, 2026
35ba43b
fixed consent
varsha766 Jul 6, 2026
3e3d9e6
Merge branch 'master' into develop
varsha766 Jul 6, 2026
ce01fd6
updated package json
varsha766 Jul 6, 2026
955c65b
Merge branch 'develop' of https://github.com/hypersign-protocol/entit…
varsha766 Jul 6, 2026
c04f753
updated change log
varsha766 Jul 6, 2026
97a3f4f
added toggel to configure if user will see doc scan or upload screen …
varsha766 Jul 29, 2026
a4390c0
Merge branch 'master' into develop
varsha766 Jul 29, 2026
666f6e1
Feature/mobile assisted verification toggle (#208)
varsha766 Aug 7, 2026
d16538d
Merge branch 'master' into develop
varsha766 Aug 7, 2026
506de5b
update logo in kyc report
Pratap2018 Aug 11, 2026
5ea06cc
Merge branch 'master' into develop
Pratap2018 Aug 11, 2026
fd3e996
fixed time unit
varsha766 Aug 12, 2026
509a67f
implemented UI. to support Juridiction restriction (#213)
Vishwas1 Aug 25, 2026
8b98f5d
Adr007 (#219)
varsha766 Aug 25, 2026
89ad357
Adr008 (#218)
varsha766 Aug 25, 2026
705d6a2
implemented riskScore
Vishwas1 Aug 28, 2026
0d82e6d
Refactor/credit api (#212)
varsha766 Aug 31, 2026
d8fbbd6
Merge branch 'master' into develop
varsha766 Aug 31, 2026
a33275e
Refactor/credit api (#221)
Pratap2018 Sep 1, 2026
15ff012
Refactor/credit api (#224)
Vishwas1 Sep 3, 2026
d0e8f1d
ci: add check tag (#227)
Pratap2018 Sep 3, 2026
af66f3d
Merge branch 'master' into develop
Pratap2018 Sep 3, 2026
91a9c9d
Ci (#228)
Pratap2018 Sep 3, 2026
ffa7a6a
Adr 010 (#223)
Pratap2018 Sep 4, 2026
426b430
update
Pratap2018 Sep 4, 2026
b293f89
New design updates (#231)
Vishwas1 Sep 4, 2026
7167cb1
update
Pratap2018 Sep 4, 2026
91cc3aa
update
Pratap2018 Sep 4, 2026
27840b5
update
Pratap2018 Sep 4, 2026
64b1e15
update bug fix
Pratap2018 Sep 4, 2026
ed277bb
update UI
Pratap2018 Sep 4, 2026
031b7ca
New design updates (#232)
Pratap2018 Sep 7, 2026
fc53644
Merge branch 'master' into develop
Pratap2018 Sep 7, 2026
1b1a115
Sync with develop (#233)
varsha766 Sep 7, 2026
457fdc7
Adr 011 (#234)
Pratap2018 Sep 16, 2026
2180d8a
Adr 011 (#235)
Pratap2018 Sep 16, 2026
687bbf3
Adr 011 (#236)
Pratap2018 Sep 18, 2026
20ccece
Fix login page (#237)
Pratap2018 Sep 18, 2026
e57a740
Adr 011 (#238)
Pratap2018 Sep 21, 2026
0227a2a
Merge branch 'master' into develop
varsha766 Sep 28, 2026
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
22 changes: 22 additions & 0 deletions Changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,28 @@

## [Unreleased]

## [3.15.2] - 2026-09-21

### Added

- Added user search by name, user ID, session ID, and email.

### Fixed

- Fixed user avatar colors changing while searching.

## [3.15.1] - 2026-09-18

### Fixed

- Fixed login will not allow /studio/login authenticated users

## [3.15.0] - 2026-09-16

### Added

- Improved User and Attempt Details UI.

## [3.14.7] - 2026-09-04
### Added

Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "entity-developer-dashboard",
"version": "3.14.7",
"version": "3.15.2",
"private": true,
"scripts": {
"serve": "vue-cli-service serve --mode production",
Expand Down
296 changes: 296 additions & 0 deletions src/components/session-details/SessionDecisionHistory.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,296 @@
<template>
<div class="session-decision-list" :class="{ compact }">
<div class="session-decision-timeline">
<div
v-for="decision in decisions"
:key="decision.key"
class="session-decision-item"
:class="decisionTone(decision.action)"
>
<div class="session-decision-event">
<div v-if="decision.action" class="session-decision-header">
<span class="session-decision-label">Status</span>
<span class="badge badge-pill px-2 py-1" :class="statusClass(decision.action)">
{{ statusLabel(decision.action) }}
</span>
</div>

<div class="session-decision-grid">
<template v-if="showAttempts && decision.attemptLabel">
<span class="session-decision-label">Attempt</span>
<button
type="button"
class="session-decision-value session-attempt-link"
@click="$emit('view-attempt', decision.sessionId)"
>
{{ decision.attemptLabel }}
</button>
</template>
<template v-if="decision.decidedBy">
<span class="session-decision-label">Decided By</span>
<span class="session-decision-value" :title="decision.decidedBy">{{ decision.decidedBy }}</span>
</template>
<template v-if="decision.decidedAt">
<span class="session-decision-label">Time</span>
<span class="session-decision-value">{{ formatDate(decision.decidedAt) }}</span>
</template>
<template v-if="decision.reasonCode">
<span class="session-decision-label">{{ isCleared(decision) ? "Review Result" : "Reason" }}</span>
<span class="session-decision-value" :title="reasonLabel(decision.reasonCode)">
<i
class="mdi mr-1"
:class="isCleared(decision) ? 'mdi-check-circle-outline text-success' : 'mdi-alert-circle-outline text-danger'"
></i>
{{ reasonLabel(decision.reasonCode) }}
</span>
</template>
<template v-if="decision.comments">
<span class="session-decision-label">Comment</span>
<span class="session-decision-value" :title="decision.comments">{{ decision.comments }}</span>
</template>
</div>
</div>
</div>
</div>
</div>
</template>

<script>
import UtilsMixin from "../../mixins/utils";
export default {
name: "SessionDecisionHistory",
mixins: [UtilsMixin],
props: {
decisions: {
type: Array,
default: () => [],
},
showAttempts: {
type: Boolean,
default: false,
},
compact: {
type: Boolean,
default: false,
},
reasonOptions: {
type: Array,
default: () => [],
},
},
mounted() {
this.resetScroll();
},
watch: {
decisions() {
this.resetScroll();
},
},
methods: {
resetScroll() {
this.$nextTick(() => {
if (this.$el) this.$el.scrollTop = 0;
});
},
formatCode(value) {
return String(value || "")
.toLowerCase()
.split("_")
.filter(Boolean)
.map(part => part.charAt(0).toUpperCase() + part.slice(1))
.join(" ");
},
decisionTone(action) {
return String(action || "").toLowerCase();
},
statusLabel(action) {
const labels = {
MANUAL_REVIEW: "Manual Review",
APPROVED: "Approved",
REJECTED: "Rejected",
};
return labels[action] || this.formatCode(action || "Decision");
},
statusClass(action) {
if (action === "REJECTED") return "badge-outline-danger";
if (action === "APPROVED") return "badge-outline-success";
return "badge-outline-warning";
},
reasonLabel(reasonCode) {
const reason = this.reasonOptions.find(item => item.value === reasonCode);
return reason ? reason.label : this.formatCode(reasonCode);
},
isCleared(decision) {
return decision.reasonCode === "MANUAL_REVIEW_CLEARED";
},
},
};
</script>

<style scoped>
.session-decision-list {
min-height: 0;
overflow-x: hidden;
overflow-y: auto;
overscroll-behavior: contain;
padding: 1px 6px 2px 0;
scrollbar-color: #cbd5e1 transparent;
scrollbar-gutter: stable;
scrollbar-width: thin;
}
.session-decision-list::-webkit-scrollbar {
width: 4px;
}
.session-decision-list::-webkit-scrollbar-track {
background: transparent;
}
.session-decision-list::-webkit-scrollbar-thumb {
background: #cbd5e1;
border-radius: 4px;
}
.session-decision-timeline {
margin-left: 4px;
padding-left: 20px;
position: relative;
}
.session-decision-timeline::before {
background: #e5e7eb;
bottom: 14px;
content: "";
left: 5px;
position: absolute;
top: 12px;
width: 1px;
}
.session-decision-item {
padding: 0 0 10px;
position: relative;
}
.session-decision-item::before {
background: #fff;
border: 2px solid #9ca3af;
border-radius: 50%;
content: "";
height: 10px;
left: -20px;
position: absolute;
top: 12px;
width: 10px;
z-index: 1;
}
.session-decision-item.approved::before {
background: #16a34a;
border-color: #16a34a;
}
.session-decision-item.rejected::before {
background: #dc2626;
border-color: #dc2626;
}
.session-decision-item:last-child {
padding-bottom: 0;
}
.session-decision-event {
background: #f9fafb;
border: 1px solid #eef0f3;
border-left: 3px solid #d97706;
border-radius: 6px;
padding: 9px 11px;
}
.session-decision-item.approved .session-decision-event {
border-left-color: #16a34a;
}
.session-decision-item.rejected .session-decision-event {
border-left-color: #dc2626;
}
.session-decision-header {
align-items: center;
border-bottom: 1px solid #e5e7eb;
display: flex;
justify-content: space-between;
padding-bottom: 7px;
}
.session-decision-grid {
display: grid;
gap: 5px 10px;
grid-template-columns: 96px minmax(0, 1fr);
margin-top: 7px;
}
.session-decision-label {
color: #6b7280;
font-size: 11px;
font-weight: 500;
}
.session-decision-value {
color: #374151;
font-size: 12px;
font-weight: 500;
min-width: 0;
overflow-wrap: anywhere;
text-align: right;
}
.session-attempt-link {
background: transparent;
border: 0;
color: #2563eb;
cursor: pointer;
font-weight: 700;
justify-self: end;
padding: 0;
}
.session-attempt-link:hover,
.session-attempt-link:focus-visible {
color: #1d4ed8;
text-decoration: underline;
}
.compact .session-decision-timeline {
margin-left: 1px;
padding-left: 17px;
}
.compact .session-decision-timeline::before {
left: 4px;
}
.compact .session-decision-item::before {
height: 9px;
left: -17px;
top: 11px;
width: 9px;
}
.compact .session-decision-event {
padding: 8px 9px;
}
.compact .session-decision-grid {
gap: 6px 8px;
grid-template-columns: 76px minmax(0, 1fr);
}
.compact .session-decision-label,
.compact .session-decision-value {
font-size: 10px;
line-height: 1.35;
}
</style>
Loading
Loading