A Distributed Editing Environment
If you have a group of people who are working together on a site, the need will eventually arise for people to edit files simultaneously. Unfortunately, the problem is that two people might try to edit the same file at the same time. In the normal editing mode, the last person to save the file will overwrite the changes made by the first person. Constantly having to tell your colleagues what file you're working on is not an efficient way of solving the problem either. As usual, UltraDev has a tool that makes this a non-issue.
Using a Check In/Out system, you can exert ownership over a file, and other people will not be able to access the file you have "checked out". It's similar to checking a book out of a library. When you check the book out, it's in your possession until you're done. People can look up who has it, but can't access it. When you're done, you check the book back in and other people can check it out.
Several systems implement Check In/Out systems, such as MS SourceSafe and WebDAV. If you aren't running either of these systems, UltraDev can't be certain what the remote system is running, it must keep track of who has the file using a simple file locking system.
Enabling Check In and Check Out
The first thing you need to do if you want to use the Check In/Out system is adjust the site definition for the Web site that you want to use it with. Open the site definition window, and then choose Remote Info and click the Enable File Check In and Check Out button. As you can see in Figure 3.12, this isn't the most complex configuration screen you've seen.
The Check In/Out options are very sparse.
At the very least, you'll want to enable the Check In/Out system, and provide a name and email address that will be attached to the file when you check it out. Finally, it's a good idea to select the Check Out Files when Opening option. This will automatically check files out as you open them.
Note - In order to use the Check In/Out functions within UltraDev, you must be using a server access method other than None.
Using the Check In/Out System
Using the tracking system is very simple. If you've chosen the Check Out on Open option in the Check In/Out setup, you can operate the system as you normally would. Any file you open will be automatically checked out. UltraDev and DreamWeaver users who are properly configured will not be able to check out files once another user has control.
You can also use the check out (down arrow with checkmark) and check in (up arrow with lock) buttons at the top of the Site Files window to control the process of gaining and relinquishing control of the site's files. The files that are checked out on the system are displayed along with a Check Mark icon and a field showing who currently is using the file. Clicking on the user's name who has the file checked out will open your email program so you can send them a nasty "give me back my file" message. Figure 3.13 demonstrates the check-out system in action.
If you are creating Web sites in a distributed editing environment, you'll find the check in/out system invaluable. The only other options are clearly defining who should be editing what files, and when, or partition your Web site so that each portion of the site is defined separately within each person's copy of UltraDev.
A final tool that is useful for multiuser editing is design notes. Design notes are pieces of information that can be attached to each Web page during the editing process. These notes are stored in XML in a folder _notes found within the site root. When users check out a file that has design notes attached to it, they can look at the existing notes and add new notes. Because the notes are kept separate from the HTML, there is no need to worry about the XML getting in the way of code for the pages.
To attach a note to an open page, choose Design Notes from the File menu. To open the notes from the site files view, select the file you want to work with, and then open the contextual menu and choose Design Notes. The design notes definition screen is shown in Figure 3.14.
From the Basic Info tab, you can set a status for the file from a predefined list of some common project status settings. You can also type in a short note or two (clicking the calendar icon inserts the current date), and turn on an option to have the note displayed when its corresponding HTML file is opened.
If you'd like to store more information in the design note, select the All Info tab. Without getting into too much detail of XML, each of the design note attributes is stored as a name/value pair. The Info field shows all these defined pairs. The Name and Value can be changed by picking one of the lines in Info and altering the values in these fields. As with all UltraDev's property lists, the + and - buttons add and delete items from the list.
If you'd like to edit the design note directly, open the _notes directory in your site and find the .mno XML file that matches your HTML file. For example, the design notes for news.html are stored in _notes/news.html.mno.
Here is an example of the XML for a page's notes:
<?xml version="1.0" encoding="iso-8859-1" ?> <info> <infoitem key="author" value="John Ray;" /> <infoitem key="notes" value="14 June, 2000;" /> <infoitem key="status" value="revision1" /> <infoitem key="showOnOpen" value="true" /> </info>
As you can see, the information is open and very accessible. Many of UltraDev's configuration files are written in XML, making customization quite simple.