let _ = self.tx.send(cmd);
}
- pub fn rename_note<F>(&self, note_id: i32, nodename: String, title: String, callback: F)
+ pub fn rename_note<F>(&self, note_id: i32, nodename: Option<String>, title: Option<String>, callback: F)
where F: FnOnce(Result<UpdateResult, DbErr>) + Send + 'static {
let bhandle = self.clone();
let cmd = Box::pin(async move {
return;
}
};
+
+ let mut update = Note::update_many();
+ if let Some(nodename ) = &nodename {
+ update = update.col_expr(Column::Nodename, Expr::value(nodename.clone()));
+ }
+ if let Some(title ) = &title {
+ update = update.col_expr(Column::Title, Expr::value(title));
+ }
+
+ let result = update
+ .filter(Column::NoteId.eq(note_id))
+ .exec(&bhandle.backend.db).await;
- let result = Note::update_many()
- .col_expr(Column::Nodename, Expr::value(nodename.clone()))
- .col_expr(Column::Title, Expr::value(title.clone()))
- .filter(Column::NoteId.eq(note_id))
- .exec(&bhandle.backend.db).await;
-
- if let Some(path_str) = local_path {
+ if let Some(nodename) = nodename && let Some(path_str) = local_path {
let path = Path::new(&path_str);
let parent = path.parent();
if let Some(parent) = parent {
mem::swap(&mut self.nodename, &mut nodename);
let proxy = doc.doc_proxy();
- self.backend.rename_note(note_id, self.nodename.clone(), new_title, |result|{
+ self.backend.rename_note(note_id, Some(self.nodename.clone()), Some(new_title), |result|{
proxy.call_mainthread(move |_doc, note|{
match result {
Ok(updated) => {