diff --git a/modules/backend/assets/css/october.css b/modules/backend/assets/css/october.css index f2463d46c..b2b84d3a8 100644 --- a/modules/backend/assets/css/october.css +++ b/modules/backend/assets/css/october.css @@ -2558,6 +2558,7 @@ table.table.data tbody tr.safe td,table.table.data tbody tr.special td,table.tab table.table.data tbody td.column-break-word{word-wrap:break-word;word-break:break-all} table.table.data tbody td.column-single-line{overflow:hidden;text-overflow:ellipsis;white-space:nowrap} table.table.data tbody td.column-slim{padding-left:0;padding-right:0} +table.table.data tbody td.column-compact{padding:0} table.table.data tfoot a{color:#666666;text-decoration:none} table.table.data tfoot td,table.table.data tfoot th{border-color:#e2e2e2;padding:10px 15px} table.table.data .list-checkbox{padding-left:16px;padding-right:8px;width:52px;vertical-align:top;border-right:1px solid #eeeeee} diff --git a/modules/backend/assets/less/controls/lists.less b/modules/backend/assets/less/controls/lists.less index 279df548f..cdab8fe12 100644 --- a/modules/backend/assets/less/controls/lists.less +++ b/modules/backend/assets/less/controls/lists.less @@ -242,6 +242,10 @@ table.table.data { padding-left: 0; padding-right: 0; } + + td.column-compact { + padding: 0; + } } tfoot { diff --git a/modules/backend/behaviors/RelationController.php b/modules/backend/behaviors/RelationController.php index 1808c1d3a..c2710ff19 100644 --- a/modules/backend/behaviors/RelationController.php +++ b/modules/backend/behaviors/RelationController.php @@ -147,6 +147,11 @@ class RelationController extends ControllerBehavior */ public $readOnly = false; + /** + * @var bool Defers all binding actions using a session key when it is available. + */ + public $deferredBinding = false; + /** * Behavior constructor * @param Backend\Classes\Controller $controller @@ -215,6 +220,7 @@ class RelationController extends ControllerBehavior $this->relationModel = $this->relationObject->getRelated(); $this->readOnly = $this->getConfig('readOnly'); + $this->deferredBinding = $this->getConfig('deferredBinding'); $this->toolbarButtons = $this->evalToolbarButtons(); $this->viewMode = $this->viewMode ?: $this->evalViewMode(); $this->manageMode = $this->manageMode ?: $this->evalManageMode(); @@ -705,12 +711,14 @@ class RelationController extends ControllerBehavior $models = $this->relationModel->whereIn($foreignKeyName, $checkedIds)->get(); foreach ($models as $model) { - if ($this->model->exists) { - $this->relationObject->add($model); - } - else { + $useDefer = $this->deferredBinding || !$this->model->exists; + if ($useDefer) { $this->relationObject->add($model, $this->relationGetSessionKey()); } + else { + $this->relationObject->add($model); + } + } } diff --git a/modules/backend/widgets/lists/partials/_list_head_row.htm b/modules/backend/widgets/lists/partials/_list_head_row.htm index 73212b870..d1385f062 100644 --- a/modules/backend/widgets/lists/partials/_list_head_row.htm +++ b/modules/backend/widgets/lists/partials/_list_head_row.htm @@ -29,7 +29,10 @@ -