mirror of
https://github.com/siyuan-note/siyuan.git
synced 2026-01-09 02:08:50 +01:00
🎨 Database grouping by field https://github.com/siyuan-note/siyuan/issues/10964
This commit is contained in:
parent
91a4578859
commit
89dc7c62e7
16 changed files with 40 additions and 29 deletions
|
|
@ -1632,6 +1632,7 @@
|
|||
"260": "أمس",
|
||||
"261": "اليوم",
|
||||
"262": "غدًا",
|
||||
"263": "التالي %d أيام"
|
||||
"263": "التالي %d أيام",
|
||||
"264": "الحقل [%s] فارغ"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1632,6 +1632,7 @@
|
|||
"260": "Gestern",
|
||||
"261": "Heute",
|
||||
"262": "Morgen",
|
||||
"263": "Nächste %d Tage"
|
||||
"263": "Nächste %d Tage",
|
||||
"264": "Das Feld [%s] ist leer"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1632,6 +1632,7 @@
|
|||
"260": "Yesterday",
|
||||
"261": "Today",
|
||||
"262": "Tomorrow",
|
||||
"263": "Next %d days"
|
||||
"263": "Next %d days",
|
||||
"264": "Field [%s] is empty"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1632,6 +1632,7 @@
|
|||
"260": "Ayer",
|
||||
"261": "Hoy",
|
||||
"262": "Mañana",
|
||||
"263": "Próximos %d días"
|
||||
"263": "Próximos %d días",
|
||||
"264": "El campo [%s] está vacío"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1632,6 +1632,7 @@
|
|||
"260": "Hier",
|
||||
"261": "Aujourd'hui",
|
||||
"262": "Demain",
|
||||
"263": "Les %d prochains jours"
|
||||
"263": "Les %d prochains jours",
|
||||
"264": "Le champ [%s] est vide"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1632,6 +1632,7 @@
|
|||
"260": "אתמול",
|
||||
"261": "היום",
|
||||
"262": "מחר",
|
||||
"263": "ה-%d ימים הבאים"
|
||||
"263": "ה-%d ימים הבאים",
|
||||
"264": "השדה [%s] ריק"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1632,6 +1632,7 @@
|
|||
"260": "Ieri",
|
||||
"261": "Oggi",
|
||||
"262": "Domani",
|
||||
"263": "Prossimi %d giorni"
|
||||
"263": "Prossimi %d giorni",
|
||||
"264": "Il campo [%s] è vuoto"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1632,6 +1632,7 @@
|
|||
"260": "昨日",
|
||||
"261": "今日",
|
||||
"262": "明日",
|
||||
"263": "次の %d 日間"
|
||||
"263": "次の %d 日間",
|
||||
"264": "フィールド [%s] の値が空です"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1632,6 +1632,7 @@
|
|||
"260": "Wczoraj",
|
||||
"261": "Dzisiaj",
|
||||
"262": "Jutro",
|
||||
"263": "Następne %d dni"
|
||||
"263": "Następne %d dni",
|
||||
"264": "Pole [%s] jest puste"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1632,6 +1632,7 @@
|
|||
"260": "Ontem",
|
||||
"261": "Hoje",
|
||||
"262": "Amanhã",
|
||||
"263": "Próximos %d dias"
|
||||
"263": "Próximos %d dias",
|
||||
"264": "O campo [%s] está vazio"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1632,6 +1632,7 @@
|
|||
"260": "Вчера",
|
||||
"261": "Сегодня",
|
||||
"262": "Завтра",
|
||||
"263": "Следующие %d дней"
|
||||
"263": "Следующие %d дней",
|
||||
"264": "Поле [%s] имеет пустое значение"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1632,6 +1632,7 @@
|
|||
"260": "昨天",
|
||||
"261": "今天",
|
||||
"262": "明天",
|
||||
"263": "未來 %d 天"
|
||||
"263": "未來 %d 天",
|
||||
"264": "字段 [%s] 值為空"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1632,6 +1632,7 @@
|
|||
"260": "昨天",
|
||||
"261": "今天",
|
||||
"262": "明天",
|
||||
"263": "未来 %d 天"
|
||||
"263": "未来 %d 天",
|
||||
"264": "字段 [%s] 值为空"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -199,7 +199,6 @@ type View struct {
|
|||
GroupFolded bool `json:"groupFolded,omitempty"` // 分组是否折叠
|
||||
GroupHidden bool `json:"groupHidden,omitempty"` // 分组是否隐藏
|
||||
GroupHideEmpty bool `json:"groupHideEmpty,omitempty"` // 分组是否隐藏空分组
|
||||
GroupDefault bool `json:"groupDefault,omitempty"` // 是否为默认分组
|
||||
}
|
||||
|
||||
// GroupCalc 描述了分组计算规则和结果的结构。
|
||||
|
|
@ -291,9 +290,6 @@ type Viewable interface {
|
|||
|
||||
// SetGroupHidden 设置分组是否隐藏。
|
||||
SetGroupHidden(hidden bool)
|
||||
|
||||
// SetGroupDefault 设置分组是否为默认分组。
|
||||
SetGroupDefault(defaulted bool)
|
||||
}
|
||||
|
||||
func NewAttributeView(id string) (ret *AttributeView) {
|
||||
|
|
|
|||
|
|
@ -66,12 +66,11 @@ type BaseInstance struct {
|
|||
Folded bool `json:"folded,omitempty"` // 是否折叠
|
||||
Hidden bool `json:"hidden,omitempty"` // 是否隐藏
|
||||
|
||||
Groups []Viewable `json:"groups,omitempty"` // 分组实例列表
|
||||
GroupCalc *GroupCalc `json:"groupCalc,omitempty"` // 分组计算规则和结果
|
||||
GroupName string `json:"groupName,omitempty"` // 分组名称
|
||||
GroupFolded bool `json:"groupFolded,omitempty"` // 分组是否折叠
|
||||
GroupHidden bool `json:"groupHidden,omitempty"` // 分组是否隐藏
|
||||
GroupDefault bool `json:"groupDefault,omitempty"` // 是否为默认分组
|
||||
Groups []Viewable `json:"groups,omitempty"` // 分组实例列表
|
||||
GroupCalc *GroupCalc `json:"groupCalc,omitempty"` // 分组计算规则和结果
|
||||
GroupName string `json:"groupName,omitempty"` // 分组名称
|
||||
GroupFolded bool `json:"groupFolded,omitempty"` // 分组是否折叠
|
||||
GroupHidden bool `json:"groupHidden,omitempty"` // 分组是否隐藏
|
||||
}
|
||||
|
||||
func NewViewBaseInstance(view *View) *BaseInstance {
|
||||
|
|
@ -97,7 +96,6 @@ func NewViewBaseInstance(view *View) *BaseInstance {
|
|||
GroupName: view.GroupName,
|
||||
GroupFolded: view.GroupFolded,
|
||||
GroupHidden: view.GroupHidden,
|
||||
GroupDefault: view.GroupDefault,
|
||||
ShowIcon: showIcon,
|
||||
WrapField: wrapField,
|
||||
}
|
||||
|
|
@ -135,10 +133,6 @@ func (baseInstance *BaseInstance) SetGroupHidden(hidden bool) {
|
|||
baseInstance.GroupHidden = hidden
|
||||
}
|
||||
|
||||
func (baseInstance *BaseInstance) SetGroupDefault(defaulted bool) {
|
||||
baseInstance.GroupDefault = defaulted
|
||||
}
|
||||
|
||||
func (baseInstance *BaseInstance) GetID() string {
|
||||
return baseInstance.ID
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1365,6 +1365,11 @@ func genGroup(view *av.View, attrView *av.AttributeView) {
|
|||
items = append(items, item)
|
||||
}
|
||||
|
||||
groupKey, _ := attrView.GetKey(group.Field)
|
||||
if nil == groupKey {
|
||||
return
|
||||
}
|
||||
|
||||
var rangeStart, rangeEnd float64
|
||||
switch group.Method {
|
||||
case av.GroupMethodValue:
|
||||
|
|
@ -1487,9 +1492,12 @@ func genGroup(view *av.View, attrView *av.AttributeView) {
|
|||
for _, item := range groupItems {
|
||||
v.GroupItemIDs = append(v.GroupItemIDs, item.GetID())
|
||||
}
|
||||
|
||||
if defaultGroupName == name {
|
||||
name = fmt.Sprintf(Conf.language(264), groupKey.Name)
|
||||
}
|
||||
v.Name = name
|
||||
view.Groups = append(view.Groups, v)
|
||||
view.GroupDefault = name == defaultGroupName
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue