Skip to content

Commit

Permalink
Merge pull request #5 from zunnu/4.x-dev
Browse files Browse the repository at this point in the history
Standard fixes
  • Loading branch information
zunnu committed Nov 16, 2022
2 parents c6901cd + df19c20 commit 53b6d63
Show file tree
Hide file tree
Showing 8 changed files with 492 additions and 435 deletions.
2 changes: 1 addition & 1 deletion src/AssociationsDebuggerPlugin.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@

use Cake\Console\CommandCollection;
use Cake\Core\BasePlugin;
use Cake\Core\Configure;
use Cake\Core\ContainerInterface;
use Cake\Core\PluginApplicationInterface;
use Cake\Http\MiddlewareQueue;
use Cake\Routing\RouteBuilder;
use Cake\Core\Configure;

/**
* Plugin for AssociationsDebugger
Expand Down
79 changes: 44 additions & 35 deletions src/Controller/AssociationsController.php
Original file line number Diff line number Diff line change
@@ -1,15 +1,14 @@
<?php
declare(strict_types=1);

namespace AssociationsDebugger\Controller;

use AssociationsDebugger\Controller\AppController;
use Cake\Log\Log;
use AssociationsDebugger\Gate;

/**
* EnforcerGroupPermissions Controller
*
* @property \Enforcer\Model\Table\EnforcerGroupPermissionsTable $EnforcerGroupPermissions
*
* @method \Enforcer\Model\Entity\EnforcerGroupPermission[]|\Cake\Datasource\ResultSetInterface paginate($object = null, array $settings = [])
*/
class AssociationsController extends AppController
Expand Down Expand Up @@ -38,14 +37,20 @@ public function index()

