Mercurial > gemma
view client/src/components/ui/UITableHeader.vue @ 4056:1ecfe5d015b0
Fixup rev. 4bf1c8d91bac: take new column into account in tests
author | Tom Gottfried <tom@intevation.de> |
---|---|
date | Thu, 25 Jul 2019 08:06:22 +0200 |
parents | b9a6abef9f1c |
children | 84d01a536bec |
line wrap: on
line source
<template> <div :class="['table-header row no-gutters bg-light', { sortable }]"> <a v-for="column in columns" @click.prevent="!column.disableSorting && sortTable(column.id)" :key="column.id" :class="[ 'd-inline-block py-1 text-center truncate small ' + (column.class || '') + ' ' + (column.disableSorting ? ' sorting-disabled' : ''), { active: sortColumn === column.id } ]" :style="`width: ${column.width};`" > <span :style="'opacity: ' + (sortColumn === column.id ? '1' : '0.3')" v-if="sortable && !column.disableSorting" > <font-awesome-icon :icon="sortIcon(column.id)" fixed-width /> </span> <font-awesome-icon v-if="column.icon" :icon="column.icon" fixed-width /> <span v-if="column.title"> {{ column.title }} </span> </a> <div v-if="extraColumnForButtons" class="col"></div> </div> </template> <style lang="sass"> .table-header > a border-right: solid 1px #e7e8e9 background-color: #f8f9fa a outline: none &:hover text-decoration: none background-color: #f8f9fa &.sortable a:not(.sorting-disabled) cursor: pointer &:hover, &.active background: #e7e8e9 </style> <script> /* This is Free Software under GNU Affero General Public License v >= 3.0 * without warranty, see README.md and license for details. * * SPDX-License-Identifier: AGPL-3.0-or-later * License-Filename: LICENSES/AGPL-3.0.txt * * Copyright (C) 2018 by via donau * – Österreichische Wasserstraßen-Gesellschaft mbH * Software engineering by Intevation GmbH * * Author(s): * Markus Kottländer <markus.kottlaender@intevation.de> */ export default { props: { columns: { type: Array }, sortable: { type: Boolean, default: true }, extraColumnForButtons: { type: Boolean, default: true } }, data() { return { sortColumn: null, sortDirection: "ASC" }; }, methods: { sortIcon(id) { if (this.sortColumn === id) { return "sort-" + (this.sortDirection === "ASC" ? "down" : "up"); } return "sort"; }, sortTable(id) { if (this.sortable) { this.sortColumn = id; this.sortDirection = this.sortDirection === "ASC" ? "DESC" : "ASC"; this.$parent.sortTable({ sortColumn: this.sortColumn, sortDirection: this.sortDirection }); } } } }; </script>