Show repositories sorted in an alphanumeric fashion inside the
sidebar of /images and the respective child views.
Sort repositories in the sidebar of /repos.
Enable server view in the main toolbar.
Hide Add server and Delete server buttons.
Add Update server button.
Add server/update view to edit the server addresses.
Add support for selecting different disks in the disk inspector.
Add disk_inspector.html as a template to show the disk contents of
a client. The view can define the variable readonly_disk_inspector
to make the view non editable.
Use disk_inspector.html in the following views:
- client details
- partition and format
Update code to obtain the partitions of a client to better fit the
requirements of disk_inspector.html
Remove code to setup the SetupForm as the contents of the disks
are now dynamically loaded through javascript.
Add support for the new API REST for repository management where
the address is a list of ips instead of a single string.
Add dynamic address creation in /action/repo/update and
/action/repo/add forms through delete and add buttons in the form.
Update /image/restore and /cache/fetch to use repository_id.
Add additional repository form validations.
Use common disk space across all the selected clients.
Show dynamic disk partition graph in the partition view.
Limit partition sizes dynamically in the form.
Move js code to handle the addition and removal of
partitions into the html file to debloat ogcp.js and keep
the functions local to the only file they manipulate.
Modern Windows systems require higher EFI partition sizes than
most other OS.
Validate partition & format form to ensure the EFI partition has
as size of 500MiB or higher.
Add center scope restriction using /image/restrict.
Add view in Images to update scope permissions.
Disable images in Commands for image update and restore if the
client belongs to a disabled center.
Consolidate template code to render scope selection checkboxes.
Disable all checkboxes of scopes of level higher than room in the
$(window).on('pageshow', function) callback.
Set checkboxes as "indeterminate" when not every children is
selected but have some of its children selected.
[x] center
[x] room1
[x] client1
[x] client1
[-] center
[ ] room1
[-] room2
[ ] client1
[x] client1
Send all selected sidebar fields as form fields. This requires
setting disabled to false and replacing indeterminate = true
to checked = true in the .on('submit', function) callback.
When a checkbox is clicked:
1. Find the room branch of the checked input.
[ ] center
[ ] room1
[ ] room2 <- root of the room branch
[ ] client1 <-- clicked item
2. Uncheck all the checkboxes outside of the room branch.
3. Set all the children of the clicked item to the same value
as the clicked item.
4. Set the parent checked or indeterminate values.
5. Save checkbox status.
Some ogLive names can be large and a fixed size makes the text
overflow under other client pills.
Let the client pills grow if needed to fit its content.
Show default oglive as "ogLive (live name)" as the last option
int the Set ogLive form.
The previous implementation defined the default oglive as the
most used when the default one is defined by /oglive/list.
Show cache contents in client details for a more complete view
of the client's state.
Move the cache inspector code to its own template for reusability.
Make the client form more compact so the user does not require
to scroll to view all the information.
Place each label and field in the same row of the form layout.
Disable the Maintenance and Remote fields as they have not
actual functionality.
Prevent backtrace when not OS is selected before the form submit.
Add 'required' attribute to the <input> elements of each OS option
in the Boot OS form.
Create a copy of the array with scope references before the
iteration and modification of the scopes dictionary.
Prevent skipping values after deleting an element during the
scope iteration.
Skip checks of image_fits_in_cache() if the image data contains
not 'size' or 'checksum' information.
Skip checks for the clients with the image already in cache.
Select the image field value containing the restored image of the
partition selected by the user.
Create a dictionary where the key is the value= of the partition
field and the value is the id of the image restored in the
partition. Add each dictionary entry only only if the corresponding
image exists in the repository.
Pass the dictionary to the HTML template and convert it to JS.
Add visual indicator to the disclosure widget when its branch has
any clients in live mode.
Ease the search of systems in ogLive in need of being booted or
turned off.
Add id= to the HTML component containing the disclosure widget.
Set the id to the value scope_type-scope_name for type='server' and
scope_type-scope_id for the rest.
Add the CSS class 'live-report' to the HTML components with live
children. Assign the class field in the js function updateScopes.
Prevent cases where the client pills would stay locked reporting a
specific system.
Remove pill-* classes instead of text-* classes in function
updatePillStatus().
This fixes out-of-sync state representation between sidebar and main
section.