| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
Add view to show the connected clients with access to the client
details of each one. The view is accessible through the main
dashboard.
|
|
|
|
| |
Add link to image count in dashboard to open images view.
|
|
|
|
|
| |
Make the form template update automatically after form definition
modifications. Use a loop to render the for fields.
|
|
|
|
|
| |
Improve html structure inside client pills so the values can be
obtained with jquery by matching the name field of the div.
|
|
|
|
|
| |
Add a red inner pill to the link speed value when the speed is
lower than 1Gb/s.
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Prevent inconsistent visuals in different browser configurations.
Make the disclosure widget always look the same.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Use the same visualization as the other parts of the web in the
table that groups clients by ogLive.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Remove <table> with partition information in client details form
when the selected client has no partition configuration.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Ease detection of potential problems with images in cache.
Show checksum under each image in the form.
|
|
|
|
| |
Increase CSS version to update CSS file in browser cache.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Fix <div> structure to enable proper flow layout when the web
size changes and the command buttons need to reposition.
|
|
|
|
|
| |
Use <pre> instead of <samp> to display command output, as <pre>
preserves the new lines and the format of its inner text.
|
|
|
|
| |
Show client IPs inside div components with a custom "card" styling.
|
|
|
|
|
| |
Update the header in the BootOS view to better fit the purpose
of the operation.
|
|
|
|
|
| |
Add vertical padding to the div holding the report of no selected
client with cached images.
|
|
|
|
|
| |
Use a plain line break instead of a horizontal rule to split the
server information.
|
|
|
|
|
|
| |
Hide the cache inspector when no cache elements are found in
neither of the selected clients.
Fix js exception caused by an array access in an empty image list.
|
|
|
|
|
| |
The template conditional must show the table when form.images has
more than zero elements.
|
|
|
|
|
| |
Use Bootstrap list-group class and adjust content alignment with
a flex container.
|
|
|
|
| |
Add class="mx-5" to allign the form with the header of the page.
|
|
|
|
| |
Make headings take less space and have a dashed line under them.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add a new user permission system to control the allowed operations
accessible from each account.
Add a permission matrix editable through the user/add and user/edit
views. The permission matrix has client, center, room, folder, image
and repository as permission targets and add, update and delete as
permission types.
Restrict each view based on the user permissions, hide all actions
from not autheticated users.
permissions defined in the class UserForm.
Serialize each user permissions into ogcp.json as:
{
...
"USERS" [
{
"USER": "admin"
...
"PERMISSIONS": {
"CLIENT": {
"ADD": true,
"UPDATE": true,
"DELETE": true,
},
... <- same structure for "CENTER", "ROOM", "FOLDER", "IMAGE"
and "REPOSITORY"
}
},
...
],
...
}
Grant all the permissions to old user configuration to not disrupt their
workflow. The administrator will need to assign the permissions for each
user.
Ignore scope and permission restrictions for admin users.
Save permissions and scopes even if the user is admin to account for the
case of a temporal admin promotion without losing the previous
configuration.
Use template inheritance for add_user.html and edit_user.html to prevent
big code duplication with the new HTML code to render the permission
matrix.
Make user administration an admin only feature.
Define methods get_permission and target_is_disabled to improve readability
in template conditionals that disable features based on user permissions.
|
|
|
|
|
| |
Rename Client/Edit client menu in scopes management view to keep
the same naming pattern as the other menu elements.
|
|
|
|
|
|
|
|
|
|
| |
Add view at /action/script/output to visualize the result of
/shell/run for multiple clients.
Use shell/output to request the execution data of the selected clients.
Each client element has execution timestamip (UTC), client ip, cmd,
return code and stdout of the executed command.
|
|
|
|
|
|
|
|
| |
Add view at /action/script/run to visualize the available scripts
and run a single script file in the selected clients.
Use shell/list to request the script list and shell/run API call
to request the execution.
|
|
|
|
|
|
| |
Add functionality to the "Opengnsys" text in the top navbar.
Comform to the general design priciple of executing a redirecting
after clicking the main logo.
|
|
|
|
|
| |
Use a better name for the form action used to boot an operating
system in the clients.
|
|
|
|
|
| |
Move "Client details" to the last option of the "Client" dropdown
in the Commands page.
|
|
|
|
|
|
|
|
|
| |
Add the option to leave the password fields empty in the form.
When the passwords are not set the user keeps the old password
configuration.
Define a EditUserForm based on UserForm in forms/auth.py to remove
the InputRequired validator in the password fields.
Update the html template to make the password fields optional.
|
|
|
|
|
| |
Remove the Servers button from the main navbar but keep the
multiserver related code.
|
|
|
|
|
| |
Add a left padding to show the disclosure widget associated to
a server item. Prevent the positioning of out of screen components.
|
|
|
|
|
| |
Add the class "collapsed" to the html elements defined as
not shown in the local storage for the images list sidebar.
|
|
|
|
|
|
| |
Add a readonly view for the room data.
Mark all the form fields as readonly and set the hidden attribute
to the submit field.
|
|
|
|
|
|
| |
Add a readonly view for the center data.
Mark all the form fields as readonly and set the hidden attribute
to the submit field.
|
|
|
|
|
|
|
|
|
|
| |
Add front end for the client/move REST API.
Enable the move of multiple clients selected from the sidebar of
Scopes Management.
Show the target of the move operation as a list of paths in a
dropdown widget in the form. Each path will be structured as:
Server/Center/Room
The path will also contain folders if they are present.
|
|
|
|
| |
Remove print statement generating noise in the browser logs
|
|
|
|
|
|
| |
Add oglive to each client pill in action/oglive using js.
This makes easier to have a global perspective of the client's
configuration.
|
|
|
|
|
|
|
| |
Enable selection of multiple scopes in user/add and user/edit
for restricted users.
Replace quick form creation with an inline form definition in
add_user.html and edit_user.html
|
|
|
|
|
| |
Remove the <script> block as the function digestUserFormPassword no
longer exists.
|
|
|
|
|
|
|
|
|
|
|
| |
Allow the selection of multiple client checkboxes if they belong
to the same room.
Each checkbox input in the DOM has a "data-parent-room" attribute
whose value is the value of the "name" attribute of its parent
room scope component.
To check if a checkbox is a client and a sibling of the one being
checked we check if "data-parent-room" is available for both nodes
and if they have the same value.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add cache buster to soleta.css in base.html to have control over
cache expirity.
Bump soleta.css version to ensure browser does not used older (cached)
version.
Add CSS rules to show a disclosure widget in the sidebar.
Show center checkboxes as disabled in the commands view sidebar
for visual consistency.
Add class "collapsed" to the proper HTML components to keep a
proper state on page reload.
|