Browse Source

fix: kanban issues (#907)

* feat: enable kanban button on nav drawer

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* refak: move conditions to isKanban

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* wip: add basic layout & integrate with view data

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* fix: add missing components

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* feat: emit expandForm

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* feat: add boolean cell for kanban card

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* fix: add :disable to boollean cell

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* style: kanban card

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* feat: enable kanban share view on drawer

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* fix: share links

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* wip: kanban shared page

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* wip: implement updateBlock logic

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* wip: reload kanban view after drag n drop

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* refak: kanban view

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* fix: update CsvExportImport path

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* feat: add grouping field for kanban view

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* feat: add uncategorized stack

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* style: match stack title color with that of grouping field

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* style: kanban view

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* feat: implement groupingField change logic

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* feat: watch data prop change

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* style: fix center title n padding

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* wip: add footer

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* test(cypress): include kanban viewTest

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* feat: add insertNewRow logic to kanban view

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* feat: add new stack column

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* feat: include loadTableData

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* fix: reload issue

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* wip: fetch data using api

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* feat: add api filtering logic

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* fix: inconsistent content

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* chore: merge from upstream master

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* chore: hide new stack button

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* feat: populate the grouping field to new record for kanban

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* chore: hide pagination in kanban view

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* style: display add new record as an icon

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* feat: add numbers of records under each stack

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* fix: missing uncategorized records

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* fix: kanban preset value issue

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* fix: kanban layout & 0 record issue

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* chore: set toast position

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* fix: lint

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* feat: add v-skeleton-loader

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* chore: rm toast if there is no grouping column

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* fix: remove :loading

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* refak: move kanban logic to rowsXcDataTable

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* refak: update kanban block logic

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* refak: remove unused code

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* fix: update kanban ui for status and grouping field

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* refak: move set kanban logic to rowsXcDataTable

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* fix: new kanban record issue

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* feat: infinite scrolling on kanban view

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* refak: remove updateKanbanBlock

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* fix: splash issue

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* fix: empty kanban view

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* chore: move skeleton-loader to rowsXcDataTable.vue

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* fix: avoid reload after saving in expanded form

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* refak: remove unused clonedBlock

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* fix: handle composite primary key

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* fix: kanban refresh issue

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* fix: update reload logic for kanban

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* feat: add total number of records for each kanban stack

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* fix: kanban display issue

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* wip: kanban share view

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* fix: insert new row issue

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* fix: missing data after reload

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* chore: temporarily disable share view for kanban view

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* chore: disable kanban viewTest temporarily

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* fix: count issue

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* fix: update total count after moving blocks

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>

* fix: incorrect data row after clicking create a new record btn

Signed-off-by: Wing-Kam Wong <wingkwong.code@gmail.com>
pull/914/head
աɨռɢӄաօռɢ 3 years ago committed by GitHub
parent
commit
82fddaae1d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 11
      packages/nc-gui/components/project/spreadsheet/rowsXcDataTable.vue
  2. 4
      packages/nc-gui/components/project/spreadsheet/views/kanbanView.vue

11
packages/nc-gui/components/project/spreadsheet/rowsXcDataTable.vue

@ -1152,11 +1152,10 @@ export default {
await this.onCellValueChange(colIndex, index, col)
},
async insertNewRow(atEnd = false, expand = false, presetValues = {}) {
const focusRow = atEnd ? this.rowLength : this.rowContextMenu.index + 1
const focusCol = this.availableColumns.findIndex(c => !c.ai)
const isKanban = this.selectedView && this.selectedView.show_as === 'kanban'
const data = isKanban ? this.kanban.data : this.data
const focusRow = isKanban ? data.length : (atEnd ? this.rowLength : this.rowContextMenu.index + 1)
const focusCol = this.availableColumns.findIndex(c => !c.ai)
data.splice(focusRow, 0, {
row: this.relationType === 'hm'
? {
@ -1169,14 +1168,16 @@ export default {
},
oldRow: {}
})
if (data[focusRow].row[this.groupingField] === "Uncategorized") {
data[focusRow].row[this.groupingField] = null
}
this.selected = { row: focusRow, col: focusCol }
this.editEnabled = { row: focusRow, col: focusCol }
this.presetValues = presetValues
if (expand) {
if (isKanban) {
this.expandKanbanForm(-1, data[data.length - 1])
this.expandKanbanForm(-1, data[focusRow])
} else {
const { rowMeta } = data[data.length - 1]
this.expandRow(data.length - 1, rowMeta)

4
packages/nc-gui/components/project/spreadsheet/views/kanbanView.vue

@ -107,7 +107,6 @@ import HeaderCell from '../components/headerCell'
import VirtualCell from '../components/virtualCell'
import TableCell from '../components/cell'
import EnumCell from '../components/cell/enumCell'
export default {
name: 'KanbanView',
components: { TableCell, VirtualCell, HeaderCell, VirtualHeaderCell, EnumCell },
@ -192,6 +191,9 @@ export default {
}
this.$set(this.kanban.recordCnt, prevStatus, this.kanban.recordCnt[prevStatus] - 1)
this.$set(this.kanban.recordCnt, status, this.kanban.recordCnt[status] + 1)
this.$set(this.kanban.recordTotalCnt, prevStatus, this.kanban.recordTotalCnt[prevStatus] - 1)
this.$set(this.kanban.recordTotalCnt, status, this.kanban.recordTotalCnt[status] + 1)
this.$forceUpdate()
this.$toast.success(`Moved block from ${prevStatus} to ${status ?? uncategorized} successfully.`, {
position: 'bottom-center'
}).goAway(3000)

Loading…
Cancel
Save