From 48d2b9dac8851ef1bd3d8c0c564d5d49def36520 Mon Sep 17 00:00:00 2001 From: nadar Date: Tue, 4 Aug 2015 10:51:00 +0200 Subject: [PATCH] zaaTable and TableBlock update --- .../admin/resources/js/directives/forms.js | 29 ++++- modules/cmsadmin/blocks/TableBlock.php | 122 ++++-------------- 2 files changed, 45 insertions(+), 106 deletions(-) diff --git a/modules/admin/resources/js/directives/forms.js b/modules/admin/resources/js/directives/forms.js index b3599f69a..68417d498 100644 --- a/modules/admin/resources/js/directives/forms.js +++ b/modules/admin/resources/js/directives/forms.js @@ -337,16 +337,19 @@ zaa.directive('zaaTable', function() { $scope.model = [{}]; } - $scope.addColumn = function(name) { - $scope.columnName = null; + $scope.addColumn = function() { + var len = 0; + for (var o in $scope.model[0]) { + len++; + } + for(var i in $scope.model) { - $scope.model[i][name] = ''; + $scope.model[i][len] = ''; } } $scope.addRow = function() { var elmn = $scope.model[0]; - console.log(elmn); var ins = {}; for (var i in elmn) { ins[i] = ''; @@ -354,12 +357,24 @@ zaa.directive('zaaTable', function() { $scope.model.push(ins); } + + $scope.removeColumn = function(key) { + for (var i in $scope.model) { + var item = $scope.model[i]; + item.splice(key, 1); + } + } + + $scope.removeRow = function(key) { + $scope.model.splice(key, 1); + } }, template : function() { return '
' + - ''+ - '' + - ''+ + ''+ + '
Spalten:{{hk}}
#{{key+1}}
'+ + '' + + ''+ '
#{{hk+1}}
#{{key+1}}
'+ '
'; } diff --git a/modules/cmsadmin/blocks/TableBlock.php b/modules/cmsadmin/blocks/TableBlock.php index 9966dbb40..d0169c9e7 100644 --- a/modules/cmsadmin/blocks/TableBlock.php +++ b/modules/cmsadmin/blocks/TableBlock.php @@ -23,129 +23,53 @@ public function config() ['var' => 'table', 'label' => 'Text', 'type' => 'zaa-table'], ], 'cfgs' => [ - ['var' => 'header', 'label' => 'Erste Zeile als Tabellenkopf verwenden(Ja/Nein)', 'type' => 'zaa-text'], - ['var' => 'stripe', 'label' => 'Jede Zeile abwechselnd hervorheben (Zebramuster)(Ja/Nein)', 'type' => 'zaa-text'], - ['var' => 'border', 'label' => 'Rand zu jeder Seite der Tabelle hinzufügen(Ja/Nein)', 'type' => 'zaa-text'], + ['var' => 'header', 'label' => 'Erste Zeile als Tabellenkopf verwenden', 'type' => 'zaa-checkbox'], + ['var' => 'stripe', 'label' => 'Jede Zeile abwechselnd hervorheben (Zebramuster)', 'type' => 'zaa-checkbox'], + ['var' => 'border', 'label' => 'Rand zu jeder Seite der Tabelle hinzufügen', 'type' => 'zaa-checkbox'], ] ]; } public function getTableData() { - $tdata = $this->getVarValue('table'); - - $tableData = []; - - if(!empty($tdata)) { - - // skip first row if already used as header - if($this->useHeader()) { - $i1 = 0; - } else { - $i1 = 1; - } - - foreach($tdata as $row) { - if($i1++ > 0) { - $rowData = []; - - $i = 0; - foreach($row as $column) { - if($i++ > 0 ) { - array_push($rowData, $column); - } - } - array_push($tableData, $rowData); - } + $table = []; + $i = 0; + foreach($this->getVarValue('table', []) as $key => $row) { + $i++; + + if ($this->getCfgValue('header', 0) == 1 && $i == 1) { + continue; } + + $table[] = $row; } - - return $tableData; + + return $table; } public function getHeaderRow() { - $tdata = $this->getVarValue('table'); - - $headerRow = []; - - if(!empty($tdata)) { - $i = 0; - foreach($tdata[0] as $column) { - // skip first entry - if($i++ > 0) { - array_push($headerRow, $column); - } - } - } - - return $headerRow; - } - - /** - * @return bool - * @todo: delete function if checkbox type is available - */ - public function useHeader() - { - $useHeader = $this->getCfgValue('header', 'Ja'); - - if($useHeader == 'Ja') { - return true; - } else { - return false; - } - } - - /** - * @return bool - * @todo: delete function if checkbox type is available - */ - public function useStripe() - { - $useStripe = $this->getCfgValue('stripe', 'Nein'); - - if($useStripe == 'Ja') { - return true; - } else { - return false; - } - } - - /** - * @return bool - * @todo: delete function if checkbox type is available - */ - public function useBorder() - { - $useBorder = $this->getCfgValue('border', 'Nein'); - - if($useBorder == 'Ja') { - return true; - } else { - return false; - } + $data = $this->getVarValue('table', []); + + return (count($data) > 0) ? array_values($data)[0] : []; } public function extraVars() { return [ 'table' => $this->getTableData(), - 'header' => $this->getHeaderRow(), - 'useHeader' => $this->useHeader(), - 'useStripe' => $this->useStripe(), - 'useBorder' => $this->useBorder(), + 'headerData' => $this->getHeaderRow(), ]; } public function twigFrontend() { return '{% if extras.table is not empty %}'. - ''. - '{% if extras.useHeader %}'. + '
'. + '{% if cfgs.header %}'. ''. ''. - '{% for column in extras.header %}'. + '{% for column in extras.headerData %}'. '{% endfor %}'. ''. ''. @@ -167,10 +91,10 @@ public function twigAdmin() { return '

{% if extras.table is empty %}Es wurde noch keine Tabelle angelegt.{% else %}'. '

{{ column }}
'. - '{% if extras.useHeader %}'. + '{% if cfgs.header %}'. ''. ''. - '{% for column in extras.header %}'. + '{% for column in extras.headerData %}'. '{% endfor %}'. ''. ''.
{{ column }}