use entity::notecontent::{Entity as NoteContent};
use migration::prelude::Utc;
use crate::lockmanager::LockManager;
-use crate::note::{create_nodename, nodename_to_contenttype, randomize_nodename};
+use crate::note::{create_nodename, nodename_to_contenttype, nodename_to_title, randomize_nodename};
use crate::notify::{fs_notify, FSWatch};
use crate::storage::{*};
let result: Result<note::Model, DbErr> = async {
// prepare db insert
let nodename = generate_nodename_in_collection(&bhandle.backend.db, collection_id, name.as_str()).await?;
- let title = nodename.clone(); // TODO
+ let title = nodename_to_title(&nodename).to_string();
let contenttype = nodename_to_contenttype(nodename.as_str()).to_string();
let insert = note::ActiveModel {
collection_id: Set(collection_id),
if let Some(old_path) = old_path && let Some(new_path) = new_path {
let result = tokio::fs::rename(new_path, old_path).await;
if let Err(e) = result {
- msg.push_str("; moving file back from trash failed");
+ msg.push_str("; moving file back from trash failed: ");
+ msg.push_str(e.to_string().as_str());
}
}
Err(DbErr::Custom(msg))
}
}
+pub fn nodename_to_title(s: &str) -> &str {
+ if !s.trim().is_empty() {
+ let name = Path::new(s)
+ .file_stem()
+ .and_then(|s| s.to_str())
+ .unwrap_or(s);
+ return name;
+ }
+ // TODO: the default file name needs to be configured somewhere
+ "file"
+}
+
+
pub fn nodename_to_contenttype(name: &str) -> &'static str {
let ext = Path::new(name)
.extension()
use std::rc::Rc;
use url::Url;
use backend::backend::{BackendHandle, BroadcastMessage, NoteId, NoteTitleUpdate, OpenExternResult, RenameNoteRet};
+use backend::note::nodename_to_title;
use ui_rs::{action, doc_cast, ui_actions, UiModel};
use ui_rs::ui::*;
use crate::AppStates;
}
pub fn update_title(&mut self, s: &str, notify: bool) {
- let title = generate_title(s).unwrap_or("file");
+ let title = nodename_to_title(s);
if notify {
let update = NoteTitleUpdate {
// nothing has changed
return;
}
-
- // TODO: "file" is also used in update_title() and needs to be configured somewhere
- let new_title = generate_title(&nodename).unwrap_or("file").to_string();
+
+ let new_title = nodename_to_title(&nodename).to_string();
mem::swap(&mut self.nodename, &mut nodename);
}
}
-fn generate_title(s: &str) -> Option<&str> {
- if !s.trim().is_empty() {
- let name = Path::new(s)
- .file_stem()
- .and_then(|s| s.to_str())
- .unwrap_or(s);
- return Some(name);
- }
-
- None
-}