The user holds ctrl or shift on the keyboard and selects two or more rooms. This scenario shows what happens with only two rooms selected but can be easily extended for more than two rooms. In this example, the user selects two rooms, 301 and 302. After the user selects these rooms the following context window is displayed (figure 1).
Figure 1: Initial Room Management Screen for Muliple Rooms
This multiple selection allows for the user to modify many rooms at once, say if you have a building number change or have just added a new piece of technology to several rooms. The following briefly explains the interactions with this screen but leaves the extended details to the modify and delete scenarios.
When the user does anything within the context menu, it is preparing to be done to all the currently selected rooms. Note that the room number box is greyed out; the user is unable to modify the number[and optional name] of a single room while multiple rooms are selected. Also note that there is no dot on the map for these rooms. The user cannot place multiple points on the map while multiple rooms are selected. All the other fields and buttons are enabled and interact on all rooms selected. Note: exactly like the single selected scenarios, the database is unaffected until the Save button is pressed.
The user wishes to change all of the selected rooms to a different building, and clicks the drop down and selects the new building from the drop down.
This value is not changed until save is pressed (explained later in the document).
The user wishes to change all of the selected rooms' capacity and simply clicks the capacity box and modifies it to the value for all the rooms.
Figure 2: Capacity Boxes Based on Previous Values
This figure shows the two possibilities for the current example with rooms 301 and 302 selected. Since both rooms have the capacity of "30", the capacity value is their joint value "30" (left figure). However if all the rooms do not have the same capacity, a "?" takes the place of the value, (right figure). The "?" symbolizes that the values of the capacities of the rooms are different.
If the user wants to change all of the currently selected rooms to the same value, they simply update the value in this box. This value is not changed until save is pressed (explained later in the document). If the value is a "?" when validation checks are happening, the value is not updated in any of the rooms (ie they maintain their previous value).
This functionality operates almost identically to modifying for a single room. For more thorough explanation of how you add and remove attributes from a room look at the modify page. If the same rooms have the same attributes, the screen looks exactly like the one from the modify page. The interesting difference is when the user selects two or more rooms that do not have the same attributes. This functionality is to give the user the ability to add a single attribute to mny rooms without affecting the rooms themselves (preserving their previous attributes).
The following figure is an example attributes box for multiple rooms selected.
Figure 3: Attributes Based on Previous Values
This visualization shows what is the status of the attributes for the currently selected rooms.
1) All of the attributes in the left selection box are attributes that currently do not belong to any of the selected rooms.
2) The attributes that are "blue-highlighted" in the right selection box are the attributes that belong to one or more of the selected rooms, but not all of them.
Inversely stated, at least one of the rooms selected does not have this "blue-highlighted" attribute.
3) The rest of the attributes in the right selection box belong to all of the selected rooms.
*In the current example with rooms 301,302 selected means that both 301 and 302 both have "group desks" and a "whiteboard" but only one of them have an "overhead".
The interaction for attributes belonging to all of the selected rooms or none of the selected rooms operates exactly like the operation for a single room, the only difference being that the operations affect all the rooms selected. However the interaction between items that are "blue-highlighted" works a little differently.
For the example, assume that the user wants to remove the "overhead" attributes from any room that has it (301 or 302) simply because the ancient device is no longer used and the school got rid of all of them. The user selects the "blue-highlighted" "overhead" and then clicks the "<" button. The screen updates and look like the following figure:
Figure 4: Attributes after removing overhead"
Notice that "overhead" is now in the left selection box, signifying that none of the currently selected rooms have this attribute.
This has not updated the database, no changes to the database happen until save is pressed.
Returning to the original example, assume that the user actually wants to make sure that all the rooms have "overhead" attribute in them because the school lost too much money and had to start using older technology to make up the difference. The user starts again at the figure below:
Figure 5: Attributes for 301 and 302 before changes"
In order to add "overhead" to all of the selected rooms, the user selects the "blue-highlighted" "overhead" and clicks the ">" button. The screen updates with the following figure:
Figure 6: Attributes for 301 and 302 after adding all overhead"
Notice that the difference between figures 5 and 6 is that is that "overhead" is no longer "blue-highlighted", signifying that the attribute now belongs to all of the rooms currently selected. Again note that the database is not updated until the save button is pressed (explained next).
The Save, Cancel, and Delete buttons work the same as the single selection buttons except that they commit the changes to all the currently selected rooms (with a couple exceptions) instead of just a single room.
When Save is pressed, a dialog pops up asking the user if they are ready to commit the changes. The current state of the room (all the fields) is first validated and then the database is updated accordingly:
If the user presses Cancel, a dialog pops up asking the user if they are ready to throw away the changes (if any have been made). The window closes and returns to the workspace from which room management was called. No updates to the database are made.
If the user presses Delete, a dialog pops up asking the user if they are sure they want to delete the selected rooms. This is a very dangerous operation and should be used very sparingly because many other values in the database depend on the rooms being in the database. If the user confirms, each room goes through the same delete operation that is more clearly defined in delete.