mirror of
https://github.com/symbiote/silverstripe-gridfieldextensions.git
synced 2024-10-22 15:05:39 +00:00
Merge pull request #163 from SomarDesignStudios/pulls/fix-lastedited-table
Finds base table to update LastEdited
This commit is contained in:
commit
d0cb616a40
@ -468,7 +468,16 @@ class GridFieldOrderableRows extends RequestHandler implements
|
|||||||
// match to order the objects.
|
// match to order the objects.
|
||||||
if (!$isVersioned) {
|
if (!$isVersioned) {
|
||||||
$sortTable = $this->getSortTable($list);
|
$sortTable = $this->getSortTable($list);
|
||||||
$additionalSQL = (!$list instanceof ManyManyList) ? ', "LastEdited" = NOW()' : '';
|
$additionalSQL = '';
|
||||||
|
$baseTable = $sortTable;
|
||||||
|
if(class_exists($sortTable)) {
|
||||||
|
$baseTable = singleton($sortTable)->baseTable();
|
||||||
|
}
|
||||||
|
$isBaseTable = ($baseTable == $sortTable);
|
||||||
|
if(!$list instanceof ManyManyList && $isBaseTable){
|
||||||
|
$additionalSQL = ', "LastEdited" = NOW()';
|
||||||
|
}
|
||||||
|
|
||||||
foreach($sortedIDs as $sortValue => $id) {
|
foreach($sortedIDs as $sortValue => $id) {
|
||||||
if($map[$id] != $sortValue) {
|
if($map[$id] != $sortValue) {
|
||||||
DB::query(sprintf(
|
DB::query(sprintf(
|
||||||
@ -479,6 +488,14 @@ class GridFieldOrderableRows extends RequestHandler implements
|
|||||||
$additionalSQL,
|
$additionalSQL,
|
||||||
$this->getSortTableClauseForIds($list, $id)
|
$this->getSortTableClauseForIds($list, $id)
|
||||||
));
|
));
|
||||||
|
|
||||||
|
if(!$isBaseTable) {
|
||||||
|
DB::query(sprintf(
|
||||||
|
'UPDATE "%s" SET "LastEdited" = NOW() WHERE %s',
|
||||||
|
$baseTable,
|
||||||
|
$this->getSortTableClauseForIds($list, $id)
|
||||||
|
));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -503,7 +520,16 @@ class GridFieldOrderableRows extends RequestHandler implements
|
|||||||
$field = $this->getSortField();
|
$field = $this->getSortField();
|
||||||
$table = $this->getSortTable($list);
|
$table = $this->getSortTable($list);
|
||||||
$clause = sprintf('"%s"."%s" = 0', $table, $this->getSortField());
|
$clause = sprintf('"%s"."%s" = 0', $table, $this->getSortField());
|
||||||
$additionalSQL = (!$list instanceof ManyManyList) ? ', "LastEdited" = NOW()' : '';
|
|
||||||
|
$additionalSQL = '';
|
||||||
|
$baseTable = $table;
|
||||||
|
if(class_exists($table)) {
|
||||||
|
$baseTable = singleton($table)->baseTable();
|
||||||
|
}
|
||||||
|
$isBaseTable = ($baseTable == $table);
|
||||||
|
if(!$list instanceof ManyManyList && $isBaseTable){
|
||||||
|
$additionalSQL = ', "LastEdited" = NOW()';
|
||||||
|
}
|
||||||
|
|
||||||
foreach($list->where($clause)->column('ID') as $id) {
|
foreach($list->where($clause)->column('ID') as $id) {
|
||||||
$max = DB::query(sprintf('SELECT MAX("%s") + 1 FROM "%s"', $field, $table));
|
$max = DB::query(sprintf('SELECT MAX("%s") + 1 FROM "%s"', $field, $table));
|
||||||
@ -517,6 +543,14 @@ class GridFieldOrderableRows extends RequestHandler implements
|
|||||||
$additionalSQL,
|
$additionalSQL,
|
||||||
$this->getSortTableClauseForIds($list, $id)
|
$this->getSortTableClauseForIds($list, $id)
|
||||||
));
|
));
|
||||||
|
|
||||||
|
if(!$isBaseTable) {
|
||||||
|
DB::query(sprintf(
|
||||||
|
'UPDATE "%s" SET "LastEdited" = NOW() WHERE %s',
|
||||||
|
$baseTable,
|
||||||
|
$this->getSortTableClauseForIds($list, $id)
|
||||||
|
));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user