| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
Add support to create a folder able to contain multiple computers.
Add support for adding a folder able to contain rooms
|
|
|
|
|
|
|
| |
In client_details template, rename 'create' button to 'submit'.
This template is used by both client-add and client-edit commands; it
would not make sense to have a 'Create' button in client-edit.
|
|
|
|
|
|
|
|
| |
Add, in import clients menu, a selector to select the repo to be
associated with the clients about to import
modify OG_CLIENT_DEFAULT_BOOT variable to be 'oglive'; 'pxe' is not a
valid boot mode, and ogserver would return an error
|
|
|
|
| |
Add a 'description' field to the image-details form.
|
|
|
|
|
| |
Change the Image details form to display the 'Datasize' field of the
image in MiB instead of GiB
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
| |
Make, in add and edit clients forms, the field repository show the list
with the actual repositories, not a harcoded value.
|
|
|
|
|
|
| |
- remove field image 'id'
- change size to display MiB instead of GiB
- replace 'Modified' with 'Last update'
|
|
|
|
|
| |
Remove unnecessary field 'netmask' from forms used to create and update
clients. Netmask is configured in rooms instead.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Add the possibility to configure a gateway in a room.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
In Servers section/view, users can add or delete ogServers from ogCP
configuration file.
Replaces Repositories views and recycle some of its code.
|
|
|
|
|
| |
This commit makes Delete image view to use ogServer field from
imagesForm to send the deletion request to the correct ogServer.
|
|
|
|
|
| |
This commit makes Delete center view to use ogServer field from
scopesForm to send the command to the correct ogServer.
|
|
|
|
|
|
| |
This commit adds a new select input with all available ogServers to "Add
center" view. The ogCP creates the center in the ogServer selected by
the user.
|
|
|
|
|
| |
This commit makes Delete room view to use ogServer field from scopesForm
to send the command to the correct ogServer.
|
|
|
|
|
| |
This commit makes Add room view to use ogServer field from
scopesForm to send the command to the correct ogServer.
|
|
|
|
|
| |
This commit makes Import Clients view to use ogServer field from
scopesForm to send the command to the correct ogServer.
|
|
|
|
|
|
|
|
|
| |
With this commit when users select a scope, the ogServer to
which it belongs is also sent. Then when processing the form we obtain
this ogServer and we can send it the pertinent requests.
This commit also makes action "Add client" to use the ogServer sent in
the form.
|
|
|
|
|
| |
In "Repositories" view, users select a repository from the list on the
left and press "Delete repository".
|
|
|
|
| |
Creates "Add repository" form with the required inputs: name and IP.
|
|
|
|
|
|
|
|
|
|
|
| |
This patch moves login password hashing from the frontend/javascript to
the backend/flask.
This patch moves password hashing of login and user management forms.
Related commits:
* c7b0024 ("Add password hashing")
* 661254b ("Add 'Add user' to Users section")
|
|
|
|
|
|
| |
Rename "OS" to "Partition" to improve clarity.
This field represent which partition is used to create the image.
|
|
|
|
| |
Let users choose which repository want to use to save the image.
|
|
|
|
|
| |
Creates "Delete user" form. The user to be deleted is selected from the
sidebar in Users section.
|
|
|
|
|
| |
Creates "Add user" form with the following inputs: username, password,
password confirmation, role (administrator or regular), allowed scopes.
|
|
|
|
|
|
|
|
|
|
|
| |
The front-end now hashes passwords before sending them to the back-end.
It uses SHA-512.
This commit adds a hidden input which sends the password hash to not
interfere with browsers' save password functionality.
Also change passwords of the template configuration file for their
hashed/digested versions.
|
|
|
|
|
| |
Otherwise, wtforms use "submit" as id of the <input> tag, shadowing
javascript function ".submit()".
|
|
|
|
|
|
|
|
|
|
|
| |
Add import clients form with required inputs: room and dhcpd.conf.
This permits users to rapidly add large amounts of clients to a room
using dhcpd.conf's syntax. Users can copy full dhcpd.conf files to the
text area and the parser only matches lines with the following format as
clients:
host dummy {hardware ethernet 12:34:56:78:90:ab; fixed-address 192.168.1.55; }
|
|
|
|
|
|
|
|
| |
Allows updating the image file for an existing image.
This action is related to /image/create in ogServer API. If ogServer
receives an POST /image/create without the parameter "description", it
does not create a new image and only updates.
|
|
|
|
|
| |
Allow the user to choose a computer as reference to display the
partition scheme form.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
This commit rename partition table type MSDOS to MBR in the front-end.
At the back-end ogCP still uses MSDOS string because ogClient scripts
(aka cloning engine) expects it.
|
|
|
|
|
|
|
| |
This commit adds an extra view to ensure users do not clients
accidentally.
It also includes Spanish translation of the new strings.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
From flask babel documentation:
---
Additionally if you want to use constant strings somewhere in your
application and define them outside of a request, you can use a lazy
strings. Lazy strings will not be evaluated until they are actually
used. To use such a lazy string, use the lazy_gettext() function.
---
_() and _l() functions are aliases of gettext() and lazy_gettext()
respectively. Both functions belong to flask babel library.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Soleta Networks only offers support of tiptorrent for restore image
transferences.
|
|
|
|
|
| |
This action is used to visualize the specific details of an image, as
its ID, name, size, etc.
|
|
|
|
| |
To increase the compatibility of "Partition & format" (aka setup).
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Update license header in files.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Creates "add room" form with required inputs only: center, name and
netmask.
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 center
in which to add the room is in the add room form itself, using a select
input.
In the future, the RoomForm can be used to display room information once
such functionality lands in the ogserver.
|
|
|
|
|
|
|
|
| |
* Adds label for each action page.
* Adds a colored state for opengnsys connected clients
* Fix nav active item
* Rename some actions
* Adds DISK to partition and format form
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Ogcp requires a simple login page in order to avoid exposure of the
ogServer API to anyone trying to access the web page.
Because the main authorization mechanism in ogServer is the api token
the login implemented for the ogcp does not include registration process
but a single user and password specified in the ogcp.json.
"USER": "user",
"PASS": "pass"
Adds two new views: /login and /logout. They are used to login the user so
that the rest of views regarding ogServer functionality can be accessed
in a "login required" fashion. Index view (/) is an exception, it can be
accessed logged in or not so different data can be displayed.
Templates can now access a variable "current_user" to get information
about login status. This is a Flask-Login feature.
- Templates regarding login can be found in templates/auth/
- Login form is defined in forms/auth.py to separate it from
action_forms.py
- Adds Flask-Login module to requirements.txt
- Adds default user and pass in ogcp.json
|