wiki:COMMENT_FRAMES_R0

Version 17 (modified by kyli, 16 years ago) (diff)

--

Error: Macro BackLinksMenu(None) failed
compressed data is corrupt

Error: Macro TicketQuery(summary=COMMENT_FRAMES_R0, format=table, col=summary|owner|status|type|component|priority|effort|importance, rows=description|analysis_owners|analysis_reviewers|analysis_score|design_owners|design_reviewers|design_score|implementation_owners|implementation_reviewers|implementation_score|test_owners|test_reviewers|test_score|) failed
current transaction is aborted, commands ignored until end of transaction block

Analysis

Overview

Comment frames allow a book to have an interactive space for dialoging between readers that have the same book open.

Comment frames refer the so called 'comment streams', which live either the server or on local machine and thus may require a Sophie Server to function. However, a Sophie book that uses comment frames does not need to be on a Sophie Server. When a book has comment frames, users can add comments. These comments are uploaded to the Sophie Server and are made available for reading to everyone with an open copy of the book.

A comment frame is added to a book the same way as every other frame type. Comment frames have a the same HUDs as do all frame types.

A comment frame allows adding a comment. There is a form inside the frame, allowing a commentator's comment to be entered. Comments can be added to a comment frame in Test mode or in Sophie Reader, but not in Author mode.

Once a comment has been added, a Reply function is displayed to allow the user to reply. Replies are indented. Replies to replies are further indented. If there are enough comments to fill the comment frame, the comment frame must generate scroll bars.

Comments can be added to any open copy of a Sophie book.

There should be ability for the owner do manage comments.

Task requirements

  • Model
    • Create model for "comment stream" - the resource which lives (mainly) on the server.
    • Create model for the frame content which refers the remote resource. It must Hold enough information for referring a concrete stream, for changing it and for updating.
  • Persistence
    • The server stream must be persist-able in order to be sent to the client
    • The frame content resource must be persist-able in order to save the stream reference along with the book.
  • Manipulation
    • Since the securtiy model on the server is not quite stable, user rights will be ignored for this revision.
    • Decide how will a stream be created / destroyed - from client, from web UI ot both.
    • Decide about the relation between frame content resource and server stream - one to one or many to one.
    • The comment frame should use the base.security and base.connectivity model in order to allow future improvements related to server logging.
  • Client <-> Server communication
    • The server web services must allow communication related to comment streams.
    • Add comment-related functions to the facade (both server and client) to allow secure communication
  • View
    • The comment content must be able to auto-refresh itself.
    • The comment frame must be editable only in preview mode / reader mode. Comment frame interactions must be defined.
    • The location of the input form must be inside the frame. It must be editable only in preview mode, must have Post button.
    • The comment frame must have scroll bar.
      • For this revision scroll bar could include only up and down arrow.
    • The text in comment frame must be properly formatted - indent, header style. Consider using the current hot text model. Visibly the comment should include:
      • User ID or name
      • Date and time in ISO format
      • Text content

Task result

  • The result should be source code

Implementation idea

  • Scroll bars should appear only if they are needed.
  • There should be some text formatting for the comments in order to increase the readability of this frame. Adding empty line between different comments could do the job.
  • Also different color for the user ID(name) could increase the readability too.

  • If the user is not authenticated should appear as anonymous
  • Sample scenario for this revision:
    • User creates a book (offline)
    • The user inserts a comment frame - it is empty, since the location is not set yet (maybe a default location should be set, it does not make difference).
    • The comment frame has a halo button - it pops up a comment frame hud, which allows entering URL and resource location on the server (in some of the next revisions this will be replaced with location only)
    • When set, the comment frame refers to the ws_connector's interface, looking for an appropriate connection for this url. It is ws_connector's responsibility to decide whether to auto connect, to popup a dialog or else. Then the ws_connector provides the latest version of the thread with the given location.
    • The comment frame content refreshes it's view.
    • The user enters some text and clicks "post".
    • The same way, the comment is sent to the remote location and handled by the server.
    • The comment content refreshes again to show the new comment.

GROUP_APP_SERVER_RESOURCE_ACCESS_R0
S2S_WS_CONNECTOR_R0
GROUP_BASE_SECURITY_R0

How to demo

  • Create new book and new server comment stream.
  • Place comment frame inside of it, pointing to the stream.
  • Go to preview mode add some comments
  • Update the comment frame content.
  • Open the book again in reader and type some comments again.

Design

(Describe your design here.)

Implementation

(Describe and link the implementation results here (from the wiki or the repository).)

Testing

(Place the testing results here.)

Comments

(Write comments for this or later revisions here.)

Attachments