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->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']); ?> + +
+ + Form->fieldText('server_label', isset($vars->server_label) ? $vars->server_label : null, [ + 'id' => 'server_label', + 'class' => 'form-control', + ]); ?> +
+ +
+ + Form->fieldText('hostname', isset($vars->hostname) ? $vars->hostname : null, [ + 'id' => 'hostname', + 'class' => 'form-control', + ]); ?> +
+ +
+ + Form->fieldText('org_id', isset($vars->org_id) ? $vars->org_id : null, [ + 'id' => 'org_id', + 'class' => 'form-control', + ]); ?> +
+ +
+ + 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');?>
+ + + + + + + + + - - - + + + -
_('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); ?>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.option_login'); ?> + + _('Enhance.service_info.option_login'); ?> +
+ + \ 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->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']); ?> + +
+ + Form->fieldText('server_label', isset($vars->server_label) ? $vars->server_label : null, [ + 'id' => 'server_label', + 'class' => 'form-control', + ]); ?> +
+ +
+ + Form->fieldText('hostname', isset($vars->hostname) ? $vars->hostname : null, [ + 'id' => 'hostname', + 'class' => 'form-control', + ]); ?> +
+ +
+ + Form->fieldText('org_id', isset($vars->org_id) ? $vars->org_id : null, [ + 'id' => 'org_id', + 'class' => 'form-control', + ]); ?> +
+ +
+ + 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)]); - ?> -
+
_('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->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, + ]); ?>
- Form->end(); - ?> + Form->end(); ?>