🎨 Add Default fill specific time switch to database date field https://github.com/siyuan-note/siyuan/issues/12089

Signed-off-by: Daniel <845765@qq.com>
This commit is contained in:
Daniel 2025-09-24 17:14:39 +08:00
parent e6a9db0253
commit 0147a6573d
No known key found for this signature in database
GPG key ID: 86211BA83DF03017
18 changed files with 77 additions and 9 deletions

View file

@ -168,7 +168,8 @@ func (k *Key) GetOption(name string) (ret *SelectOption) {
}
type Date struct {
AutoFillNow bool `json:"autoFillNow"` // 是否自动填充当前时间 The database date field supports filling the current time by default https://github.com/siyuan-note/siyuan/issues/10823
AutoFillNow bool `json:"autoFillNow"` // 是否自动填充当前时间 The database date field supports filling the current time by default https://github.com/siyuan-note/siyuan/issues/10823
FillSpecificTime bool `json:"fillSpecificTime"` // 是否填充具体时间 Add `Default fill specific time` switch to database date field https://github.com/siyuan-note/siyuan/issues/12089
}
type Rollup struct {

View file

@ -2147,15 +2147,15 @@ func GetCurrentAttributeViewImages(avID, viewID, query string) (ret []string, er
return
}
func (tx *Transaction) doSetAttrViewColDate(operation *Operation) (ret *TxErr) {
err := setAttributeViewColDate(operation)
func (tx *Transaction) doSetAttrViewColDateFillCreated(operation *Operation) (ret *TxErr) {
err := setAttributeViewColDateFillCreated(operation)
if err != nil {
return &TxErr{code: TxErrHandleAttributeView, id: operation.AvID, msg: err.Error()}
}
return
}
func setAttributeViewColDate(operation *Operation) (err error) {
func setAttributeViewColDateFillCreated(operation *Operation) (err error) {
attrView, err := av.ParseAttributeView(operation.AvID)
if err != nil {
return
@ -2172,7 +2172,35 @@ func setAttributeViewColDate(operation *Operation) (err error) {
}
key.Date.AutoFillNow = operation.Data.(bool)
err = av.SaveAttributeView(attrView)
return
}
func (tx *Transaction) doSetAttrViewColDateFillSpecificTime(operation *Operation) (ret *TxErr) {
err := setAttrViewColDateFillSpecificTime(operation)
if err != nil {
return &TxErr{code: TxErrHandleAttributeView, id: operation.AvID, msg: err.Error()}
}
return
}
func setAttrViewColDateFillSpecificTime(operation *Operation) (err error) {
attrView, err := av.ParseAttributeView(operation.AvID)
if err != nil {
return
}
keyID := operation.ID
key, _ := attrView.GetKey(keyID)
if nil == key || av.KeyTypeDate != key.Type {
return
}
if nil == key.Date {
key.Date = &av.Date{}
}
key.Date.FillSpecificTime = operation.Data.(bool)
err = av.SaveAttributeView(attrView)
return
}

View file

@ -275,8 +275,10 @@ func performTx(tx *Transaction) (ret *TxErr) {
ret = tx.doUpdateAttrViewColRollup(op)
case "hideAttrViewName":
ret = tx.doHideAttrViewName(op)
case "setAttrViewColDate":
ret = tx.doSetAttrViewColDate(op)
case "setAttrViewColDateFillCreated":
ret = tx.doSetAttrViewColDateFillCreated(op)
case "setAttrViewColDateFillSpecificTime":
ret = tx.doSetAttrViewColDateFillSpecificTime(op)
case "duplicateAttrViewKey":
ret = tx.doDuplicateAttrViewKey(op)
case "setAttrViewCoverFrom":