diff --git a/cp/app/Controllers/ApplicationsController.php b/cp/app/Controllers/ApplicationsController.php
index 62637f6..eb75f1e 100644
--- a/cp/app/Controllers/ApplicationsController.php
+++ b/cp/app/Controllers/ApplicationsController.php
@@ -364,9 +364,7 @@ class ApplicationsController extends Controller
'reid' => null,
'redate' => null,
'acid' => null,
- 'acdate' => null,
- 'rgpstatus' => null,
- 'addPeriod' => null,
+ 'acdate' => null,
'authtype' => 'pw',
'authinfo' => $authInfo,
'phase_name' => $phaseName,
@@ -1087,7 +1085,17 @@ class ApplicationsController extends Controller
try {
$db->beginTransaction();
-
+
+ $db->update(
+ 'application_status',
+ [
+ 'status' => 'allocated'
+ ],
+ [
+ 'domain_id' => $domain['id']
+ ]
+ );
+
$currentDateTime = new \DateTime();
$crdate = $currentDateTime->format('Y-m-d H:i:s.v'); // Current timestamp
diff --git a/cp/resources/views/partials/js-applications.twig b/cp/resources/views/partials/js-applications.twig
index afc0b67..1c768f7 100644
--- a/cp/resources/views/partials/js-applications.twig
+++ b/cp/resources/views/partials/js-applications.twig
@@ -11,23 +11,29 @@
function domainLinkFormatter(cell){
var displayName = cell.getValue();
var punycodeName = cell.getRow().getData().name_o;
- return `${displayName}`;
+ return `${displayName}`;
}
function actionsFormatter(cell, formatterParams, onRendered) {
var rowData = cell.getRow().getData();
var actionButtons = '';
-
+
var isRejected = rowData.application_status.some(statusObj => statusObj.status && statusObj.status.includes('rejected'));
var isInvalid = rowData.application_status.some(statusObj => statusObj.status && statusObj.status.includes('invalid'));
+ var isValidated = rowData.application_status.some(statusObj => statusObj.status && statusObj.status.includes('validated'));
+ var isAllocated = rowData.application_status.some(statusObj => statusObj.status && statusObj.status.includes('allocated'));
- if (!isRejected && !isInvalid) {
+ if (!isRejected && !isInvalid && !isValidated && !isAllocated) {
actionButtons += ` `;
actionButtons += ` `;
actionButtons += ` `;
actionButtons += ``;
+ } else if ((isValidated || isAllocated) && !isRejected && !isInvalid) {
+ actionButtons += ` Validated`;
+ } else if ((isRejected || isInvalid) && !isValidated && !isAllocated) {
+ actionButtons += ` Invalid`;
} else {
- actionButtons += ` Completed`;
+ actionButtons += ` Completed`;
}
return actionButtons;
@@ -45,22 +51,37 @@
// Check if statusArray is empty or not
return createBadge(statusArray, 'info');
}
-
+
function statusFormatter(cell) {
var statusArray = cell.getValue();
var rowData = cell.getRow().getData(); // Get the entire row data
- // Function to create a badge
- function createBadge(text, badgeClass) {
- return `${text}`;
+ // Function to create status text with appropriate class
+ function createStatusText(text, statusClass) {
+ return `${text}`;
}
// Check if statusArray is empty or not
if (statusArray && Array.isArray(statusArray) && statusArray.length > 0) {
- return statusArray.map(item => createBadge(item.status, 'lime')).join(' ');
+ return statusArray.map(item => {
+ let status = item.status.toLowerCase();
+
+ if (status.includes('invalid') || status.includes('rejected')) {
+ return createStatusText(item.status, 'red');
+ } else if (status.includes('validated') || status.includes('allocated')) {
+ return createStatusText(item.status, 'green');
+ } else if (status.includes('pendingvalidation')) {
+ return createStatusText(item.status, 'orange'); // Color for pending validation
+ } else {
+ return createStatusText(item.status, 'gray'); // Default/unknown status
+ }
+ }).join(' ');
+ } else {
+ // Handle case when statusArray is empty or undefined
+ return `Unknown`;
}
}
-
+
var searchTerm = ""; // global variable to hold the search term
function updateSearchTerm(term) {
@@ -123,8 +144,8 @@
placeholder: "{{ __('No Data') }}",
columns:[
{formatter:"responsiveCollapse", width:30, minWidth:30, hozAlign:"center", resizable:false, headerSort:false, responsive:0},
- {title:"{{ __('Name') }}", field:"name", width:250, resizable:false, headerSort:true, formatter: domainLinkFormatter, responsive:0},
- {title:"{{ __('Applicant') }}", width:150, field:"registrant_identifier", resizable:false, headerSort:true, responsive:2},
+ {title:"{{ __('Name') }}", field:"name", width:200, resizable:false, headerSort:true, formatter: domainLinkFormatter, responsive:0},
+ {title:"{{ __('Applicant') }}", width:200, field:"registrant_identifier", resizable:false, headerSort:true, responsive:2},
{title:"{{ __('Creation Date') }}", width:250, minWidth:150, field:"crdate", resizable:false, headerSort:true, responsive:2},
{title:"{{ __('Phase') }}", width:150, minWidth:100, field:"phase_type", formatter: phaseFormatter, resizable:false, headerSort:true, responsive:2},
{title:"{{ __('Status') }}", width:200, field:"application_status", formatter: statusFormatter, resizable:false, headerSort:true, download:false, responsive:2},