Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
Vanessa 2023-10-11 08:58:55 +08:00
commit 30b0dd08fa
3 changed files with 62 additions and 5 deletions

View file

@ -165,8 +165,8 @@ func (value *Value) Compare(other *Value) int {
}
func (value *Value) CompareOperator(other *Value, operator FilterOperator) bool {
if nil == value || nil == other {
return false
if nil == other {
return true
}
if nil != value.Block && nil != other.Block {
@ -193,16 +193,34 @@ func (value *Value) CompareOperator(other *Value, operator FilterOperator) bool
if nil != value.Text && nil != other.Text {
switch operator {
case FilterOperatorIsEqual:
if "" == strings.TrimSpace(other.Text.Content) {
return true
}
return value.Text.Content == other.Text.Content
case FilterOperatorIsNotEqual:
if "" == strings.TrimSpace(other.Text.Content) {
return true
}
return value.Text.Content != other.Text.Content
case FilterOperatorContains:
if "" == strings.TrimSpace(other.Text.Content) {
return true
}
return strings.Contains(value.Text.Content, other.Text.Content)
case FilterOperatorDoesNotContain:
if "" == strings.TrimSpace(other.Text.Content) {
return true
}
return !strings.Contains(value.Text.Content, other.Text.Content)
case FilterOperatorStartsWith:
if "" == strings.TrimSpace(other.Text.Content) {
return true
}
return strings.HasPrefix(value.Text.Content, other.Text.Content)
case FilterOperatorEndsWith:
if "" == strings.TrimSpace(other.Text.Content) {
return true
}
return strings.HasSuffix(value.Text.Content, other.Text.Content)
case FilterOperatorIsEmpty:
return "" == strings.TrimSpace(value.Text.Content)
@ -214,8 +232,14 @@ func (value *Value) CompareOperator(other *Value, operator FilterOperator) bool
if nil != value.Number && nil != other.Number {
switch operator {
case FilterOperatorIsEqual:
if !other.Number.IsNotEmpty {
return true
}
return value.Number.Content == other.Number.Content
case FilterOperatorIsNotEqual:
if !other.Number.IsNotEmpty {
return true
}
return value.Number.Content != other.Number.Content
case FilterOperatorIsGreater:
return value.Number.Content > other.Number.Content
@ -235,8 +259,14 @@ func (value *Value) CompareOperator(other *Value, operator FilterOperator) bool
if nil != value.Date && nil != other.Date {
switch operator {
case FilterOperatorIsEqual:
if !other.Date.IsNotEmpty {
return true
}
return value.Date.Content == other.Date.Content
case FilterOperatorIsNotEqual:
if !other.Date.IsNotEmpty {
return true
}
return value.Date.Content != other.Date.Content
case FilterOperatorIsGreater:
return value.Date.Content > other.Date.Content
@ -541,7 +571,17 @@ func (table *Table) FilterRows() {
for _, row := range table.Rows {
pass := true
for j, index := range colIndexes {
if !row.Cells[index].Value.CompareOperator(table.Filters[j].Value, table.Filters[j].Operator) {
operator := table.Filters[j].Operator
if nil == row.Cells[index].Value {
switch operator {
case FilterOperatorIsNotEmpty:
pass = false
}
break
}
if !row.Cells[index].Value.CompareOperator(table.Filters[j].Value, operator) {
pass = false
break
}

View file

@ -512,6 +512,15 @@ func RenameAsset(oldPath, newName string) (err error) {
logging.LogErrorf("copy asset [%s] failed: %s", oldPath, err)
return
}
if gulu.File.IsExist(filepath.Join(util.DataDir, oldPath+".sya")) {
// Rename the .sya annotation file when renaming a PDF asset https://github.com/siyuan-note/siyuan/issues/9390
if err = filelock.Copy(filepath.Join(util.DataDir, oldPath+".sya"), filepath.Join(util.DataDir, newPath+".sya")); nil != err {
logging.LogErrorf("copy PDF annotation [%s] failed: %s", oldPath+".sya", err)
return
}
}
oldName := path.Base(oldPath)
notebooks, err := ListNotebooks()

View file

@ -1296,8 +1296,16 @@ func UpdateAttributeViewCell(tx *Transaction, avID, keyID, rowID, cellID string,
bindBlockAv(tx, avID, rowID)
}
if nil != val.Block {
val.Block.Updated = time.Now().UnixMilli()
for _, kv := range attrView.KeyValues {
if av.KeyTypeBlock == kv.Key.Type {
for _, v := range kv.Values {
if rowID == v.Block.ID {
v.Block.Updated = time.Now().UnixMilli()
break
}
}
break
}
}
if err = av.SaveAttributeView(attrView); nil != err {