Filer Software Functional Specification


    Distribution: COMPANY CONFIDENTIAL

    Project:      Applications
    Issue:        0.11
    Author(s):    Owen Love, Julian Smith
    Date:         13-Nov-96
    Last Issue:   0.10
  

Contents.


History

        0.01 OL 22-May-96 First created.
        0.02 OL 24-May-96 Added support for different filetypes.
        0.03 JS 30 May 96 Described implementation.
        0.04 JS 30 May 96 Now works with STBWeb to open created frames.
        0.05 JS 12 Jun 96 Now uses frames and message files in
                          Resource:$ for the template HTML.
        0.06 OL 21-Jun-96 Added support for help and new pictures.
        0.07 OL 05-Jul-96 Removed support for filetypes and added 
                          document icon.
        0.08 JS 22 Jul 96 Implementation information brought up to date.
        0.09 OL 29-Jul-96 Updated UI.
        0.10 OL 07-Aug-96 Updated pictures and added Cancel to delete.
        0.11 OL 13-Nov-96 Updated pictures

Outstanding issues


Overview

This document contains the software functional specification for the NC filer application to be included in the system ROM of the Network Computer Model 1.

Italicised text is used where issues are still to be decided or where contents are liable to change.


Technical background

The filer application will be a new application written as part of Network Computer Model 1 applications software.


User interface

The filer user interface will be implemented using a series of HTML pages. On selecting an application that requires a file to be loaded (ie. NC Writer) the filer application (implemented as a ROM module) will be run, this will create the HTML pages required for file operations. Users will then be shown the available filer options in a frame along the top of the screen.

Clicking the help icon will display the Help pages while clicking the close icon will return the user to the HTML page that called the filer application.

A second frame, covering most of the screen will be below the frame containing the icons. Initially, this frame will display the Open File Window and the Open icon will be highlighted but on selecting a different icon this main frame will change to show different filer options.

Open File Window

The open file window will allow users to select a file wish they wish to load or to create a new blank document. Clicking the open icon with highlight it and display a HTML page similar to this in the main frame:

To create a blank document users can type in a name and then press Enter. To load an existing file users will need to click the name of the file.

Delete File Window

The delete file window will allow users to select a number of files they wish to delete. Clicking the delete icon with highlight it and display a HTML page similar to this in the main frame:

Users will choose the files they wish to delete by selecting the check box next to file name. Clicking the Delete button will delete the files selected. Clicking the Close button will close the Delete File Window and re-open the Open File Window.

Help Pages

The filer application will containing a link to the help page file:/NCHelp:NCFiler/index.html and the Web browser will use this to obtain and display the help pages. Using a system variable allows these pages to be customised and loaded from anywhere on the network rather than being in a fixed place. When the user has finished with the help pages they will be closed and control returned to the filer application.


External dependencies

To launch the filer application a link will be required in a HTML page provided by the ISP.


Product organisation

The filer application will be integrated into the RISC OS build tree so that the application can be built into the NC ROM.


Future enhancements

The following list gives some examples of additional functionality which could be incorporated in future releases:


Implementation details

The functionality required to implement the Filer HTML pages is provided by the 'NCFiler' module. The NNFiler module implements a single *command which generates HTML pages containing the required forms. Each of the forms in the generated pages make the browser run the *command in the same NCCFiler module. This ensures consistency between the generated pages and the resulting actions.

Depending on the parameters set up by the particular form, the NCFiler module will either create a new HTML page, or perform an operation such as opening or deleting a file.

NCFiler's *command handler will return an appropriate error if the command couldn't be handled.

RISC OS does not allow filenames to contain the space character (32). When users enter a new document name the filer application will replace any space characters with hard space characters (160) to ensure that the filename is preserved correctly.

To create new documents a blank template file is required in the document directory. This file should be called "__" and will not appear in the list of the available documents. If this file does not exist then the 'Create a new document' option will not appear.


Implementation details - communication between the browser and NCFiler

This uses a similar system to the Configure module. Briefly, NCFiler implements a single *command (*NCFiler_Filer) which accepts a series of parameters from a HTML form encoded in either of the 'get' or 'post' ways. The first argument is always 'context=...'.

Currently supported parameters are:

context=FirstPage, Directory=(string)
Generates the initial Filer page for the specified directory. This page contains two frames. In the top frame ('Filer_Top') are the icons for create, delete etc. The bottom frame ('Filer_Top') can hold an open-file or delete files page. When first created, the Filer page will have an 'open-file' bottom frame.

context=FilerApp, Directory=(string), Action=(string).
This is called when the user clicks on one of the icons in the top frame of the Filer page.

Currently supported values for 'Action' are 'OpenFile' and 'DeleteFiles' (the 'Close' icon tells the browser to go back directly, without the intervention of NCFiler).

NCFiler will create an appriate HTML file and tell the browser to open this file into the bottom frame of the Filer display (see later for details of how NCConfig_Filer communicates with the browser).

context=CreateFile, Directory=(string), Filename=(string)

This command is executed when the user wants to create a new file, from an HTML page created in response to the 'context=FilerApp' command.

If the given file already exists, an error-page is generated, otherwise NCFiler will make a copy the '__' file in the directory and open it.

context=OpenFile, filename=(string)

This command is executed when the user wants to open an existing file, from an HTML page created in response to the 'context=FilerApp' command.

context=DeleteFiles, filename=(string) {,filename=(string)}

This command is executed when the user wants to delete existing files, from an HTML page created in response to the 'context=FilerApp' command. Note that there can be any number of files to delete.