From 66f686c01318ff01d150f014aee02b86c0da7d29 Mon Sep 17 00:00:00 2001 From: yuri Date: Wed, 27 Jul 2016 10:56:20 +0300 Subject: [PATCH] fix kb order --- .../Crm/Controllers/KnowledgeBaseArticle.php | 2 ++ .../Crm/Repositories/KnowledgeBaseArticle.php | 6 +++--- .../layouts/KnowledgeBaseArticle/detail.json | 1 - .../layouts/KnowledgeBaseArticle/detailSmall.json | 1 - .../Modules/Crm/Services/KnowledgeBaseArticle.php | 14 ++++++++++++-- application/Espo/Services/Record.php | 5 ++++- 6 files changed, 21 insertions(+), 8 deletions(-) diff --git a/application/Espo/Modules/Crm/Controllers/KnowledgeBaseArticle.php b/application/Espo/Modules/Crm/Controllers/KnowledgeBaseArticle.php index 9ee73eb760..863fa90aa3 100644 --- a/application/Espo/Modules/Crm/Controllers/KnowledgeBaseArticle.php +++ b/application/Espo/Modules/Crm/Controllers/KnowledgeBaseArticle.php @@ -49,6 +49,7 @@ class KnowledgeBaseArticle extends \Espo\Core\Controllers\Record $where = null; if (!empty($data['where'])) { $where = $data['where']; + $where = json_decode(json_encode($where), true); } $this->getRecordService()->moveUp($data['id'], $where); @@ -64,6 +65,7 @@ class KnowledgeBaseArticle extends \Espo\Core\Controllers\Record $where = null; if (!empty($data['where'])) { $where = $data['where']; + $where = json_decode(json_encode($where), true); } $this->getRecordService()->moveDown($data['id'], $where); diff --git a/application/Espo/Modules/Crm/Repositories/KnowledgeBaseArticle.php b/application/Espo/Modules/Crm/Repositories/KnowledgeBaseArticle.php index 46658406f8..d013eee017 100644 --- a/application/Espo/Modules/Crm/Repositories/KnowledgeBaseArticle.php +++ b/application/Espo/Modules/Crm/Repositories/KnowledgeBaseArticle.php @@ -93,11 +93,11 @@ class KnowledgeBaseArticle extends \Espo\Core\ORM\Repositories\RDB parent::beforeSave($entity, $options); $order = $entity->get('order'); if (is_null($order)) { - $order = $this->max('order'); + $order = $this->min('order'); if (!$order) { - $order = 999; + $order = 9999; } - $order++; + $order--; $entity->set('order', $order); } diff --git a/application/Espo/Modules/Crm/Resources/layouts/KnowledgeBaseArticle/detail.json b/application/Espo/Modules/Crm/Resources/layouts/KnowledgeBaseArticle/detail.json index bab5ba2431..a39a755119 100644 --- a/application/Espo/Modules/Crm/Resources/layouts/KnowledgeBaseArticle/detail.json +++ b/application/Espo/Modules/Crm/Resources/layouts/KnowledgeBaseArticle/detail.json @@ -6,7 +6,6 @@ [{"name":"status"}, {"name":"publishDate"}], [{"name":"categories"}, {"name":"expirationDate"}], [{"name":"portals"}, {"name":"language"}], - [{"name":"order"}, false], [{"name":"body", "fullWidth": true}], [{"name":"attachments", "fullWidth": true}] ] diff --git a/application/Espo/Modules/Crm/Resources/layouts/KnowledgeBaseArticle/detailSmall.json b/application/Espo/Modules/Crm/Resources/layouts/KnowledgeBaseArticle/detailSmall.json index 3891f1385d..0c0df7df51 100644 --- a/application/Espo/Modules/Crm/Resources/layouts/KnowledgeBaseArticle/detailSmall.json +++ b/application/Espo/Modules/Crm/Resources/layouts/KnowledgeBaseArticle/detailSmall.json @@ -5,7 +5,6 @@ [{"name":"name", "fullWidth": true}], [{"name":"status"}, {"name":"language"}], [{"name":"categories"}, {"name":"portals"}], - [{"name":"order"}, false], [{"name":"body", "fullWidth": true}], [{"name":"attachments", "fullWidth": true}] ] diff --git a/application/Espo/Modules/Crm/Services/KnowledgeBaseArticle.php b/application/Espo/Modules/Crm/Services/KnowledgeBaseArticle.php index 3b94acbd58..4fd43aafbf 100644 --- a/application/Espo/Modules/Crm/Services/KnowledgeBaseArticle.php +++ b/application/Espo/Modules/Crm/Services/KnowledgeBaseArticle.php @@ -101,8 +101,13 @@ class KnowledgeBaseArticle extends \Espo\Services\Record if (!$where) { $where = array(); } + + $params = array( + 'where' => $where + ); + $selectManager = $this->getSelectManager(); - $selectParams = $selectManager->buildSelectParams($where, true, true); + $selectParams = $selectManager->buildSelectParams($params, true, true); $selectParams['whereClause'][] = array( 'order<' => $currentIndex @@ -134,8 +139,13 @@ class KnowledgeBaseArticle extends \Espo\Services\Record if (!$where) { $where = array(); } + + $params = array( + 'where' => $where + ); + $selectManager = $this->getSelectManager(); - $selectParams = $selectManager->buildSelectParams($where, true, true); + $selectParams = $selectManager->buildSelectParams($params, true, true); $selectParams['whereClause'][] = array( 'order>' => $currentIndex diff --git a/application/Espo/Services/Record.php b/application/Espo/Services/Record.php index c4c3ab4cbd..3b0738859e 100644 --- a/application/Espo/Services/Record.php +++ b/application/Espo/Services/Record.php @@ -318,8 +318,11 @@ class Record extends \Espo\Core\Services\Base } } - protected function getSelectManager($entityType) + protected function getSelectManager($entityType = null) { + if (!$entityType) { + $entityType = $this->getEntityType(); + } return $this->getSelectManagerFactory()->create($entityType); }