mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-12-17 07:00:12 +01:00
♻️ Refactor av data structure
This commit is contained in:
parent
cb73513941
commit
36f7083529
3 changed files with 32 additions and 32 deletions
|
|
@ -47,7 +47,7 @@ func renderAttributeView(c *gin.Context) {
|
||||||
view := map[string]interface{}{
|
view := map[string]interface{}{
|
||||||
"id": v.ID,
|
"id": v.ID,
|
||||||
"name": v.Name,
|
"name": v.Name,
|
||||||
"type": v.CurrentLayoutType,
|
"type": v.LayoutType,
|
||||||
}
|
}
|
||||||
|
|
||||||
views = append(views, view)
|
views = append(views, view)
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,7 @@ type AttributeView struct {
|
||||||
ID string `json:"id"` // 属性视图 ID
|
ID string `json:"id"` // 属性视图 ID
|
||||||
Name string `json:"name"` // 属性视图名称
|
Name string `json:"name"` // 属性视图名称
|
||||||
KeyValues []*KeyValues `json:"keyValues"` // 属性视图属性列值
|
KeyValues []*KeyValues `json:"keyValues"` // 属性视图属性列值
|
||||||
CurrentViewID string `json:"currentViewID"` // 当前视图 ID
|
ViewID string `json:"viewID"` // 当前视图 ID
|
||||||
Views []*View `json:"views"` // 视图
|
Views []*View `json:"views"` // 视图
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -130,8 +130,8 @@ type View struct {
|
||||||
ID string `json:"id"` // 视图 ID
|
ID string `json:"id"` // 视图 ID
|
||||||
Name string `json:"name"` // 视图名称
|
Name string `json:"name"` // 视图名称
|
||||||
|
|
||||||
CurrentLayoutID string `json:"currentLayoutID"` // 当前布局 ID
|
LayoutID string `json:"layoutID"` // 当前布局 ID
|
||||||
CurrentLayoutType LayoutType `json:"type"` // 当前布局类型
|
LayoutType LayoutType `json:"type"` // 当前布局类型
|
||||||
Table *LayoutTable `json:"table,omitempty"` // 表格布局
|
Table *LayoutTable `json:"table,omitempty"` // 表格布局
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -148,8 +148,8 @@ func NewView() *View {
|
||||||
return &View{
|
return &View{
|
||||||
ID: ast.NewNodeID(),
|
ID: ast.NewNodeID(),
|
||||||
Name: name,
|
Name: name,
|
||||||
CurrentLayoutID: layoutID,
|
LayoutID: layoutID,
|
||||||
CurrentLayoutType: LayoutTypeTable,
|
LayoutType: LayoutTypeTable,
|
||||||
Table: &LayoutTable{
|
Table: &LayoutTable{
|
||||||
Spec: 0,
|
Spec: 0,
|
||||||
ID: layoutID,
|
ID: layoutID,
|
||||||
|
|
@ -176,7 +176,7 @@ func NewAttributeView(id string) (ret *AttributeView) {
|
||||||
Spec: 0,
|
Spec: 0,
|
||||||
ID: id,
|
ID: id,
|
||||||
KeyValues: []*KeyValues{{Key: key}},
|
KeyValues: []*KeyValues{{Key: key}},
|
||||||
CurrentViewID: view.ID,
|
ViewID: view.ID,
|
||||||
Views: []*View{view},
|
Views: []*View{view},
|
||||||
}
|
}
|
||||||
view.Table.Columns = []*ViewTableColumn{{ID: key.ID}}
|
view.Table.Columns = []*ViewTableColumn{{ID: key.ID}}
|
||||||
|
|
|
||||||
|
|
@ -44,9 +44,9 @@ func RenderAttributeView(avID string) (viewable av.Viewable, attrView *av.Attrib
|
||||||
}
|
}
|
||||||
|
|
||||||
var view *av.View
|
var view *av.View
|
||||||
if "" != attrView.CurrentViewID {
|
if "" != attrView.ViewID {
|
||||||
for _, v := range attrView.Views {
|
for _, v := range attrView.Views {
|
||||||
if v.ID == attrView.CurrentViewID {
|
if v.ID == attrView.ViewID {
|
||||||
view = v
|
view = v
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|
@ -55,7 +55,7 @@ func RenderAttributeView(avID string) (viewable av.Viewable, attrView *av.Attrib
|
||||||
view = attrView.Views[0]
|
view = attrView.Views[0]
|
||||||
}
|
}
|
||||||
|
|
||||||
switch view.CurrentLayoutType {
|
switch view.LayoutType {
|
||||||
case av.LayoutTypeTable:
|
case av.LayoutTypeTable:
|
||||||
viewable, err = renderAttributeViewTable(attrView, view)
|
viewable, err = renderAttributeViewTable(attrView, view)
|
||||||
}
|
}
|
||||||
|
|
@ -184,7 +184,7 @@ func setAttributeViewFilters(operation *Operation) (err error) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
switch view.CurrentLayoutType {
|
switch view.LayoutType {
|
||||||
case av.LayoutTypeTable:
|
case av.LayoutTypeTable:
|
||||||
if err = gulu.JSON.UnmarshalJSON(data, &view.Table.Filters); nil != err {
|
if err = gulu.JSON.UnmarshalJSON(data, &view.Table.Filters); nil != err {
|
||||||
return
|
return
|
||||||
|
|
@ -221,7 +221,7 @@ func setAttributeViewSorts(operation *Operation) (err error) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
switch view.CurrentLayoutType {
|
switch view.LayoutType {
|
||||||
case av.LayoutTypeTable:
|
case av.LayoutTypeTable:
|
||||||
if err = gulu.JSON.UnmarshalJSON(data, &view.Table.Sorts); nil != err {
|
if err = gulu.JSON.UnmarshalJSON(data, &view.Table.Sorts); nil != err {
|
||||||
return
|
return
|
||||||
|
|
@ -311,7 +311,7 @@ func addAttributeViewBlock(blockID string, operation *Operation, tree *parse.Tre
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
switch view.CurrentLayoutType {
|
switch view.LayoutType {
|
||||||
case av.LayoutTypeTable:
|
case av.LayoutTypeTable:
|
||||||
if "" != operation.PreviousID {
|
if "" != operation.PreviousID {
|
||||||
for i, id := range view.Table.RowIDs {
|
for i, id := range view.Table.RowIDs {
|
||||||
|
|
@ -375,7 +375,7 @@ func setAttributeViewColWidth(operation *Operation) (err error) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
switch view.CurrentLayoutType {
|
switch view.LayoutType {
|
||||||
case av.LayoutTypeTable:
|
case av.LayoutTypeTable:
|
||||||
for _, column := range view.Table.Columns {
|
for _, column := range view.Table.Columns {
|
||||||
if column.ID == operation.ID {
|
if column.ID == operation.ID {
|
||||||
|
|
@ -408,7 +408,7 @@ func setAttributeViewColWrap(operation *Operation) (err error) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
switch view.CurrentLayoutType {
|
switch view.LayoutType {
|
||||||
case av.LayoutTypeTable:
|
case av.LayoutTypeTable:
|
||||||
for _, column := range view.Table.Columns {
|
for _, column := range view.Table.Columns {
|
||||||
if column.ID == operation.ID {
|
if column.ID == operation.ID {
|
||||||
|
|
@ -441,7 +441,7 @@ func setAttributeViewColHidden(operation *Operation) (err error) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
switch view.CurrentLayoutType {
|
switch view.LayoutType {
|
||||||
case av.LayoutTypeTable:
|
case av.LayoutTypeTable:
|
||||||
for _, column := range view.Table.Columns {
|
for _, column := range view.Table.Columns {
|
||||||
if column.ID == operation.ID {
|
if column.ID == operation.ID {
|
||||||
|
|
@ -487,7 +487,7 @@ func sortAttributeViewRow(operation *Operation) (err error) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
switch view.CurrentLayoutType {
|
switch view.LayoutType {
|
||||||
case av.LayoutTypeTable:
|
case av.LayoutTypeTable:
|
||||||
view.Table.RowIDs = append(view.Table.RowIDs[:index], view.Table.RowIDs[index+1:]...)
|
view.Table.RowIDs = append(view.Table.RowIDs[:index], view.Table.RowIDs[index+1:]...)
|
||||||
for i, r := range view.Table.RowIDs {
|
for i, r := range view.Table.RowIDs {
|
||||||
|
|
@ -522,7 +522,7 @@ func sortAttributeViewColumn(operation *Operation) (err error) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
switch view.CurrentLayoutType {
|
switch view.LayoutType {
|
||||||
case av.LayoutTypeTable:
|
case av.LayoutTypeTable:
|
||||||
var col *av.ViewTableColumn
|
var col *av.ViewTableColumn
|
||||||
var index, previousIndex int
|
var index, previousIndex int
|
||||||
|
|
@ -576,7 +576,7 @@ func addAttributeViewColumn(operation *Operation) (err error) {
|
||||||
key := av.NewKey(operation.Name, keyType)
|
key := av.NewKey(operation.Name, keyType)
|
||||||
attrView.KeyValues = append(attrView.KeyValues, &av.KeyValues{Key: key})
|
attrView.KeyValues = append(attrView.KeyValues, &av.KeyValues{Key: key})
|
||||||
|
|
||||||
switch view.CurrentLayoutType {
|
switch view.LayoutType {
|
||||||
case av.LayoutTypeTable:
|
case av.LayoutTypeTable:
|
||||||
view.Table.Columns = append(view.Table.Columns, &av.ViewTableColumn{ID: key.ID})
|
view.Table.Columns = append(view.Table.Columns, &av.ViewTableColumn{ID: key.ID})
|
||||||
}
|
}
|
||||||
|
|
@ -638,7 +638,7 @@ func removeAttributeViewColumn(operation *Operation) (err error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, view := range attrView.Views {
|
for _, view := range attrView.Views {
|
||||||
switch view.CurrentLayoutType {
|
switch view.LayoutType {
|
||||||
case av.LayoutTypeTable:
|
case av.LayoutTypeTable:
|
||||||
for i, column := range view.Table.Columns {
|
for i, column := range view.Table.Columns {
|
||||||
if column.ID == operation.ID {
|
if column.ID == operation.ID {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue