todo

double-click on a bookmark node
have to implement saving and restoring hoist stack between tab switches
  must have an event that says we're about to deactivate you, save off your shit
processRunCursorScriptResult refers to appPrefs.ixCurrentTab
lock icon needs to be implemented
lockIconClick calls tabClick
format of a bookmark node
  type == bookmark
  subtype = (opmlFile or instantOutline)
  the cursor attribute should be a number, not a date string
    makes it a bit more opaque, less confusing imho
when you create a bookmark it sometimes shows up at the top of the outline being bookmarked
  i think it's when the bookmarks outline was not open
  but it only happens once, does not repeat
  maybe only first time it's issued in a run?
opening a bookmark doesn't work, sometimes
when you add a bookmark it's not being added to bookmarks.opml
  the callback is being called before the bookmarks tab is active
  and this is when bookmarks.opml is already open, the easier case
file/close doesn't work
don't do testing with todo file
  you don't want to lose this stuff
  i am now backing up the todo file to dropbox in the devteam folder...
bookmarks
  test creating a bookmark with and without bookmarks.opml not open
  when you open a file via a bookmark the title is "undefined"
  can we make it break?
    this all worked
      automatic updating, i did this test before...
        icons
        scripts
        root
        scheduler
    try selecting from Bookmarks, see what happens
when things are working
  i want to be able to copy paste a bookmark outside of the bookmarks menu
  double-clicking on them should work, no matter where they are
    type == bookmark
  set title of tab interactively
  provide file info when opening a file so the popover can work
when you switch tabs, keep the old outline around somehow
  in tabClick, when you're switching away from a tab, save off a copy of the dom for the outline
  it can't be that hard
    please
    i beg you
  places where tabClick is called
    when you literally click on the tab in the window
    when you close a tab, we click on the new frontmost tab for you
    when you call openOutlineInTab
      if the file is already open in another tab
      you might not need the opmltext
        it's possible you've never viewed the outline before, in which case you do
      if the file is not open in another tab
        you're definitely going to have to read the opml
    when you subscribe to an instant outline
    when you open a file from the File/Open command
    when you create a new file
    when you click the Lock icon in an instant outline that has updated
    when you start up, click on the initial tab
op.getCursor needs love
  var origCursor = op.getCursor (); op.go (flatdown, 100); var theText = op.getLineText (); console.log (theText)
EO version built with new LO2 code
  can you do an http server in JS in the browser?
    if not, then we have to get an EO system up sooner than later
hover over the file icon to get info about the file
drummer.startSocket
  write glue script, come up with a demo, write docserver page
drummer.runScript ("100 * 12")
  undefined
reorganizing the file system
  we'll do this by starting a new server
    no more test.littleoutliner.com
    possibly drummer.scripting.com
    drummer.userland.com
  no more myOutlines folder
  all code-related stuff goes into a top-level system folder
    menubar, iconbar, bookmarks, scheduler, root
includes get better
  if you include something from your own space, you can go from a reference to a place you can edit it.
s3 verbs
daveappserver
  zip my files call
backup everything from my storage every night
  this is where the EO version comes in handy because it has access to the local filesystem
test reading and writing of non-opml files
file verb to get info about a file
how to bring in EO functionality to the new outliner
  a new set of verbs that read and write to and from the local file system.
  obviously not enabled when you're accessing the environment over the net.
  localFile.exists
  localFile.readWholeFile
  localFile.writeWholeFile
github interface
subscribe command
  you should be able to subscribe to an OPML file, not just a link to instantoutliner.com
    http://electricserver.scripting.com/users/davewiner/electric/states.opml
view text dialog
  https://gist.github.com/scripting/6165085
unicase names?
examples for op.visit verbs
dialog.about could be useful, but you have to get outlineDialogs working in example code
the return values of op verbs are messy
docs notes
  When we say a returned value is undefined, we mean that it returns the JavaScript value undefined, not that what it returns is anything.
  Explain comments in outlines.
done/off the table
  View OPML
    for public files
    for private files
      we had a separate page that we communicated with via localStorage
      now we display it in the outliner app itself
  LO2 faster switch between outlines
    maybe don't go through OPML translation?
    it's even worse than that -- it's reloading the outline from the server every tab-click
    tab click is going back to the server to get the opml.
      we can cache the outline locally.
      or at least we can be sure the outline hasn't been modified before using the cache.
  commenting out code is caught in debugger
    this only happens if you have the javascript console open