To view the current progress (and it is definitely a work in progress), see: http://www.flickr.com/photos/rb3wreath/2159178717/
Similar to a real notebook you might have (which is a collection of notes), we're introducing the same concept in Tomboy. A note can now belong to a notebook (optional). After a few discussions about tagging, we've realized that they may not be the best thing for Tomboy. Tagging seems to work well for things that aren't text, i.e., photos, videos, music, etc. But, since notes consist of text, you can pretty much search them with the search window, kind of making tagging somewhat unnecessary. Notebooks, on the other hand, are similar to tagging, but easy enough for most people to comprehend.
Right now we're going to enforce that a note can only belong to one notebook. Since we've implemented Notebooking using Tomboy's internal tagging feature, it's technically possible to allow notes to belong to multiple notebooks, but we think that would be too confusing (subject to change in the future of course, based on feedback we receive).
Each notebook has a template note. A template note is used to define the initial content of a new note created in the specified notebook. This can be especially useful for people who create the same types of notes frequently. As an example, consider taking notes at a staff meeting. If you always create sections in your note for who attends, what the action items are, and upcoming due dates, why not create a "Meetings" notebook and fill out the template to have an "Attendees", "Action Items", and "Due Dates" section? When your meeting starts, just create a new "Meetings" note and your template will be used to give you an outline of what you need to fill in.
TODO Items for Implementing Notebooks:
Search All Notes Window
[X] Remove row shading (RuleHints) in the notebook list
[X] Have "All Notes" selected by default when the window opens
[X] Use bold text for "All Notes"
[X] Right-click on a notebook and be able to edit the template note
[X] Double-click opens the template note
[X] Fix icons for "All Notes" and notebooks - thanks jimmac!
[X] Drag and drop notes from the list onto a notebook to add/move them to a notebook
- [X] Single note drag and drop now stubbed in
[X] Add events for when a note is added into a notebook so that the Search All Notes Window can update the search results. Otherwise, what's happening is that the note gets saved off of a QueueSave(), because of a tag changing, and there's a delay ... so it feels unresponsive. Optional: [ ] If one of the selected notes already exists in another notebook make a confirmation dialog appear so the user doesn't accidentally move it unintentionally
[ ] Adjust the text in the status bar to show how many notes are in a given notebook
Preferences Tab Addin
[X] Add a PreferenceTabAddin interface that add-ins can use to add a Tab into the preferences. Nobody better abuse this!
[X] Implement NotebookPreferenceTabAddin
[X] Remove NotebookPreferenceTabAddin and instead, provide the same functionality in the main Search All Notes window
[ ] Allow user to specify a default notebook where all new notes will be placed. Can we do this just by adding menu items and showing the default in bold or with a "(default)" ?
- [ ] It would at least be nice to create a new notebook note of the currently selected notebook when you press Ctrl+N [ ] Add an item to the right-click menu of a notebook to be able to create a new note in that notebook?
[X] Create a Notebook Toolbar Icon which shows the notebook the note is in (ellipsized)
[X] Toolbar Icon Dropdown should be the same as what the "Place in notebook" uses (which is currently under the "Tools" toolbar item (remove "Place in notebook" when this is implemented
[ ] Figure out how to place the cursor in the same position in a newly created note as where it's left in the template note
[ ] Adjust Export to HTML note to allow exporting an entire notebook
[ ] Adjust the Printing to allow printing an entire notebook
[ ] Allow drag and dropping of multiple notes in the search menu. This is especially useful for people who are transitioning over to the notebooks feature and are trying to organize old notes. This is already filed as a bug: https://bugzilla.gnome.org/show_bug.cgi?id=513046
[ ] When creating a new note from a parent note (e.g., you select text in a note, hit ctrl-l, and click the link), it would be useful if the new note is in the same notebook as the parent note by default. Usually when I am creating a new note in an old note, it is related and in the same category of stuff as my old note.
[ ] Instead of the "Notebooks" menu in the drop-down menu only having a "New NOTEBOOK_NAME Note" option for each notebook, it should have menus that show the notes in that notebook, and put the "New NOTEBOOK_NAME Note" button within that menu. So, for example:
Notebooks -> Projects I Work On -> New Note
Notebooks -> Projects I Work On -> Tomboy
Notebooks -> Projects I Work On -> Gnome
[ ] Others? Add your idea here
Some of the original ideas
These are some thoughts we've had about notebooks. We'll organize this more later...
07:12 <@boyd> sandy|away: any thoughts/suggestions abt. this notebook stuff?
07:13 <@sandy|away> well, doing it with tagging makes sense
07:13 <@sandy|away> it is true that people very commonly have specific groups of notes
07:13 <@sandy|away> I think the tricky part is how separate should they be
07:14 <@boyd> right.
07:14 <@sandy|away> can you have the same title in different notebooks, how doe search work, sync, etc
07:14 <@sandy|away> so one idea
07:14 <@sandy|away> is that however search+tagging works...
07:14 <@boyd> no, you couldn't have the same title (two different notes) in two different notebooks
07:14 <@sandy|away> notebooks show up first in tag list and are somehow indicated to be notebooks and not just tags
07:15 <@boyd> but you could have the same note (with the same title, obviously) in two different notebooks
07:15 <@sandy|away> so it's really easy to search by notebook
07:15 <@boyd> sandy|away: yeah, i like that idea
07:15 <@sandy|away> boyd: interesting point
07:15 <@sandy|away> to have the same note in multiple notebooks
07:15 <@sandy|away> because I was going to talk about color
07:15 <@sandy|away> and how if you have like 5 notebooks, it might be worthwhile to show the note icon color differently in the notes menu
07:15 <@boyd> that could be interesting
07:15 <@sandy|away> which we'd kind of talked about for tagging anyway
07:16 <@boyd> right
07:16 <@boyd> i realized right before leaving yesterday that ...
07:16 <@sandy|away> but what color do you use if it has multiple tags/notebooks
07:16 <@boyd> tags don't exist (after shutdown) unless they're part of an actual note
07:17 <@boyd> so i'm thinking that when you create a notebook, we just go ahead and pop open (or at least create) the template note ... and tag it right then
07:17 <@boyd> sandy|away: the multiple notebook tag has me confused in other areas too ...
07:17 <@sandy|away> good idea
07:17 <@sandy|away> you know, I'd almost just want to keep a note confined to one notebook
07:17 <@boyd> sandy|away: maybe we only let them exist in one notebook
07:18 <@boyd> heh, ditto
07:18 <@sandy|away> it's a system tag, so we can do that easily
07:18 <@boyd> yup
07:18 <@boyd> i think the color idea will be interesting to try out ...
07:19 <@boyd> once we have the basics implemented, we should give that a shot
07:19 <@sandy|away> I used to use color all the time...for thunderbird labels
07:19 <@sandy|away> using them again now in gmail, but I'm not as into it
07:19 <@sandy|away> still, I'm sure there are people that would appreciate it
07:19 <@sandy|away> so a notebook
07:20 <@sandy|away> is basically a system tag
07:20 <@sandy|away> and there is a template note
07:20 <@sandy|away> so when you create a new note...how do you envision that happening?
07:20 <@sandy|away> do you have to pick a notebook?
07:20 <@sandy|away> is there a default notebook, for example?
07:21 <@sandy|away> we don't want to add a bunch of UI
07:21 <@boyd> i was experimenting with default notebookk yesterday ...
07:21 <@boyd> and realized that the default notebook is no notebook at all
07:22 <@boyd> as far as creating a new note ... i was thinking that you could put tomboy into "modes" where you select which notebook you're currently using and _then_ create a new note, but i don't think that will work very well because, at least the people i know, are so interrupt driven ...
07:22 <@boyd> as a start, i'm thinking of ...
07:22 <@boyd> adding a new menu item to the tray icon that's somethhing like ...
07:22 <@boyd> "Create new note (in notebook)" -> submenu of notebooks ?
07:23 <@boyd> additionally ... maybe we introduce a notebook button in the toolbar that they can quickly place the current note into a notebook?
07:23 <@boyd> ...or a submenu off of the tools button?
07:24 <@boyd> not sure.
07:24 <@boyd> need some experimentation first
07:24 <@sandy|away> yeah
07:24 <@sandy|away> originally I was thinking submenu in tools buton
07:24 <@sandy|away> because it would be a rare behavior
07:24 <@sandy|away> but
07:24 <@boyd> ...unless someone here has a better suggestion before i get started
07:24 <@sandy|away> it will be really easy to forget to put your note in the right notebook at first
07:24 <@sandy|away> I really like the idea of modes
07:24 <@sandy|away> but you're right, it would bite people
07:25 <@sandy|away> although we could always try it...still have some time before feature freeze
07:25 <@sandy|away> if people hate it would be easy to yank
07:25 <@sandy|away> one thing...
07:25 <@sandy|away> could have in menu...
07:25 <@sandy|away> Create Note...
07:25 <@sandy|away> Create Note in "Work"... (because that was the last notebook for which a note was created)
07:26 <@sandy|away> Create Note in Notebook -> ...
07:26 <@sandy|away> two menu items is a bit of clutter
07:26 <@sandy|away> but it's kind of close to the mode idea
07:26 <@boyd> yeah, that might be the way to do it ...
07:26 <@boyd> though i know at least _someone_ will complain about the number of menu items
07:27 <@sandy|away> people who don't use notebooks
07:27 <@sandy|away> that space is pretty precious