summaryrefslogtreecommitdiffstats
path: root/ogcp/templates
Commit message (Collapse)AuthorAgeFilesLines
* templates: make ClientDetailsForm render more compactAlejandro Sirgo Rica2024-07-151-4/+68
| | | | | | | | 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.
* ogcp: add checksum to images in Manage cacheAlejandro Sirgo Rica2024-07-121-0/+1
| | | | | Ease detection of potential problems with images in cache. Show checksum under each image in the form.
* templates: force CSS update to show oglive indicatorAlejandro Sirgo Rica2024-07-111-1/+1
| | | | Increase CSS version to update CSS file in browser cache.
* templates: force OS selection in Boot OS form1.1.3-24Alejandro Sirgo Rica2024-07-091-1/+1
| | | | | | 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.
* ogcp: select images of selected partition in image/updateAlejandro Sirgo Rica2024-07-091-5/+38
| | | | | | | | | | | 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.
* ogcp: show an indicator in each sidebar branch with live childrenAlejandro Sirgo Rica2024-07-092-4/+7
| | | | | | | | | | | | | | 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.
* ogcp: fix client pill status reportAlejandro Sirgo Rica2024-07-091-1/+1
| | | | | | | | | | | 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.
* templates: fix commands button layoutAlejandro Sirgo Rica2024-07-031-4/+5
| | | | | Fix <div> structure to enable proper flow layout when the web size changes and the command buttons need to reposition.
* templates: preserve formatting in script outputAlejandro Sirgo Rica2024-07-011-1/+1
| | | | | Use <pre> instead of <samp> to display command output, as <pre> preserves the new lines and the format of its inner text.
* templates: improve client list in cache and boot os viewsAlejandro Sirgo Rica2024-06-282-2/+10
| | | | Show client IPs inside div components with a custom "card" styling.
* templates: replace start session with boot OSAlejandro Sirgo Rica2024-06-281-1/+1
| | | | | Update the header in the BootOS view to better fit the purpose of the operation.
* templates: add vertical padding to the no cache messageAlejandro Sirgo Rica2024-06-281-1/+1
| | | | | Add vertical padding to the div holding the report of no selected client with cached images.
* templates: improve spacing in main dashboardAlejandro Sirgo Rica2024-06-281-1/+1
| | | | | Use a plain line break instead of a horizontal rule to split the server information.
* templates: hide detailed cache view with zero imagesAlejandro Sirgo Rica2024-06-281-5/+6
| | | | | | 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.
* templates: fix no image message in manage cache viewAlejandro Sirgo Rica2024-06-281-1/+1
| | | | | The template conditional must show the table when form.images has more than zero elements.
* templates: improve user sidebar styleAlejandro Sirgo Rica2024-06-281-3/+4
| | | | | Use Bootstrap list-group class and adjust content alignment with a flex container.
* templates: fix user form alignmentAlejandro Sirgo Rica2024-06-272-2/+3
| | | | Add class="mx-5" to allign the form with the header of the page.
* ogcp: improve page heading styleAlejandro Sirgo Rica2024-06-2747-62/+62
| | | | Make headings take less space and have a dashed line under them.
* ogcp: add user permission mechanismAlejandro Sirgo Rica2024-06-2710-131/+214
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* templates: rename Edit client to Update clientAlejandro Sirgo Rica2024-06-251-1/+1
| | | | | Rename Client/Edit client menu in scopes management view to keep the same naming pattern as the other menu elements.
* ogcp: add support to view script outputAlejandro Sirgo Rica2024-06-252-0/+76
| | | | | | | | | | 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.
* ogcp: add support to run scripts in clientsAlejandro Sirgo Rica2024-06-252-0/+34
| | | | | | | | 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.
* templates: make opengnsys buttom redirect to dashboardAlejandro Sirgo Rica2024-06-251-1/+1
| | | | | | 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.
* templates: rename Start session to Boot OSAlejandro Sirgo Rica2024-06-201-1/+1
| | | | | Use a better name for the form action used to boot an operating system in the clients.
* templates: show client details at the end of the client optionsAlejandro Sirgo Rica2024-06-201-2/+2
| | | | | Move "Client details" to the last option of the "Client" dropdown in the Commands page.
* views: make password optional in user/editAlejandro Sirgo Rica2024-06-191-2/+2
| | | | | | | | | 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.
* templates: remove servers view in main navbarAlejandro Sirgo Rica2024-06-181-3/+0
| | | | | Remove the Servers button from the main navbar but keep the multiserver related code.
* css: offset the sidebar to acommodate all disclosure widgetsAlejandro Sirgo Rica2024-06-181-1/+1
| | | | | Add a left padding to show the disclosure widget associated to a server item. Prevent the positioning of out of screen components.
* js: show correct initial disclosure widget stateAlejandro Sirgo Rica2024-06-171-1/+1
| | | | | Add the class "collapsed" to the html elements defined as not shown in the local storage for the images list sidebar.
* ogcp: add room details view to scopes managementAlejandro Sirgo Rica2024-06-172-0/+20
| | | | | | Add a readonly view for the room data. Mark all the form fields as readonly and set the hidden attribute to the submit field.
* ogcp: add center details view to scopes managementAlejandro Sirgo Rica2024-06-172-0/+20
| | | | | | Add a readonly view for the center data. Mark all the form fields as readonly and set the hidden attribute to the submit field.
* ogcp: add move client to scopes managementAlejandro Sirgo Rica2024-06-172-0/+27
| | | | | | | | | | 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.
* templates: remove console.log statement in mode.htmlAlejandro Sirgo Rica2024-06-171-1/+0
| | | | Remove print statement generating noise in the browser logs
* templates: show oglive in client pillsAlejandro Sirgo Rica2024-06-171-0/+19
| | | | | | Add oglive to each client pill in action/oglive using js. This makes easier to have a global perspective of the client's configuration.
* forms: use checkboxes for scope selection in UserFormAlejandro Sirgo Rica2024-06-142-9/+80
| | | | | | | 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
* templates: remove dead code from edit_user.htmlAlejandro Sirgo Rica2024-06-141-8/+0
| | | | | Remove the <script> block as the function digestUserFormPassword no longer exists.
* js: allow selection of multiple clients in scopes sidebarAlejandro Sirgo Rica2024-06-141-1/+1
| | | | | | | | | | | 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.
* ogcp: add disclosure widget to sidebarAlejandro Sirgo Rica2024-06-142-3/+2
| | | | | | | | | | | | 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.
* src: revisit sidebar context storage approachAlejandro Sirgo Rica2024-06-142-5/+6
| | | | | | | | | | | Maintain selections made in scope sidebar after clicking an action (ie. client add, room delete, etc.) Use ids instead of names as the name html property is the same for every room and center. Call keepSelectedClients() in macros.html for both Scope Management and Commands instead of only in Commands. Add a "context" value to the checkbox id to separate scope and commands values in local storage.
* templates: add missing center_update.htmlAlejandro Sirgo Rica2024-06-131-0/+18
| | | | | Add html template for the route /action/center/update. Finish the work started in commit 6ec26d16.
* templates: fix error report with multiple messagesAlejandro Sirgo Rica2024-06-131-2/+4
| | | | | | | | | Fix the definition of javascript code to generate a correct message window for multiple error messages. The error is cause by a redefinition of 'let bgclass' in multiple lines when the html template receives multiple error messages. Each iteration to generate the code for the error messages tries to redefine the variable bgclass and it causes the js to fail.
* templates: show boot mode in client pillsAlejandro Sirgo Rica2024-06-071-0/+18
| | | | | | Add boot mode to each client pill in action/mode using js. This makes easier to have a global perspective of the client's configuration.
* templates: show image file table only if clients have a cacheAlejandro Sirgo Rica2024-06-071-0/+6
| | | | | Hide form table when the client's cache is empty and inform the user about the selected clients not having images in cache.
* templates: show Delete Image only as adminAlejandro Sirgo Rica2024-06-071-0/+2
| | | | | Hide the Delete Image in user mode using template conditionals. A non admin account should not have access to image deletion.
* templates: use the correct storage units1.1.3-20Alejandro Sirgo Rica2024-05-303-12/+12
| | | | | | | Use base 2 storage units in html templates as that's the correct representation for the values shown in the web. Remove units such as "Gbytes" and "MB" for their binary byte unit counterparts.
* ogcp: add cache management pageAlejandro Sirgo Rica2024-05-302-0/+194
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Implement cache management through cache/list and cache/delete API REST methods. The view corresponds to the URL action/cache and contains three main parts: - Free cache available in the client's bubbles. - Image selection form to request the deletion and view the client with that image in cache. - Cache details per client to see total, used and available cache. The main usecase for the view is the removal of cache to make room for new images in clients with slow connections. Checking clients where available cache space is not enough to hold the new image and then requesting removal of specific images. The html template receives the following structures from the view: storage_data[ip] = {'used': 223452345, 'total': 2345234523452} client_images[ip] = [f'{image_name}.{image_checksum}', ...] image_data[f'{image_name}.{image_checksum}'] = { clients: ['192.168.0.1', ...], size: 34534530850, name: image_name, }
* make the boot OS form work over multiple clientsAlejandro Sirgo Rica2024-05-161-5/+32
| | | | | | | | | Enable working over multiple clients even if their OS configuration is different to greatly improve the user's workflow. Group clients with the same configuration under the same checkbox in the form. Report clients excluded from the boot instruction due to not matching OS configuration.
* js: only add MAC to client pills1.1.3-19Alejandro Sirgo Rica2024-05-131-1/+1
| | | | | | Ignore any room, center or folder as they don't have a MAC address. Trying to get the MAC of an scope element without one leads to a JS exception.
* js: remove console.log statementAlejandro Sirgo Rica2024-05-131-1/+1
| | | | Remove print statement generating noise in the browser logs.
* remove Format field from partition setup formAlejandro Sirgo Rica2024-05-131-2/+0
| | | | | | | Remove the 'Format' field from the Partition and Format form as the default value will always be to format the partitions. This will lead to less portantial codepaths to maintain and support and less manual clicks in the web form.