// search
if ($this->request->is('get')) {
if(!empty($this->request->getQueryParams())) {
if (!empty($this->request->getQueryParams())) {
$data = $this->request->getQueryParams();
$search = !empty($data['search']) ? json_decode($data['search'], true) : [];
if(!empty($data['deepChildren'])) $showDeepChildren = filter_var($data['deepChildren'], FILTER_VALIDATE_BOOLEAN);
if (!empty($data['deepChildren'])) {
$showDeepChildren = filter_var($data['deepChildren'], FILTER_VALIDATE_BOOLEAN);
}
$conditions = $this->_parseConditions($data);

if(!empty($data['associationTypes'])) $selectedTypes = explode(',', $data['associationTypes']);
if(!empty($search)) $data = $data + $search;
if (!empty($data['associationTypes'])) {
$selectedTypes = explode(',', $data['associationTypes']);
}
if (!empty($search)) {
$data = $data + $search;
}
}
}

Expand All @@ -57,21 +62,21 @@ public function index()
$this->set('activePlugins', $this->Gate->getPlugins());

$selectedNode = 'Root';
if(!empty($data['targetPlugin'])) {
if(!empty($data['targetModel'])) {
if (!empty($data['targetPlugin'])) {
if (!empty($data['targetModel'])) {
$selectedNode = $data['targetPlugin'] . '-' . $data['targetModel'];
} else {
$selectedNode = $data['targetPlugin'];
}
}

$assocationSearchSelect = ['Root' => 'Root'];
foreach($associations as $plugin => $assocation) {
foreach ($associations as $plugin => $assocation) {
$keys = array_keys($assocation);
$first = true;

foreach($keys as $k) {
if($first) {
foreach ($keys as $k) {
if ($first) {
$first = false;
$assocationSearchSelect[$plugin][$plugin] = $plugin . ' (plugin)';
}
Expand All @@ -82,7 +87,7 @@ public function index()

$this->set(compact('assocationSearchSelect', 'showDeepChildren', 'selectedTypes', 'selectedNode'));

if($this->request->is('ajax')) {
if ($this->request->is('ajax')) {
$this->render('element/associationTree');
}
}
Expand All @@ -99,24 +104,26 @@ public function details()
$conditions = [];
$showDeepChildren = true;

if($this->request->is('ajax')) {
if ($this->request->is('ajax')) {
$data = $this->request->getData();
$query = $this->request->getQueryParams();
$data = $data + $query;

if(!empty($this->request->getQueryParams())) {
if (!empty($this->request->getQueryParams())) {
$conditions = $this->_parseConditions($this->request->getQueryParams());
}
} elseif($this->request->is('get') && !empty($this->request->getQueryParams())) {
} elseif ($this->request->is('get') && !empty($this->request->getQueryParams())) {
$data = $this->request->getQueryParams();
}

if(!empty($data)) {
if (!empty($data)) {
$associations = $this->Gate->associations($conditions)->array();
$associationsCollection = $this->_parseSearch($associations, (!empty($data) ? $data : []));
}

if(!empty($data['deepChildren'])) $showDeepChildren = filter_var($data['deepChildren'], FILTER_VALIDATE_BOOLEAN);
if (!empty($data['deepChildren'])) {
$showDeepChildren = filter_var($data['deepChildren'], FILTER_VALIDATE_BOOLEAN);
}

$this->set('associationCollections', $associationsCollection);
$this->set('associationTypes', $this->Gate->associationTypes);
Expand All @@ -130,6 +137,7 @@ public function details()

/**
* Filter associations with target model, target plugin etc
*
* @param array $associations List of associations
* @param array $data Data from the ui, including target model, target plugin
* @return array Filtered data
Expand All @@ -138,32 +146,32 @@ private function _parseSearch($associations, $data): array
{
$associationsCollection = [];

if(!empty($data['targetPlugin']) && !empty($data['targetModel'])) {
if(!empty($associations[$data['targetPlugin']][$data['targetModel']])) {
if (!empty($data['targetPlugin']) && !empty($data['targetModel'])) {
if (!empty($associations[$data['targetPlugin']][$data['targetModel']])) {
$associationsCollection = [
$data['targetPlugin'] => [
$data['targetModel'] => $associations[$data['targetPlugin']][$data['targetModel']]
]
$data['targetModel'] => $associations[$data['targetPlugin']][$data['targetModel']],
],
];
}
} elseif(!empty($data['targetPlugin']) && empty($data['targetModel'])) {
if(!empty($associations[$data['targetPlugin']])) {
} elseif (!empty($data['targetPlugin']) && empty($data['targetModel'])) {
if (!empty($associations[$data['targetPlugin']])) {
$associationsCollection = [
$data['targetPlugin'] => $associations[$data['targetPlugin']]
$data['targetPlugin'] => $associations[$data['targetPlugin']],
];
}
} elseif(!empty($data['plugin']) && !empty($data['currentModel'])) {
if(!empty($associations[$data['plugin']][$data['currentModel']])) {
} elseif (!empty($data['plugin']) && !empty($data['currentModel'])) {
if (!empty($associations[$data['plugin']][$data['currentModel']])) {
$associationsCollection = [
$data['plugin'] => [
$data['currentModel'] => $associations[$data['plugin']][$data['currentModel']]
]
$data['currentModel'] => $associations[$data['plugin']][$data['currentModel']],
],
];
}
} elseif(!empty($data['plugin']) && empty($data['currentModel'])) {
if(!empty($associations[$data['plugin']])) {
} elseif (!empty($data['plugin']) && empty($data['currentModel'])) {
if (!empty($associations[$data['plugin']])) {
$associationsCollection = [
$data['plugin'] => $associations[$data['plugin']]
$data['plugin'] => $associations[$data['plugin']],
];
}
} else {
Expand All @@ -175,19 +183,20 @@ private function _parseSearch($associations, $data): array

/**
* Format conditions
*
* @param array $data Ui data to be formated
* @return array Formated version of conditions
*/
private function _parseConditions($data): array
{
$conditions = [];

if(!empty($data['plugins']) && $data['plugins'] !== 'undefined') {
if (!empty($data['plugins']) && $data['plugins'] !== 'undefined') {
$plugins = explode(',', $data['plugins']);
$conditions['plugins'] = $plugins;
}
if(!empty($data['associationTypes']) && $data['associationTypes'] !== 'undefined') {

if (!empty($data['associationTypes']) && $data['associationTypes'] !== 'undefined') {
$associationTypes = explode(',', $data['associationTypes']);
$conditions['associationTypes'] = $associationTypes;
}
Expand Down
Loading

0 comments on commit 53b6d63

Please sign in to comment.