Hi,

(Refined)

Goals - More productively collaborative work
 Stages:
  5. Work flow or things like that
  4. Merge after edit
  3. Collision precaution
  2. Collision detection
  1. Lock before edit (current)

5. Work flow or things like that
(I have no idea about this topic.)


4. Merge after edit
Both Writer and Calc could utilize the already-implemented feature,
"Edit - Compare Document..." to find differences between user's
current document and a document file that someone else have saved.

Two documents would be displayed side by side:

   Current        Disk file
  +---------+    +---------+
  | xxx     |    | xxx     |
  |         |    |         |
  # aaaaaaa #    # mmmmmmm #   <-- differences would be marked
  # bbbbb   #    # nnn     #       in different color and shape
  | xxxxxxx |    | xxxxxxx |
  | yyyyyy  |    | yyyyyy  |   Each chunk has choices:
  +---------+    +---------+    [Yours] [Other's] [Back] [Skip] [Cancel]


Impress might implement "Edit - Compare Document..." which would find 
differences slide by slide.

 Scenario
  A team of several people has been creating an Impress document with 100s 
slides.
  User A is responsible for the section 1 ranging slide 1 to 20.
  User B is working on the section 2 ranging slide 21 to 39.
  User C is ...

To help their collaborative work, Impress could implement "Share document"
or "Merge after edit." Actually, they might be quite similar each other.

E.g. Calc 3.0's "Share document" could be considered "Merge after edit."
http://www.openoffice.org/dev_docs/features/3.0/#Spreadsheet_Collaboration_Through_Workbook_Sharing

User interface for the situation -(6) below would be:
 (a) Overwrite the file with yours (Warning: someone else's changes will be 
lost)
 (b) Save your document as another file
 (c) Compare and/or Merge (will show differences between (3) and (6),
     and help User X merge them)
 (d) Cancel


3. Collision precaution

  User A  |----+------------+-----------------+--------------> time line
               ^open        ^modify           ^save
               1            2                 3

  User X  |--------+--------------------------------+--------+----->
                   ^open                            ^modify  ^save
                   4                                5        6

  User Y  |-----------+-----------+-------+------------------------>
                      ^open       ^modify ^save
                      7           8       9

User X could be informed that the disk file has been altered by someone else 
-(5)
and prompted:
 (a) Proceed (Warning: collision would happen upon save)
 (b) Retrieve the latest file from disk (same as File - Reload)
 (c) Cancel

User Y could be informed that someone else has started to edit the document -(8)
and prompted:
 (a) OK (Warning: collision would happen upon save)
 (b) Cancel

To implement that,
 (a) Create a notification file -(2).
 (b) Check the existence of notification file -(5), (8).


2. Collision detection

  User A  |----+------------+-----------------+--------------> time line
               ^open        ^modify           ^save
               1            2                 3

  User X  |--------+--------------------------------+--------+----->
                   ^open                            ^modify  ^save
                   4                                5        6

User X could be informed the the disk file has been altered by someone else -(6)
and prompted:
 (a) Overwrite the file with yours (Warning: someone else's changes will be 
lost)
 (b) Save your document as another file
 (c) Cancel

To implement that,
 (a) Memorize both a size and digest value such as MD5 check sum of a file -(4).
 (b) Retrieve the values of the disk file again, and verify them -(6).
     If, at least, one of them is different from the original value,
     prompt the user to ask what to do.


1. Lock before edit (current)

A division with 100s staffs runs a file server.
 1. A general manger sends them an e-mail to see a document in the file server.
 2. User A opens the file with OpenOffice.org 3.0 as usual.
 3. User B opens the file with OpenOffice.org 3.0 and faces a dialog window 
saying

    Document file 'xxx.odt' is locked for editing by:
    user_a (mm.dd.yyyy hh:mm)
    Open document read only or open a copy of the document for editing.
    [Open Read Only]  [Open Copy]  [Cancel]

 4. User C opens the file with OpenOffice.org 3.0 and faces the same dialog.
 5. User D, one of the line managers, opens it ..., and rushes into
    User A's booth and scolds A not to EDIT it.

User A did not intend to edit it or even bother anybody else, but just wanted 
to SEE it.

  User A  |---+------------+-----------------> time line
              ^open it     ^start editing it
              1            2

  User B  |----------+----------------------->
                     ^open
                     3

  User C  |-------------------------+-------->
                                    ^open
                                    4
(a) Message
 With current implementation, User B will be given a message
 "Document file 'xxx.odt' is locked for editing by: ..." -(3)
 It, however, might not be appropriate for that situation since
 User A has not edit it yet or would not edit it at all.

(b) Timing
 A lock file could be created at the timing (2), instead of (1).

Regards,
Tora


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@openoffice.org
For additional commands, e-mail: dev-h...@openoffice.org

Reply via email to