|
|
|
Structured document (e.g., HTML, SGML, ODA, CDA) |
Method and system for importing MS office forms6973618
Abstract
Collaboration space object model provides for a place consisting of rooms created by users interacting with a client browser. A skin (i.e., theme) may be used as template for creating places. PlaceBots (i.e., agents) provide for accessing, processing and managing data in a place. HTML may be dragged and dropped into a place, where it is parsed and corresponding place fields created. MS Excel or Word documents may be dragged and dropped into a place, which creates a corresponding form, and users may create new documents using that form. A place type comprising a template of an entire place, or collaboration space, may be used to create new places. Changes made to a place may be reported, subject to security controls, by selecting what's new. Task fields are provided allowing web browser creation of forms for work flow. Place enabled objects are provided for synchronous communications. A quick browse feature provides a simplified format for browser windows based on selection of HTML links. MS Office documents may launched within a place for in place editing and importing the resulting document into the place.
Claims
1. Method for integrating first and second desktop models by importing and publishing documents generated by a content creation and editing interface tool of said first model including a coordinated suite of office applications having word processor, spreadsheet and database applications in a place in collaboration space in accordance with said second model including room, folders, and panes, comprising:
creating a document file in said first desktop model using said interface tool;
opening in a browser a place in collaboration space;
placing said document file into said place;
automatically converting said document to a hypertext markup language (html) file; and
saving said document file and said html file on a page in collaboration space of said second desktop model with said html file displayed in said place in read mode and said document file displayed in said place in edit mode.
2. The method of claim 1, further comprising the steps of:
at said browser, dragging and dropping said document file into said place as a template file; and
creating from said template tile a form.
3. The method of claim 2, further comprising the steps of:
using said form to create a new document of said first model.
4. Method for uploading a document prepared by a content creation and editing interface tool of a first model including a coordinated suite of office applications having word processor, spreadsheet and database applications into a place in collaboration space organized in accordance with a second model including room, folders, and pages, comprising the steps of:
creating a document file including web form fields using said interface tool of said first model;
saving said document file;
opening in a browser a place in collaboration space;
importing said document file to said place;
upon importing said document into said place, automatically converting said document into a web file containing hyperlinks that point to web pages.
5. The method of claim 4, said web file being a hypertext markup language (html) file.
6. The method of claim 5, including the step of including web form fields in said document file by selecting field icons from a web tools toolbar.
7. The method of claim 6, said toolbar including checkbox control, option or radio button control, drop down box control, listbox control, textbox control, text area control, submit control, submit with image control, reset control, hidden control, and password control.
8. Method for importing a document file into a place in collaboration space organized with rooms, folders, and pages according to a second model, comprising the steps of:
creating said document file using a content creation and editing interface tool of a first model including a coordinated suite of office applications;
presenting at a browser an interface window to said place including a new selector;
responsive to user selection of said new selector and an import option, displaying an import scene with an empty upload control;
dragging and dropping said document file to said upload control in a browser rendition of said place in collaboration space; and
responsive to receiving said document file in said upload control,
automatically converting said document file to hypertext files;
displaying a document file icon in said upload control; and
importing said hypertext files into said place.
9. The method of claim 8, further comprising the steps:
responsive to said user publishing said document file to said collaboration space, uploading to a collaboration space server said document file and said hypertext files.
10. The method of claim 9, said document file being a presentation file comprising a plurality of slides.
11. The method of claim 10, further comprising the steps of:
displaying said slides in a same page together with previous, next, and zoom buttons.
12. The method of claim 11, further comprising the step of, responsive to selection of said zoom button, displaying a larger version of a current slide also including next and previous buttons.
13. The method of claim 11, said hypertext files being hypertext markup language (html) files.
14. The method of claim 9, further comprising the steps of:
preparing to display a plurality of data objects contained in said document file by:
preparing and importing into a common page at said place a separate hypertext file for each said data object, together with any included images and support files,
modifying said hypertext files to link to next and previous data objects within said document file; and
at read time, responsive to user selection of said next or previous control, issuing a uniform resource locator (url) to load and display a respective next or previous data object in sequence.
15. The method of claim 14, said data objects being presentation slides or spreadsheet worksheets.
16. The method of claim 15, said hypertext files being hypertext markup language (html) files.
17. A system for uploading a document into a place in collaboration space organized according to a second model including room, folders, and pages, comprising:
a content creation and editing interface tool of a first model including a coordinated suite of office applications having word processor, spreadsheet and database applications for creating a document file including web form fields;
a browser for rendering a place in collaboration space;
a storage device for saving said document file;
an upload control for importing said document file to said place;
a server for implementing said second model and automatically, upon importing said document into said place rendered in said browser, for converting said document into a web file containing hyperlinks that point to web pages.
18. A system for importing a document file generated using a content creation and editing interface tool of a first model including a coordinated suite of office applications having word processor, spreadsheet and database applications into a place in collaboration space organized in accordance with a second model including room, folders, and pages, comprising:
a browser interface window to said place including a new selector;
a storage for storing said document file;
an import scene;
an upload control;
said import scene being responsive to user selection of said new selector and an import option for displaying said upload control;
dragging and dropping said document file from said storage to said upload control in said place as rendered in said browser; and
said upload control being responsive to receiving said document file for,
automatically converting said document file to hypertext files;
displaying a document file icon in said upload control; and
importing said hypertext files into said place.
19. A program storage device readable by a machine, tangibly embodying a program of instructions executable by a machine to perform method steps for uploading a document generated by a content and editing interface tool of a first model including a coordinated suite of office applications having word processor, spreadsheet and database applications into a place in collaboration space organized in accordance with a second model including room, folders, and pages, said method steps comprising:
creating a document file using said content and editing interface tool including web form fields;
opening in a browser a place in collaboration space;
saving said document file;
importing said document file into a browser rendition of said place;
upon importing said document into said place, automatically converting said document into a web file containing hyperlinks that point to web pages.
20. A program storage device readable by a machine, tangibly embodying a program of instructions executable by a machine to perform method steps for importing a document file generated by a content creation and editing interface tool of a first model including a coordinated suite of office applications into a place in collaboration space organized according to a second model including room, folders, and pages, said method steps comprising:
presenting at a browser an interface window to said place including a new selector;
responsive to user selection of said new selector and an import option, displaying an import scene with an empty upload control;
dragging and dropping said document file to said upload control; and
responsive to receiving said document file in said upload control,
automatically converting said document file to hypertext files;
displaying a document file icon in said upload control; and
importing said hypertext files into said place.
21. A computer program product or computer program element for uploading a document prepared by a content creation and editing interface tool of a first model including a coordinated suite of office applications into a place in collaboration space organized in according to a second model including room, folders, and pages, according to the steps of:
creating a document file using said interface tool including web form fields;
opening in a browser a browser rendition of a place in collaboration space;
saving said document file;
importing said document file to said browser rendition of said place;
upon importing said document into said place, automatically converting said document into a web file containing hyperlinks that point to web pages.
Description
TECHNICAL FIELD OF THE INVENTION
This invention relates to web technology. More particularly, it relates to the creation and use of collaboration sites on the Internet or on an Intranet client/server system and to the graphical user interface used in Internet communications.
BACKGROUND ART
The Internet and the World Wide Web (WWW) provide intra-enterprise connectivity, inter-enterprise connectivity and application hosting on a larger scale than ever before. By exploiting the broadly available and deployed standards of the Internet and the WWW, system users and designers can leverage a single architecture to build client/server applications for internal use that can reach outside to customers, business partners and suppliers.
Collaboration requires simultaneous communication between individuals on a project team. Typically, this has required that the team members work in the same location. Phone and video conferencing has enabled some remote work on the part of team members. Also, because of the growth of the Internet, collaboration using web technologies has been attempted, primarily using electronic mail (E-mail), Internet chat rooms, electronic whiteboards, and conferencing software. The most useful has been E-mail, but this approach results in a large trail or thread of notes as collaboration on a project advances, and these notes have no home or place to reside which is accessible by all team members substantially instantaneously and simultaneously. People often enter such a thread at different points, and such threads are not efficient in coordinating the work of many different people on a team which may include in-house developers and others, such as remote contractors, outside of an enterprise's firewall.
In order for such disperse teams to have the same, or substantially the same, collaboration environment as individuals working in the same physical office, a system is required which facilitates instant messaging, voice conferencing, electronic white boarding, and text and non-text file exchange. Such a system needs to provide a collaborative electronic room, or space, which is easily configured for use by team members without substantial administrative or application development support, and preferably include both groupware and project oriented applications such as shared folders, file exchange, workflow, group calendars, threaded conversations, version control, file locking, file merging, and security.
There is a need in the art for such a system which is easy to set up and which enables diverse and remote teams to become immediately productive in a secure environment. It would be, further, most desirable to allow such a collaborative environment to be set up without administrative support, that is by members of the team itself, using a familiar and easy to use browser user interface. Members of the team, acting with manager or author authority, and using such a browser interface without involving administrative or application development support, need to be able to set up a folder or room for each project element, such as a source code component, with version control, workflow elements, and group calendaring for tracking the project or project element with respect to approvals and deadlines. Such a room needs to receive from team members reports and have them routed to appropriate team members for review, resolution, and approval.
The WWW is a collection of servers on an IP (Internet Protocol) network, such as the Internet, an Intranet or an Extranet, that utilize the Hypertext Transfer Protocol (HTTP). Hereinafter, "Internet" 100 will be used to refer to any IP network.
HTTP is a known application protocol that provides users with access to files, which can be in different formats, such as text, graphics, images, sound, and video, using a standard page description language known as Hypertext Markup Language (HTML). Among a number of basic document formatting functions, HTML allows software developers to specify graphical pointers on displayed web pages, commonly referred to as "hyperlinks," that point to other web pages resident on remote servers. Hyperlinks commonly are displayed as highlighted text or other graphical image on the web page. Selection of a hyperlink with a pointing device, such as a computer mouse, causes the local computer to download the HTML associated with the web page from a remote server. The browser then renders the HTML into the displayed web page.
Web pages accessed over the Internet, whether by a hyperlink, opening directly via an "open" button in the browser, or some other means, are commonly downloaded into the volatile cache of a local computer system. In a computer system, for example, the volatile cache is a high-speed buffer that temporarily stores web pages from accessed remote web sites. The volatile cache thus enables a user to quickly review web pages that were already downloaded, thereby eliminating the need to repeat the relatively slow process of traversing the Internet to access previously viewed web pages. This is called local caching.
It is an object of the invention to provide a collaboration space application model for creating web applications that are aesthetically pleasing and present the user with a simple interface.
It is a further object of the invention to provide for creating web applications that are instantly created, instantly archived, team and project oriented, easy to use, created, accessed and administered via the Web, reusable, and extensible.
It is a further object of the invention to provide an improved method and system for uploading Microsoft Office documents, presentations and sheets into a place in collaboration space.
SUMMARY OF THE INVENTION
In accordance with the invention, there is provided a method and system for uploading a document into a place in collaboration space, by creating a document file including web form fields; saving the document file; importing the document file to the place; and upon importing the document into the place, converting the document into a web file containing hyperlinks that point to web pages.
In accordance with an aspect of the invention, there is provided a computer program product configured to be operable for uploading a document into a place in collaboration space, according to the steps of creating a document file including web form fields; saving the document file; importing the document file to the place; and upon importing the document into the place, converting the document into a web file containing hyperlinks that point to web pages.
Other features and advantages of this invention will become apparent from the following detailed description of the presently preferred embodiment of the invention, taken in conjunction with the accompanying drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a schematic representation of a typical server/client system implementing the collaboration space of the preferred embodiments of the invention.
FIG. 2 is a schematic representation of various server and client components implementing the collaboration space of the preferred embodiments of the invention.
FIG. 3 is a schematic map illustrating Domino objects relating to the object model of the collaboration space of the preferred embodiments of the invention.
FIG. 4 is a schematic map of the object model implementing the collaboration space of the preferred embodiments of the invention.
FIG. 5 illustrates the components of a collaboration space user interface.
FIG. 6 is a flow chart representation of generation of collaboration space data objects.
FIG. 7 illustrates a typical collaboration space user interface.
FIG. 8 is a schematic representation of a directory structure, along with the files in an exemplary collaboration space server.
FIG. 9 is a flow chart representing the method steps for creating a PlaceBot.
FIG. 10 is a schematic representation of a screen capture illustrating creation of a new page in accordance with a preferred embodiment of the invention.
FIG. 11 is a schematic representation of a screen capture illustrating the user interface for creating a new page in collaboration space.
FIG. 12 is a schematic representation of a screen capture illustrating the user interface for in Place editing of Microsoft documents.
FIG. 13 is a flow chart illustrating in-place editing in accordance with the preferred embodiment of the invention.
FIG. 14 is a schematic representation of a screen capture illustrating the user interface for in Place editing of Microsoft documents.
FIG. 15 is a schematic representation of a screen capture illustrating the user interface for attaching forms.
FIG. 16 is a system diagram illustrating importing interest content into collaboration space.
FIGS. 17-20 are schematic representations illustrating the user interface for editing a collaboration space file attachment and saving the changes back to collaboration space.
FIG. 21 is a flow chart illustrating the creation and importation into collaboration space of a form.
FIG. 22 is a schematic representation of a task page presented in list mode.
FIG. 23 is a schematic representation of a task page presented in time line mode.
FIG. 24 is a schematic representation of a read scene state display for tasks.
FIG. 25 is a schematic representation of a user interface for integrating a form into workflow.
FIG. 26 is a schematic representation of a user interface for adding events to a calendar page and for publishing it in a specific folder in collaboration space.
FIG. 27 is a schematic representation of a user interface including upload control.
BEST MODE FOR CARRYING OUT THE INVENTION
Architecture Overview
Referring to FIG. 1, a broad overview of a system implementing the collaboration space technology of an exemplary embodiment of the system of the invention is presented.
Server 100 includes a Domino server 104, HTTP server 106, QuickPlace extensions 108, and open storage 130. Client 102 includes a QuickPlace user interface 110 and browser 112.
QuickPlace open storage 130 includes all the databases and templates that implement the collaboration space. Domino 132 and active directory 134 define the collaboration process. The user interfaces with the system through browser 112. .NSF agents 114, 116, Java 118 and LotusScript 120 represent components and templates downloaded from server 100 in support of collaboration space at client 102. All the extensions 108 are keyed off the URL, as will be further explained hereafter.
Notes API 136, Notes designer 138 and client 140, external applications 142, including Java agents 144 and LotusScript 146, are located off of open storage 130. Open storage 130 is storage where a document can be communicated, such that external applications 142 may manipulate it. QuickPlaces, pages, folders, can be created and changed, and data 148 can be imported and exported, using agents in Java 144 or LotusScript 146.
QuickPlace is primarily concerned with representing the collaboration space. Consequently, designers and consultants are able to integrate into that space custom features and data from other applications. HTML forms 122, written using an HTML editor 124, skins 248 (HTML 244 and QP tags), external files written using Java 118, and MS office documents 250 from MS office 228, may be imported to server 100 by dragging and dropping 111 from local storage 502 into an upload control panel 240 in browser 112.
An alternate client 126 and encapsulated place types 128 may be provided from which other spaces 129 can be created that take advantage of the QuickPlace storage model, providing functionality which can be manipulated using browser 112, including the integration of external technology providing opportunity for deep customization.
Server/Client Components
Referring to FIG. 2, in accordance with an exemplary embodiment of the invention, several components comprise QuickPlace server 100 and client 102.
QuickPlace is built on top of the Domino server 104. In the case of a stand alone installation, a subset of the Domino server is installed. Server 100 also includes HTTP server 106, or the optional MS IIS server 150. QuickPlace extension 108 is where we built most of the collaboration space implementing code exists the server 100. Server 100 also includes a spell checker 152 and a text to GIF converter (Limerick).
Client 102 includes rich text edit control 162, and applet 164 with which to apply various attributes and is a key component of the QuickPlace experience. Upload control 166 is used to attach and upload files, such as bringing in an agent and uploading it to a place. This is also used to bring in an imported HTML form or a different skin. Upload control is implemented to allow ease of use via drag and drop. Java script 118 includes code downloaded to the client to complete the generation of HTML pages.
Collaboration Space Object Model
Referring to FIG. 3, the collaboration space of the preferred embodiment of the invention, referred to as QuickPlace, is implemented with an object model which comprises very few objects, very few concepts in order to make it easy to build and manage. And the fewer concepts, the better.
Referring to FIG. 3, the object model is independent of its implementation. There exists a place 172 that has rooms 174, and there are pages 182 in those rooms. And then there are members 190 of the place. Those four objects 172, 174, 182 and 190 are the primary objects.
Folders 176 add more complexity to the model, but bring a lot of benefit as well. Pages 182 are organized within folders. Two further objects are primarily visible to the designer of the place. And these are forms 178 and fields 180.
Place type 196 is a more advanced object, and is an object from which a place 172 is created. Place type 196 represents the foundation for building true collaborative applications. Everything created in building collaboration space is done in a place 172. Once such a place is created, it can be made a template 266 (FIG. 6) and copied as a place type 196. Once it becomes a place type 196, it is available for use by others for building additional places 172 that include the format, look and feel, and other characteristics of the original place.
This is illustrated in FIG. 11, where a first place 360 is converted by QP extensions 108 into a place type, or template 364 from which additional places 366 may be created.
Room type 198 is an object provided for creating rooms 174 which are of a given type.
The last two objects illustrated in FIG. 3 are skins 200 and PlaceBots 184. Skins 200 control everything about the user interface, including layout and style. Layout defines the positioning of components on the screen. Style defines the form and colors of those components. A PlaceBot 184 is an enhanced agent, enhanced in the sense that it enables the use of Java or Lotus Notes or equivalent text editors. Once written using such an editor, and uploaded to a place 172, the server compiles the PlaceBot into an agent, reporting any errors. The agent resulting from a compiled PlaceBot can be scheduled to run at certain times, or upon opening a form. That is, the PlaceBot may be associated with a form, such as a sales order which, when opened, will cause the agent to execute. Thus, PlaceBots 184 are an essential part of building collaboration applications, for they are the primary repository for custom logic.
Referring further to FIG. 3, a preferred implementation of the object model heretofore described uses Lotus Notes/Domino concepts and objects. Thus, Notes/Domino file system directory 202 represents place 172; database 204 represents room 174; folder view 206 represents folder 176; pages 182, members 190, forms 178, fields 180 and skins 200 are represented by notes 208, 210, 212, 214, 220, respectively.
Place 172 is represented as a file system directory. So whenever a place called Acme is created, a file system directory 202 called Acme will be instantiated. Within that directory 202, there are a number of objects. Each room 174 is a Notes database 204. Folders 176 are implemented as Notes folders or views 206 depending on what's more convenient for the particular folder.
Pages 182 are a combination of data notes, forms and sub-forms 208. A member 190 is a data note 190 in a context room 174. Forms 178 and fields 180 are data notes. Place type 196 is a directory* 216 that contains all the rooms 174 that make up that place type. A room type 198 is a template 218. Skins 200 are a note 220 and PlaceBot 184 is an agent 222.
Notes/Domino Implementation of the Object Model
Developers familiar with the Domino Object Model (Domino OM) will be able to leverage their existing skills when developing on the QuickPlace platform. "PlaceBots" for example are implemented as Domino Agents, and it is possible to create and test them on Domino Databases. Within the QuickPlace object model (OM), however, there are some divergences from the Domino OM. For example, QuickPlace forms 178 are not the same as Domino Forms. QuickPlace forms more closely resemble Domino Documents, because they are created using a Domino form, and contain a Domino text field with a value of "h_Form". The value of "h_form" tells QuickPlace that this Domino document should be rendered in a browser as a QuickPlace form 178.
This structure provides flexibility for Web applications with less complexity than if Domino Forms were used. For example, in a default QuickPlace, a user can create a new QuickPlace form 178. The user chooses which fields to include in form 178, in what order they should appear and what text and or graphics should appear near them. To create this sort of instant structure on the Web using Domino Forms would be very complex indeed. QuickPlace has extended this concept of being able to use HTML to define forms 178 by enabling the creation of custom QuickPlace forms using imported HTML 122. These Forms not only make use of Web authoring technologies such as JavaScript, but also have the back end support of Domino. This back end logic is implemented via tools such as PlaceBots (Domino Agents) 184. This means that forms 178 have the ability to not only to define the look and feel of visible parts of an application, they also have the potential to initiate workflow and many other powerful automated features.
QuickPlace forms 178 have been optimized by stripping away many of the Notes features not required when used on the Web. A another advantage of this structure is that it enables the use of Web authoring tools to extend the objects. For example, with respect to QuickPlace forms, it is possible to modify forms using XML, JavaScript and HTML and any other Web tools. Knowledge of JavaScript and HTML are more common than Domino Designer skills, thus making the QuickPlace a very open platform. Some parts of the QuickPlace OM implement Domino/Notes functionality in different ways to a standard Domino application. For example, QuickPlace uses Domino's security and authentication model as a basis for its management of access to QuickPlaces. However, instead of primarily utilizing the Domino Directory, QuickPlace also uses a Contacts1.nsf database for each QuickPlace.
Containment and Association of Objects
Referring to FIG. 4, this object model is further described. FIG. 4 illustrates selected QuickPlace objects, the directory structure and how Objects relate to each other within the hierarchy. This model provides a visual representation of the containment and association between objects.
QuickPlace Server
The highest level of the model is the QuickPlace Server 170. Within server 170 are all of the QuickPlaces 172 as well as the resources they access to finally render Web applications.
This FIG. 4 displays the Model focusing on QuickPlaces. The following explanation, written from a programmers perspective, describes each of the objects of the model and they can be accessed in an application.
QuickPlace uses notes for many of its objects 182, 190, 178, 180 and 200, so that objects in the Place can be organized more easily. Table 1 sets forth the QP objects and their Notes/Domino equivalents. As an example of how design Notes are implemented consider the Table Of Contents (TOC). The Table Of Contents is a list of pages, folders and tools such as the Customize Area. Domino Folders may be listed using a link document, or Note.
| TABLE 1 | | QUICKPLACE OBJECTS AND DOMINO EQUIVALENT | | | QuickPlace Object | Domino Equivalent | | | | | QuickPlace Server | File Directory | | | Place | File Directory | | | Page | Data Note, Form & Subform | | | PlaceBot | Domino Agent | | | Theme | Data Note | | | Member | Data Note in Contacts1.nsf | | | Subroom* | NSF Database | | | SubroomTheme | Data Note | | | SubroomMember | Data Note in Contacts1.nsf | | | Room | NSF Database | | | Folder/TOC | Folder or View | | | Form | Data Note | | | Field | Data Note | | | | | *Subrooms contain their own set of Folder, Page, Form, Field, PlaceBot & Subroom Objects |
QuickPlace Server 170 is a file directory containing all Places and Resources. The Domino equivalent is a file directory 202 named "quickplace". This identifies the main folder 176 for a QuickPlace server 170. If the QPServer 170 is running as a stand alone, this folder will be in the QuickPlace data folder. For example
D:\QuickPlace\Data\quickplace.
If the QPServer 170 is running on top of a Domino server the folder will be the Domino Data folder. For example
D:\Lotus\Domino\Data\quickplace.
To locate QuickPlace Server 170 in PlaceBots and get access to all of its databases, a LotusScript method GetDbServer is executed together with a test that the Path to databases starts with "QuickPlace".
Place Object
Place object 172 is a directory in the "QuickPlace" directory grouping resources for a Place. The Domino equivalent is a file directory bearing the name of the QuickPlace. Place object 172 is a directory that brings together a Place for organizational purposes. It also identifies the NSFs 114 as belonging to the place 172 by bearing the name of the QuickPlace. As distinguished from a place object 172, the main room 174 in a QuickPlace is a database called Main.nsf. Place object 172 groups and identifies the Main.nsf resources for the Place and any subrooms 194 in the Place. Place object 172 contains several files. There is a Main.nsf, Contacts1.nsf and a Search.nsf file. If the QuickPlace has a Subroom 194 there will also be an NSF file with its name starting with "PageLibrary". Each of these page library files is a Room 174.
The place object in PlaceBots 184: place object (directory) 172, contains the databases which form a place. When writing PlaceBots, one can search for this directory by using the name of the QuickPlace. In this directory will be found all the databases will belong to that place 172. This file directory's name is the name of the QuickPlace. For example, if the QuickPlace is called "Millennia", this directory has the following path within the QuickPlace server 170:
\millennia
To find the place object 172 for the Millennia Place in LotusScript the script procedure of Table 2 may be used:
| TABLE 2 | | SCRIPT PROCEDURE FOR FINDING A PLACE | | | | | Dim ndbPlace As NotesDatabase | | | Set dirPlace = New NotesDbDirectory( g_sServerName ) | | | Set ndbPlace = dirPlace.GetFirstDatabase( DATABASE ) | | | sNdbPlaceFilepath = ndbPlace.FilePath | | | If Instr(1, Lcase( sNdbPlaceFilepath ), | | | |quickplace\millennia| ) Then | | | '//the Place is found | | |
Room Object
Room object 174 is the main container for a Place, containing a collection of pages and tools. The Domino Equivalent an NSF Database. The room 174 is the main container for a QuickPlace's content. For example, when using the Millennia Place, most of what is seen is contained in the Room object. The Room object is always called Main.nsf, and holds folders 176 and pages 182 for the QuickPlace, as well as managing links to any subrooms 194 in the place object 172. Room object 174 uses elements held in other databases. For example many of the standard images QuickPlace displays are in a resources object (not shown). Each room 174 has its own security and authentication, and the information required to do this is contained in databases such as Contacts1.nsf. A room 174 breaks down a place 172 into smaller areas to help define structure. Each room 174 has its own security and authentication. This allows separate user groups. It also means that subrooms 194 can be created for separate projects, forming a separate shared space. The room object 174 then forms a common entry point where shared resources can be stored.
The room object in PlaceBots: to locate a room 174, one looks in the main QuickPlace Server 170 directory, then looks into the room object (a directory bearing the name of the QuickPlace), then looks for a database called "Main.nsf".
Returning to previous LotusScript example of locating a Place 172 (Table 2), the match string can be extended from
"quickplace\millennia" to
"quickplace\millennia\main.nsf"
to find the room object 174, as set forth in Table 3.
| TABLE 3 | | SCRIPT PROCEDURE TO FIND A ROOM OBJECT | | | | | Set dirPlace = New NotesDbDirectory( g_sServerName ) | | | Set ndbPlace = dirPlace.GetFirstDatabase( DATABASE ) | | | sNdbPlaceFilepath = ndbPlace.FilePath | | | If Instr(1, Lcase( sNdbPlaceFilepath ), | | | |quickplace\millennia\main.nsf| ) Then | | | '//the Room id found. | | |
To access elements contained in a room 174, the views and folders 176 in the room are accessed. For example to find the elements visible in the Table Of Contents (TOC), the "h_TOC" view is used.
The Room object 174 in HTML is visible in URLs as the "main.nsf". To access room object 174 most easily, a relative path is used from the current object if it is in the same Place 172. For example, when creating a URL link from a subroom 194 to a room 174, the URL begins as follows:
<a href="../../Main.nsf/
where the "dot dot slash dot dot slash" syntax is a part of the URL, not an abbreviation for this example. Using this relative URL makes the URL more robust. In other words, this URL can be used to find the (Main.nsf) room 174 for any place 172.
Room fields 180 used to define rooms 174 are set forth in Table 4.
| TABLE 4 | | FIELDS DEFINING ROOMS | | | Field Name | Description | | | | | h_HaikuName | The name of this Place | | | h_AreaType | The name of the template used to create | | | | this room. | | | h_AreaParent | The name of the parent database | | | h_ShowSecurity | If h_SetSecurity = 1, the QuickPlace | | | | server sets h_ShowSecurity to 1. | | | h_SetCalendar | Determines if the Calendar will be | | | | visible in a Room. If the field has the | | | | value of "1" a link to the Calendar will | | | | be displayed in the sidebar | | | h_SetSecurity | This field works in conjunction with the | | | | h_ShowSecurity field. It is only valid | | | | for Readers and Authors, because | | | | Managers must always be able to edit | | | | security of a Room. If the field is set | | | | to "1" a link to the Security page will | | | | be displayed in the sidebar for Readers | | | | and Authors (if they select Security in | | | | this case they will see only their own | | | | information) | | | h_MailDb | The name of the database that receives | | | | email addressed to this Place. | | |
Folder Object
A folder object 176 is an object for indexing content, grouping related pages 182, and dividing a room 174 into sections without imposing new security. The Domino equivalent is Notes folder or view 206, and Notes folders 206 have three functions. For the user, they provide a logical grouping of related documents. This makes it easier for the user to find documents, and allows people with a shared interest to work an area of a QuickPlace. The other way of using folders is in the user interface, or "User" folders. Within user folders there are seven different types:
1. Standard List
2. Headline
3. Slide Show
4. Response List
5. Ordered List
6. Table Of Contents
7. Index
Folder types 1 to 5 are all available as styles for new, custom folders. From the a site manager's perspective, a Folder allows a QuickPlace to be divided into areas for separate groups of people, without having to be concerned about access control which would be necessary if a Subroom 194 were used. Fields include the following: "h_LastAttachmentDirectory": used when getting attachments. This field enables users to quickly upload attachments. For example, each time a Layout file is uploaded, QuickPlace knows where to go looking for the file. This path information is sourced from this field. "h_DirtyAesthetics Number": indicates which items should be checked (once a part of the aesthetics has been tweaked, a check mark indicates that the part has been changed). h_AreaHasAesthetics: indicates if a Room has its own aesthetic settings enabled. If the field value is "1" the Room has had the aesthetics tweaked.
The third way that folders 176 are used is to allow developers to locate elements in a QuickPlace. To a developer, folders are indexes that allow look ups, therefore giving programmatic access to elements.
When any page renders in a Browser, the time it takes to render is directly dependant on the amount of information to be downloaded. The amount of information required to render a Folder is less than for a Page. When Pages appear in Edit mode, there is yet more information required to render it. Therefore, the quickest load time for a QuickPlace by first using a folder 176 as the first page the user sees when upon selecting a place. Once users have visited a folder 176, a subset of the resources used to render a page 182 will already have been downloaded. The folders used by developers are slightly different to than the folders users would use. The h_Index lists the published pages in the Place and appears as the standard index of a Place, and the h_TOC is the table of contents list.
Some of the folders in look ups by developers are set forth in Table 5.
| TABLE 5 | | VIEWS USED TO REFERENCE OBJECTS | | | View Name | Description | | | | | h_Index | Provides a list of all published Pages | | | | in a Room, listed by h_UNID, the unique | | | | identifier for a Page. Lists all | | | | published items in a Room, this not only | | | | includes Pages but all of the Objects in | | | | a Place. For example, Pages, PlaceBots, | | | | Fields, Skins and Forms. | | | h_QDK | Every Design Note in a Place. The h_QDK | | | | view contains a form formula to open | | | | different documents using different | | | | forms. For example: If the field | | | | "h_Type" is "0" then use the form named | | | | "h_Page". The result of this form | | | | formula is that the QDK view allows | | | | developers to inspect the properties of | | | | some Design Notes. The supported types | | | | are: "h_Page", "h_Folder", "h_Room", | | | | "h_SubRoom", "h_Error" and "h_RoomType". | | | h_TOC | List of all items displayed in the Table | | | | Of Contents. Items must have the | | | | "h_IsInTOC" field with a value of "1" | | | | and be published with no | | | | replication-save conflict. | | | (All) | Every item in the Room. Sorted by the | | | | h_Name field: the readable name of the | | | | item. For example "Welcome", | | | | representing the default Welcome page. | | |
The Place Object in PlaceBots: Internally, default QuickPlace Folders have readable titles. For example the response folder discussion" has the internal name of "h_Discussion" in the "h_SysName" field. A new response list style folder is called "SchwatzRaum" (which means "chat room" in German). The internal name of the SchwatzRaum Folder is: "h_F49791727035ACD1C12569510063087C" (which means "h_F49791727035ACD1C12569510063087C" in German). This unique identifier can be used in PlaceBots to locate the Folder. A lookup can be done in the "h_Folders" view of a QuickPlace to find the readable name of the folder. Another solution is to retrieve the name of the field by accessing the value in the h_SysName field. The Table of contents and the Index are special user Folders 176. Only one TOC and one h_Index exists per Room 174 or Subroom 194. They exist from the moment the Place or Room is instantiate, and change them.
Folder Fields
The following Fields are used to define data notes that render as Folders. Folders exist in a visible form within a QuickPlace. In other words they can be viewed by opening the NSF file in the Notes Client or Domino Designer. In conjunction with this view, a data note exists, providing information about that Domino View or Folder. Table 6 lists the fields are contained in the data note and provide information about the Domino View or Folder.
| TABLE 6 | | FIELDS USED TO DEFINE FOLDERS | | | Field Name | Description | | | | | h_FolderStyle | When creating a new folder, one is given | | | | the choice to create a new folder based | | | | on a number of templates. This field | | | | denotes which type of folder has been | | | | created. | | | | "1" = Standard List | | | | "3" = Headline | | | | "4" = Slide Show | | | | "5" = Response List | | | | "7" = Ordered List | | | h_FolderStorage | The "internal" name of the folder, in | | | | other words, the name by which it is | | | | known to the system. The value of this | | | | field is used in documents to tell | | | | QuickPlace in which folder it should be | | | | used. | | | h_CanAddPages | When creating a new folder, the manger | | | | is presented with the options, to the | | | | question "Who can add pages to this | | | | folder?". If only managers is chosen | | | | the value of "0" is written to this | | | | field. The default is "" which means all | | | | authors can add pages to this folder. | | |
Form Object
A form object 178 is a document used to create new QuickPlace content. The Domino equivalent is a data note of type "h_Form". Form object 178 is a resource used to create, manage and display content, therefore defining the schema of the application. Forms contain fields to hold data, therefore creating and displaying content. Forms can also contain scripts within them to provide logic within the Page. For example, a form can contain form validation to make sure that a field contains only numbers. Forms can also initiate processes outside the page. This is done by creating a PlaceBot 184 and associating the PlaceBot with a Form 178. PlaceBots 184 are not contained by the Form but there is a association between them.
Forms are created with the Domino Form "h_PageUI" with the field h_Type set to "h_Form". New forms 178 with custom structure and logic can be created by room managers.
Form Fields
Table 7 sets forth the fields 180 used to define the structure of a form 178.
| TABLE 7 | | FIELDS USED TO DEFINE FORMS | | | Field Name | Description | | | | | h_FormDescription | The content of this field appears | | | | as the description of the form | | | | appearing in the "New" page. | | | h_WorkflowType | Allows 1-4 approvers and some other | | | h_ApprovalCycle | options. This is normally set to | | | | "h_Standard". | | | h_EditorInChief | Allows 1 approver and fewer | | | | options. | | | h_MultipleEditors | By setting this field, all members | | | | of QP to edit pages created with | | | | this form. | | | h_Standard | None of the above. | | | h_SetPageComponent | sView Should = h_FieldDefinitions | | |
Field Object
Field object 180 is used to construct (HTML formatted) input fields in forms 178. The Domino equivalent is a Data note of type "h_Field". Fields are constructed from the Domino Form "h_PageUI" with a the field h_Type set to "h_Field".
QuickPlace field object 180 defines the structure of the container, not the content. The values contained in a page 182 are contained by the page, not the fields 180. The h_FieldType attribute to a field 180 determines what sort of field it is. This determines what the field will do when it is rendered in a browser. For example, a field 180 of type h_DateControl will provide the user with a date picker widget.
Domino fields are used to define the attributes of QuickPlace fields 180 are set forth in Table 8. QuickPlace fields 180 are drawn to the screen as HTML, they are not created by a Domino Field in a Domino Form.
| TABLE 8 | | FIELDS USED TO DEFINE FIELDS | | Field Name | Description | | h_IsUser | Defined h_True means this is a custom | | | form | | h_PublishInFolder | UNID of the folder +"|" + | | h_FolderStorage | name of the folder | | h_Name | "Import" and is related to the | | | h_SystemName field which often has a | | | similar value such as "h_Import". | | h_FieldLabel | Instructional information that might be | | | useful for someone editing this field. | | | Similar to the Static h_FieldType. | | | Containing information to help the user, | | | but only displayed in edit mode. "For | | | example: <script> (h_CurrentSkinType == | | | 'h_Edit' )?" ": C(self, 'Note: Clicking | | | on the title of this page in its folder | | | or in the sidebar will open the page | | | that it points to. To edit the page | | | again later, click its title in the | | | Index.');</script>" | | h_ContainerUNID | The UNID of the Form which contains | | | this field. QuickPlace uses a Design Note | | | to create forms, each of these having an | | | internal name. The h_ContainerUNID | | | contains the internal name of one of | | | these QuickPlace Forms. | | h_FieldType | There are many different types of | | | Fields. The following types are listed | | | as examples to help understand how | | | Fields work in general. | | "h_Attachments"= | Enables the attaching of files. | | "h_CalendarControl"= | Includes date and time controls and | | | a duration field | | "h_DateControl"= | Date field with date picker widget | | "h_DateTime"= | Contains Date and Time information. | | "h_DocAuthor"= | Contains a Domino Heirachical name of | | | the original Author of the Document. | | "h_DocCreated"= | Creation date of the page. | | "h_DocModified"= | Modified date of the page. | | "h_DocSize"= | Size of the page. | | "h_NamePopup"= | Select listing members of the QuickPlace | | "h_RichText"= | Rich text field. Allowing editing via | | | the rich text editor applet. | | "h_Serial"= | A unique number to identify the | | | document. | | "h_Static"= | Static text, used to provide information | | | about the accompanying field. May also | | | include link to an image. | | "h_Subject"= | The Documents subject. | | "h_TaskControl"= | Used in the Task form to insert the task | | | control tool. | | "h_TextInput"= | Simple text equating to the "<input>" | | | field in HTML. | | "h_TextPopup"= | Text select list, equating to the | | | "<select><option>"in HTML. | | "h_TimeControl"= | Select lists for hours, minutes, AM/PM. | | "h_CalendarControl"= | Field containing control tool used | | | in the calendar field. | | "h_CreateMSExcel"= | Field enabling the upload of Excel | | | documents. | | "h_CreateMSPowerPoint"= | Field enabling the upload of | | | PowerPoint documents. | | "h_CreateMSWord"= | Field enabling the upload of Word | | | documents. | | "h_Import"= | Field enabling the upload of imported | | | documents such as HTML. | | "h_MultipleImport"= | Field enabling the upload of multiple | | | documents, such as a series of HTML | | | documents. | | "h_NotifyIndicator"= | Field indicating if members should | | | be notified of the creation of | | | content or their inclusion in the | | | Contacts1.nsf. |
Page Object
Page object 182 is a basic building block for content. The Domino equivalent is a data note, form and subform. Pages form the basic units of content, relying on the structure of QuickPlace to create, manage and render them in a Web browser. It differentiates structure and content cleanly. Notes structural elements such as Forms Views and so on provide structure, whereas Notes Documents provide pure data content. In the Domino environment the division between structure and content becomes blurred. This is because when the data in a document is being represented in a Web browser, it is possible to use the data to format itself using HTML. The data is able to start defining structure by creating HTML links, tables, references to images and so on. In the QuickPlace OM, the same is true. Pages can be created in a number of ways. Table 9 sets forth the fields used for defining page objects.
| TABLE 9 | | FIELDS DEFINING PAGE OBJECTS | | | | | h_NotInSearch | Having the value of "1" will exclude the | | | | field from being included in a full text | | | | search. This allows functional content | | | | in fields such as JavaScript or static | | | | text to evade returning a hit during | | | | searching. | | | h_Position | Indicates the fields position of | | | | appearance in a form. Typically numbers | | | | such as 100 are used. | | | h_FieldFormat | "h_FieldFormat" indicates formatting | | | | options, "h_All" "h_BannerOptional" | | | | "h_BannerRequired" | | | h_BannerRequired | Always display subject as a banner at | | | | top of page | | | h_BannerOptional | Allow user to choose banner or not | | | h_NoBanner | Do not display the subject on the page | | | h_FieldIsRequired | 1 = The field is required and the user | | | | will be prompted if they do not fill it | | | | out. | | |
Page Fields
Page Object in LotusScript and JavaScript: developers wanting to customize pages 182 will generally want to manipulate the page's field 180 values. Fields existing in a Page are generally rendered to the HTML document in the background as JavaScript variables. They are then visibly rendered via document.write( ) functions. If a field exists, it can be accessed in the browser via a variable with the same name as the field.
The PageBody Field holds the main content or "body" of the page.
Table 10 sets forth the fields 180 used to define page 182 documents in QuickPlaces.
| TABLE 10 | | FIELDS USED TO DEFINE QUICKPLACE PAGES | | | Field Name | Description | | | | | h_Form | The QuickPlace form used to create this | | | | page. This is not the Domino "Form" | | | | field which denotes which form Domino | | | | links the file to. The Domino "Form" | | | | field will contain "h_PageUI" for | | | | virtually all objects in a QuickPlace. | | | h_PageType | This field is set to null when the | | | | document is a visible document. Only | | | | when the object is in design mode do the | | | | other values appear: | | | | "h_Response" the document is a response | | | | to a topic document. This value is only | | | | valid in response folders. | | | | "h_Revision" this means that the | | | | document is being revised, and is not | | | | available for public access. | | | | "h_Mail" means that the document is a | | | | mail document, being either sent or | | | | received by QuickPlace. | | | h_Originator | The creator of this page. This field | | | | contains a full hierarchical name, for | | | | example: "CN=David Wyss/OU= | | | | QuickPlaceName/OU= QP/O= ServerName". | | | | All users have the second OU part of the | | | | name set to QP. This is done so that | | | | when QuickPlace is used on an Overlay | | | | server (QuickPlace and Domino together) | | | | QuickPlace can avoid conflicts between | | | | Domino registered users and QuickPlace | | | | users. | | | h_NameIsBanner | Denotes if the page's name should be | | | | displayed as a banner. If it is to be | | | | displayed as a banner, this field | | | | contains the value "1". Setting this | | | | field is done when the user clicks on | | | | the "Show the title, author and date on | | | | page?" checkbox. | | |
The JavaScript "document.write" method is used when using the PageBody to write out HTML content in a QuickPlace page. This field can be printed onto the screen via a document.write(PageBody) method called in a QuickPlace document. The following is an example of using this technique.
In a Placebot, write the contents of the document into the PageBody field. If the PlaceBot has not run, or not run correctly, the PageBody field will be empty. If the document is displayed in a form where the PageBody JavaScript variable is not declared, an error will be reported. To avoid an error through an undefined variable, use the "typeof" operator. This test assigns a message string to the sPageBodyMessage variable and prints that instead of the PageBody. To customize this message, the text in quotes on the PageBodyMessage line is changed. Then the following is included in the HTML document:
| | | | <script language=JavaScript> | | | if ( typeof( PageBody ) == "undefined" ) { | | | var sPageBodyMessage = 'Run the Mapperizer PlaceBot | | | to see a site map here. . .'; | | | document.write( sPageBodyMessage ) | | | } else{ | | | document.write( PageBody ) | | | } | | | </script> | | |
Page Object in HTML: some of the most commonly referenced JavaScript variables in Pages are set forth in Table 11.
| TABLE 11 | | COMMONLY USED JAVASCRIPT VARIABLES IN PAGES | | Field Name | Data Type, Description | | h_Name | String, readable name of the Page | | PageBody | String, content of the page. | | h_SystemName | String, the internal name of a page. For | | | example, 'h_Welcome' | | h_Originator | String, full Notes format name of the | | | document creator For example: 'CN=Anna | | | Rath/OU=Millennia/OU=QP/O=Server'; | | h_IsPublished | String, number representing "1" for | | | published or "0" for not published. | | h_LastTimePutAway | String, representing the date and time | | | the Page was last saved '09/03/2000 | | | 07:54:08 PM' | | Form | String, Domino Form name used to create | | | the Page. Most documents in a | | | QuickPlace are created with the | | | 'h_PageUI' Form. The value that | | | differentiates fields is the h_Type | | | field. | | HTTP_COOKIE | String, all cookies available to that | | | Page. | | HTTP_HOST | String, name of the server. For example | | | 'millennia.com' | | HTTP_REFERER | Page used to send the user to this page. | | HTTP_USER_AGENT | String, browser used to access the | | | current Page. For example: 'Mozilla/4.0 | | | (compatible; MSIE 5.0; Windows NT; | | | DigExt)' | | REMOTE_USER | String, full name of the person reading | | | the Page, for example: 'CN=Doug | | | Mudge/OU=Millennia/OU=QP/O=Server'; | | Server_Name | String, the server name, for example: | | | 'dwyss.lotus.com' | | h_DocSize | Integer, size of the page, for example: | | | 4705 | | h_ModifiedDate | String, date and time the page was last | | | saved, for example: '09/03/2000 07:54:05 | | | PM'; | Using Notes name format in pages can be done with the following JavaScript Function:
| | | | function fnGetSimpleName(sTxt) { | | | iTxtStart = sTxt.indexOf('='); | | | iTxtStart++; | | | iTxtEnd = sTxt.indexOf('/'); | | | if(iTxtEnd == -1) iTxtEnd = sTxt.length; | | | sTxt = sTxt.substr(iTxtStart,iTxtEnd = iTxtStart); | | | return sTxt; | | | }; | | | return fnGetSimpleName('CN=Doug Mudge/OU= Millennia/OU= | | | QP/O=Server') | | | This JavaScript will return the string "Doug Mudge"
PlaceBot Object
A PlaceBot object 184 is a Java or LotusScript Domino Agent, used to create or manipulate QuickPlace objects automatically. Domino Equivalent: Domino Agent.
For Java and LotusScript programmers, the PlaceBot is the main way of implementing sophisticated functionality to a QuickPlace. Within the bounds of an HTML document, industry standard authoring tools such as HTML are used. To make links between Objects and manipulate QuickPlace Objects, PlaceBots are used.
Theme Object
A theme object 186 is a group of files which defines the look and feel of a QuickPlace. The Domino equivalent is a group of data notes.
Themes are a mechanism for determining the layout and appearance of a QuickPlace. They also help introduce functionality, and although not their primary function, some content. There are two types of themes 186 in QuickPlace. User defined or custom themes" and default Themes.
Subroom Theme Object
The subroom theme object 188 is a subset of themes 186 in a QuickPlace. The Domino equivalent is a data note. By default, subrooms 194 inherit the theme 186 being used by the (main) room 174. Only when the theme being used in the subroom 194 has been modified, does it act independently of the room 174.
Member Object
A member object 190 is a data note listing a user in the Contacts1.nsf. The Domino equivalent is a note in contacts1.nsf. Members 190 are records specifying user-access to a room 174. A member note contains information about a team member of a QuickPlace. In addition to this data, the member must be listed in the access control list (ACL) of main.nsf and in a group in names.nsf to pass authentication.
Table 12 sets forth the fields 180 used to define members 190.
| TABLE 12 | | FIELDS USED TO DEFINE MEMBERS | | | Field Name | Description | | | | | h_Password | This member's password. Encrypted with | | | | @Password | | | h_FirstName | This member's first name | | | h_LastName | This member's last name | | | h_PhoneNumber | This member's phone number | | | h_EmailAddress | This member's email address | | |
Table 13 sets forth the fields 180 used to define Groups.
| TABLE 13 | | FIELDS USED TO DEFINE GROUPS | | | Field Name | Description | | | | | h_Members | The list of members who belong to this | | | | group, listed in full heirachical | | | | format. | | |
Subroom Member object
A subroom member object 192 is a subset of entries in the main room 174 of a QuickPlace. The Domino equivalent is a Data note in contacts1.nsf. Subroom member 192 has a similar structure to a room member 174, but specifies user-access to the SubRoom. These SubRoom members 192 are a subset of the (main) room 174 members list. This means that to grant access to new users, they must first be added as readers (or greater) in the main room 174.
SubRoom Object
A subroom object 194 is a container within a QuickPlace with separate security to main Room. The Domino equivalent is an NSF Database. Subrooms 194 are similar in structure to Rooms and are used to create discreet meeting places for subset of the Members in a Place.
The subroom object in PlaceBots: To locate a room, look in the main QuickPlace Server directory, then look into the Place Object (a directory bearing the name of the QuickPlace). The Subroom will be named "PageLibrary" followed by a 16 digit hexadecimal time stamp number such as "0123456789ABCDEF" then the ".nsf" suffix. By way of example, the following script looks for a Subroom to the Millennia place:
Set dirPlace=New NotesDbDirectory( g_sServerName )
Set ndbPlace=dirPlace.GetFirstDatabase( DATABASE )
sNdbPlaceFilepath=ndbPlace.FilePath
If Instr(1, Lcase( sNdbPlaceFilepath ), - |QuickPlace\millennia\pagelibrary| )
Then
The Instr method has been used to look for this database, down to the PageLibrary part of the string, because it is difficult to know what the 16 digit number will be.
Page Object in HTML: To create URLs to reference Subrooms, the URL is built in the Main Room using either the "h_Area" view or the "h_TOC" view to create the path. This View contains the "h_LocDbName" field as the first sorted column.
Resources Object
A resources object(not shown) is database of shared resources, having as its Domino equivalent NSF Database. It serves as a centralized container for resources required in all QuickPlaces on a server. Images, layout files and fonts are stored in this database. For example resources such as the button that appears beside the simple search image "Go.gif" is stored in this database. The easiest way to find items in this database is by scrolling through the h_SystemNameView. A dummy form may be used to view such elements.
Common QuickPlace Object Fields
In Tables 14 through 18, fields and JavaScript variables in the h_PageUI form are set forth. These include general fields which can be customized for each layout, fields to define publishing status, fields for defining locations, fields for defining security, fields for defining workflow status, fields for defining calendars, respectively.
System objects have special meaning depending on the type of object. The following tables describe fields in various QuickPlace Object types.
| TABLE 15 | | FIELDS USED TO DEFINE PUBLISHING | | | Field Name | Description | | | | | h_IsPublished | 1 = This object is currently | | | | published | | | h_IsHidden | 1 = This object is not shown to the | | | | user | | | h_SetReadScene | The name of the default scene | | | | (subform) to use when viewing this | | | | object | | | h_SetEditScene | The name of the default scene | | | | (subform) to use when editing this | | | | object | | | h_PublishedVersionUNID | If this object is being edited and | | | | the current object is the draft | | | | version, the UNID of the published | | | | version of this object. | | | h_DraftVersionUNID | If this object is being edited and | | | | the current object is the published | | | | version, the UNID of the draft | | | | version of this object. | | | h_LastTimePutAway | The last time that this object was | | | | changed: Published or Saved under | | | | construction. | | |
| TABLE 16 | | FIELDS USED TO DEFINE FOLDERS LOCATION | | | Field Name | Description | | | | | h_FolderUNID | The name or UNID of the Notes | | | | Folder where this page resides. | | | h_IsInToc | 1 = This object is shown in the | | | | Table of Contents (sidebar). | | | h_CurrentPosition | The position of this object with | | | | respect to other objects in the | | | | collection. | | | h_SetParentUNID | If this is a child or response | | | | object, the UNID of the parent | | | | object. | | |
| TABLE 17 | | FIELDS USED TO DEFINE SECURITY | | | Field Name | Description | | | | | h_Readers | If this object is protected from | | | | readership, the list of names, | | | | groups, and or roles that can read | | | | this object. | | | h_Authors | If this object is protected from | | | | authorship, the list of names, | | | | groups, and or roles that can | | | | author this object. | | |
| TABLE 18 | | FIELDS USED TO DEFINE WORKFLOW | | | Field Name | Description | | | | | h_WorkflowStage | Indicates the status of the | | | | document within the workflow. | | | h_New = Created but not yet submitted for approval | | | h_Submitted = Has been submitted and it is being | | | reviewed | | | h_Published = Has been approved | | | h_Rejected = Has been rejected | | | h_SetNextStageUser | The name of the next person in the | | | | workflow cycle. | | | h_CurrentApprover | A number designating the current | | | | person in the workflow cycle. 0 | | | | means the Originator. The list of | | | | persons associated with the | | | | workflow cycle is stored in the | | | | form used to create this page. | | |
Customizing the Object Model
While much of a QuickPlace can be customized via a browser, there are some parts of QuickPlace which can only be customized using a Notes Client and or the Domino Designer.
Changes that can be made via a browser, using Web authoring tools such as an HTML editor relate more to the user interface. For example, editing a skin can be done using an HTML editor. Changes made to QuickPlace Objects are done through the Notes client and in Domino Designer. For example, inspecting and customizing the images appearing in default QuickPlace pages must be done via the Notes Client.
In order to implement PlaceBots (Bots) in a QuickPlace it is cumbersome to test the Bots only in QuickPlace, especially when uploading the PlaceBots each time over the Internet. The Notes Client and Domino Designer may be used as a local test environment, thus allowing changes on the Bots, as well as providing an integrated development environment, with help files and debugging mechanisms. When finished creating and testing the Bot in the Designer, it may be uploaded to the QuickPlace and testing finished there. Using the Notes Client and the Domino Designer also allows creation of new objects in a QuickPlace. Taking this a step further, it is possible to redefine the object model, by adding features to a standard QuickPlace. Core Domino technology is a proven platform, providing many powerful tools for a project. For developers who are not familiar with Domino, they can use a wide range of development skills such as HTML, XML, DHTML, JavaScript, Image manipulation, Java and C++. Domino developers can also leverage Domino development skills, but either way it is possible to create robust web-based applications, without having to re-invent the wheel.
QuickPlace Object Model and HTML: Building URLs
Building URLs in a QuickPlace is an important issue, due to the fact that QuickPlace is a browser based application. Understanding QuickPlace URLs is also a good way of understanding the object hierarchy in QuickPlace. The relationship between URLs and the QuickPlace Object model flows in both directions. Understanding the structure of URLs helps understanding the QuickPlace Object model. Conversely, once the QuickPlace object model is understood, how to use URLs to manipulate a QuickPlace becomes apparent.
URLs in QuickPlace use the same structure as in Domino. Domino URLs allow locating documents by using the key value of the first sorted column of a view, then generate a URL to link to a document using this key. Once the documents are located, they are not always opened in the browser. Sometimes they are read and their contents exposed and used by other objects.
An example of locating a file without opening it is when a QuickPlace skin accesses a JavaScript LSS file. The user never sees the LSS page, but its contents are used by the visible page to render objects and perform functions. To locate a document in Domino, the initial part of the URL is pointed to the host server, then the database containing the required document. The next part of the URL must point to a view with the first column specified as being sorted. This first, sorted column becomes the key column. Then a URL is used to open the document, as in the following example:
http://Host/Database/View/Key?DominoURLCommand
Where:
- View: is the name of the view. To access a document regardless of the view, substitute a zero (0) for the view name and specify the document by its universal ID.
- Key: is the string, or key, that appears in the first sorted or categorized column of the view. If the key has spaces in it, substitute these for plus signs when creating a URL.
This syntax is used to open, edit, or delete documents and to open attached files. Domino returns the first document in the view whose column key exactly matches the Key. There may be more than one matching document; Domino always returns the first match. The key must match completely for Domino to return the document. However, the match is not case-sensitive or accent-sensitive. - DominoURLCommand: Is the instruction to Domino of what to do with the file when found. For example, ?OpenDocument, ?EditDocument and ?DeleteDocument.
If this DominoURLCommand is omitted a default will be substituted. For example, in the previous URL if the OpenDocument argument is omitted in a URL command the document will still open because the command is automatically interpreted as OpenDocument.
The structure of URLs in a QuickPlace is the same as in any Domino database. QuickPlace objects are quite often referred to via relative URLs. For example, to reference a page that has been created, the following syntax is used: ../../h_View/PageName?OpenDocument Where: "../../" section at the front of the URL creates a relative URL, is interpreted by the Domino server as referring to the parent objects of the current object (h_View and PageName).
EXAMPLE
- http://www.mercury.com/register.nsf/Registered+Users/Ja y+Street?OpenDocument
- http://www.mercury.com/register.nsf/0/466c5172561e1c5c852566c2005f6bbb?OpenDocument
Many QuickPlace objects in QuickPlace have internal names beginning with "h_". This is refers to the internal name of QuickPlace which is "Haiku". To reference images, JavaScript library files or files other than pages, the following syntax can be used . . . - ../../h_Index/Document+Name/$File/Imagename.gif?OpenElement
Or . . . - ../../h_Index/Document+Name/$File/ScriptLibName.js?Open Element
Many objects in QuickPlace can be located via the h_Index View. It contains links to many of the published objects in a QuickPlace. When referencing a JavaScript file the ?OpenElement argument is used. This is to tell Domino that the file being accessed is not a page to open, which is the default action.
Building URLs: Referencing Images
The following section deals with the issue of using images in QuickPlace. Referring to FIG. 6, due to the fact that QuickPlace is a platform for creating Websites, images 242, 252 form a vital part of the QuickPlace object model. QuickPlace's structure provides many ways to include images in pages. For example when creating skin files 260, the images 242 are automatically uploaded into the QuickPlace 172 when the skin file 230 is uploaded.
Described hereafter are techniques involved for fully automated importing procedures within QuickPlace. An example of an automated importing would be when creating and uploading a Microsoft Word file 250. When this is done the images are imported without any interventions.
There are also instances where some developer intervention is required, such as when creating a Skin file 230, or writing an importable HTML file 254, or referencing files required to display the results of a PlaceBot and so on.
Creating skin files are fully described hereafter in connection with themes.
Three methods are used for importing images. These are:
Method 1: Provide a URL to an image and let QuickPlace upload the image. This method is used when creating skins and imported HTML documents that do not use JavaScript to reference images.
Method 2: Create a URL, have QuickPlace upload it, then reference it using HTML or JavaScript. This method is used when rendering image using JavaScript.
Method 3: Manually upload images into a document and reference them via URLs from a separate document. This method is used if the image is very large and it desired to have the user's browsers be able to cache the image; or if the image is referenced within a JavaScript function (QuickPlace does not import images when they appear within JavaScripts); or the image is referenced within a PlaceBot which creates new pages.
The solutions selected for a particular application may be a mixture of all three. For example:
Referencing Images: Method 1. Create a Skin file or HTML imported page and let QuickPlace import it. This works in skins and imported HTML, and is the easiest way of importing images into Skins and HTML Pages. When a valid link to an image within an HTML page or a Skin is created, QuickPlace will upload it automatically when the Skin or HTML file is uploaded. For this to work, a valid URL must be created. This may be done as follows: - In the skin file or importable HTML document, download all the images in a local directory. The simplest way to do this is to save them in the same folder as the skin or HTML page. For example, the URL for an HTML file may be:
- <img src="transparent.gif" width=5 height=1 alt=""border="0">
Referencing Images: Method 2. Prompt QuickPlace to import the file into the current document, then reference the file using JavaScript. This method is the most efficient method to use when referencing an image via a JavaScript function (in a Skin for example) or when updating a document via a PlaceBot.
To force QuickPlace to upload the image, a valid URL to the image at the top of the page must be created. By rendering it in a 1 pixel×1 pixel size, making it too small to see, the image is still uploaded, but the user will not notice the image. The images must also be named when they appear in their 1×1 pixel format. By using this name, the image is made available to JavaScripts below it on the page. This is done by adding the image to the source code near the top of the page. To force QuickPlace to upload the image, it is rendered in HTML format, then the uploaded image referenced in the JavaScript.
Overview: PlaceBots
In accordance with a preferred embodiment of the invention, PlaceBots are provided for sharing documents and holding discussions with team members, for adding program logic to a place itself to perform actions which can be triggered as the result of submitting a form or scheduled to run at a particular time. For example, every three hours a PlaceBot program may execute to browse customer complaints, parse for specific key words, and move documents to related specific folders. Or, a PlaceBot may be written to perform actions responsive to customer complaint.
A PlaceBot is implemented by an agent. For example, a browser user creates a reviewer, sends the invitation, adds logic—using Java code. Then, the Java code is attached to a QuickPlace by dragging and dropping the code into a QP form. The QP server receives and compiles the code into a notes agent. Thus, code is integrated into a QuickPlace using a browser. The QuickPlace server compiles and link edits the code so that every time a reviewer is created that code gets run.
Overview: Imported HTML Forms
In accordance with a further embodiment of the invention, a review form may be designed in HTML separate from QuickPlace. The resulting form is then dragged and dropped into QuickPlace, which creates a form for it. This is done by creating a field for each html tag. Thus, each HTML field is parsed to create a corresponding QuickPlace field.
For HTML files, the HTML file is parsed, the linked images found, and the URLs processed. The original file, linked files, and the resulting HTML are then saved on the page with the HTML displayed in read mode, and the orginal file in edit mode.
Overview: MicroSoft Office Based Forms
In accordance with a further embodiment of the invention, an existing Excel spreadsheet or Word document in a power point presentation, for example, is used as a template, dragged and dropped by the browser user into a QuickPlace, which then creates from it a QuickPlace form. Thereafter, users can create new MicroSoft documents using the QuickPlace form.
For Office documents, the MicroSoft office native mechanism is used to convert the page to HTML. The original file and the resulting HTML are then saved on the converted page, with the HTML displayed in read mode, and the original file in edit mode.
Overview: Forms and Task Fields
In accordance with a further embodiment of the invention, a web browser way of creating and designing forms is provided. A browser user may, using QuickPlace and interacting with the QuickPlace user interface, create a form as an object of the QuickPlace and select and create fields for that form.
Overview: In Place Editing
In accordance with a further embodiment of the invention, a browser user can create MicroSoft Office documents from within QuickPlace, such as a new Excel web sheet. QuickPlace will automatically launch Excel, and when Excel is closed, QuickPlace will bring in the Excel spread sheet.
Using HTML
Because the Page, ListFolder, and Slideshow layouts share so many common components, one HTML file that applies styles to these three layouts can be created. HTML for the Slideshow Folder is created, which contains the superset of components used in the three layouts. To control how the non-applicable components display for a layout—for example, the Jump component for the Page layout, and the AuthorAndModified and Revision components for the ListFolder—various results are achieved by setting the emptyFormat, prefixHTML, and postfixHTML parameters.
For example, to have the empty components occupy the same vertical space as they do when in use, set the parameter as follows:
emptyFormat=" "
By placing each component in a separate table row, the component's row "collapse" when it is empty, so that it occupies no space. Given that the prefixHTML and postfixHTML parameters are not output when the component is empty, these parameters can be used to provide the following table structure:
emptyFormat=""
prefixHTML="<tr><td>"
postfixHTML="</td></tr>"
Style Sheet Selectors in QuickPlace
Referring to FIG. 7, a typical QuickPlace user interface 370 includes a sidebar (TOC) 372, page title 374, author and modified field 376, actions bar 378, logo 380, path 382, page content 400, and actions buttons, such as quick search 384, advanced search 386, whatsnew 388, chat 390, notify 392, print 394, tutorial 396 and help 398. Each of these is customized by using tags or selectors which deal with borders, background, text, and so forth, in accordance with a style sheet.
A standard default stylesheet is always output with any theme, so that one need only to specify the selectors that are to be changed. Undefined properties will fall back to those defined in the default stylesheet.
Tables 19 through 27 describe Style Sheet (CSS) Selectors.
| | CSS Selector | Description and Notes | | | | | body, td | Default text style. Note: specify both tags | | | | to set the default text style. | | | a | Anchor style. Note: see also several other | | | | more specific anchor styles, below. | | | a:hover | Default style of anchors when mouse is over | | | | the anchor. Note: IE only. | | | form | Default style of forms. Note: The | | | | margin-bottom property is set to 0px by | | | | default to remove unwanted whitespace from | | | | the bottom of all forms. | | | | | (Note: Other tags, such as h1, h2, etc., can also be styled as needed.) |
| | CSS Selector | Description and Notes | | | | | .h-page-bg | Page background. Note: class assigned to | | | | body tag of all pages. For IE only, the | | | | margin properties can be set to control the | | | | page margin. | | |
| TABLE 21 | | Folders, What's New, Search Results, | | Tasks (list view) | | | CSS Selector | Description and Notes | | | | | .h-folderBanner-bg | Background of folder banner. | | | | Note 1. | | | .h-folderBanner-text | Text in folder banner. Note | | | | 1. | | | a.h-folderBanner-text | Anchors in folder banner. | | | | Note 1. | | | .h-folderBannerSelected-text | Text of selected | | | | ("current") item in folder | | | | banner. Note 1. | | | a.h-folderBannerSelected-text | Selected anchor in folder | | | | banner. Note 1. | | | .h-folderItem-bg | Background of items listed in | | | | folder. Note 1. | | | .h-folderItem-text | Text of items listed in | | | | folder. Note 1. | | | a.h-folderItem-text | Anchor listed in folder. Note | | | | 1. | | | .h-folderCompact-text | Compact text of item listed in | | | | folder. Note 1. | | | .h-folderAbstract-text | Abstract text of item listed | | | | in folder. | | | .h-folderBar-bg | Background of bar to left of a | | | | thread. | | | .h-folder-dl { | Indentation of responses in | | | | response folder. Note: by | | | | default, the margin-bottom | | | | property is set to 0px to | | | | remove unwanted whitespace | | | | below indented items in | | | | response folders. | | | .h-folderInterspace-bg { } | Background color of vertical | | | | space between responses. | | | .h-folderInterspace-text { | Height of vertical space | | | | between responses. Note: use | | | | font-size to set the height. | | | .h-folderSpace-text { | Height of vertical space | | | | between threads. Note: use | | | | font-size to set the height. | | | | | Note 1: | | | This style is used for the banner that displays column titles, as well as other banners in What's New, Search Results, etc. |
| TABLE 22 | | Tasks (timeline view) | | | CSS Selector | Description and Notes | | | | | .h-tasksBannerNow-textbg | Highlighted current date in | | | | Tasks banner. | | | .h-tasksItem-bg | Background of items listed in | | | | Tasks. | | | .h-tasksItemTimeline-bg | Highlighted period of a task. | | | .h-tasksItemMilestone-bg | Highlighted period of a | | | | milestone | | |
| | CSS Selector | Description and Notes | | | | | .h-calendarLabel-text | Date label. | | | .h-calendarLabelSelected-text | Date label (today's date). | | | .h-calendarItemOther-bg | Background of day not in | | | | current month. | | | .h-calendarItemToday-bg | Background of today's date. | | |
| TABLE 24 | | Text and fields in Page layout | | | CSS Selector | Description and Notes | | | | | .h-field-text, | Style of the text value of a field. | | | .h-field-text td | Note: use this exact selector, as | | | | shown, to style field text | | | | distinctly from regular page | | | | content. | | | .h-pageSmall-text | "Smallprint" page text. | | | .h-fieldSmall-text | "Smallprint" text content of | | | | fields. | | | .h-fieldHeader-bgtext | Field header. | | | .h-fieldOrder-bgtext | Number to the left of the field | | | | header. | | | .h-page-text | Anchors inside the pageContent skin | | | a:visited | component which have been visited. | | | | Note: IE only. | | |
| | CSS Selector | Description and Notes | | | | | .h-fieldHeaderEdit-bgtext | Field header | | | .h-fieldEdit-text, | Field description text. Note: | | | .h-fieldEdit-text td | use exact selector, as shown. | | | .h-fieldOrderEdit-bgtext, div | Number to the left of the | | | .h-fieldOrderEdit-bgtext td | field header. Note: use exact | | | | selector, as shown. All | | | | properties in this selector | | | | must be marked ! important to | | | | take effect. E.g., color: | | | | green! important. | | | .h-fieldSmallEdit-text | Small field text. Note: all | | | | properties in this selector | | | | must be marked ! important to | | | | take effect. | | | .h-fieldSpecialEdit-text | Special field text. Note: | | | | used in Task Info field. All | | | | properties in this selector | | | | must be marked! important to | | | | take effect. | | |
| | CSS Selector | Description and Notes | | | | | .h-searchField-text | Style of the text field associated | | | | with the quickSearch skin | | | | component. | | |
| TABLE 27 | | Classes defined by the default theme | | The classes listed below are not built in to QuickPlace, but | | are defined by the default theme's style sheet. (Custom | | themes are not required to use these classes, and are free | | to define any other classes as appropriate.) However if | | modifying the default theme, these classes can be modified | | to get a particular effect. | | | CSS Selector | Description and Notes | | | | | .h-logo-text | Logo text. | | | .h-heading-textbg | Heading about table of | | | | contents and tools boxes. | | | .h-sidebar-bg | Background of table of | | | | contents and tool boxes. | | | .h-toc-text | Text of item listed in | | | | table of contents. | | | .h-tocSelected-text | Text of selected item | | | | listed in table of | | | | contents. | | | .h-nav-text | Navigation link. | | | .h-tool-text | Tool link. | | | .h-signIn-text | Sign In link. | | | .h-actionButtonBorder-bg | Border of action button. | | | .h-actionButton-bg | Background of action | | | | button. | | | .h-actionButton-text | Text of action button. | | | .h-actionSpace-text | Space between action | | | | buttons. | | | .h-pageTitle-textbg | Page title. | | | .h-pageAuthorMod-text | AuthorAndModified text. | | | .h-revision-text | Revision link (draft | | | | | published). | | | .h-revisionSelected-text | Selected revision link | | | .h-accent-bg | Accent color. E.g., used | | | | in rule at bottom of | | | | page. | | | .h-headlineFolderTab-bg | Background of unselected | | | | tab in headline folder. | | | .h-headlineFolderTab-text | Text of unselected tab in | | | | headline folder. | | | .h-headlineFolderTabSelected-bg | Background of selected | | | | tab in headline folder. | | | .h-headlineFolderTabSelected-text | Text of selected tab in | | | | headline folder. | | | .h-edit-bg | Background of edit layout | | | | "docket". | | | .h-actionButtonEdit-text | Text of action button in | | | | edit layout. | | | .h-actionButtonBorderEdit-bg | Border of action button | | | | in edit layout. | | | .h-actionButtonEdit-bg | Background of action | | | | button in edit layout. | | | .h-shadow-bg | Shadow. Note: used in | | | | sidebar and in edit | | | | layout "docket" shape. | | | .h-shadowCorner-bg | "Missing" corner of | | | | shadow area. | | |
PlaceBots
A PlaceBot is a Domino agent, written either in Java or LotusScript, that automates a task. Using a PlaceBot (or "Bot"), one can access, process, and manage the data in a QuickPlace. For example, one might use a PlaceBot to send E-mail to members of a QuickPlace that notifies them when a document of interest is edited. One can create a PlaceBot that runs when a form is submitted or on a scheduled basis. A PlaceBot may also be run manually. A PlaceBots is created using LotusScript or Java to manipulate the Domino back-end object classes. For complete documentation on the Domino Object Model and how to work with objects using LotusScript or Java, see the Lotus Domino R5 Programming Guide.
It is possible to write, debug, and compile Java code for a PlaceBot in a Java development tool, such as Symantec Visual Cafe. One can then import the .java file, or compile and import a .class or .jar file. It is also possible to write Java or LotusScript code in any editor and import the resulting files into the QuickPlace. When Java PlaceBots are uploaded, they are automatically compiled, and a syntax check is done on them.
Triggering PlaceBots
QuickPlace has a page in the Customize area where settings to control how and when the PlaceBot runs are specified. These settings are similar to the Domino Agent settings, but not the same.
There are two ways of triggering PlaceBots. Scheduled PlaceBots, triggered by a timer event or Form PlaceBots which are triggered by the creation of documents, based on the form type.
Scheduled PlaceBots
Scheduled PlaceBots are processed by the agent manager, and have the Access rights of the QuickPlace Manager.
Form PlaceBots
Form PlaceBots are triggered by the creation of a document based on any of the user forms in a QuickPlace. For example, if a new HTML form is created, one can specify that the Bot is to run on documents created with that form. If PlaceBots are triggered by document creation, they have the same access rights as the person who created the document.
The Difference Between PlaceBots and Domino Agents
PlaceBots are in effect, Domino agents. However, a PlaceBot is installed into a QuickPlace via the QuickPlace upload control. An agent is installed using the Domino Designer. Also, a PlaceBot can be created in any text editor, then uploaded. Another advantage of PlaceBots over Agents is that they can be stored as small LSS, Java JAR or Class files on a hard disk, and installed quickly on any QuickPlace, even without administrative access to the server. Manager access to the QuickPlace is all that is required.
PlaceBot Security
When PlaceBots are run on a scheduled basis, they inherit the access control of the server. When PlaceBots are run manually, they have the access rights of the person triggering them. In other words, one must have Manager access to create, edit, copy, delete, or run PlaceBots manually.
Write a PlaceBot
In the following example of how to write PlaceBots, a dummy QuickPlace is created using the Domino Designer, as follows: 1. Create a QuickPlace. 2. Create documents, folders, links, and so on that the Bot will be referencing. 3. Close down the QuickPlace server. 4. Create a copy of the NSF file(s) that were created by QuickPlace. In most cases this will be the "main.nsf". 5. Open the NSF file in Domino Designer and start writing a Domino Agent. 6. Test the PlaceBot in the NSF. 7. Export the Agent and save java agents as a .Java , .JAR , .Class or .ZIP file. If writing a LotusScript file save it in .LSS format. To export a Java file, press the Export button in the Designers pane. To export a LotusScript file, right click on the designers pane and select Export. 8. Make sure the QuickPlace server is started and return to the original QuickPlace. 9. Go into Customize ->PlaceBots then create and test your PlaceBot. 10. For small changes it is easier to open the LSS file in a text editor, then copy the changes back into the original LotusScript Agent. For the more complex changes go back into the Domino Designer. Java PlaceBots
Java PlaceBots accept file types .JAVA .CLASS and .JAR. It is possible to also upload multiple files. PlaceBots can be writen in a text editor, using QuickPlace as the test environment. It is possible also to use third party Java development tools, such as Visual Age for Java.
LotusScript PlaceBots
Creating PlaceBots using LotusScript is essentially the same as writing an agent for a Domino application. There are two alternatives for writing LotusScript (LSS) PlaceBots. It is possible to write LSS Bots in a text editor and test the Bots in the QuickPlace. This section uses some examples of LotusScript that show the process of creating a PlaceBot and exposes the object model.
An exemplary PlaceBot has the following list of functional features: - Graphical display of folder/page relationships
- Alphabetical list of pages
- Theme like customizing of the map page
- Easily modify the folder and page images
- Full control over fonts, sizes, colors and so on
- Ability to wrap the document in any HTML required
- Selective page mapping—Pages and Links but not Room links
- Map document could be switched off if decided by the Manager
- Map document could appear wherever the Manager decided
- The map document would be updated whenever a new Page document was added.
PlaceBot Description
Referring to FIG. 9 in connection with Tables 2201-2225, an exemplary method for creating a PlaceBot will be described.
In step 402, variables relating to the session, the database and its major structures such as view and key documents are declared.
PlaceBot starts off by Dimming (declaring) the variables related to the session, the database and its major structures such as Views and key documents. The Dims are typically divided into two groups; dims for Notes related objects, then the writing Dims, which are used in content creation, mostly via strings.
In step 404, documents related variables are set, for example using a skin for the site map page.
This step, code for which is set forth in Table 28, sets the document related variables. These Sets are related to finding documents, working from the Database, down to the individual SiteMap document. If the SiteMap page is not found in the QuickPlace then the Bot quits. This is to allow a bit of flexibility in the order in which the Bot is installed. Errors are not generated done out of order, delete the site map page or name the site map page wrongly. This approach also allows use of a skin for the Site Map page. The skin file is the SiteMap.htm. This HTML wraps the map, can be modified, place by place, without having to change the Bot. In its current form, the SiteMap Bot and Page separate LotusScript and HTML scripting making the overall programming of the Bot simpler.
| TABLE 28 | | SET DOCUMENT RELATED VARIABLES CODE | | | | | sMapDocName = "SiteMap" | | | Set ndb = ses.CurrentDatabase | | | Set viewCurrent = ndb.getView( "h_Index" ) | | | Set docReport = viewCurrent.GetDocumentByKey( | | | sMapDocName ) | | | If docReport Is Nothing Then | | | Call logAgent.LogAction("Mapperizer: Document " & | | | sMapDocName & " not found" ) | | | Exit Sub | | | End If | | |
In step 406, the table of contents (TOC) is found and set as a special view.
| TABLE 29 | | SET TOC AS SPECIAL VIEW | | | | | Set viewTOC = ndb.getView("h_Toc") | | |
In step 408, URLs referencing current QP documents and attached images are created.
The looping functions of Table 35 gets each element in the viewTOC then performs a number of calculations on that TOC element. Some TOC elements may be views, in which case that "sub view" is stored in the variable named viewCurrent. To start creating the URL strings for each entry, the following dims and sets are made. The sDbPath now is a string formatted for use within a URL, in other words its backslashes are replaced by forward slashes. Ascii character 47 is a forward slash, and character 92 is a backslash.
| TABLE 30 | | CREATE URLS / ATTACHED IMAGES | | | | | Dim sFSlash As String | | | Dim sBSlash As String | | | Dim sDbLabel As String | < |