summaryrefslogtreecommitdiffstats
path: root/ogcp/templates
Commit message (Collapse)AuthorAgeFilesLines
* Remove "Tasks" and "Schedule" from the navbarJavier Sánchez Parra2022-02-231-6/+0
| | | | Remove them until we add their functionality.
* Show selected clients in container blockJavier Sánchez Parra2022-02-233-0/+12
| | | | | | | | | | | | | | | | | | | On scopes and commands views, draw clients as users selects them in the scopes tree. Trigger client drawing on two events: 1."change" event, occurs when the user clicks a client checkbox. This event is standard [1]. 2. "show-client" event, fires when ogcp get selected clients from localStorage and when an user checks a parent checkbox. This event is custom. Dot characters (".") in clients names are replaced by underscore("_") when used as id to avoid errors. 1. https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event
* Move 'Update' button up in hardware viewJose M. Guisado2022-02-231-5/+7
|
* Hardware inventory template extends from command.htmlJose M. Guisado2022-02-221-1/+3
| | | | | | | | Extending from command.html is required for action views to mantain the scope context on the left side column. Enables setting dropdown button and action button as active when loading the hardware inventory view.
* Rename "Log" action to "System Log"Jose M. Guisado2022-02-221-1/+1
|
* Group command buttons into dropdownsJose M. Guisado2022-02-222-26/+68
| | | | | | | | | | | | | | | | | | | | Group related actions in the "commands" section inside a dropdown button. Declutters the panel in which the buttons are displayed. Dropdown button jinja block name is used as prefix for the block names of inside buttons. For example, for the image dropwdown button: <button class="...{% block nav_image %}{% endblock %}..."> {{ _('Image') }} </button> Actions such as restore and create will show a jinja block inside class attr like: <input class="... dropdown-item{% block nav_image_restore %}{% endblock %}" ... <input class="... dropdown-item{% block nav_image_create %}{% endblock %}" ...
* Setup view sets nav button as activeJose M. Guisado2022-02-221-0/+1
| | | | When loading the setup view, it's nav button becomes active.
* Add nav blocks to commands templateJose M. Guisado2022-02-221-16/+16
| | | | | | | | | | | | | Adds empty jinja blocks for the class attribute of all action buttons. Child templates from command (actions) can set their nav button as active overriding the corresponding {% block %}. Currently, not all action templates extends the commands.html template. This is not a problem, as the blocks are just empty. This is a preparation for changes on each action template to extend commands.html template.
* Merge nav into base templateJose M. Guisado2022-02-224-50/+50
| | | | | | | | | | | | | | | | | {% block %} defined in nav template cannot be overriden by child templates from base. This is a limitation in jinja. Merge nav into base template so jinja blocks so no {% include %} is used and these blocks can be overriden by child templates (commands, images, dashboard...) Avoid using request.endpoint to determine active nav item, decoupling endpoint names from navigation. Instead use child templates to override jinja blocks. [1] https://stackoverflow.com/q/40537752 https://stackoverflow.com/a/40562662 https://github.com/pallets/jinja/issues/243
* Check scopes checkboxes recursivelyJavier Sánchez Parra2022-01-311-0/+1
| | | | | | Otherwise, nested scopes are not checked and mislead users. When a scope is checked, we search all its children and check them too.
* Group log commands buttons into dropdownJose M. Guisado2022-01-311-4/+11
| | | | | Compacts Commands view with a single "Logs" dropdown button. Dropdown shows current log commands.
* Keep selected clients in the scopes treeJavier Sánchez Parra2022-01-281-0/+1
| | | | | | | | | | | | Otherwise, users have to click clients checkboxes every time they switch view. This commit adds one hook to capture when clients checkboxes changes. When they are checked, ogcp (front-end) stores them in browser's local storage. When they are unchecked, ogcp removes them from local storage. Every time users load a page with the scopes tree, ogcp checks local storage to restore selected clients.
* Keep scopes tree stateJavier Sánchez Parra2022-01-281-0/+1
| | | | | | | | | | | | | | | | | | | | Otherwise, users have to expand the scopes tree every time they switch view. This commit adds two hooks to capture when an element of the tree is shown or is hidden[1]. When they are shown, ogcp (front-end) stores them in browser's local storage[2]. When they are hidden, ogcp removes them from local storage. Every time users load a page with the scopes tree, ogcp checks local storage to restore the scopes tree state. Store and remove functions use stopPropagation() to prevent ancestors of clicked elements to also be stored or removed from local storage.[3] 1. https://getbootstrap.com/docs/4.1/components/collapse/#events 2. https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API 3. https://javascript.info/bubbling-and-capturing
* Remove dead code in macro.htmlJavier Sánchez Parra2022-01-281-20/+0
| | | | scopes_tree_collapse() replaces this dead code.
* Add confirmation page when deleting imageJose M. Guisado2022-01-272-1/+21
| | | | | | | | User can confirm when deleting an image by double checking the information displayed on this page. Adds a new optional field in GenericForm: 'ids'. Used when dealing with ids instead of ips.
* Adds confirmation page to reboot clientsJavier Sánchez Parra2022-01-202-1/+26
| | | | | | | | | | This commit adds an extra view to ensure users do not reboot clients accidentally. ogcp GET /reboot returns the confirmation page and POST /reboot builds and sends the request to ogServer. It also includes Spanish translation of the new strings.
* Adds confirmation page to power off clientsJavier Sánchez Parra2022-01-202-1/+26
| | | | | | | | | | This commit adds an extra view to ensure users do not power off clients accidentally. ogcp GET /poweroff returns the confirmation page and POST /poweroff builds and sends the request to ogServer. It also includes Spanish translation of the new strings.
* Rename to "Partition Table Type"Javier Sánchez Parra2022-01-201-1/+1
| | | | Otherwise, "Partition Table" is ambiguous.
* Show disk and partition size in mebibytesJavier Sánchez Parra2022-01-192-4/+4
| | | | | | | | | This commit converts disk and partition size from kibibytes to mebibytes to improve usability. Disk and partition size are used in "Client details" and "Partition & format" forms. It also returns size to kibibytes when creating /setup API payload as required by ogServer.
* Fix typo in the dashboardJavier Sánchez Parra2022-01-191-1/+1
|
* Ask twice to delete clientsJavier Sánchez Parra2022-01-192-1/+26
| | | | | | | This commit adds an extra view to ensure users do not clients accidentally. It also includes Spanish translation of the new strings.
* Add gettext to dashboard stringsJavier Sánchez Parra2022-01-131-9/+9
| | | | Otherwise, this texts could not be translated.
* Add set ogLive to commandsJavier Sánchez Parra2021-12-162-0/+24
| | | | | | This action is related to /oglive in ogServer's API. Allows changing the ogLive for a set of given clients, previously selected in the /commands view.
* Ensure unique HTML ids for scope elementsJavier Sánchez Parra2021-11-261-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Otherwise, undesired collapse/expand events may occur when users click an element of the scope. Old id format example: level3-2 New id format example: id_1-1_2-4_3-2 Explanation: * "id" -> Prefix needed because html ids must start with an alphabetic character. * "_" -> Separator. * "1-1" -> Values pair separated by "-". The first value is the level of the node. The second value is its position with respect to its siblings. This is always 1-1 because is the root node. * "_" -> Separator. * "2-4" -> Child node of the previous node. In this example, this node its in level 2 and has the fourth position. * "_" -> Separator. * "3-2" -> Child of node "2-4" in level 3 and in the second position. This is the final node in this example. In other cases ogcp may draws deeper nodes, so it creates longer ids. For example: id_1-1_2-1_3-2_4-1_5-1_6-1
* Add legacy real-time logJavier Sánchez Parra2021-11-081-0/+2
| | | | | | | | Clients in ogLive offer a web page with lighttpd that shows a real-time log. This commit links this log in ogcp. Future patches will deprecate this log functionality in favour of more robust solutions.
* Support partition of computers with several disksJavier Sánchez Parra2021-11-021-0/+11
| | | | | | | | | Add a new select input and button to choose which disk you want to partition. TODO: Current argument parsing function returns a list with all the arguments, except csrf_token. Future patches should add granular parsing of different types of arguments.
* Add legacy logJavier Sánchez Parra2021-10-282-0/+12
| | | | | Future patches will deprecate this log functionality in favour of more robust solutions.
* Keep scopes collapsed by defaultJose M. Guisado2021-10-151-1/+0
| | | | | For large scopes, unfolding by default slows page loading. It also takes lots of vertical space and the scroll bar gets smaller.
* Add partitions info to client detailsJavier Sánchez Parra2021-10-131-0/+24
| | | | Show a table with client's disks and partitions information.
* Add "Delete image" actionJavier Sánchez Parra2021-09-291-0/+2
| | | | | | | Adds a new button in the images view. This action handles image deletion, one at a time for security. Users must select an image using the images tree.
* Add image details actionJavier Sánchez Parra2021-09-032-0/+15
| | | | | This action is used to visualize the specific details of an image, as its ID, name, size, etc.
* Add images viewJavier Sánchez Parra2021-09-032-1/+30
| | | | | | | Images view manages all the images stored in the server. Follow up patches adds actions to get and edit image details, and to delete them.
* Add missing file from commit 9d98cf0Javier Sánchez Parra2021-08-231-0/+15
|
* Add "Delete center" actionJavier Sánchez Parra2021-07-301-0/+2
| | | | | | | | Creates "delete center" form with a select to choose a center to delete. Adds a new button in the scopes view. Because scopes checkboxes values maps to ips the only way to specify the center to delete is in the delete center form itself, using a select input.
* Fix scopes tree draw on empty centers/roomsJavier Sánchez Parra2021-07-301-1/+1
| | | | | Otherwise, ogcp draws empty centers and rooms as computers, with the state circle.
* Add "Delete client" actionJavier Sánchez Parra2021-07-291-0/+2
| | | | | | | Adds a new button in the scopes view. This action handles clients deletion on one or multiple scopes. Users must select clients using the scopes tree.
* Add full scheme partitioning supportJavier Sánchez Parra2021-07-281-70/+52
| | | | | | | | | | The initial "Partition & Format" (aka setup) form only allows to modify one partition at a time. This commit updates it to allow to modify the whole disk partition schema in one go, without pop-ups and transitions. This is a remake of the previous form using FieldList de WTForms and javascript to duplicate / remove FieldList adapted to the attributes available in WTForms.
* Add and restyle clients statesJavier Sánchez Parra2021-07-201-5/+7
| | | | | | | | | | | | | | | | This patch adds new states: OPG for clients in ogLive, BSY for busy clients, VDI for clients in OpenGnsys VDI and WOL_SENT for booting clients. It also removes state ON because do not exists. ogCP currently uses the following colors: * OPG -> Solid yellow * BSY -> Solid red * VDI -> Solid green * WOL_SENT -> Solid brown * OFF -> Hollow grey
* Update scopes tree dynamicallyDaniel García Moreno2021-07-071-2/+18
| | | | | | | | | | | | | | | | | This patch adds a javascript function to update the scope tree (on/off) state. This javacript function is called every second, does a call to the new backend endpoint `/scopes/status` and updates the tree classes depending on the current data. The new `/scopes/status` endpoint just returns the scopes tree as json. This patch also adds an icon in the tree leafs, a filled green circle when the state is `on`, and a empty red circle when the state is `off`. There's also a new javascript function to unfold all collapses in the scope tree.
* Create "Add Center" form and viewJavier Sánchez Parra2021-06-302-0/+17
| | | | | | | | Creates "add center" form with "name" as required input and "comment" as optional input. In the future, the CenterForm can be used to display center information once such functionality lands in the ogserver.
* Add new partition button in setup actionDaniel García Moreno2021-06-302-9/+74
| | | | | | | | | | | | | | | | | | | | | This patch adds a way to add a new partition to the setup.html template. This button opens a modal dialog with a new form and calls a new endpoint to create the new partition (this endpoint does nothing, it's needed to be implemented in the future). I've followed the initial design for this template, with one form per each partition, so every button will call a function and reload the page. It's possible to do all actions at once, but that will require a rework of this, to do that we can just define an unique form in the whole html, remove all the "Modify" buttons and add just one "Apply" button at the end. But maybe that option is a lot complex in the backend because will require to validate all the changes at once. This patch also improves the setup.html form without using flask-bootstrap and rendering the form in the template directly with the bootstrap4 classes.
* Add scopes_tree_collapse macroJose M. Guisado Gomez2021-06-303-2/+31
| | | | | | | | | | | | | Being able to collapse the scopes tree allows to fit a bigger scopes tree. A new macro is introduced to generate the HTML code for the scope tree in such a way that each non-leaf level (center, room) are collapsible. macros.scopes_tree_collapse(scopes) As of now, the state of the scope tree is not saved when changing nav sections.
* Keep the selection in the sidebar for mode & setupDaniel García Moreno2021-06-173-2/+3
|
* Don't show sidebar in login viewJose M. Guisado2021-06-171-2/+2
| | | | | Commit 22dcea19 introduced sidebar, which is not shown in index view. Disable sidebar in the login view too.
* Add commands view and macros.htmlJose M. Guisado2021-06-174-45/+67
| | | | | | | | | | | | Commands view has a scope sidebar with the content block filled with command buttons (poweroff, wol, etc.) This commit leaves scope create/delete/update buttons in the /scopes view, which serves that purpose. To avoid duplicating scope tree creation macro, an external macros.html is created, this template can be imported. Future macros needed can be written in there.
* Add chart to dashboardDaniel García Moreno2021-06-082-66/+126
| | | | | | | This patch adds an example chart using chartjs to the dashboard to show the disk usage. https://www.chartjs.org/docs/latest/getting-started/
* Add sidebar and command bar to base templateDaniel García Moreno2021-06-084-67/+96
| | | | | | | | | | | | | Modify the base template to add the sidebar and command bar, implemented just in the scopes view. This patch also modifies the "actions/mode.html" template to be shown in the scopes page. Any other action that should be inside the scopes should do the same, add the scopes and clients to the template context and use the "scopes.html" as base in those actions. The notification has been also changed to use a toast notification instead of the usual alert to avoid changing the layout on error.
* Restyle login.html templateDaniel García Moreno2021-06-011-5/+20
| | | | | | | | | Update the login template based on the AdminLTE extra page: https://adminlte.io/themes/v3/pages/examples/login.html This patch also adds a font-awesome icon to the login page, we've font-awesome from the AdminLTE plugins so we can use this icons in the interface.
* Use AdminLTE in base.htmlDaniel García Moreno2021-06-011-31/+44
| | | | | | | | | | This patch adds the css and js sources from the AdminLTE template to the base template so it can be used in all templates. There's also some flexbox bootstrap classes [1] to place the footer at the bootom always, even when there's no content to fill the page. [1] https://getbootstrap.com/docs/4.6/utilities/flex/
* Add "Delete Room" form and viewJavier Sánchez Parra2021-05-202-0/+17
| | | | | | | | Creates "delete room" form with a select to choose a room to delete. Adds a new button inside the button group in the scopes view. Because scopes checkboxes values maps to ips the only way to specify the room to delete is in the delete room form itself, using a select input.