diff --git a/apis/enhance_api.php b/apis/enhance_api.php
index 22d3535..d4d4675 100644
--- a/apis/enhance_api.php
+++ b/apis/enhance_api.php
@@ -1,4 +1,5 @@
$data[count($data) - 1],
- 'headers' => array_splice($data, 0, count($data) - 1)]
- );
+ 'headers' => array_splice($data, 0, count($data) - 1)]);
}
/**
@@ -481,24 +481,32 @@ public function getLogins()
*/
public function findCustomerByEmailWithLogging($email, $logCallback = null)
{
- if ($logCallback) $logCallback("Starting login search for email: $email");
+ if ($logCallback) {
+ $logCallback("Starting login search for email: $email");
+ }
// Get all logins for the main organization
$response = $this->getLogins();
if ($response->errors()) {
- if ($logCallback) $logCallback("ERROR: Failed to get logins - " . serialize($response->errors()));
+ if ($logCallback) {
+ $logCallback('ERROR: Failed to get logins - ' . serialize($response->errors()));
+ }
return null;
}
$logins = $response->response();
if (!isset($logins->items) || !is_array($logins->items)) {
- if ($logCallback) $logCallback("ERROR: No login items in API response");
+ if ($logCallback) {
+ $logCallback('ERROR: No login items in API response');
+ }
return null;
}
$loginCount = count($logins->items);
- if ($logCallback) $logCallback("Found $loginCount logins to check in main organization");
+ if ($logCallback) {
+ $logCallback("Found $loginCount logins to check in main organization");
+ }
// Search through logins to find matching email
for ($index = 0; $index < $loginCount; $index++) {
@@ -507,17 +515,23 @@ public function findCustomerByEmailWithLogging($email, $logCallback = null)
$loginId = $login->id ?? null;
$loginName = $login->name ?? 'Unknown';
- if ($logCallback) $logCallback("Checking login $index: '$loginName' - email: '$loginEmail'");
+ if ($logCallback) {
+ $logCallback("Checking login $index: '$loginName' - email: '$loginEmail'");
+ }
// Compare emails (case-sensitive)
if ($loginEmail === $email) {
- if ($logCallback) $logCallback("LOGIN MATCH FOUND! '$loginEmail' === '$email'");
+ if ($logCallback) {
+ $logCallback("LOGIN MATCH FOUND! '$loginEmail' === '$email'");
+ }
// We also try to find the customer record
$customerInfo = $this->findCustomerForLogin($loginId, $logCallback);
if ($customerInfo) {
- if ($logCallback) $logCallback("Found customer record: " . serialize($customerInfo));
+ if ($logCallback) {
+ $logCallback('Found customer record: ' . serialize($customerInfo));
+ }
return [
'customer_id' => $customerInfo['id'],
@@ -527,7 +541,9 @@ public function findCustomerByEmailWithLogging($email, $logCallback = null)
'email' => $loginEmail
];
} else {
- if ($logCallback) $logCallback("WARNING: Found login but no customer record. Using login info.");
+ if ($logCallback) {
+ $logCallback('WARNING: Found login but no customer record. Using login info.');
+ }
// Return login info with main org as fallback
return [
@@ -539,11 +555,15 @@ public function findCustomerByEmailWithLogging($email, $logCallback = null)
];
}
} else {
- if ($logCallback) $logCallback("No match: '$loginEmail' !== '$email'");
+ if ($logCallback) {
+ $logCallback("No match: '$loginEmail' !== '$email'");
+ }
}
}
- if ($logCallback) $logCallback("Search complete - no matching login found for email: $email");
+ if ($logCallback) {
+ $logCallback("Search complete - no matching login found for email: $email");
+ }
return null;
}
@@ -556,22 +576,30 @@ public function findCustomerByEmailWithLogging($email, $logCallback = null)
*/
private function findCustomerForLogin($loginId, $logCallback = null)
{
- if ($logCallback) $logCallback("Searching for customer records under main org");
+ if ($logCallback) {
+ $logCallback('Searching for customer records under main org');
+ }
// Get all customers under the main organization
$response = $this->getCustomers();
if ($response->errors()) {
- if ($logCallback) $logCallback("ERROR: Failed to get customers - " . serialize($response->errors()));
+ if ($logCallback) {
+ $logCallback('ERROR: Failed to get customers - ' . serialize($response->errors()));
+ }
return null;
}
$customers = $response->response();
- if ($logCallback) $logCallback("DEBUG: Raw customers response structure: " . json_encode($customers));
+ if ($logCallback) {
+ $logCallback('DEBUG: Raw customers response structure: ' . json_encode($customers));
+ }
if (!isset($customers->data) || !is_array($customers->data)) {
if (!isset($customers->items) || !is_array($customers->items)) {
- if ($logCallback) $logCallback("ERROR: No customer data in response. Available keys: " . implode(', ', array_keys((array)$customers)));
+ if ($logCallback) {
+ $logCallback('ERROR: No customer data in response. Available keys: ' . implode(', ', array_keys((array)$customers)));
+ }
return null;
}
// Try items array instead
@@ -580,13 +608,17 @@ private function findCustomerForLogin($loginId, $logCallback = null)
$customersList = $customers->data;
}
- if ($logCallback) $logCallback("Found " . count($customersList) . " customers in main organization");
+ if ($logCallback) {
+ $logCallback('Found ' . count($customersList) . ' customers in main organization');
+ }
// For now, just return the first customer if any exist
// In a real implementation, we might match by name or other criteria
if (count($customersList) > 0) {
$customer = $customersList[0];
- if ($logCallback) $logCallback("Returning first customer: " . ($customer->name ?? 'Unknown'));
+ if ($logCallback) {
+ $logCallback('Returning first customer: ' . ($customer->name ?? 'Unknown'));
+ }
return [
'id' => $customer->id ?? null,
@@ -594,7 +626,9 @@ private function findCustomerForLogin($loginId, $logCallback = null)
];
}
- if ($logCallback) $logCallback("No customers found in main organization");
+ if ($logCallback) {
+ $logCallback('No customers found in main organization');
+ }
return null;
}
@@ -607,26 +641,36 @@ private function findCustomerForLogin($loginId, $logCallback = null)
*/
private function findCustomerOrgForLogin($loginId, $logCallback = null)
{
- if ($logCallback) $logCallback("Searching for customer organization containing login ID: $loginId");
+ if ($logCallback) {
+ $logCallback("Searching for customer organization containing login ID: $loginId");
+ }
// Get all customer organizations
$response = $this->getCustomers();
if ($response->errors()) {
- if ($logCallback) $logCallback("ERROR: Failed to get customers - " . serialize($response->errors()));
+ if ($logCallback) {
+ $logCallback('ERROR: Failed to get customers - ' . serialize($response->errors()));
+ }
return null;
}
$customers = $response->response();
- if ($logCallback) $logCallback("DEBUG: Raw customers response structure: " . json_encode($customers));
+ if ($logCallback) {
+ $logCallback('DEBUG: Raw customers response structure: ' . json_encode($customers));
+ }
if (!isset($customers->data) || !is_array($customers->data)) {
- if ($logCallback) $logCallback("ERROR: No customer data in response. Available keys: " . implode(', ', array_keys((array)$customers)));
+ if ($logCallback) {
+ $logCallback('ERROR: No customer data in response. Available keys: ' . implode(', ', array_keys((array)$customers)));
+ }
return null;
}
$customerCount = count($customers->data);
- if ($logCallback) $logCallback("Checking $customerCount customer organizations");
+ if ($logCallback) {
+ $logCallback("Checking $customerCount customer organizations");
+ }
// Search through each customer organization
for ($index = 0; $index < $customerCount; $index++) {
@@ -634,7 +678,9 @@ private function findCustomerOrgForLogin($loginId, $logCallback = null)
$customer_org_id = $customer->id ?? null;
$customer_name = $customer->name ?? 'Unknown';
- if ($logCallback) $logCallback("Checking customer $index: '$customer_name' (ID: $customer_org_id)");
+ if ($logCallback) {
+ $logCallback("Checking customer $index: '$customer_name' (ID: $customer_org_id)");
+ }
if (!$customer_org_id) {
continue;
@@ -644,13 +690,17 @@ private function findCustomerOrgForLogin($loginId, $logCallback = null)
$membersResponse = $this->apiRequest("orgs/{$customer_org_id}/members", [], 'GET');
if ($membersResponse->errors()) {
- if ($logCallback) $logCallback("ERROR getting members for customer $index: " . serialize($membersResponse->errors()));
+ if ($logCallback) {
+ $logCallback("ERROR getting members for customer $index: " . serialize($membersResponse->errors()));
+ }
continue;
}
$members = $membersResponse->response();
if (!isset($members->data) || !is_array($members->data)) {
- if ($logCallback) $logCallback("No members data for customer $index");
+ if ($logCallback) {
+ $logCallback("No members data for customer $index");
+ }
continue;
}
@@ -658,10 +708,14 @@ private function findCustomerOrgForLogin($loginId, $logCallback = null)
foreach ($members->data as $memberIndex => $member) {
$memberLoginId = $member->login->id ?? null;
- if ($logCallback) $logCallback("Member {$index}-{$memberIndex} has login ID: $memberLoginId");
+ if ($logCallback) {
+ $logCallback("Member {$index}-{$memberIndex} has login ID: $memberLoginId");
+ }
if ($memberLoginId === $loginId) {
- if ($logCallback) $logCallback("FOUND! Customer organization '$customer_name' contains login ID $loginId");
+ if ($logCallback) {
+ $logCallback("FOUND! Customer organization '$customer_name' contains login ID $loginId");
+ }
return [
'customer_org_id' => $customer_org_id,
@@ -672,7 +726,9 @@ private function findCustomerOrgForLogin($loginId, $logCallback = null)
}
}
- if ($logCallback) $logCallback("Login ID $loginId not found in any customer organization");
+ if ($logCallback) {
+ $logCallback("Login ID $loginId not found in any customer organization");
+ }
return null;
}
@@ -743,7 +799,7 @@ public function createCustomerLogin($customer_org_id, $email, $name, $password)
$endpoints = [
"orgs/{$customer_org_id}/logins",
"logins?orgId={$customer_org_id}",
- "logins"
+ 'logins'
];
$lastResponse = null;
diff --git a/config.json b/config.json
index 058d3cf..0eece46 100644
--- a/config.json
+++ b/config.json
@@ -1,5 +1,5 @@
{
- "version": "1.0.1",
+ "version": "2.0.0",
"name": "Enhance.name",
"description": "Enhance.description",
"authors": [
@@ -21,8 +21,22 @@
"name_key": "domain"
},
"email_tags": {
- "module": ["server_label", "hostname", "org_id", "api_token"],
- "package": ["package"],
- "service": ["domain", "username", "password", "website_id", "customer_email"]
- }
-}
\ No newline at end of file
+ "module": [
+ "server_label",
+ "hostname",
+ "org_id",
+ "api_token"
+ ],
+ "package": [
+ "package"
+ ],
+ "service": [
+ "domain",
+ "username",
+ "password",
+ "website_id",
+ "customer_email"
+ ]
+ },
+ "icon": "bi-server"
+}
diff --git a/config/enhance.php b/config/enhance.php
index f4c0c5f..83d645e 100644
--- a/config/enhance.php
+++ b/config/enhance.php
@@ -1,4 +1,5 @@
Thank you for your business!
'
]
]);
-
diff --git a/enhance.php b/enhance.php
index 2de77c2..917d610 100644
--- a/enhance.php
+++ b/enhance.php
@@ -1,5 +1,7 @@
ModuleManager->getByClass(
+ \Illuminate\Support\Str::snake(get_class($this)),
+ Configure::get('Blesta.company_id')
+ );
+ $module = ($module[0] ?? []);
+ $this->view->set('module', (object) $module);
$this->view->set('vars', (object) $vars);
return $this->view->fetch();
@@ -125,6 +134,14 @@ public function manageEditRow($module_row, array &$vars)
$vars = $module_row->meta;
}
+ // Fetch module
+ Loader::loadModels($this, ['ModuleManager']);
+ $module = $this->ModuleManager->getByClass(
+ \Illuminate\Support\Str::snake(get_class($this)),
+ Configure::get('Blesta.company_id')
+ );
+ $module = ($module[0] ?? []);
+ $this->view->set('module', (object) $module);
$this->view->set('vars', (object) $vars);
return $this->view->fetch();
@@ -297,7 +314,7 @@ public function validateConnection($api_token, $hostname = null, $org_id = null)
$this->log($hostname . '|validateConnection', serialize($response->raw()), 'output', $success);
return $success;
- } catch (Exception $e) {
+ } catch (\Throwable $e) {
// Log the exception
$this->log($hostname . '|validateConnection', serialize(['error' => $e->getMessage()]), 'output', false);
return false;
@@ -380,7 +397,7 @@ public function getPackageFields($vars = null)
}
}
}
- } catch (Exception $e) {
+ } catch (\Throwable $e) {
// Log the error but continue with empty plans array
$this->log($row->meta->hostname . '|getPackageFields', 'Failed to fetch plans: ' . $e->getMessage(), 'output', false);
}
@@ -395,7 +412,7 @@ public function getPackageFields($vars = null)
$fields->fieldSelect(
'meta[package]',
$plans,
- (isset($vars->meta['package']) ? $vars->meta['package'] : null),
+ ($vars->meta['package'] ?? null),
['id' => 'enhance_package']
)
);
@@ -404,7 +421,7 @@ public function getPackageFields($vars = null)
$package->attach(
$fields->fieldText(
'meta[package]',
- (isset($vars->meta['package']) ? $vars->meta['package'] : null),
+ ($vars->meta['package'] ?? null),
['id' => 'enhance_package']
)
);
@@ -574,7 +591,7 @@ public function addService(
}
// Log each customer found
- $customerKeys = array_filter(array_keys($lastRequest), function($key) {
+ $customerKeys = array_filter(array_keys($lastRequest), function ($key) {
return strpos($key, 'customer_') === 0 && strpos($key, '_') === strrpos($key, '_');
});
foreach ($customerKeys as $key) {
@@ -582,7 +599,7 @@ public function addService(
}
// Log member details
- $memberKeys = array_filter(array_keys($lastRequest), function($key) {
+ $memberKeys = array_filter(array_keys($lastRequest), function ($key) {
return strpos($key, 'member_') === 0 || strpos($key, 'members_count_') === 0 || strpos($key, 'no_members_') === 0;
});
foreach ($memberKeys as $key) {
@@ -1032,7 +1049,7 @@ private function getFieldsFromInput(array $vars, $package)
$password = !empty($vars['password']) ? $vars['password'] : $this->generatePassword();
// Get package name from the package meta
- $package_name = isset($package->meta->package) ? $package->meta->package : 'default';
+ $package_name = $package->meta->package ?? 'default';
$fields = [
'domain' => $domain,
@@ -1216,7 +1233,7 @@ private function generateSsoLoginUrl($service_fields, $row)
$this->log($row->meta->hostname . '|sso_error', 'Failed to get members: ' . serialize($membersResponse->errors()), 'output', false);
$otp_response = null;
}
- } catch (Exception $e) {
+ } catch (\Throwable $e) {
$this->log($row->meta->hostname . '|sso_error', 'SSO exception: ' . $e->getMessage(), 'output', false);
$otp_response = null;
}
@@ -1238,11 +1255,14 @@ private function generateSsoLoginUrl($service_fields, $row)
} elseif ($otp_response) {
$this->log($row->meta->hostname . '|sso_error', 'SSO failed: ' . serialize($otp_response->errors()) . ' Status: ' . $otp_response->status(), 'output', false);
}
-
} else {
$missing = [];
- if (!isset($service_fields->customer_org_id)) $missing[] = 'customer_org_id';
- if (!$row) $missing[] = 'module_row';
+ if (!isset($service_fields->customer_org_id)) {
+ $missing[] = 'customer_org_id';
+ }
+ if (!$row) {
+ $missing[] = 'module_row';
+ }
$this->log($row ? $row->meta->hostname : 'unknown' . '|sso_error', 'Missing required fields for SSO: ' . implode(', ', $missing), 'output', false);
}
@@ -1362,7 +1382,7 @@ public function tabChangePassword(
$this->view->set('service_fields', $service_fields);
$this->view->set('service_id', $service->id);
$this->view->set('client_id', $service->client_id);
- $this->view->set('vars', (isset($vars) ? $vars : new stdClass()));
+ $this->view->set('vars', ($vars ?? new stdClass()));
$this->view->setDefaultView('components' . DS . 'modules' . DS . 'enhance' . DS);
return $this->view->fetch();
@@ -1451,7 +1471,7 @@ public function tabClientChangePassword(
$this->view->set('service_fields', $service_fields);
$this->view->set('service_id', $service->id);
$this->view->set('client_id', $service->client_id);
- $this->view->set('vars', (isset($vars) ? $vars : new stdClass()));
+ $this->view->set('vars', ($vars ?? new stdClass()));
$this->view->setDefaultView('components' . DS . 'modules' . DS . 'enhance' . DS);
return $this->view->fetch();
@@ -1527,7 +1547,7 @@ private function getServiceFields($vars = null)
$domain->attach(
$fields->fieldText(
'domain',
- (isset($vars->domain) ? $vars->domain : null),
+ ($vars->domain ?? null),
['id' => 'enhance_domain']
)
);
diff --git a/language/en_us/enhance.php b/language/en_us/enhance.php
index 3bcdb18..23f0a79 100644
--- a/language/en_us/enhance.php
+++ b/language/en_us/enhance.php
@@ -9,6 +9,7 @@
$lang['Enhance.module_row_plural'] = 'Servers';
$lang['Enhance.module_group'] = 'Server Group';
+$lang['Enhance.back_to_manage'] = 'Back';
// Module management
$lang['Enhance.add_module_row'] = 'Add Server';
@@ -27,6 +28,8 @@
$lang['Enhance.manage.module_rows_no_results'] = 'There are no Servers.';
$lang['Enhance.manage.module_groups_title'] = 'Groups';
+$lang['Enhance.manage.tab_rows'] = 'Servers';
+$lang['Enhance.manage.tab_groups'] = 'Server Groups';
$lang['Enhance.manage.module_groups_heading.name'] = 'Name';
$lang['Enhance.manage.module_groups_heading.module_rows'] = 'Servers';
$lang['Enhance.manage.module_groups_heading.options'] = 'Options';
diff --git a/views/default/add_row.pdt b/views/default/add_row.pdt
index 48b3076..536c774 100644
--- a/views/default/add_row.pdt
+++ b/views/default/add_row.pdt
@@ -1,48 +1,65 @@
- Widget->clear();
- $this->Widget->setLinkButtons([]);
- $this->Widget->create($this->_('Enhance.add_row.box_title', true));
- ?>
-
- Form->create();
- ?>
-
-
-
- Form->label($this->_('Enhance.row_meta.server_label', true), 'server_label');
- $this->Form->fieldText('server_label', (isset($vars->server_label) ? $vars->server_label : null), ['id' => 'server_label', 'class' => 'block']);
- ?>
-
-
- Form->label($this->_('Enhance.row_meta.hostname', true), 'hostname');
- $this->Form->fieldText('hostname', (isset($vars->hostname) ? $vars->hostname : null), ['id' => 'hostname', 'class' => 'block']);
- ?>
-
-
- Form->label($this->_('Enhance.row_meta.org_id', true), 'org_id');
- $this->Form->fieldText('org_id', (isset($vars->org_id) ? $vars->org_id : null), ['id' => 'org_id', 'class' => 'block']);
- ?>
-
-
- Form->label($this->_('Enhance.row_meta.api_token', true), 'api_token');
- $this->Form->fieldText('api_token', (isset($vars->api_token) ? $vars->api_token : null), ['id' => 'api_token', 'class' => 'block']);
- ?>
-
-
-
-
- Form->fieldSubmit('save', $this->_('Enhance.add_row.add_btn', true), ['class' => 'btn btn-primary pull-right']);
- ?>
-
- Form->end();
- ?>
-
- Widget->end();
+
+
+Widget->clear();
+$this->Widget->setLinkButtons([
+ [
+ 'name' => $this->_('Enhance.back_to_manage', true),
+ 'icon' => 'bi bi-arrow-left me-1',
+ 'attributes' => ['href' => $this->base_uri . 'settings/company/modules/manage/' . $module->id],
+ ],
+]);
+$this->Widget->create($this->_('Enhance.add_row.box_title', true));
+?>
+ Form->create(null, ['class' => 'disable-on-submit']); ?>
+
+
+
+ _('Enhance.row_meta.server_label'); ?>
+
+ Form->fieldText('server_label', isset($vars->server_label) ? $vars->server_label : null, [
+ 'id' => 'server_label',
+ 'class' => 'form-control',
+ ]); ?>
+
+
+
+
+ _('Enhance.row_meta.hostname'); ?>
+
+ Form->fieldText('hostname', isset($vars->hostname) ? $vars->hostname : null, [
+ 'id' => 'hostname',
+ 'class' => 'form-control',
+ ]); ?>
+
+
+
+
+ _('Enhance.row_meta.org_id'); ?>
+
+ Form->fieldText('org_id', isset($vars->org_id) ? $vars->org_id : null, [
+ 'id' => 'org_id',
+ 'class' => 'form-control',
+ ]); ?>
+
+
+
+
+ _('Enhance.row_meta.api_token'); ?>
+
+ Form->fieldText('api_token', isset($vars->api_token) ? $vars->api_token : null, [
+ 'id' => 'api_token',
+ 'class' => 'form-control',
+ ]); ?>
+
+
+ Widget->footer(); ?>
+
+ Form->fieldSubmit('save', $this->_('Enhance.add_row.add_btn', true), [
+ 'class' => 'btn btn-primary',
+ ]); ?>
+
+
+ Form->end(); ?>
+ Widget->end();
+?>
diff --git a/views/default/admin_service_info.pdt b/views/default/admin_service_info.pdt
index 815a448..8474268 100644
--- a/views/default/admin_service_info.pdt
+++ b/views/default/admin_service_info.pdt
@@ -1,28 +1,38 @@
-
-
-
- _('Enhance.service_info.username'); ?>
- _('Enhance.service_info.email'); ?>
- _('Enhance.service_info.password'); ?>
- _('Enhance.service_info.options');?>
+
+
+
+
+
\ No newline at end of file
diff --git a/views/default/client_service_info.pdt b/views/default/client_service_info.pdt
index 98b256f..9b517dc 100644
--- a/views/default/client_service_info.pdt
+++ b/views/default/client_service_info.pdt
@@ -1,34 +1,40 @@
-
-
-
-
-
- _('Enhance.service_info.username'); ?>
- _('Enhance.service_info.email'); ?>
- _('Enhance.service_info.password'); ?>
- _('Enhance.service_info.options'); ?>
-
-
-
-
-
- username) ? $this->Html->safe($service_fields->username) : null); ?>
- customer_email) ? $this->Html->safe($service_fields->customer_email) : null); ?>
- password) ? $this->Html->safe($service_fields->password) : null); ?>
-
-
- _('Enhance.service_info.option_login');?>
-
- _('Enhance.service_info.option_login');?>
-
-
-
-
-
-
+
+
+
+
+
+
+
+ _('Enhance.service_info.username'); ?>
+ _('Enhance.service_info.email'); ?>
+ _('Enhance.service_info.password'); ?>
+ _('Enhance.service_info.options'); ?>
+
+
+
+
+
+ username)
+ ? $this->Html->safe($service_fields->username)
+ : null; ?>
+ customer_email)
+ ? $this->Html->safe($service_fields->customer_email)
+ : null; ?>
+ password)
+ ? $this->Html->safe($service_fields->password)
+ : null; ?>
+
+
+ _('Enhance.service_info.option_login'); ?>
+
+ _('Enhance.service_info.option_login'); ?>
+
+
+
+
+
+
\ No newline at end of file
diff --git a/views/default/edit_row.pdt b/views/default/edit_row.pdt
index 7d82d32..de8c063 100644
--- a/views/default/edit_row.pdt
+++ b/views/default/edit_row.pdt
@@ -1,49 +1,65 @@
- Widget->clear();
- $this->Widget->setLinkButtons([]);
- $this->Widget->create($this->_('Enhance.edit_row.box_title', true));
- ?>
-
- Form->create();
- ?>
-
-
-
- Form->label($this->_('Enhance.row_meta.server_label', true), 'server_label');
- $this->Form->fieldText('server_label', (isset($vars->server_label) ? $vars->server_label : null), ['id' => 'server_label', 'class' => 'block']);
- ?>
-
-
- Form->label($this->_('Enhance.row_meta.hostname', true), 'hostname');
- $this->Form->fieldText('hostname', (isset($vars->hostname) ? $vars->hostname : null), ['id' => 'hostname', 'class' => 'block']);
- ?>
-
-
- Form->label($this->_('Enhance.row_meta.org_id', true), 'org_id');
- $this->Form->fieldText('org_id', (isset($vars->org_id) ? $vars->org_id : null), ['id' => 'org_id', 'class' => 'block']);
- ?>
-
-
- Form->label($this->_('Enhance.row_meta.api_token', true), 'api_token');
- $this->Form->fieldText('api_token', (isset($vars->api_token) ? $vars->api_token : null), ['id' => 'api_token', 'class' => 'block']);
- ?>
-
-
-
+
-
- Form->fieldSubmit('save', $this->_('Enhance.edit_row.edit_btn', true), ['class' => 'btn btn-primary pull-right']);
- ?>
-
- Form->end();
- ?>
-
- Widget->end();
+Widget->clear();
+$this->Widget->setLinkButtons([
+ [
+ 'name' => $this->_('Enhance.back_to_manage', true),
+ 'icon' => 'bi bi-arrow-left me-1',
+ 'attributes' => ['href' => $this->base_uri . 'settings/company/modules/manage/' . $module->id],
+ ],
+]);
+$this->Widget->create($this->_('Enhance.edit_row.box_title', true));
+?>
+ Form->create(null, ['class' => 'disable-on-submit']); ?>
+
+
+
+ _('Enhance.row_meta.server_label'); ?>
+
+ Form->fieldText('server_label', isset($vars->server_label) ? $vars->server_label : null, [
+ 'id' => 'server_label',
+ 'class' => 'form-control',
+ ]); ?>
+
+
+
+
+ _('Enhance.row_meta.hostname'); ?>
+
+ Form->fieldText('hostname', isset($vars->hostname) ? $vars->hostname : null, [
+ 'id' => 'hostname',
+ 'class' => 'form-control',
+ ]); ?>
+
+
+
+
+ _('Enhance.row_meta.org_id'); ?>
+
+ Form->fieldText('org_id', isset($vars->org_id) ? $vars->org_id : null, [
+ 'id' => 'org_id',
+ 'class' => 'form-control',
+ ]); ?>
+
+
+
+
+ _('Enhance.row_meta.api_token'); ?>
+
+ Form->fieldText('api_token', isset($vars->api_token) ? $vars->api_token : null, [
+ 'id' => 'api_token',
+ 'class' => 'form-control',
+ ]); ?>
+
+
+ Widget->footer(); ?>
+
+ Form->fieldSubmit('save', $this->_('Enhance.edit_row.edit_btn', true), [
+ 'class' => 'btn btn-primary',
+ ]); ?>
+
+
+ Form->end(); ?>
+ Widget->end();
+?>
diff --git a/views/default/manage.pdt b/views/default/manage.pdt
index 16cce89..7a2eb99 100644
--- a/views/default/manage.pdt
+++ b/views/default/manage.pdt
@@ -1,116 +1,182 @@
- $this->_('Enhance.add_module_row', true), 'attributes' => ['href' => $this->base_uri . 'settings/company/modules/addrow/' . $module->id]],
- ['name' => $this->_('Enhance.add_module_group', true), 'attributes' => ['href' => $this->base_uri . 'settings/company/modules/addgroup/' . $module->id]]
- ];
+
- $this->Widget->clear();
- $this->Widget->setLinkButtons($link_buttons);
+ $this->_('Enhance.add_module_row', true),
+ 'attributes' => ['href' => $this->base_uri . 'settings/company/modules/addrow/' . $module->id],
+ ],
+ [
+ 'name' => $this->_('Enhance.add_module_group', true),
+ 'attributes' => ['href' => $this->base_uri . 'settings/company/modules/addgroup/' . $module->id],
+ ],
+];
- $this->Widget->create($this->_('AdminCompanyModules.manage.boxtitle_manage', true, (isset($module->name) ? $this->Html->safe($module->name, true) : null)), ['id' => 'manage_enhance']);
- ?>
+$tabs = [
+ [
+ 'name' => $this->_('Enhance.manage.tab_rows', true),
+ 'current' => true,
+ 'attributes' => [
+ 'class' => 'rows',
+ 'href' => '#tab_rows',
+ 'id' => 'rows_tab',
+ 'data-bs-toggle' => 'tab',
+ 'role' => 'tab'
+ ]
+ ],
+ [
+ 'name' => $this->_('Enhance.manage.tab_groups', true),
+ 'current' => false,
+ 'attributes' => [
+ 'class' => 'groups',
+ 'href' => '#tab_groups',
+ 'id' => 'groups_tab',
+ 'data-bs-toggle' => 'tab',
+ 'role' => 'tab'
+ ]
+ ]
+];
-
-
_('Enhance.manage.module_rows_title'); ?>
-
- rows) ? $module->rows : []));
- if ($num_rows > 0) {
- ?>
-
-
- _('Enhance.manage.module_rows_heading.server_label'); ?>
- _('Enhance.manage.module_rows_heading.hostname'); ?>
- _('Enhance.manage.module_rows_heading.org_id'); ?>
- _('Enhance.manage.module_rows_heading.api_token'); ?>
- _('Enhance.manage.module_rows_heading.options'); ?>
-
-
- >
- rows[$i]->meta->server_label) ? $this->Html->safe($module->rows[$i]->meta->server_label) : null); ?>
- rows[$i]->meta->hostname) ? $this->Html->safe($module->rows[$i]->meta->hostname) : null); ?>
- rows[$i]->meta->org_id) ? $this->Html->safe($module->rows[$i]->meta->org_id) : null); ?>
- rows[$i]->meta->api_token) ? $this->Html->safe($module->rows[$i]->meta->api_token) : null); ?>
-
- _('Enhance.manage.module_rows.edit'); ?>
- Form->create($this->base_uri . 'settings/company/modules/deleterow/');
- $this->Form->fieldHidden('id', (isset($module->id) ? $module->id : null));
- $this->Form->fieldHidden('row_id', (isset($module->rows[$i]->id) ? $module->rows[$i]->id : null)); ?>
- _('Enhance.manage.module_rows.delete'); ?>
- Form->end(); ?>
-
-
-
-
-
-
-
- _('Enhance.manage.module_rows_no_results'); ?>
-
-
-
+$this->Widget->clear();
+$this->Widget->setLinkButtons($link_buttons);
+$this->Widget->setTabs($tabs);
+$this->Widget->setBodyWrapper(false);
-
-
_('Enhance.manage.module_groups_title');?>
-
+$this->Widget->create(
+ $this->_(
+ 'AdminCompanyModules.manage.boxtitle_manage',
+ true,
+ isset($module->name) ? $this->Html->safe($module->name, true) : null,
+ ),
+ ['id' => 'manage_enhance'],
+);
+?>
+
+
groups) ? $module->groups : []));
- if ($num_rows > 0) {
- ?>
-
-
- _('Enhance.manage.module_groups_heading.name');?>
- _('Enhance.manage.module_groups_heading.module_rows');?>
- _('Enhance.manage.module_groups_heading.options');?>
-
-
- >
- groups[$i]->name) ? $this->Html->safe($module->groups[$i]->name) : null);?>
- groups[$i]->rows) ? $module->groups[$i]->rows : []));?>
-
- _('Enhance.manage.module_groups.edit');?>
- Form->create($this->base_uri . 'settings/company/modules/deletegroup/');
- $this->Form->fieldHidden('id', (isset($module->id) ? $module->id : null));
- $this->Form->fieldHidden('group_id', (isset($module->groups[$i]->id) ? $module->groups[$i]->id : null));
- ?>
- _('Enhance.manage.module_groups.delete');?>
- Form->end();
- ?>
-
-
-
-
- rows) ? $module->rows : []);
+ if ($num_rows > 0) { ?>
+
+
+
+ _('Enhance.manage.module_rows_heading.server_label'); ?>
+ _('Enhance.manage.module_rows_heading.hostname'); ?>
+ _('Enhance.manage.module_rows_heading.org_id'); ?>
+ _('Enhance.manage.module_rows_heading.api_token'); ?>
+ _('Enhance.manage.module_rows_heading.options'); ?>
+
+
+
+
+
+ rows[$i]->meta->server_label)
+ ? $this->Html->safe($module->rows[$i]->meta->server_label)
+ : null; ?>
+ rows[$i]->meta->hostname)
+ ? $this->Html->safe($module->rows[$i]->meta->hostname)
+ : null; ?>
+ rows[$i]->meta->org_id)
+ ? $this->Html->safe($module->rows[$i]->meta->org_id)
+ : null; ?>
+ rows[$i]->meta->api_token)
+ ? $this->Html->safe($module->rows[$i]->meta->api_token)
+ : null; ?>
+
+
+
+
+ Form->create($this->base_uri . 'settings/company/modules/deleterow/', ['class' => 'd-inline']);
+ $this->Form->fieldHidden('id', isset($module->id) ? $module->id : null);
+ $this->Form->fieldHidden('row_id', isset($module->rows[$i]->id) ? $module->rows[$i]->id : null);
+ ?>
+
+
+
+ Form->end(); ?>
+
+
+
+
+
+
+
+
+
_('Enhance.manage.module_rows_no_results'); ?>
+
+
-
-
- _('Enhance.manage.module_groups.no_results');?>
-
-
- Widget->end();
+
+
+ groups) ? $module->groups : []);
+ if ($num_rows > 0) { ?>
+
+
+
+ _('Enhance.manage.module_groups_heading.name'); ?>
+ _('Enhance.manage.module_groups_heading.module_rows'); ?>
+ _('Enhance.manage.module_groups_heading.options'); ?>
+
+
+
+
+
+ groups[$i]->name)
+ ? $this->Html->safe($module->groups[$i]->name)
+ : null; ?>
+ groups[$i]->rows) ? $module->groups[$i]->rows : []); ?>
+
+
+
+
+ Form->create($this->base_uri . 'settings/company/modules/deletegroup/', ['class' => 'd-inline']);
+ $this->Form->fieldHidden('id', isset($module->id) ? $module->id : null);
+ $this->Form->fieldHidden('group_id', isset($module->groups[$i]->id) ? $module->groups[$i]->id : null);
+ ?>
+
+
+
+ Form->end(); ?>
+
+
+
+
+
+
+
+
+
_('Enhance.manage.module_groups.no_results'); ?>
+
+
-
-
\ No newline at end of file
+
+
+Widget->end(); ?>
diff --git a/views/default/tabChangePassword.pdt b/views/default/tabChangePassword.pdt
index a039021..7357fea 100644
--- a/views/default/tabChangePassword.pdt
+++ b/views/default/tabChangePassword.pdt
@@ -1,32 +1,32 @@
-
-
-
-
-
-
_('Enhance.tabChangePassword.header');?>
-
-
+
+
+
+
+
- Form->create();
- ?>
-
-
- Form->label($this->_('Enhance.service_fields.password', true), 'password');
- $this->Form->fieldPassword('password', ['id' => 'password', 'class' => 'form-control', 'value' => (isset($vars->password) ? $vars->password : null)]);
- ?>
-
+
+
+
+ Form->create(); ?>
+
+
+ Form->label($this->_('Enhance.service_fields.password', true), 'password');
+ $this->Form->fieldPassword('password', [
+ 'id' => 'password',
+ 'class' => 'form-control',
+ 'value' => isset($vars->password) ? $vars->password : null,
+ ]);
+ ?>
+
-
-
- _('Enhance.tabChangePassword.submit');?>
-
-
+
+
+ _('Enhance.tabChangePassword.submit'); ?>
+
- Form->end();
- ?>
+ Form->end(); ?>
+
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/views/default/tabClientChangePassword.pdt b/views/default/tabClientChangePassword.pdt
index 7d96777..7d9f090 100644
--- a/views/default/tabClientChangePassword.pdt
+++ b/views/default/tabClientChangePassword.pdt
@@ -1,26 +1,26 @@
-
_('Enhance.tabClientChangePassword.header');?>
+
_('Enhance.tabClientChangePassword.header'); ?>
- Form->create();
- ?>
+ Form->create(); ?>
Form->label($this->_('Enhance.service_fields.password', true), 'password');
- $this->Form->fieldPassword('password', ['id' => 'password', 'class' => 'form-control', 'value' => (isset($vars->password) ? $vars->password : null)]);
+ $this->Form->fieldPassword('password', [
+ 'id' => 'password',
+ 'class' => 'form-control',
+ 'value' => isset($vars->password) ? $vars->password : null,
+ ]);
?>
- _('Enhance.tabClientChangePassword.submit');?>
+ _('Enhance.tabClientChangePassword.submit'); ?>
- Form->end();
- ?>
+ Form->end(); ?>