diff --git a/Layout/default/vueHeader.php b/Layout/default/vueHeader.php index 6d29c3b5a..e24275a07 100644 --- a/Layout/default/vueHeader.php +++ b/Layout/default/vueHeader.php @@ -70,8 +70,6 @@
- - diff --git a/application/Pop/PopController.php b/application/Pop/PopController.php index f1f225c8a..15d7d3ac1 100644 --- a/application/Pop/PopController.php +++ b/application/Pop/PopController.php @@ -32,6 +32,9 @@ class PopController extends mfBaseController "name" => $pop->name, "networkArea" => $pop->networks, "location" => $pop->location, + "state" => $pop->state, + "folder_link" => $pop->folder_link, + "doku_date" => $pop->doku_date, "vlan" => [ "public" => $pop->vlan_public, "nat" => $pop->vlan_nat, @@ -51,6 +54,7 @@ class PopController extends mfBaseController ], "NETWORKS" => $networks, "POPS" => $pops, + "IS_ADMIN" => $this->me->is("Admin"), ]; $this->layout()->set("vueViewName", "Pop"); diff --git a/application/Pop/PopModel.php b/application/Pop/PopModel.php index a96561c0a..3247a7c74 100644 --- a/application/Pop/PopModel.php +++ b/application/Pop/PopModel.php @@ -102,7 +102,7 @@ class PopModel { $items = []; $db = FronkDB::singleton(); - $sql = "SELECT `Pop`.`id`, `Pop`.`network_id`, `Pop`.`name`, `Pop`.`gps_lat`, `Pop`.`gps_long`, `Pop`.`location`, `Pop`.`vlan_public`, `Pop`.`vlan_nat`, `Pop`.`vlan_ipv6`, `Pop`.`note`,`Network`.`name` as Networkname FROM `Pop` + $sql = "SELECT `Pop`.*,`Network`.`name` as Networkname FROM `Pop` INNER JOIN `PopNetwork` ON (`Pop`.`id`=`PopNetwork`.`pop_id`) INNER JOIN `Network` ON (`Network`.`id`=`PopNetwork`.`network_id`)"; $res = $db->query($sql); diff --git a/public/js/pages/Pop/Pop.js b/public/js/pages/Pop/Pop.js index b8465cb28..7746c1f15 100644 --- a/public/js/pages/Pop/Pop.js +++ b/public/js/pages/Pop/Pop.js @@ -15,6 +15,10 @@ Vue.component('Pop', { {{row.name}} + + + {{row.doku_date ? window.moment.unix(row.doku_date).format('DD.MM.YYYY') : ''}} + Public: {{row.vlan.public}} @@ -34,6 +38,7 @@ Vue.component('Pop', { + @@ -50,7 +55,7 @@ Vue.component('Pop', { defaultPageSize: 25, headers: [ {text: 'Name', key: 'name', priority: 10}, - {text: 'Netzgebiet', key: 'networkArea', class: 'text-center', + {text: 'Netzgebiet', key: 'networkArea', class: 'text-center', // TODO: fix autocomplete Filter // filter: 'autocomplete', // filterOptions: window['TT_CONFIG']['NETWORKS'], @@ -58,6 +63,13 @@ Vue.component('Pop', { }, {text: 'Zutritt', key: 'location', class: 'text-center', priority: 1}, {text: 'Standort', key: 'gps', class: 'text-center', priority: 2}, + {text: 'Status', key: 'state', class: 'text-center', priority: 3, filter: 'select', filterOptions: [ + {value: '1', text: 'Planung'}, + {value: '2', text: 'Bauphase'}, + {value: '3', text: 'Grobdoku'}, + {value: '4', text: 'In Betrieb'}, + {value: '5', text: 'Abgenommen'}]}, + {text: 'Doku-Stand', key: 'doku_date', class: 'text-center', priority: 4, filter: 'date'}, {text: 'Vlan Public/Nat/ipv6', key: 'vlan', class: 'text-center', priority: 7}, {text: 'Aktionen', key: 'actions', class: 'text-center', sortable: false, filter: false, priority: 9}, ], diff --git a/public/plugins/vue/tt-components/tt-table.js b/public/plugins/vue/tt-components/tt-table.js index d2e0f9699..47c86c48f 100644 --- a/public/plugins/vue/tt-components/tt-table.js +++ b/public/plugins/vue/tt-components/tt-table.js @@ -209,7 +209,7 @@ Vue.component('tt-table', { - {{ columns[key].filterOptions.find(option => option.value.toString() === row[key].toString())?.text }} + {{ columns[key].filterOptions.find(option => option.value?.toString() === row[key]?.toString())?.text }} {{ window.moment(row[key] * 1000).format('DD.MM.YYYY HH:mm:ss') }} @@ -754,6 +754,11 @@ Vue.component('tt-table', { } } else if (header.filter === 'date') { if (!filterValue.from || !filterValue.to) continue; + if (!row[header.key]) { + match = false; + break; + } + console.log(row); const dateInt = row[header.key].length === 10 ? parseInt(row[header.key]) * 1000 : parseInt(row[header.key]); let rowDate = new Date(dateInt).getTime() / 1000;