summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* base: Increase column size for sidebarv1.1.3-8Javier Hernandez2023-12-121-1/+1
| | | | Make the sidebar wider to improve readability of its content
* views: Add 'description' field to image detailsJavier Hernandez2023-12-122-0/+2
| | | | Add a 'description' field to the image-details form.
* Change Image-details' 'Datasize' unit to MiBJavier Hernandez2023-12-122-2/+2
| | | | | Change the Image details form to display the 'Datasize' field of the image in MiB instead of GiB
* Fix bug at create and update imageJavier Hernandez2023-12-121-2/+2
| | | | | | Fix a bug that made the create and update images actions unusable. The data sent to post was incomplete; partition's 'code' data was missing.
* views: Check form contain a cache partitionJavier Hernandez2023-12-111-0/+8
| | | | | | | Make the partition and format form fail if the user has not added a cache partition. A cache partition is required to make the restoration of images work
* ogcp.js: Fix bug when adding a new partitionJavier Hernandez2023-12-112-8/+16
| | | | | | | | | | | | | | | | | Fix a bug that made the 'add a new partition' button unusable if all partitions (rows) were deleted. The reason for this bug was that the AddPartition() function would add a new partition by cloning an already present html row element. This would fail if no more rows were present in the table. The solution implemented checks, previous to delete a partition, if it is the last partition. If it is, then, instead of removing the whole row, it just empties it. Html button element needs to contain 'type="button"' attribute for this to work. Otherwise, default action for the button is submit and it would redirect after clicking.
* templates: add missing delete/update repository templatesv1.1.3-7OpenGnSys Support Team2023-12-112-0/+34
| | | | | | | Add missing templates. Fixes: 15dd4c2a8f69 ('views: add action to update repo') Fixes: 152337b6bdb8 ('views: add action to delete repo')
* views: change repo add view to follow conventionv1.1.3-6Javier Hernandez2023-12-053-33/+30
| | | | | | | | | combine repo_add_get and repo_add_post into one, action_repo_add. This is to follow convention across all the views and to clarify that it is an action. rename repos_details template to repos_add. Now it is clear the purpose of each action template; there is one for each: add, delete and update
* views: add action to update repoJavier Hernandez2023-12-052-0/+39
| | | | | allow the user to update a repo by selecting one and pressing the update button.
* views: add action to delete repoJavier Hernandez2023-12-055-9/+70
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | allow the user to delete a repo by selecting one and pressing the delete button. Previous to deletion, show the user a confirmation page (a form) with the details of the repo to delete the confirmation form is constructed with the fields of Repoform. RepoForm is also used in template used to create a repo. To make both templates work with RepoForm, RepoForm's field 'create' has been renamed to 'submit' ogcp.js: add a function to make that, when the user selects a repository, the server in which it is contained is automatically checked. We need it checked so that action_repo_delete can know the server to which it has to send the delete request. Use data-server in repos_details.html to make this work Validate, in action_delete_repo, that user has only selected one repo to delete. In order to do that, action_delete_repo view needs to be able to get a list of all selected repos. This is only possible if <input> elements that are associated with repos info contain a different name attribute per repo. In this case, template repos.html has been modified to use name={repo name}-{repo_id}. After this, parse_elements() will work and parse a set containing all selected repos. modify html input associated to repos server in order to follow same convention as in other templates. For example, images uses image-server; scopes, scope-server.
* cfg: add template fileOpenGnSys Support Team2023-12-041-0/+20
| | | | this template configuration file is used by the installer.
* init: missing import loggingOpenGnSys Support Team2023-12-041-0/+1
| | | | | | | | Otherwise: NameError: name 'logging' is not defined is reported.
* src: add menu to manage reposJavier Hernandez2023-12-016-1/+145
| | | | | | | | | | | | | | | | | | | | | | | The menu includes a list of the repos of each server. The user can select a server or a repo to make changes. As of now, the only action possible is to add a repo to selected server. The work contained in this commit can be structured in: 1. Add the repos menu: - Add a 'repos' button in the menus bar (base.html). - Add repos.html template to create the management repos menu. - In ogcp.js, add function to store in browser's local storage which elements of the sidebar are uncollapsed. This saves the sidebar state after a page refresh. - Add manage_repos() in views.py 2. Allow to add a repo: - Add template with form to add a repo (repos_details.html) - Create RepoForm(FlaskForm) in action_forms.py - Add repo_add_get() and repo_add_post() in views.py
* init: filter out GET /scopes/status requestsOpenGnSys Support Team2023-12-011-0/+6
| | | | | | | | | ogcp.js calls this endpoint very often, which send a request to the ogserver through the REST API. This call is needed because javascript code cannot directly talk to the ogserver since it does not know what the API_KEY is. Add a filter to skip log GET /scopes/status requests. Thanks to DaniGM for helping with this.
* views: set computer netmask to 0v1.1.3-5OpenGnSys Support Team2023-11-301-2/+1
| | | | This is never used by ogserver, instead the room netmask is always used.
* views: Add placeholder for mac fieldJavier Hernandez2023-11-301-0/+2
| | | | | | | | Add a placeholder that shows the user an example of what a valid mac address looks like. By now, mac needs to be specified as AABBCCDDEEFF without : for historical reasons.
* views: fix client detailsJavier Hernandez2023-11-291-3/+3
| | | | | | | - netmask is no accesible anymore, remove it. - The form made reference to fields that do not exist anymore: netmask and netdriver (removed in a previous commit) - make the repository field show the repo that is in use
* views: fix repository list in update clientJavier Hernandez2023-11-291-3/+4
| | | | | | | | Make the repository list's first element be the current repo in use. This is needed because, otherwise, an update could inadvertently change the repo. Remove a print statement that is no longer needed
* views: populate repositories in client formJavier Hernandez2023-11-292-2/+7
| | | | | Make, in add and edit clients forms, the field repository show the list with the actual repositories, not a harcoded value.
* image: rename and remove fieldsv1.1.3-4Javier Hernandez2023-11-272-6/+4
| | | | | | - remove field image 'id' - change size to display MiB instead of GiB - replace 'Modified' with 'Last update'
* templates: translate shutdown state keysJavier Hernandez2023-11-271-1/+1
| | | | Change key element 'Apagado' to its English form 'Shutdown'
* views: Make 'partition' field use same formatJavier Hernandez2023-11-271-35/+24
| | | | | | | Make forms containing a 'Partition' field use all the same format (ie. <Disk id> | <Partition id> | <Partion type> <Partition format>") Signed-off-by: OpenGnSys Support Team <soporte-og@soleta.eu>
* client: Remove 'netmask' in formJavier Hernandez2023-11-272-4/+2
| | | | | Remove unnecessary field 'netmask' from forms used to create and update clients. Netmask is configured in rooms instead.
* views: allow to edit a clientJavier Hernandez2023-11-242-0/+66
| | | | | | | | | | | Add a form to allow the user to update a client. ip field is in read only mode because this is the primary key to identify a client in db. Fields corresponding to boot mode (ie. oglivedir and boot) are also in read only for now; ogServer has to fix set boot mode functionality before it can be added here.
* src: Remove netdriver field in client formJavier Hernandez2023-11-232-3/+1
| | | | | | | | Remove netdriver field from forms used to add or update a client. At the time of creating (or updating) a client, ogCP uses a hardcoded value for this field of the payload. This field is not used by oglive in any way, remove it.
* views: add field 'gateway' in add-room formJavier Hernandez2023-11-142-1/+4
| | | | Add the possibility to configure a gateway in a room.
* ogcp.js: fix images selector in "images" sectionJose M. Guisado2023-07-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Any operation inside "Images" view fails with error message 'missing "image-server" key'. Operations under images view section are loading image info and "delete image". Previously, a hidden checkbox entry was added to support multiple ogServer images entries. This hidden checkbox value holds the corresponding ogServer address of some image list. This hidden 'image-server' checkbox is checked or unchecked whenever some visible image from this server is checked in the list by the user. Commit 70eb7389bb5d introduces checkImageServer javascript function that mainly attaches an onchange event to each image checkbox so that checking or unchecking it updates the hidden 'image-server' checkboxes holding the ogserver address associated with each ogserver entry list. When loading "Images" view each configured ogServer entry is collapsed (thus each image checkbox is hidden). The current selector is ignoring hidden checkboxes and thus checkImageServer is unable to attach the necessary onchange event to each image checkbox. The hidden 'image-server' checkbox is always hidden and does not need attaching any onchange event. Fix selector by not ignoring hidden elements and omitting any checkbox with name 'image-server'. Fixes: 70eb7389bb5d ("Add ogServer parameter to imagesForm")
* ogcp: add backup boolean field in image updatev1.1.3Jose M. Guisado2023-07-072-0/+2
| | | | | | | | User can use this boolean field to specify if an backup copy needs to be created before updating an image. This only applies when sending a request to a client (ogClient) supporting this parameter.
* views: use \s to match whitespace in client import regexJose M. Guisado2023-06-281-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | Some programs substitute regular space characters (\u0020) by en spaces (\u2002) when displaying monospace text. Others replace it by non-breaking spaces. Using a character set such as [ \t\n] to match any possible "space related" character. Use \s to match any kind of whitespace related character in the regex. Pasted from python's documentation: \s For Unicode (str) patterns: Matches Unicode whitespace characters (which includes [ \t\n\r\f\v], and also many other characters, for example the non-breaking spaces mandated by typography rules in many languages). If the ASCII flag is used, only [ \t\n\r\f\v] is matched. [...] Fixes: d9f8c9561823daf234e2348b5ea0db2e92d29216 ('views: better dhcp conf parsing when importing clients')
* views: better dhcp conf parsing when importing clientsJose M. Guisado2023-06-271-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This new regex allows parsing of: - Irrelevant options that the user may paste from its config file, eg. 'option host-name'. - Allows linebreaks. Hosts still require to have 'hardware ethernet' first, and then 'fixed-address'. For example this regex admits dhcp host declarations such as host pir36-22_78 {       hardware ethernet d8:5e:d3:25:28:9d;       fixed-address 10.1.36.78;       option host-name "pc_78"; } Summary of the regex: (?: *host *) # Match host keyword and spaces ([\w.-]*) # Match any word character (alphanum and underscore) (?:[ \n\r]*{[ \n\r]*) # Match any space or newline, then match { and any following space or newline (?:[ \t]*hardware *ethernet *) # Match any space or tab character followed by 'hardware ethernet' ((?:[0-9A-Fa-f]{2}[:-]){5}(?:[0-9A-Fa-f]{2})) # Match the mac address using ':' or '-' as separator (?: *;) # Match any space character before a ';' (?:[ \t\n\r]*fixed-address *) # Match any space, tab or newline followed by 'fixed address' and any following space (\d+\.\d+\.\d+\.\d+) # Match an ip address (no validity check) (?: *;)(?:[ \r\n]*[^}]*}) # Match any space followed by ';', then match any character except '}'
* views: add placeholder text inside dhcp conf textareaJose M. Guisado2023-06-271-0/+8
| | | | | | | | | Help user by hinting the current expected format via a placeholder in the textarea box. Current regex has its limitations when parsing dhcpd host declarations. It does not support multi line host declarations or different options outside "hardware ethernet ..." and "fixed-address ...".
* Show warning when formatting clients without disksv1.1.2Javier Sánchez Parra2022-11-171-0/+3
| | | | | | If an administrator selects a client without disks and goes to "Partition & Format", ogCP redirects it again to "Commands" and shows a floating message indicating that the client has no disks.
* Fix typo in save_user() functionJavier Sánchez Parra2022-11-171-1/+1
|
* Open real time log in a new tabJavier Sánchez Parra2022-11-171-1/+1
|
* Disable scopes tree and add Back button in log viewJavier Sánchez Parra2022-11-171-0/+3
| | | | All views from Commands section have this two attributes.
* Update Spanish translationsv1.1.1Javier Sánchez Parra2022-11-171-171/+186
|
* Rename "Scopes" section to "Scopes management"Javier Sánchez Parra2022-11-171-1/+1
|
* Show scopes section only to administratorsJavier Sánchez Parra2022-11-171-3/+3
|
* Show servers section only to administratorsJavier Sánchez Parra2022-11-171-1/+1
|
* Add clients in Linux and Windows modeJavier Sánchez Parra2022-11-173-3/+44
| | | | | Scopes tree shows clients booted in Linux and Windows with ogClient installed. It also shows if the user logs in.
* Assign servers to usersJavier Sánchez Parra2022-11-071-0/+3
| | | | | Instead of give permissions on all centers of a server selecting each one of them, you can select the server that contains all this centers.
* Set server variable on GET /action/image/updateJavier Sánchez Parra2022-11-071-0/+1
| | | | | | Otherwise, ogCP crashes on image update. Fixes: 8726ade ("Adapt commands to work with several ogServers")
* Remove unused variable "g.server"Javier Sánchez Parra2022-09-291-4/+0
| | | | | | Since ogCP multi ogServer support, g.server is not used anymore. The list of available servers is stored in the global variable "servers" at og_server.py
* Get available scopes from all the serversJavier Sánchez Parra2022-09-291-6/+10
| | | | | When creating o editing a user, you can select in which scopes from all servers the user has permission.
* Fix ogServer deletion from the configuration fileJavier Sánchez Parra2022-09-291-1/+6
| | | | | Otherwise, users can not remove from the web a server declared in the deprecated way.
* Create servers list if do not existsJavier Sánchez Parra2022-09-291-1/+5
| | | | | Otherwise, if the configuration file do not have 'SERVERS' array, ogCP crashes trying to append a new server.
* Always try to load servers list from config fileJavier Sánchez Parra2022-09-291-1/+1
| | | | | Otherwise, servers list is not loaded if the configuration file also have an ogServer declared in the deprecated way.
* Adapt aux function to work with several ogServersJavier Sánchez Parra2022-09-291-7/+7
| | | | | Otherwise, get_repositories() and get_repository() functions only get the repositories of the first ogServer of the list.
* Fix repositories retrievingJavier Sánchez Parra2022-09-271-2/+2
| | | | | | | Commit X wrongly changed the URI to retrieve the repositories of an ogServer. Fixes: cf02e0c ("Add Servers section")
* Set server variable on GET /action/image/restoreJavier Sánchez Parra2022-09-271-0/+1
| | | | | | Otherwise, ogCP crashes on image restore. Fixes: 8726ade ("Adapt commands to work with several ogServers")